用fortran程序编写的数值计算实验报告
值更接近方程根时,迭代次数越少。
2. 在实验中,都是选取的区间左端值作为初次迭代值,而没有用到右端,应该设置左右端值作为迭代初值,比较它们的迭代次数,这样可以得到更少的迭代次数。
3. 在编写代码过程中,有几点疑惑,左右两端的导数是否会影响迭代次数,也就是选取哪个端点值迭代的问题。
4. 怎么样求出方程所有的根,在根的附近,得到解后程序就结束运行,如何将方程所有的根找出。
5. 怎么进一步加速迭代将是牛顿法进一步需要改进的问题。
6. 迭代过程中,导数值比较小,会导致误差比较大,如何规避。
附:
二分法程序
program erfenfa
implicit none
real::a =1.0000
real ::b=1.5000
real, parameter :: k=0.0050
real x, y1,f, y2
write(*,*)"a=, b="
read(*,*) a , b
do while (b-a>k)
y1=a*a*a-a-1
x=(a+b)/2
f=x*x*x-x-1
y2=f
if(y1*y2>0) then
a=x
else
b=x
end if
write(*,*) x , y2