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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值