Matlab编程资源库(13)非线性方程数值求解

一、单变量非线性方程求解

       在 MATLAB 中提供了一个 fzero 函数,可以用来求 单变量非线性方程的根。该函数的调用格式为:
z=fzero('fname',x0,tol,trace)
       其中 fname 是待求根的函数文件名, x0 为搜索的起 点。一个函数可能有多个根,但 fzero 函数只给出 x0 最近的那个根。 tol 控制结果的相对精度,缺 省时取 tol=eps trace指定迭代信息是否在运算中显示为1时显示为0时不显示 缺省时取trace=0
7-8 f(x)=x-10 x +2=0 x0=0.5 附近的根。
步骤如下:
(1) 建立函数文件 funx.m
function fx=funx(x)
fx=x-10.^x+2;
(2) 调用 fzero 函数求根。
z=fzero('funx',0.5)
z = 0.3758

运行结果 :

二、非线性方程组的求解

       对于 非线性方程组 F(X)=0 ,用 fsolve 函数求其数值解。 fsolve 函数的调用格式为:
X=fsolve('fun',X0,option)
       其中 X 为返回的解, fun 是用于定义需求解的非线性方程组的 函数文件名, X0 是求根过程的初值, option 为最优化工具 箱的选项设定。最优化工具箱提供了 20 多个选项,用户可 以使用 optimset 命令将它们显示出来。如果想改变其中某 个选项,则可以调用 optimset() 函数来完成。例如 Display 选项决定函数调用时中间结果的显示方式,其中 off 不显示 iter 表示 每步都显示 final 只显示 最终结果 optimset(‘Display’,‘off’) 将设定 Display 选项为 ‘off’
7-9 求下列非线性方程组在 (0.5,0.5) 附近的数值解。
(1) 建立函数文件 myfun.m
function q=myfun(p)
x=p(1);
y=p(2);
q(1)=x-0.6*sin(x)-0.3*cos(y);
q(2)=y-0.6*cos(x)+0.3*sin(y);
(2) 在给定的初值 x0=0.5,y0=0.5 下,调用 fsolve 函数求方程 的根。
x=fsolve('myfun',[0.5,0.5]',optimset('Display','off'))
x =
    0.6354
    0.3734

运行结果 :

将求得的解代回原方程,可以检验结果是否正确,命令如下:
q=myfun(x)
q =1.0e-009 *0.2375 
   0.2957
运行结果 :
  结语 
你向往什么,就向着那里努力
你期待什么,就全身心地追寻
只要你不认输,就没有什么能阻挡你的脚步
!!!
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT 青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值