Analiza podatkov, višine

 

Naloga:
Napišite program, ki prebere podatke o višinah v datoteki (visine.txt) in izračuna povprečno vrednost in standarden odmik ter rezultat zapišite z absolutno in relativno napako. Program naj poišče še največjo in najmanjšo meritev in potem vse meritve razdelite na razrede in podatke o razredih shranite v datoteko z imenom hist.txt ter z gnuplotom narišite histogram.

Program je narejen, brez da mu povemo koliko podatkov ima v datoteki.

program stat
implicit none
real :: x,y,vx,vx2,s,d,x2,xmin,xmax
integer :: i,i1,i2,i3,i4,i5,i6,i7,i8,OK
open(101,file='visine.txt')
read(101,*)
vx=0
vx2=0
i1=0
i2=0
i3=0
i4=0
i5=0
i6=0
i7=0
i8=0
i=0
OK=0
do while (OK==0)
 read(101,*,iostat=OK)y,x
 if (OK==0) then
 i=i+1
 if (i==1) then
  xmin=x
  xmax=x
 else
  if (x.gt.xmax) xmax=x
  if (x.lt.xmin) xmin=x
 endif
 if (x<145) then
  i1=i1+1
 else if (x<155) then
  i2=i2+1
 else if (x<165) then
  i3=i3+1
 else if (x<175) then
  i4=i4+1
 else if (x<185) then
  i5=i5+1
 else if (x<195) then
  i6=i6+1
 else if (x<205) then
  i7=i7+1
 else
  i8=i8+1
 endif
 vx=vx+x
 vx2=vx2+x**2
 endif
enddo
 vx=vx/real(i) !povprecje
 vx2=vx2/real(i) !povprecje kvadrata
 s=sqrt(vx2-vx**2)  !absolutna napaka
 d=s/vx  !relativna napaka
close(101)
write(*,*)'Imamo ',i,' meritev.'
write(*,*)'Povprecje je ', vx
write(*,*)'Absolutna napaka je ',s
write(*,*)'Relativna napaka je ',d
write(*,*)'Najvecja visina je ',xmax
write(*,*)'Najmanjsa visina je ',xmin
write(*,*)'Z absolutno napako: ',vx,achar(241),s
write(*,*)'Z relativno napako: ',vx,'(1',achar(241),d,')'
write(*,*)'Histogram izracunan.'
open(102,file='hist1.txt')
write(102,*)135,145,i1
write(102,*)145,155,i2
write(102,*)155,165,i3
write(102,*)165,175,i4
write(102,*)175,185,i5
write(102,*)185,195,i6
write(102,*)195,205,i7
write(102,*)205,215,i8
close(102)
end program stat

Tekst sedaj shranimo kot datoteko stat1.f90 in prevedemo.

Tu je sedaj še print screen postopka prevajanja, postopka risanja z gnuplotom in narisana grafa v pdf datoteki. V kolikor vam kakšna podrobnost ni jasna, mi sporočite. Histogram je narisan v naslednji JPG datoteki. Ter podatki za histogram v hist1.txt





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