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

  • Context: Fortran 
  • Thread starter Thread starter moebot
  • Start date Start date
  • Tags Tags
    Fortran Method
Click For Summary

Discussion Overview

The discussion revolves around implementing Bairstow's method and the Newton-Raphson method in Fortran. Participants are addressing issues related to code execution and debugging, particularly focusing on the subroutine for Newton-Raphson.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Homework-related

Main Points Raised

  • One participant expresses difficulty in executing their Fortran code for Bairstow's method and seeks help.
  • Another participant suggests running an example problem with known values to identify where discrepancies occur.
  • Some participants point out extra spaces in the code, with one arguing that it may not significantly affect functionality.
  • A request is made for comments in the code to clarify the purpose of the equations and the structure of the code.
  • A later reply humorously notes the passage of time since the original post and expresses hope that the original poster has resolved their issue.
  • In a follow-up, the original poster confirms that they have successfully gotten the code to work.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the impact of code formatting issues, as some believe it matters while others do not. The discussion remains unresolved regarding the specific errors in the original code, as no definitive solutions are provided.

Contextual Notes

There are mentions of potential issues with code formatting and the need for clarity in the code's purpose, but no specific errors are identified or corrected.

Who May Find This Useful

Individuals interested in numerical methods, Fortran programming, or debugging techniques may find this discussion relevant.

moebot
Messages
5
Reaction score
2
this is bairstow's method , i need to put Newton-raphson in a subroutine and i don't know what's wrong i keep getting the wrong answer when i execute please help

Code:
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:
Technology news on Phys.org
Have you run an example problem with known intermediate values and checked them? If so, where do they start to disagree?
 
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.
 
magoo said:
You have extra spaces in the following code:
I don't believe this makes any difference whatsoever.
 
  • Like
Likes   Reactions: DrClaude
@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
?
 
I hope that after more than three months, moebot has gotten his code to work...
 
jtbell said:
I hope that after more than three months, moebot has gotten his code to work...
hahaha, i am doing my second degree now, and i just remembered this, thanks a lot for the help.

p.s i got the code to work ! haha
 
  • Like
  • Haha
Likes   Reactions: jtbell and Tom.G

Similar threads

  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 23 ·
Replies
23
Views
3K
  • · Replies 4 ·
Replies
4
Views
3K
Replies
9
Views
3K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K