Tangentna metoda iskanja ničel

 

Naloga:
Napišite program, ki poišče ničle funkcije z NEwtonovo metodo. f(x)=0exp(2*x)-x-6, odvod je f'(x)=2*exp(2*x)-1.

program iteracija
implicit none
real(8) :: x,f,df
integer :: i
write(*,*) 'vnesi zacetni pribliezek, x0=?'
read(*,*)x
i=0 !stevilo korakov iteracije
write(*,'(i4,2f15.10)')i,x,f(x)
 do while (abs(f(x))>1e-8)  !1e-8 je natancnost na katero bomo dolocili nicle
  x=x-f(x)/df(x)
  i=i+1
  write(*,'(i4,2f15.10)')i,x,f(x)
 enddo
 write(*,*)'nicla je x=',x
end program iteracija

function f(x)
implicit none
real(8)::x,f
! tu napisemo funkcijo, katere niclo hocemo poiskati
f=exp(2*x)-x-6
end function f

function df(x)
implicit none
real(8)::x,df
! tu napisemo odvod f'(x) funkcije f(x)
df=2*exp(2*x)-1
end function df

Tekst sedaj shranimo kot datoteko newton.f90 in prevedemo.

Tu je sedaj še print screen postopka prevajanja. V kolikor vam kakšna podrobnost ni jasna, mi sporočite.



Nazaj na osnovno stran za numerične metode za kemike.

 

Fakulteta za kemijo in kemijsko tehnologijo

Katedra za fizikalno kemijo

Univerza v Ljubljani

Večna pot 113, K3.009

1000 Ljubljana

Slovenija

tel: +386 1 479 8540

e-pošta: tomaz pika urbic at fkkt.uni-lj.si

Govorilne ure so po dogovoru.

Prešernove nagrade