23.10.2014 Views

Numerical Analysis Programs Using Fortran 90 - University of ...

Numerical Analysis Programs Using Fortran 90 - University of ...

Numerical Analysis Programs Using Fortran 90 - University of ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Problem:<br />

Write a program to determine the parameters A & B so that<br />

1<br />

f ( x)<br />

= , fits the following data in least squares sense.<br />

A x + B<br />

( ) 2<br />

X 0.5 2 3.5 4.1 5 6.2 7.5 9.2<br />

y 3.3 2 1.4 1.2 1 0.8 0.64 0.5<br />

program List_Square_Fitting<br />

dimension x(20),y(20),f(20)<br />

n=8<br />

data (x(i), i=1,8)/.5,2,3.5,4.1,5,6.2,7.5,9.2/<br />

data (y(i), i=1,8)/3.3,2,1.4,1.2,1,.8,.64,.5/<br />

sx=0; sxx=0;sy=0;sxy=0<br />

do i=1,n<br />

sx=sx+x(i)<br />

sy=sy+(y(i))**(-.5)<br />

sxx=sxx+x(i)**2<br />

sxy=sxy+x(i)*(y(i))**(-.5)<br />

enddo<br />

print *,'sx=',sx<br />

print *,'sxx=',sxx<br />

print *,'sy=',sy<br />

print *,'sxy=',sxy<br />

d=n*sxx-sx**2<br />

a1=(sxx*sy-sx*sxy)/d<br />

a2=(n*sxy-sx*sy)/d<br />

a=a2; b=a1<br />

print*,'A=',a<br />

print*,'B=',b<br />

s=0<br />

do i=1,n<br />

f(i)=1/(a*x(i)+b)**2<br />

s=s+(y(i)-f(i))**2<br />

enddo<br />

print*,'Standerd Deviation=',s<br />

end<br />

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br />

A= 9.919496 E-02<br />

B= 5.035566 E-01<br />

S= 2.275830 E-03<br />

32

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!