函数零点的求解方法

本文介绍了如何使用fzero和fsolve函数解决一元和多元非线性方程。fzero用于求解一元非线性方程的零点,而fsolve能解决多元方程组。讨论了函数表示方法、初值选择以及fzero的局限性和注意事项,如需要避免函数在区间端点同号的情况。同时提到了roots函数在解多项式方程中的应用。
摘要由CSDN通过智能技术生成

有了函数后, 我们怎么用呢?

  • 直接利用函数计算, 例如: sin(pi), 还有我们提到的 mysqr(3)...
  • 函数画图, 例如Plottools中提到的ezplot, ezsurf...
  • 但是这也太小儿科了, 有没有想过定义函数后, 利用它来: 求解零点(即解f(x)=0方程), 最优化(求最值/极值点), 求定积分, 常微分方程求解等.

方程的分类单个方程按其系数的性质分为线性方程和非线性方程。

  1. 一元非线性方程求解(fzero()、roots()、fsolve())
  2. 多元非线性方程求解(fsolve())

fzero()、fsolve()比较:

  • 使用形式相似

              解=fzero(函数, 初值, options)
              解=fsolve(函数, 初值, options)

 

  • fzero()函数求解一元非线性方程的零点,fsolve()可以解多元方程组。
  • 关于解: fzero给出的是x单值的解, fsolve给出的是解x可能处于的区间, 当然, 这个区间很窄.
  • 关于'函数': 前面提到的三种表示方法, 在这里都可以用. 记住就是: 如果直接使用函数表达式, 要用单引号将它括起来; 而m文件函数名、匿名函数的函数句柄、inline函数则可以直接使用.
  • 关于'初值': 电脑比较"笨", 它寻找解的办法是尝试不同地x值, 摸索解在哪里. 所以我们一开始就要给它指明从哪里开始下手, 初值这里, 可以只给它一个值, 让它在这个值附近找解, 也可以给它一个区间(区间用[下限,上限]这种方式表示), 它会在这个区间内找解. fsolve()可以同时有多个初值,例如:y=fsolve('tan(x)-x',[-4,0,4])
  • fzero注意1: fzero的一些局限性, 如果你给定的初值是区间, 而恰好函数在区间端点处同号, fzero会出错. 例如,如果x0是一个长度为2 的矢量,则fzero函数假设x0是一个区间,其中fun(x0(1)))的符号与fun(x0(2))的不同. 如果符号相同,则会出错. 给出符号不同的区间可以保证fzero函数返回一个fun函数改变符号的位置附近的值。
  • fzero注意2: 而如果你只给一个初值, fezro又有可能'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值