一、迭代法 !h7:rv/
TsoxS/MI"
迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行: c|9g=DjK
(1) 选一个方程的近似根,赋给变量x0; a]V8F&)g#
(2) 将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0; BV>9U5
(3) 当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。 l:eC+[_;>
若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用C程序的形式表示为: ~zac.:a8
【算法】迭代法求方程的根 i*mU<:t
{ x0=初始近似根; _[-MyU s
do { 8\'tfHL
x1=x0; hOZTD0
x0=g(x1); /*按特定的方程计算新的近似根*/ $A{$$8P
} while ( fabs(x0-x1)>Epsilon); f:~G)
printf(“方程的近似根是%f\n”,x0); /N*<Fq7w~
} Nh^I{%.x
迭代算法也常用于求方程组的根,令 UV}:3c6 ZX
X=(x0,x1,…,xn-1) :M{
)&{D
设方程组为: )z74,n7-
xi=gi(X) (I=0,1,…,n-1) 4vG-d)"M2
则求方程组根的迭代算法可描述如下: O4oN)
【算法】迭代法求方程组的根 r^C(|Vx
{ for (i=0;i<n;i++) iZdl0;16[
x=初始近似根; 0R\.G1f%
do { 2INpo
for (i=0;i<n;i++) YQ?hAAJ
y=x; 2(3Q#3V
for (i=0;i<n;i++) YB 7A5
x=gi(X); f~P YK
for (delta=0.0,i=0;i<n;i++) Khi6z&