求非线性方程一个实根的埃特金迭代法
[功能]
用埃特金(Aitken)迭代法求非线性方程x= q(x)的一个实根。
[方法说明]
设非线性方程为
x= φ(x)
取初值工o。埃特金迭代法迭代- - 次的过程如下。
预报
u= q(xn)
再预报
V= φ(u)
校正
(v- u)2
In+1 = V-
v一2u+ xn
结束迭代过程的条件为
| v-ul<e
此时V即为非线性方程的一个实根。其中,e为预先给定的精度要求。
158 常用算法程序集(C++描述) (第6版)
埃特金迭代法具有良好的收敛性。一方面,埃特金迭代法的收敛速度比较快;另一方.
面,一个简单迭代法不收敛的迭代公式经埃特金迭代法处理后–般就会收敛。
代码如下
eps=5e-8;%割线法
delta=1e-10;
N=100;%迭代次数上限
k=0;x0=0;x1=1;%给定两个点,分部在根的两侧
tic
while(1)
x2=x1-func2_2(x1)(x1-x0)/(func2_2(x1)-func2_2(x0));
k=k+1
if(k>N||abs(x2)<eps)
disp(‘Newton method failed’)
break
end
if abs(x2)<1
d=x2-x1;
else
d=(x2-x1)/x2;
end
x0=x1;
x1=x2
y1=func2_2(x1)
if(abs(d)<eps||abs(
非线性方程与方程组的求解
最新推荐文章于 2024-06-21 17:14:10 发布