MATLAB方程求解:2.非线性方程组
非线性方程组
多项式方程根的求解——roots
r=roots ( p )
- 以列向量的形式返回p表示的多项式的根;
- 输入p是一个包含n+l多项式系数的向量,以xn系数开头。
0系数表示方程中不存在的中间幂。
例如:p[32-2]表示多项式3x2+2x-2. - roots函数对
p1x^n+…+pnx +Pn+1=0
格式的多项式方程求解,包含带有非负指数的单一变量的多项式方程。
例子:
p=[4 0 -1 1 -3];
r=roots(p);
r
求解一元非线性方程的根——fzero
[x,fval,exitflag,output]=fzero(fun,x0,options)
- 求解一元非线性方程fun(x)=0的根;
- 此解是fun(x)变号的位置;fzero无法求函数例如x2的根;
- 给定起始点x0;
- 使用options修改求解过程;
- x:求解得到的根;
- fval:x处对应的fun的值;
- exitflag:终止条件标识;
- output:包含求解过程信息的结构体
例子:
clear;clc;
fun=@(x)sin(cosh(x));
x0=1;
options=optimset('PlotFcns',...
{@optimplotx,@optimplotfval});
x=fzero(fun,x0,options)
非线性方程组求解——fsolve
[x,fval,exitflag,output,jacobian]=fsolve(fun,x0,options)
- 求解(非线性)方程组fun(x)=0的,x是自变量构成的向量;
- x0是起始点(向量);
- options:优化计算相关选项设置;
- x:方程组的解;fval:方程组在x的值;
- exitflag:结束条件标识;
- output::包含优化过程的结构体;
- jacobian:返回fun在x处的jacobian矩阵。
解x处的jacobian矩阵,jacobian(i,j)是fun(i)关于x(j)在x处的偏导数。
例题:求解下列非线性方程组:
将方程转化为F(x)=0的形式:
建立描述方程组的函数文件:
function [F]=root2d(x)
%非线性方程组
F(1)=exp(-exp(-(x(1)+x(2))))-x(2)*(1+x(1)^2);
F(2)=x(1)*cos(x(2))+x(2)*sin(x(1))-0.5;
return;
end
调用fsolve求解:
fun=@root2d;
x0=[0,0];
x=fsolve(fun,x0)
原文地址:https://blog.csdn.net/m0_75029367/article/details/142367702
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!