网站大量收购闲置独家精品文档,联系QQ:2885784924

实验5非线性方程求解.PDF

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验 5 非线性方程求解 实验目的: 1.熟练掌握非线性方程求解的 MATLAB 实现; 2 .会用 MATLAB 解决一些非线性方程问题。 实验内容: 由 《微积分》的零点定理知,如果函数 y f (x) 在闭区间 a,b上连续,且满足 f (a)f (b)  0 ,则方程f (x) 0 在开区间a,b内至少存在一个零点.此定理给出了零点存 在的充分条件,但没给出零点的个数,也没给出求解方法,这在解决一些实际问题时显然是 不够的,本节主要解决这两个问题. 5.1 非线性方程简介 当f (x) 为非线性函数时,方程 f (x) 0 (5.1) 称为非线性方程.当f (x) 为n( 2) 次代数多项式时,(5.1)式称为n次代数方程,即 n n1 a x  a x   a x  a 0 n n1 1 0 由代数基本定理知,n次代数方程一定有n个根 (包括复根),但当 n 5 时便没有现成的 求解公式可用;当f (x) 为包含三角函数、指数函数或对数函数的超越函数时,(5.1)式称 为超越方程,如 x x e  sin( ) 0 2 此类方程不仅很难求得解析解,有时连解的存在性,解的个数也难以判断. 求解非线性方程的常用方法为 Bolzano 二分法和 Newton-Raphson 迭代法,下面介绍这 些算法的 MATLAB 软件实现。 5.2 非线性方程 (组)的MATLAB 求解 MATLAB 提供了几个求解非线性方程 (组)的函数,其使用方法分别为: (1)[x,fval,exitflag]=fzero(f ,x0,options) 用于求解非线性方程,输入量 f 为方程左端的函数;x0 是迭代初值或有根区间[a,b],此时要求 f 在 a,b 两点的函数值异 号;options 为控制算法的参数向量,可省略;输出量 x 为问题的解;fval 为函数 f 在解 x 处的值,可省略;exitflag用来描述程序的运行情况,若大于 0,则表示迭代收敛于解x.fzero 求得的结果不一定是函数 f 的零根,而只是函数值符号发生改变的点,此点有可能是间断点. (2)x=roots(p) 用于求解多项式方程的零根,其中 p 为多项式的系数 (按降幂排列). 输出量 x 为方程的零根.该指令每次只能求解一个一元多项式方程的零根,不能用于求多项 式方程组的解. (3)[x,fval,exitflag]=fsolve(f,x0,options)用于求解非线性方程组,输入量 和输出量可参考 fzero. 例 1 在无阻尼强迫振荡的研究中会经常遇到函数h(x) xsin x .试求一点x 0,2, 满足h(x) 1. 解:问题即为求非线性方程 xsin x 1 0 x [0,2] 的零根,建立 M 函数文件 h.m 如下: function y=h(x) y=x*sin(x)- 1; 在 MATLAB 指令窗中输入下面指令 x0=[0,2];[x,fval,exitflag]=fzero(h,x0) 运行得结果为:x =1.1142,fval =2.2204e-016,exitflag =1,即所求非线性方程的解为 1.1142. 上述方法主要用来求单根,对于多根情形,一般用图形放大法进行求解,即先根据曲线 的图形大体确定出根的数量及所在范围,然后再进一步确定

文档评论(0)

150****0990 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档