1.要求
给定非线性方程
分别编写 Newton 迭代 (通常也称 Newton-Raphson 迭代)
和 Damped-Newton (DN) 迭代
(其中阻尼参数 τ : 0 < τ < 1)
的程序. 取阻尼参数τ = 0.5, 两种迭代方法的初始点 x0 依次取值为 −4, −3, −2, −1, 0, 1, 2, 3, 5, 7, 9;停止条件为 |f(xk)| < 10−8 或 迭代步数 k > 104 (此时, 可认为迭代失败)
求迭代步数和数值解
2.Fortran代码
real*8 x,y
integer i,j,a,b
deta=0.00000001
do a=-4,9
i=0
x=a
do while (i<=10**4)
x=x-(atan(x)+sin(x)-1.0)/(1.0/(1.0+x**2.0)+cos(x))
i=i+1
if (abs(atan(x)+sin(x)-1.0)<0.00000001) exit
end do
print*,x,i
end do
print*," "
do b=-4,9
j=0
y=b
do while (j<=10**4)
y=y-0.5*(atan(y)+sin(y)-1.0)/(1.0/(1.0+y**2.0)+cos(y))
j=j+1
if (abs(atan(y)+sin(y)-1.0)<0.00000001) exit
end do
print*,y,j
end do
end
比较可惜的是我还没有学Fortran可不可以可视化,只能输出数值解。