matlab计算范德华方程的根,非线性方程组求解.ppt

非线性方程(组)求解 引言 在945.36kPa(9.33atm)、300.2K时,容器中充以2mol氮气,试求容器体积。已知此状态下氮气的P-V-T关系符合范德华方程,其范德华常数为a=4.17atm?L/mol2, b=0.0371L/mol 数学模型:范德华方程变形可得,这是关于V的非线性方程 本章内容 2.1非线性方程(组)数值求解基本原理 2.2 Matlab函数 2.3 多项式求根函数roots 2.4 非线性方程求解函数,fzero和fsolve 2.5 关系和逻辑运算 2.6 Matlab程序流程控制 非线性方程 与线性方程相比,非线性方程问题无论从理论上还是从计算公式上都要复杂得多 非线性方程一般形式 方程的解称为方程的根或函数的零点 对于高次代数方程,当次数>4时,则没有通解公式可用,对于超越方程既不知有几个根,也没有同样的求解方式。实际上,对于n≥3代数方程以及超越方程都采用数值方法求近似根 数值法求根 首选要给出一个初始猜测解,然后通过各种迭代格式使其逐次逼近准确解 初值好坏对迭代收敛性有很大影响,因此初值的选取很重要 对于有专业背景的问题,初值可以按条件选择,对于没有经验的问题,可以用图解法和计算机试算搜索法初估近似解 2.1.1 逐步扫描法求根的初始近似值 用数值法求方程的根可分为两步,首先要找出根的某个近似值,又称为“初始值”,然后再采用特定算法将初始值逐步接近真实值,直到获得满足要求的结果 逐步扫描法 逐步扫描法 2.1.2 求方程根的精确解 非线性方程(组)的求解一般采用迭代法进行。迭代法是一种重要的逐次逼近方法。这种方法用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果 常见的迭代算法有不动点迭代、二分法、牛顿法、弦截法、威格斯坦法(Wegstein)、抛物线法等 不动点迭代法 迭代方程 方程的根 从给定的初值x0,按上式可以得到一个数列:{ x0, x1, x2, …, xk, … } 如果这个数列有极限,则迭代格式是收敛的。这时数列{xk}的极限 就是方程的根 直接迭代法 上述求非线性代数方程式数值解的方法称为直接迭代法(或称为不动点迭代法)。这个方法虽然简单,但根本问题在于当k->∞时,xk是否收敛于x*,也就是必须找出收敛的充分条件 不动点 定义:函数g(x)的一个不动点(fixed point)是指一个实数P,满足P = g(P) 从图形角度分析,函数y=g(x)的不动点是y=g(x)和y=x的交点 不动点迭代的图形解释 不动点定理 设有(i) g,g’ ∈C[a,b], (ii) K是一个正常数,(iii) p0∈(a,b), (iv)对所有x ∈[a,b],有g(x)∈[a,b] 如果对于所有x ∈[a,b],有|g’(x)|≤K<1,则迭代pn=g(pn-1)将收敛到惟一的不动点P ∈[a,b]。在这种情况下,P称为吸引(attractive)不动点。对于所有x ∈[a,b],有|g’(x)| >1,则迭代pn=g(pn-1)将不会收敛到P点。在这种情况下,P称为排斥(repelling)不动点,而且迭代显示出局部发散性 2.1.2.2 二分法 2.1.2.3 牛顿法 牛顿法也称为牛顿-拉普森法或者切线法。由于这个方法的计算结果颇佳,而计算过程也比较简单,所以被普遍采用 牛顿法的核心内容是通过泰勒级数将非线性方程式转化为线性方程式,然后用迭代法求解 牛顿公式 设方程式 的近似根为 则 对 的泰勒级数展开式为 牛顿法示意图 牛顿法注意事项 在单根附近,牛顿公式恒收敛,而且收敛速度很快。但是需要注意如果初始值不在根的附近,牛顿公式不一定收敛 在实际使用中,牛顿法最好与逐步扫描法结合起来,先通过逐步扫描法求出根的近似值,然后用牛顿公式求其精确值,以发挥牛顿法收敛速度快的优点 2.1.2.4 弦截法 牛顿迭代法收敛速度快,但它要求计算函数导数的值。在科学与工程计算中,常会碰到函数导数不易计算或者算式复杂而不便计算的情况 弦截法的基本思想与牛顿法相似,即将非线性函数线性化后求解。两者的差别在于弦截法实现函数线性化的手段采用的是两点间的弦线,而不是某点的切线 弦截法示意图 弦截法注意事项 与牛顿法只需给出一个初值不同,弦截法需要给出两个迭代初值。如果与逐步扫描法结合起来,则最后搜索的区间的两个端点值常可作为初值 弦截法虽比牛顿法收敛速度稍慢,但在每次迭代中只需计算一次函数值,又不必求函数的导数,且对初值要求不甚苛刻,是工程计算中常用的有效计算方法之一 2.1.2.5 松弛迭代法 有些非线性方程用前面的不动点迭代法求解时,迭代过程是发散的。这时可以引入松弛因

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值