我开发了以下代码来查找给定多项式的根。它工作正常,但我需要对其进行调整以找到所有根,而不是在收敛时停止。我该怎么做呢?我曾考虑过为x的值创建一个外部do循环,但是我不确定这是否是正确的方法。感谢您的任何帮助。
PROGRAM nr
integer :: i
real :: x, f, df
write(*,*) "x=?"
read (*,*) x
write (*,*) '# Initial value: x=',x
do i=1,100
f= x**4 - 26*(x**3) + 131*(x**2) - 226*x + 120
df = 4*(x**3) - 3.0*26*(x**2) + 2.0*131*x - 226
write (*,*) i,x,f,df
x = x-f/df
end do
write (*,*) '#x = ',x
END PROGRAM
答案 0 :(得分:3)
找到多项式P的所有根的可能算法包括:
有一些细微之处:
但是,如果您只对这个特定的多项式感兴趣,我建议您先看一下问题,因为它比一般情况下要容易得多:WolframAlpha。 在这里,从X0的整数值开始将很好地工作...