Я разработал приведенный ниже код для поиска корней данного многочлена. Он отлично работает, но мне нужно адаптировать его, чтобы найти все корни, а не просто останавливаться, когда он сходится. Как мне это сделать? Я думал о создании внешнего цикла do для значений x, но не уверен, что это правильный подход. Любая помощь приветствуется, заранее спасибо.
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
+
, поэтому вы можете попробовать выполнить поиск, например math.stackexchange.com/questions/tagged/newton. -raphson+roots или math.stackexchange.com/questions/tagged/polynomials+roots , а то и все три, другие теги и т.д. - person tevemadar   schedule 31.03.2019df
по большому количеству точек, а начинать метод Ньютона-Рафсона с гораздо меньшего количества точек! Как сказано в ответе ниже, метод Ньютона-Рафсона является локальным методом. С разными начальными точками вы получите разный корень. Область сходимости к любому заданному корню может быть очень непредсказуемой en.wikipedia.org/wiki/Newton_fractal - person Vladimir F   schedule 01.04.2019