欢迎光临
我们一直在努力

sumifs函数的使用解,计算机函数公式的使用

fsolve()函数通常用于数值求方程或方程组的解,更常用于求解非线性方程组。其基本结构如下:(可以在matlab命令页面输入help fsolve查询)

fsolve()解决的方程形式为F(X)=0; ? 用法为:

?

X = fsolve(FUN,X0,OPTIONS) 或者写为 [x,fval,exitflag]=fsolve(fun,x0,options) 其中fun是方程,x0是初值,需要提前设定,options是一些设定要求,可以用optimset函数来实现;exitflag用以描述出口条件(exit condition)其值如下: ? ? ? 1 ?fsolve converged to a root. ? ? ? 2 ?Change in X too small. ? ? ? 3 ?Change in residual norm too small. ? ? ? 4 ?Computed search direction too small. ? ? ? 0 ?Too many function evaluations or iterations. ? ? ?-1 ?Stopped by output/plot function. ? ? ?-2 ?Converged to a point that is not a root. ? ? ?-3 ?Trust region radius too small (Trust-region-dogleg). 从上面看,当exitflag是1的时候是最理想的结果,2,3也可接受,负数则偏差太大或直接错误 举例如下: 1.求解sin(x)-0.5=0 1)直接求解,代码如下: x=fsolve(@(x)sin(x)-0.5,[1 3])%此处采用匿名函数法@(x) ?

其中1和3分别是设定的两个初值,一般设定在解附近,若不知道

解,也可随意设置,如果解不知最优,会有一定影响.options不填则默认。其中@(x)sin(x)-0.5也可以写为’sin(x)-0.5′

?

结果如下: ?

x =
0.5236 2.6180%可见结果尽量给出初值上最近的值,前后俩个分别对应初值1和3

2)建立m函数(对于函数比较长或者比较复杂的情况) a)建立m文件 function f=myfun(x) f=sin(x)-0.5 end ? ? ?? ? %end可以不写 保存为以myfun.m为名的m函数 b)调用函数 x=fsolve(@myfun,[1 3]) 结果为: ? x = 0.5236 2.6180 如果用以下代码:

?

? [x,fval,exitflag]=fsolve(@myfun,[1 3 8 9])%设定了四个初值,其中@myfun也可以用’myfun’ 则会给出偏差值fval,以及exitflag的值,结果如下: ? x = 0.5236 2.6180 8.9012 8.9012fval = 1.0e-09 * -0.1387 -0.0000 -0.0000 -0.0000exitflag = 1>> x=fsolve(@(x)sin(x)-0.5,[1 3])
其中fval为真实值与拟合值之间的差,从结果来看是非常理想的。 2.匿名函数可有多个参量,如求解方程: ? 1)建立m文件 ? ? function F = myfun(x,c)F = [ 2*x(1) – x(2) – exp(c*x(1))-x(1) + 2*x(2) – exp(c*x(2))]; 2)设置参数并执行 ? ? ?? ? c = -1; % define parameter first ?x = fsolve(@(x) myfun(x,c),[-5;-5]) ? %x1和x2的初值都定为-5 结果如下 ? ?

x =
0.5671
0.5671
fval =
-1.0640e-08
exitflag =
1

分析如下:x1=0.5671,x2=0.5671,差值在-8个数量级,结果理想。 ? 求解方程: ?

function F = myfun(x,c)
F = [ 16*x(1)+c*x(2)];

c = -1; % define parameter first
[x,fval,exitflag] = fsolve(@(x) myfun(x,c),[-5;-5])

结果如下: x = -0.3307 -5.2918fval = -4.4409e-15exitflag = 1
23748856

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。