非线性方程求跟—不动点迭代法(新)
- 格式:pdf
- 大小:605.97 KB
- 文档页数:13
浅谈用不动点迭代法求解非线性方程解的教学方法
不动点迭代法是求解非线性方程的一种有效的解法,它的核心思想是:通过迭代,使得方程的某个特定解变得更加接近,最终达到收敛的程度,从而得到最终的解。
一、教学目标
1、让学生了解不动点迭代法的基本原理;
2、让学生能够熟练使用不动点迭代法求解非线性方程;
3、让学生能够分析不动点迭代法的收敛性,并能够给出合理的迭代步骤。
二、教学步骤
1、讲解不动点迭代法的基本原理:
首先,教师应给学生讲解不动点迭代法的基本原理,包括它的定义、其基本思想、应用场景等。
2、提供实例:
然后,教师可以提供一些简单的实例,让学生熟悉不动点迭代法的使用,并能够熟练求解。
3、分析收敛性:
最后,教师可以让学生分析不动点迭代法的收敛性,并给出合理的迭代步骤,以便更好地求解非线性方程。
三、教学评价
教学评价主要是通过实例检验学生对不动点迭代法的掌握情况,以及分析收敛性的能力,以便更好地指导学生掌握不动点迭代法。
数值分析实验报告——非线性方程求根二分法一、题目用二分法求方程=的所有根x.13要求每个根的误差小于-x+0.001..21二、方法二分法三、程序1、Jiangerfen.M的程序function[c,yc]=jiangerfen(f,a,b,tol1,tol2)if nargin<4 tol1=1e-3;tol2=1e-3;end%nargin<4表示若赋的值个数小于4,则tol1和tol2取默认值。
ya=feval('f',a);%令x=a代入到方程f中,ya即f(a)。
yb=feval('f',b);if ya*yb>0,disp('(a,b)不是有根区间');return,endmax=1+round((log(b -a)-log(tol2))/log(2));%round函数是将数据取整,使数据等于其最接近的整数。
for k=1:maxc=(a+b)/2;yc=feval('f',c);if((b-a)/2<tol2)|(abs(yc)<tol1),break,endif yb*yc<0a=c;ya=yc;elseb=c;yb=yc;endendk,c=(a+b)/2,yc=feval('f',c)2、f.M的程序function y=f(x);y=x^3-2*x-1;四、结果>> format compact>> fplot('[x^3-2*x-1,0]',[-1.5,2]);>> jiangerfen('f',-1.5,-0.8);k =8c =-0.9996yc =3.9017e-004>> jiangerfen('f',-0.8,-0.3);k =8c =-0.6184yc =2.7772e-004>> jiangerfen('f',1.3,2);k =10c =1.6179yc =-9.5348e-004>> jiangerfen('f',2,3);(a,b)不是有根区间方程f(x)=x^3-2*x-1的所有根为-0.9996,-0.6184 ,1.6179 。
求解非线性方程的三种新的迭代法非线性方程在数学和工程中都有广泛的应用,对非线性方程进行求解是数学分析中的一项重要任务。
在数值分析中,求解非线性方程的方法可以分为直接法和迭代法两种,而迭代法又是非常常用的方法之一。
本文将介绍三种新的非线性方程迭代法,分别是Newton 法、Secant法和Broyden法。
Newton法是最经典的非线性方程迭代法之一,它是通过不断迭代来逼近方程的根。
Newton法的基本思想是在给定初始值的情况下,通过计算方程的导数来获得更接近根的逼近值,然后不断迭代直到满足精度要求为止。
具体的迭代公式为:\[ x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} \]\(x_n\)是第n次迭代的逼近值,\(f(x)\)是要求解的非线性方程,\(f'(x)\)是\(f(x)\)的导数。
在实际应用中,Newton法通常要求方程的一阶导数存在且连续,同时初始值的选取也对迭代的收敛性有很大的影响。
Secant法是Newton法的一种改进方法,它是通过直线的斜率来近似代替导数的方法来进行迭代。
Secant法的迭代公式为:Secant法相比于Newton法来说更加灵活,因为它不需要求解方程的导数,而直接利用两个相邻点的函数值来进行迭代。
然而Secant法的收敛速度相对较慢,而且在一些特殊情况下可能会出现迭代发散的情况。
Broyden法是一种迭代算法,它是通过不断更新雅各比矩阵的逆来逼近方程的根。
Broyden法的迭代公式为:\(x_n\)是第n次迭代的逼近值,\(J_n\)是第n次迭代的雅各比矩阵。
Broyden法适用于一些特殊情况下,比如方程的雅各比矩阵难以求解的情况,或者求解方程的雅各比矩阵耗时较长的情况。
Newton法、Secant法和Broyden法都是针对非线性方程迭代求解的常用方法,它们各自有着不同的特点和适用范围。
在实际应用中,我们需要根据具体的情况来选择合适的迭代方法,并且在迭代过程中需要考虑其收敛性、稳定性和计算效率等因素。
非线性方程求根——不动点迭代法
一、迭代法的基本思想
迭代法是一种逐次逼近的方法,用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。
例:求方程x 3-x -1=0 在x =1.5 附近的一个根。
解:将所给方程改写成3
1x x =+假设初值x 0=1.5是其根,代入得
3
3101 1.51 1.35721x x =+=+=
x 1≠x 0,再将x 1代入得
3
3211 1.357211 1.33086x x =+=+=x 2≠x 1,再将x 2代入得
3
3321 1.330861 1.32588x x =+=+=如此继续下去,结果如下:
k x k
k x k 01234 1.5
1.35721
1.33086
1.32588
1.324945678 1.324761.324731.324721.32472仅取六位数字,x 7与x 8相同,即认为x 8是方程的根。
x *≈x 8=1.32472
这种逐步校正的过程称为迭代过程。
这里用的公式称为迭代公式,即
311k k x x +=+k =0,1,2,……
若x *满足f (x*)=0,称x *为ϕ(x )的一个不动点。
将连续函数方程f (x )=0改写为等价形式:x=ϕ(x ),其中ϕ(x )也是连续函数。
1()k k x x ϕ+=(k =0,1,……)
不动点迭代法就是指以迭代格式
二、不动点迭代法
进行迭代求解的方法。
其中ϕ(x )称为迭代函数。
三、不动点迭代法的实现
——MATLAB程序function[root,n]=stablepoint_solver(phai,x0,tol) if(nargin==2)
tol=1.0e-5;
end
err=1;
root=x0;
n=0;
while(err>tol)
n=n+1; %迭代次数
r1=root;
root=feval(phai,r1); %计算函数值
err=abs(root-r1);
end
程序应用示例:
function testmain
% x^3-x-1=0
% =>x^3=1+x
% =>x=(1+x)^(1/3)
ph=inline(‘(1+x)^(1/3)’,’x’);
[root,n]=stablepoint_solver(ph,1)
运行结果:
root=1.3247
n=8
若对任意x 0∈[a , b ],由不动点迭代格式
lim *k k x x →∞
=则称迭代过程收敛,且x *=ϕ(x *)即f (x*)=0,x *为不动点。
四、不动点迭代法的收敛性
1()k k x x ϕ+=(k =0,1,……)
得迭代序列{x k },该序列有极限
迭代法并不总令人满意,如将前述方程x 3-x -1=0改写为另一等价
形式:1
3-=x x 13
1-=+k k x x 此时称迭代过程发散。
则有x 1=2.375,x 2=12.396,x 3=1904,
结果越来越大。
仍取初值x 0=1.5,
建迭代公式:
收敛阶定义:
设迭代过程x k+1=ϕ(x k ) 收敛于方程x =ϕ(x )的根x *,若迭代误差e k =x k –x*当k →∞时成立下列渐近关系式:
c e e r k k k =+∞→1lim (c 为常数,且c ≠0)
则称迭代过程是r 阶收敛的。
特别地,r =1时称线性收敛;
r =2时称平方收敛;r >1时称超线性收敛。
且r 越大,收敛越快。
定理2:设x *为x =ϕ(x )的不动点,若ϕ(x )满足:
–(1)ϕ(x )在x *附近是p 次连续可微的(p >1);
–(2)则迭代过程x k +1=ϕ(x k )在点x *邻近是p 阶收敛的。
0*)(,0*)(*)(*)()()1(≠===''='-x x x x p p ϕϕϕϕ 定理1:设x *为x =ϕ(x )的不动点,ϕ`(x )在x *的某邻域连续,且|ϕ`(x *)|<1,则不动点迭代法x k +1=ϕ(x k )局部收敛。
321-+=+k k k x x x k
k x x 31=+)3(4121--=+k k k x x x )3(211k
k k x x x +=+例032=-x 用不同方法求在x =2附近的根。
解:格式(1)
格式(2)格式(3)
格式(4)
取x
=2,对上述四种方法,计算三步所得结果如下:0
k x k(1) (2)(3)(4)
0x0 2 222
1 x13 1.5 1.75 1.75
2x292 1.73475 1.732143
3x3 87 1.5 1.732361 1.732051 注:x*=1.7320508……。