fslove |
您所在的位置:网站首页 › Matlab求解多元变量函数 › fslove |
fslove - Matlab求解多元多次方程组
简介: 之前看到网上的一些资料良莠不齐,各种转载之类的,根本无法解决实际问题,所以我打算把自己的学到的总结一下,以实例出发讲解fsolve。 示例如下: \[\begin{cases} 2x_1 - x_2 = e^{ax_1} \\ -x_1 + 2x_2 = e^{ax_2} \\ \end{cases} \]具体的求解过程在后面 点击跳转 1. fsolve的基本使用调用格式一: X = fslove(FUN,X0) 功能:给定初值X0,求解方程组的解,X就是返回的解 调用格式二: X = fsolve(FUN,X0,OPTIONS) 功能:同上,并解决默认参数优化为options指定值 调用格式三: [X,FVAL] = fslove(FUN,X0,...) 功能:返回X处目标函数值 调用格式四: [X,FVAL,EXITFLAG] = fslove(FUN,X0,...) 功能:返回EXITFLAG的值,用来描述计算退出的条件,其中EXITFLAG取值和相应的含义如下表。(主要作为判断条件来使用) EXITFLAG 含义 1 函数fslove收敛于解X处 2 X的变化小于限制 3 残差变化小于限制 4 重要搜索方向小于限制 0 达到最大迭代次数或者评价标准 -1 算法由输出函数终止 -2 算法无法收敛到解的点 -3 信赖域半径太小 -4 线搜索在当前不能充分减少残差调用格式五: [X,FVAL,EXITFLAG,OUTPUT] = fslove(FUN,X0,...) 功能:包含OUTPUT的输出 调用格式六: [X,FVAL,EXITFLAG,OUTPUT,JACOB] = fslove(FUN,X0,...) 功能:返回雅各比矩阵 2.方程求解(1) 编制函数文件fun.m 编写函数主要用来书写函数的表达式。 function f = fun(x,a,b,c) % b c可以是随意的参数 f1 = 2*x(1)-x(2)-exp(a*x(1)); f2 = -x(1)+2*x(2)-exp(a*x(2)); f = [f1;f2]; % 也可以写成下面的方式 % f = [2*x(1)-x(2)-exp(a*x(1));-x(1)+2*x(2)-exp(a*x(2))];(2) 给定函数的参数值和初值(解在周围寻找) 调用求解函数 fslove >> a = -1; >> x0 = [-5,-4]; >> [x,FVAL,EXITFLAG,OUTPUT,JACOB] = fsolve(@(x)fun(x,a,1,1),x0);@(x)fun(x,a,1,1)调用fun函数,函数的参数是a,1,1,求解x的值 执行后调用x返回,也就是X的解。 x = 0.5671 0.5671 调用FVAL显示在目标解的函数值,可以看出,FVAL越小越接近真实解。 FVAL = 1.0e-09 * -0.4242 -0.3753 调用EXITFLAG 结合上面的表格可以知道,函数FSOLVE收敛于解X处。 EXITFLAG = 1 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |