urbic.com logotip

Naloga:

Napišite program, ki tabelira funkcijo sin(x) z željenem korakom, zapiše rezultate na dve decimalki in potem numerično izračuna prvi in drugi odvod.

program odvodi
implicit none
real :: x,h,y,x1,y1,dy,f,x2,y2,dy2
integer::i,n
write(*,*) 'vnesi korak tebeliranja funkcije, h=?'
read(*,*)h
!tabeliranje funkcije na dve decimalki
i=1
x=-10.
open(111,file='tabela2.txt')
open(112,file='tabela2podatki.txt')
!v to datoteko napisemo podatke o stevilu tock in o koraku
do while (x.lt.10)
 write(111,'(2f10.2)')x,f(x)
 x=x+h
 i=i+1
enddo
close(111)
! i je za ena vec kot je podatkov v tabeli
write(112,*)i-1,h
close(112)
!racunanje prvega in drugega odvoda, uporabimo formule za drugi red 
open(15,file='tabela2.txt')
open(16,file='tabela2podatki.txt')
open(17,file='odvodi.txt')
read(16,*)n,h
close(16)
read(15,*)x,y
read(15,*)x1,y1
do i=3,n
 read(15,*)x2,y2
! odvod v prvi tocki 
 if (i==3) then
  dy=(-3*y+4*y1-y2)/(2*h)
  write(17,*)x,dy
 endif
 dy=(y2-y)/(2*h)
 dy2=(y2+y-2*y1)/h**2
 write(17,*)x1,dy,dy2
!odvod v koncni tocki
 if (i==n) then
  dy=-(-3*y+4*y1-y2)/(2*h)
  write(17,*)x2,dy
 endif
 x=x1
 y=y1
 x1=x2
 y1=y2
enddo
close(15)
close(17) 
end program odvodi

function f(x)
implicit none
real::x,f
! tu napisemo funkcijo, katero bomo tabelirali
f=sin(x)
end function f

Tekst sedaj shranimo kot datoteko odvodi2.f90 in prevedemo.

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

Tu so se txt datoteke za korak 0.1.

tabela2.txt

odvodi.txt

Nazaj na osnovno stran za predmet Uporaba numeričnih metod v kemiji.