Programma fortran zeri di una funzione
Ciao a tutti, scusate non so se questo sia il forum giusto per postare questa cosa ma avrei un problema dovrei consegnare alla mia professoressa di programmazione un programma fortran 90/95 per il calcolo degli zeri di una funzione generica. Ho provato a fare un programma, ma mi da un loop infinito vorrei chiedere consiglio a voi. Questo è il programma da me fatto :
program bisect
logical :: segnomeno
real :: x0=1.0,x1=2.0,x,EPS=1.0E-10
segnomeno = cos(x0) < 0.0
if ((cos(x1) < 0.0) .eqv. segnomeno) then
WRITE(*,*) ' Non dobbiamo operare '
else
do
x = (x0 + x1) / 2.0
if ((cos(x) < 0.0) .eqv. segnomeno) then
x0 = x
else
x1 = x
end if
write(*,*) abs(x0 - x1)
if (abs(x0 - x1) < EPS) then
write(*,*) ' Operazione eseguita '
end if
end do
write(*,*) x
end if
end program bisect
Cerca questa parola in...
Wiki Matematicamente
Wikipedia (it)
Sito Matematicamente
Google
valery91
Starting Member
Messaggi: 8
Iscritto il: 19/08/2011, 11:40
program bisect
logical :: segnomeno
real :: x0=1.0,x1=2.0,x,EPS=1.0E-10
segnomeno = cos(x0) < 0.0
if ((cos(x1) < 0.0) .eqv. segnomeno) then
WRITE(*,*) ' Non dobbiamo operare '
else
do
x = (x0 + x1) / 2.0
if ((cos(x) < 0.0) .eqv. segnomeno) then
x0 = x
else
x1 = x
end if
write(*,*) abs(x0 - x1)
if (abs(x0 - x1) < EPS) then
write(*,*) ' Operazione eseguita '
end if
end do
write(*,*) x
end if
end program bisect
Cerca questa parola in...
Wiki Matematicamente
Wikipedia (it)
Sito Matematicamente
valery91
Starting Member
Messaggi: 8
Iscritto il: 19/08/2011, 11:40
Risposte
Salve valer91,
è lo stesso di questo:
programma-fortran-zeri-di-una-funzione-t83670.html
Spero che tu sappia che il multi posting è vietato dal regolamento.
Cordiali saluti
"valery91":
Ciao a tutti, scusate non so se questo sia il forum giusto per postare questa cosa ma avrei un problema dovrei consegnare alla mia professoressa di programmazione un programma fortran 90/95 per il calcolo degli zeri di una funzione generica. Ho provato a fare un programma, ma mi da un loop infinito vorrei chiedere consiglio a voi. Questo è il programma da me fatto :
program bisect
logical :: segnomeno
real :: x0=1.0,x1=2.0,x,EPS=1.0E-10
segnomeno = cos(x0) < 0.0
if ((cos(x1) < 0.0) .eqv. segnomeno) then
WRITE(*,*) ' Non dobbiamo operare '
else
do
x = (x0 + x1) / 2.0
if ((cos(x) < 0.0) .eqv. segnomeno) then
x0 = x
else
x1 = x
end if
write(*,*) abs(x0 - x1)
if (abs(x0 - x1) < EPS) then
write(*,*) ' Operazione eseguita '
end if
end do
write(*,*) x
end if
end program bisect
Cerca questa parola in...
Wiki Matematicamente
Wikipedia (it)
Sito Matematicamente
valery91
Starting Member
Messaggi: 8
Iscritto il: 19/08/2011, 11:40
è lo stesso di questo:
programma-fortran-zeri-di-una-funzione-t83670.html
Spero che tu sappia che il multi posting è vietato dal regolamento.
Cordiali saluti