! From: "COMPUTATIONAL PHYSICS, 2nd Ed" ! by RH Landau, MJ Paez, and CC Bordeianu ! Copyright Wiley - VCH, 2007. ! Electronic Materials copyright: R Landau, Oregon State Univ, 2007; ! MJ Paez, Univ Antioquia, 2007; and CC Bordeianu, Univ Bucharest, 2007. ! Supported by the US National Science Foundation ! ! fit.f95: Least square fit Program fit Implicit none Integer :: i Real*8 :: s, sx, sy, sxx, sxy, delta, inter, slope Real*8 :: x(12), y(12), d(12) Data y /328, 187, 821, 78, 88, 6, 5, 82, 2, 0.1, 84, 1/ ! y values Do i = 1, 12 ! values x x(i) = i*10 - 5 End Do ! input delta y Do i = 1, 12 d(i) = 1. End Do s = 0.0; sx = 0.; sy = 0. sxx = 0. sxy = 0. ! calculate sums Do i = 1, 12 s = s + 1 / (d(i)*d(i)) sx = sx + x(i) / (d(i)*d(i)) sy = sy + y(i) / (d(i)*d(i)) sxx = sxx + x(i)*x(i) / (d(i)*d(i)) sxy = sxy + x(i)*y(i) / (d(i)*d(i)) End Do ! calculate coefficients delta = s*sxx - sx*sx slope = (s*sxy - sx*sy) / delta inter = (sxx*sy - sx*sxy) / delta write(*, *) 'intercept = ', inter write(*, *) 'slope = ', slope write(*, *) 'correlation = ', - sx/sqrt(sxx*s) Stop 'fit' End Program fit