matlab 非线性方程 复数根,Matlab非线性方程求的根.ppt

Matlab非线性方程求的根

科学计算与MATLAB;第八讲 非线性方程求根;内容提要; 在工程和科学技术中许多问题常常归结为求解非线性方程式问题,例如在控制系统的设计领域,研究人口增长率等。 例 关于真实气体的状态方程(Van der waals方程)为 其中,P是气体压力,V是气体体积,T是绝对温度,R是气体常数。 如果已知某气体的温度T及压力P,那么求体积V的方程为:

;非线性方程的一般形式: f(x)=0代数方程: f(x)=a0+a1x+……+anxn (an?0)超越方程 :f(x)中含三角函数、指数函数、或其他超越函数。用数值方法求解非线性方程的步骤:(1)找出有根区间;(只含一个实根的区间称隔根区间)(2)近似根的精确化。从隔根区间内的一个或多个点出发,逐次逼近,寻求满足精度的根的近似值。;2、方程求根的二分法; 以[a1, b1]为新的隔根区间,且仅为[a,b]的一半,对[a1, b1]重复前过程,得新的隔根区间[a2, b2],如此二分下去,得一系列隔根区间: [a,b] ?[a1, b1] ? [a2, b2] ?…… ? [ak, bk] ? …… 其中每个区间都是前一区间的一半,故[ak, bk] 的长度:

当k趋于无穷时趋于0。即若二分过程无限继续下去,这些区间最后必收敛于一点x*,即方程的根。;;计算过程简单,收敛性可保证;对函数的性质要求低,只要连续即可。缺点:收敛速度慢;不能求复根和重根;调用一次求解一个[a,b]间的多个根无法求得。;;2.3 MATLAB实现;例:用二分法求方程x^3-3x+1=0在区间[0,1]上的一个根。;3.1 基本思想 迭代法是一种逐次逼近的方法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。;例:求方程 x3-x-1=0 在 x=1.5 附近的一个根。将所给方程改写成假设初值x0=1.5是其根,代入得

x1≠x0,再将x1代入得

x2≠x1,再将x2代入得; 如此下去,这种逐步校正的过程称为迭代过程。这里用的公式称为迭代公式,即

k=0,1,2,…… 迭代结果见下表。仅取六位数字,x7与x8相同,即认为x8是方程的根。x*≈x8=1.32472;;将连续函数方程f(x)=0改写为等价形式:x=?(x)其中?(x)也是连续函数,称为迭代函数。

不动点:若x*满足f(x*)=0,则x*=?(x*);反之,若x*=?(x*) ,则f(x*)=0 ,称x*为?(x)的一个不动点。不动点迭代:(k=0,1,……)若对任意 x0?[a,b],由上述迭代得序列{xk},有极限

则称迭代过程收敛,且x*=?(x*)为?(x)的不动点。;但迭代法并不总令人满意,如将前述方程x3-x-1=0改写为另一等价形式:

建迭代公式:仍取初值x0=1.5,则有x1=2.375, x2=12.396,x3=1904,结果越来越大。此时称迭代过程发散。;收敛;程序设计;实例;实例;假定?`(x )改变不大,近似取某个近似值L,则有;类推可得;2、Steffensen迭代法:将Aitken加速技巧与不动点结合可得;3.4 MATLAB实现;谢谢!;4、Newton迭代法;设方程f(x)=0有近似根xk(f `(xk)?0),将f(x)在xk展开:(?在x和xk之间);记该线性方程的根为xk+1,则;4.2 Newton迭代法(切线法);切线法的缺陷;;程序设计;例:采用切线法求方程在区间[0.5,2]上的一个根。;若| ? `(x)|=|1-cf `(x)|<1,即取0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值