# I need help in Fortran please -- Bairstow's method & Newton-Raphson

1. Nov 26, 2016

### moebot

this is bairstow's method , i need to put newton-raphson in a subroutine and i don't know whats wrong i keep getting the wrong answer when i execute please help

Code (Text):

parameter (np=100)
parameter (eps=1e-3)
real a(np) ,b(np),c(np)
real r ,s ,ri,si
integer n,i

write(*,*)'n,r,s'
read(*,*)n,r,s

do i=n+1,1,-1
write(*,*)'a(i)'
read(*,*) a(i)
end do

10 ri=r
si=s
b(n+1)=a(n+1)
b(n)=a(n)+r*b(n+1)
do i=n-1,1,-1
b(i)=a(i)+r*b(i+1)+s*b(i+2)
end do

c(n+1)=b(n+1)
c(n)=b(n)+r*c(n+1)
do i=n-1,1,-1
c(i)=b(i)+r*c(i+1)+s*c(i+2)
end do

do i=n+1,1,-1
write(*,*) i,a(i),b(i),c(i)
end do

write(*,*)

d=c(3)*c(3)-c(2)*c(4)
r=r-(1./d)*(c(3)*b(2)-c(4)*b(1))
s=s-(1./d)*(-c(2)*b(2)+c(3)*b(1))

if(sqrt(ri**2-r**2).ge.eps.or.sqrt(si**2-s**2).ge.eps)    goto 10
write(*,*) r,s

end

thanks in advance :)

Last edited by a moderator: Nov 26, 2016
2. Nov 26, 2016

### FactChecker

Have you run an example problem with known intermediate values and checked them? If so, where do they start to disagree?

3. Jan 10, 2017

### magoo

You have extra spaces in the following code:

real a(np) ,b(np),c(np)
real r ,s ,ri,si

I haven't used Fortran in many years, but I would make sure the unnecessary spaces are deleted and that you have spaces after the commas.

4. Jan 11, 2017

### Staff: Mentor

I don't believe this makes any difference whatsoever.

5. Mar 8, 2017

### aphirst

@moebot Are you able to provide some comments to your code, such as
• What the equation is, whose root(s) you're trying to find
• What you are intending each section of code to do
• Why you're writing in F77 (fixed) style with GOTOs instead of loops
?

6. Mar 8, 2017

### Staff: Mentor

I hope that after more than three months, moebot has gotten his code to work...

Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted