非线性方程组求解和matlab实现.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
松弛法注意事项 由上式可知,当松弛因子ω=1时,松弛迭代法变为不动点迭代法;当松弛因子ω1时,松弛法使迭代步长加大,可加速迭代,但有可能使原理收敛的迭代变为发散;当0ω1时,松弛法使迭代步长减小,这适合于迭代发散或振荡收敛的情况,可使振荡收敛过程加速;当ω0时,将使迭代反方向进行,可使一些迭代发散过程收敛 松弛迭代法是否有效的关键因素是松弛因子的值能否正确选定。如果值选用适当,能使迭代过程加速,或者使原来不收敛的过程变成收敛;但如果值选用不合适,则效果相反,有时甚至会使原来收敛的过程变得不收敛。松弛因子的数值往往要根据经验选定,但选用较小的松弛因子,一般可以保证迭代过程的收敛 威格斯坦法 威格斯坦法在化工流程模拟中得到了广泛应用 威格斯坦法是一种迭代加速方法 Wegstein法注意事项 应注意,如果x1和x2两点选择不当,则连线的斜率等于1,与直线y=x无交点,从而迭代无法进行,这就是Wegstein法应当避免的陷井。引入一个量C Wegstein法注意事项 令q=1-C 当q=0时,Wegstein法退化为简单的不动点迭代 当0q1时,则变为有阻尼的迭代法。通常q0时,迭代能稳定收敛,但收敛较慢 当q0可以加速收敛,但易导致不稳定 为了加速收敛又避免不稳定,常取-5q0,这是称为有界的Wegstein法 MATLAB求解非线性方程方法 MATLAB求解非线性方程函数 非线性方程 非线性方程组 非线性方程 多项式函数 roots fzero fsolve 多项式求根函数roots 多项式的表达式约定如下: 对于多项式,用以下行向量表示: 这样就把多项式问题转化为向量问题 Matlab提供了多种多项式计算函数,如多项式求根函数roots,求多项式的值,polyval;多项式乘法,conv;多项式除法,deconv;多项式微分,polyder;多项式拟合,polyfit 函数roots r = roots(c),用于求解多项式的根 其中,行向量c的元素是多项式的系数,按多项式次数降序排列 如果c中含有n+1个元素,则多项式为n次 roots可以获得多项式的所有根 其算法为计算伴随矩阵的特征值 例题6: 求方程 的根 c = [1 -1 0 -1]; r = roots(c) r = 1.4656 -0.2328 + 0.7926i -0.2328 - 0.7926i polyval(c, r(1)) ans = -2.5535e-015 非线性方程求解函数fzero fzero 对于一般的单个超越方程,可以采用fzero函数求解 fzero函数结合使用二分法、割线法和可逆二次内插法 从两个函数值异号的点a,b开始 利用a,b获得割线点c 重复以下步骤直至 abs(b-a) ?*abs(b) 或 f(b) = 0 重新排列a,b,c使得 f(a)和f(b)异号 abs(f(b))abs(f(a)) C替代原来的b 如果c ? a, 采用IQI方法 如果 c = a, 采用割线法 如果 IQI 或割线法获得的新区间在 [a; b]内,则接受 如果 IQI 或割线法获得的新区间不在 [a; b]内,采用区间中点。 函数fzero [x,fval,exitflag,output] = fzero(fun,x0,options, p1, p2, ...) 此函数的作用求函数fun在x0附件的零值点,x0是标量 x 所求解 fval 函数在解x处的值 exitflag 程序结束情况: 0,程序收敛于解;0,程序没有收敛;=0,计算达到了最大次数 output 是一个结构体,提供程序运行的信息;output.iterations,迭代次数;output.functions,函数fun的计算次数;output.algorithm,使用的算法 options 选项,可用optimset函数设定选项的新值 fun可以是函数句柄或匿名函数。 Fun函数如何编写? X0如何选取? 例题7: 计算以下方程的根 1) 求sinx在3附近的零点; 2) 求cosx在[1,2]范围内的零点; 3) 4) 本例较简单,可直接在命令窗口输入命令求解: 1) fzero(@sin,3) 2) fzero(@cos,[1,2]) 3) fzero(@(x) x^3-2*x-5,1); roots([1 0 -2 -5]) 4) fzero(@(x) x^3-2*sin(x),1) 说明 1) 第2小题中,如果所给区间两端方程不异号,则程序出错 2) 除了采用匿名函数外,当然可以采用句柄函数定义函数,例如第4小题可以采用如下程序:

文档评论(0)

zxiangd + 关注
实名认证
文档贡献者

本人从事教育还有多年,在这和大家互相交流学习

1亿VIP精品文档

相关文档