非线性方程与非线性方程组的迭代解法(一)
- 格式:ppt
- 大小:467.51 KB
- 文档页数:16
求解非线性方程的三种新的迭代法迭代法是一种通过反复递推计算得到逼近解的方法,对于非线性方程求解而言,迭代法通过不断更新变量的值,使得方程逐渐趋近于真实解。
下面将介绍三种新的迭代法:逐次缩小区间法、割线法和弦截法。
第一种迭代法是逐次缩小区间法。
逐次缩小区间法是一种通过不断递推缩小变量的取值范围来求解非线性方程的方法。
算法步骤如下:1. 选取一个初始区间[a, b],使得f(a)和f(b)异号,即f(a)*f(b)<0。
2. 将区间[a, b]均分,得到区间的中点c=(a+b)/2。
3. 比较f(a)*f(c)和f(b)*f(c),如果f(a)*f(c)<0,则说明解在区间[a, c]内;如果f(b)*f(c)<0,则说明解在区间[c, b]内。
4. 重复步骤2和步骤3,直到得到精度要求的解。
逐次缩小区间法的优点是简单易懂,计算量较小;但缺点是需要事先给出一个初始区间,初始区间的选择对结果有影响,并且对于复杂的方程可能需要很多次均分才能逼近解。
第二种迭代法是割线法。
割线法是一种通过利用连续两个点的斜率来逼近解的方法。
算法步骤如下:1. 选取两个初始点x0和x1,计算出对应斜率f(x0)和f(x1)。
2. 利用斜率和已知点构造直线方程,得到直线和x轴的交点x2,并将x1更新为新的x0,x2更新为新的x1。
3. 重复步骤2,直到满足精度要求。
割线法的优点是不需要计算导数,因此适用于不易求导的情况;但缺点是可能出现迭代过程不收敛的情况,需要事先给出两个初始点,并且计算量相对较大。
弦截法与割线法相似,也是通过利用连续两个点的连线来逼近解的方法,但不同之处在于弦截法的直线是通过前两个点的连线来构造的。
弦截法的优缺点与割线法类似,不需要计算导数,但迭代过程可能不收敛。
三种新的迭代法均有各自的特点和适用范围,适合于不同类型的非线性方程。
在实际应用中,需要根据具体的方程和精度要求选择合适的迭代方法。
第4章 非线性方程与非线性方程组的迭代解法--------学习小结一、本章学习体会本章我们主要学习了非线性方程的几种解法,主要有对分法、简单迭代法、steffensen 迭代法、Newton 法、割线法等。
这几种方法都有其思想,并且它们的思想彼此之间有一定的联系。
本章的思路大致可以理解为:1.如何选取迭代公式;2.如何判断迭代公式的收敛速度;3.如何进行迭代公式的修正,以加速收敛;4.如何选取最适合的迭代方法 。
二、本章知识梳理具体求根通常分为两步走,第一步判断根是否存在,若存在,确定根的某个初始近似值;第二步,将初始近似值逐步加工成满足精度要求的结果。
求初始近似值,即确定根的大致区间(a, b ),使(a, b )内恰有方程的一个根。
本章的学习思路:针对一种迭代方法,找出迭代公式,并判断其收敛性,一般选取收敛速度最快的迭代公式,所以自然的提出了如何使收敛加速的问题。
4.1非线性方程的迭代解法非线性方程的迭代解法有:对分法、简单迭代法、steffensen 迭代法、Newton 法、割线法等。
4.1.1对分法设()[]()()0,<∈b f a f b a C x f 且,根据连续函数的介值定理,在区间()b a ,内至少存在有一个实数s ,使()0=s f 。
现假设在()b a ,内只有一个实数s ,使()0=s f 并要把s 求出来,用对分法的过程: 令b b a a ==00, 对于M k ,....,2,1,0=执行计算2kk k b a x +=若()ηε≤≤-k f a b k k 或,则停止计算取k x s ≈否则转(3)()()k k k k k k b b a a a f x f ==<++11,,0则令()()k k k k k k b b x a a f x f ==>++11,,0则令 若M k =则输出M 次迭代不成功的信息;否则继续。
对分法的局限:对分法只能求实根,而且只能求单根和奇数重根,不能求偶数根和复数根4.1.2简单迭代法及其收敛性迭代法是一种逐次逼近法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的解。
解非线性方程的一个非线性迭代法
一、非线性迭代法
非线性迭代法是一种解决非线性方程的迭代算法,它可以用来解决某
些不是很复杂的非线性方程。
它的原理很简单,根据拟合函数的结果,依次迭代计算,求出每一步迭代值,知道最终结果。
非线性迭代法,又被称为迭代算法,它可以通过多次迭代来求解特定
问题,通常用它来解决非线性方程,特别是特定的不可分的非线性方程。
在这个过程中,首先,给出非线性方程某个变量的初值,进行迭
代计算,每一次迭代都会用计算结果来更新变量的值,而最终的变量
值就是方程的根。
二、迭代步骤
1. 预选择初值:在使用非线性迭代法解决问题时,第一步就是给出一个
初值,这个初值可以通过此时此刻的数据估算,也可以通过判断函数
和它的导数表达式变量的变化范围来选择;
2. 迭代计算:根据计算非线性方程拟合函数,计算下一步迭代值,直到
找到根,或者迭代次数受限;
3. 指定精度:设定比较迭代值的精度,如果到达指定的精度,则可以认为找到了近似的根,完成迭代。
三、优劣
1. 优点:非线性迭代法简单易懂,而且有良好的稳定性,可以用来解决某些比较简单的非线性方程,也可以考虑不同的变量值,来获取更准确的结果;
2. 缺点:虽然非线性迭代法简单易懂,但是计算时间较长,对于一些复杂方程,无法收敛到足够的精度,需要引入其他更加精确的方法。
Newton迭代法求解非线性方程一、 Newton 迭代法概述构造迭代函数的一条重要途径是用近似方程来代替原方程去求根。
因此,如果能将非线性方程f (x )=0用线性方程去代替,那么,求近似根问题就很容易解决,而且十分方便。
牛顿(Newton)法就是一种将非线性方程线化的一种方法。
设k x 是方程f (x )=0的一个近似根,把如果)(x f 在k x 处作一阶Taylor 展开,即:)x x )(x ('f )x (f )x (f k k k -+≈ (1-1)于是我们得到如下近似方程:0)x x )(x ('f )x (f k k k =-+ (1-2)设0)('≠k x f ,则方程的解为:x ̅=x k +f (x k )f (x k )́(1-3)取x ~作为原方程的新近似根1+k x ,即令: )x ('f )x (f x x k k k 1k -=+, k=0,1,2,…(1-4)上式称为牛顿迭代格式。
用牛顿迭代格式求方程的根的方法就称为牛顿迭代法,简称牛顿法。
牛顿法具有明显的几何意义。
方程:)x x )(x ('f )x (f y k k k -+= (1-5)是曲线)x (f y =上点))x (f ,x (k k 处的切线方程。
迭代格式(1-4)就是用切线式(1-5)的零点来代替曲线的零点。
正因为如此,牛顿法也称为切线法。
牛顿迭代法对单根至少是二阶局部收敛的,而对于重根是一阶局部收敛的。
一般来说,牛顿法对初值0x 的要求较高,初值足够靠近*x 时才能保证收敛。
若要保证初值在较大范围内收敛,则需对)x (f 加一些条件。
如果所加的条件不满足,而导致牛顿法不收敛时,则需对牛顿法作一些改时,即可以采用下面的迭代格式:)x ('f )x (f x x k k k 1k λ-=+,⋯=,2,1,0k (1-6)上式中,10<λ<,称为下山因子。
数值分析-第四章学习小结-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN第4章非线性方程与非线性方程组的迭代解法--------学习小结一、本章学习体会通过本章的学习,我了解了怎么求出非线性方程和非线性方程组的根,只是有很少类型的非线性方程能解出根的解析表达式,对于大多数非线性方程,只能用数值方法求出它的根的近似值。
我学习了非线性方程与非线性方程组的迭代解法。
我感到要想求非线性方程组的精确解是不容易的,困难程度远远超过线性方程组的求解。
首先要了解迭代公式的基本思想,迭代法是一种逐次逼近法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的解,实质上是一个逐步显示化的过程。
最基本的就是在高中学过的二分法,需要在给定的区域选择根,然后在二分,在从中舍弃一个,再选,直到所选的根符合题目所给的条件,但是二分法只能求实根,并且只能求单根和奇数重根,不能求偶数重根和复数根,所以又有它的缺陷,后面又学了斯蒂芬森加速法和牛顿法。
算法都是离不开模型的,我们在学习某种算法时,一定要结合数学模型才能把知识理解到位,比如本章结合几何思想能够很好的理解算法公式的推导说明。
运用这么多的算法去求解非线性方程组,只是能最大程度的求解线性方程组的精确解,但不是精确解。
我们在今后的学习工作中,也可以自己去创造一种算法,使求解更加精确容易。
在求解非线性方程的解的时候,我们要有如下思路:1.如何选取迭代公式;2.如何判断迭代公式的收敛速度;3.如何进行迭代公式的修正,以加速收敛;4.如何选取最适合的迭代方法二、 本章知识梳理1、非线性方程的迭代解法简单迭代法及其收敛性简单迭代法的基本思想)(0)(x x x f ϕ=⇔=迭代法的基本思想是将隐式方程)(x x ϕ=的求根问题归结为计算一组显式公式)(1k k x x ϕ=+一般形式: ,2,1,0),(1==+k x x k k ϕ收敛条件:a 、非局部收敛定理b 、局部收敛定理简单迭代法的收敛速度线性收敛的条件m 阶收敛的条件迭代过程的加速加权法 迭代:)(1k k x x ϕ=+ 改进:k k k x LL x L x ---=++11111 埃特金(Aitken)加速法设序列}{k x 线性收敛到s112212)(++++=+---≈k kk k k k k x x x x x x x s Newton 法(切线法)基本思想:(1)构造法:0)(='s ϕ(2)几何上:逐步线性化方法(3)Taylor 展开 ))((')()(k k k x x x f x f x f -+≈迭代函数:)(')()(x f x f x x -=ϕ 迭代公式: ,2,1,0,)(')(1=-=+k x f x f x x k k k k 几何意义收敛性(1)局部收敛定理(2)非局部收敛定理牛顿下山法)(')(1k k k k x f x f x x -=+)(')(1k k k k x f x f x x λ-=+ k k k x x x )1(11λλ-+=++ 其中10≤<λ称为下山因子通过适当选取下山因子保证函数值)(k x f 能单调下降。
一:非线性方程的基本迭代方法简单迭代法非线性方程的一般形式f(x)=0 其中f(x)是一元非线性函数。
若存在常数s 使f(s)=0,则称s 是方程的根。
把方程转化为其等价的方程)(x x ϕ=,因而有)(s s ϕ=。
选定s 的初始近似值0x ,用迭代公式)(1k k x x ϕ=+,得到}{k x 收敛于s ,就求出了方程的解。
收敛性:)(s s ϕ=,)(x ϕ'在包含s 的某个开区间内连续。
如果|)(x ϕ'|<1则存在δ>0,0x ∈[s-δ,s+δ]时,由该迭代函数产生的迭代法收敛。
收敛速度:(}{k x 收敛于s ,k e 为s 与k x 的差值绝对值,则c e e r k k k =+∞→1lim,c 是常数,则该迭代是r 阶收敛)Newton 法为了使迭代的收敛速度更快,应尽可能使)(x ϕ在s 处有更多阶的导数等于零。
令)(x ϕ=)()(x f x h x +,)(x h 为待定函数,已知)(s ϕ'=0,推出)(x h =)(1x f '-。
这就得出了牛顿法的迭代形式 )()(1k k k k x f x f x x '-=+,(k=0、1、···) 牛顿法是二阶收敛的迭代方法,但是牛顿法的是局部收敛的,因此要求初值要靠近根。
求解中,对于每一个k 都要计算)(k x f ',而导数的计算比较麻烦,否则会产生很大误差。
割线法 在牛顿法基础上,用11)()(----k k k k x x x f x f 来代替)(k x f ',其中1-x 、0x 预先给定。
得到了割线法的迭代形式 )()())((111--+---=k k k k k k k x f x f x x x f x x ,(k=0、1、···) 割线法的收敛速度至少为1.618这样就避免了牛顿法求导数的繁琐程序单点割线法单点割线法就是在割线法的基础上,用))(,(00x f x 代替))(,(11--k k x f x ,得到的迭代形式 )()()(001k k k k k x f x f x f x x x x ---=+,(k=1、2、···) 单点割线法是一阶收敛的方法,它比割线法初值要少取一个点更加容易选取初值二:非线性方程的迭代解法的拓展修正的Chebyshev 法思想:将函数)(x f 在k x 处进行泰勒展开既 +-''+-'+≈!2)()())(()()(2k k k k k x x x f x x x f x f x f ,如果)(x f ≠0,先取线性部分来代替原来函数,既)(x f =)(k x f +))((k k x x x f -'=0,得到k x x -=)()(k k x f x f '-; 再用二次多项式部分代替原函数,既!2)()())(()()(2k k k k k x x x f x x x f x f x f -''+-'+==0,合并这两次的结果得到)()()))((2)()(1(2k k k k k k x f x f x f x f x f x x ''''⋅+-=,令1+=k x x ,得到就得到了新的迭代公式,这就是Chebyshev 方法的思想,该方法的迭代公式具有三阶收敛速度。
非线性方程组迭代解法不动点法( unmovepoints.m)%非线性方程组的不动点法function [x,n]=unmovepoints(fun,x0,eps)if nargin<3eps=1e-3;endx1=feval(fun,x0);n=1;while(norm(x1-x0))>=eps x0=x1;x1=feval(fun,x0);n=n+1;if n>100000disp(' 无法收敛!');breakendendx=x1;Newton 迭代法( newtons.m)% 非线性方程组的Newton 迭代法function [x,n]=newtons(fun1,fun2,x0,eps)if nargin<4eps=1e-3;endx1=x0-feval(fun1,x0)/feval(fun2,x0);n=1;while norm(x1-x0)>=epsx0=x1;x1=x0-feval(fun1,x0)/feval(fun2,x0); n=n+1;if n>100000disp(' 无法收敛!');breakendendx=x1;注:方程组的迭代与方程迭代不同之处在于收敛的判断不能用 abs 而应用norm (范数,默认值为向量各元素的平方和的开方;norm(xl-xO)即为向量x1与x0对应元素差的平方和的开方。
在对应的函数程序中应注意向量的运算与数量运算的区别。
)用以上方法求解下列非线性方程组:f 1 X =x 1 - 0.7 sinx ! -0.2cosx 2 =0 f 2 X = x 2 - 0.7 cos% 0.2sinx 2 =0函数:%非线性方程组函数(适用于不动点法) function f=non li nerequsl(x) f(1)=0.7*si n(x(1))+0.2*cos(x (2)); f(2)=0.7*cos(x(1))-0.2*si n(x (2));%非线性方程组函数(适用于Newt on 迭代法) function f=non li nerequs2(x) f(1)=x(1)-0.7*si n(x(1))-0.2*cos(x(2)); f(2)=x (2)-0.7*cos(x(1))+0.2*si n(x (2));%非线性方程组函数导数(适用于Newt on 迭代法) function f=non li nerequs3(x) f=[1-0.7*cos(x(1)),0.2*si n(x(2));0.7*si n(x(1)),1+0.2*cos(x(2))];命令:fsolve(@ non li nerequs2,[0.5,0.5])[x,n]=unmo vepo in ts( @non li nerequs1,[0,0],1e-6)[x,n]=n ewt ons(@non li nerequs2, @non li nerequs3,[0,0],1e-6)计算结果:(eps=0.000001)迭代方法X迭代次数n解析解[0.52652262191818 0.50791971903685] - fsolve[0.52652266171295 0.50791973020932] - 不动点法[0.526521300913880.50792028463452] 30 Newton 迭代法[0.526522793690200.50791961189450]16导数为f 2 f 2对多方程则类似。