⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linreg.f

📁 Fortran的数学物理方程数值算法源程序。这是"Numerical Methods for Physics"第二版的Fortran源程序
💻 F
字号:
      subroutine linreg( x, y, sigma, N, a_fit, sig_a, yy, chisqr )      integer*4 N      real*8 x(N), y(N), sigma(N), a_fit(2), sig_a(2)      real*8 yy(N), chisqr! Function to perform linear regression (fit a line)! Inputs!   x       Independent variable!   y       Dependent variable!   sigma   Estimated error in y!   N       Number of data points! Outputs!   a_fit   Fit parameters; a(1) is intercept, a(2) is slope!   sig_a   Estimated error in the parameters a()!   yy      Curve fit to the data!   chisqr  Chi squared statistic      integer*4 i      real*8 sigmaTerm, s, sx, sy, sxy, sxx, denom, delta      !* Evaluate various sigma sums      s = 0.0      sx = 0.0      sy = 0.0      sxy = 0.0      sxx = 0.0      do i=1,N        sigmaTerm = 1.0/sigma(i)**2        s = s + sigmaTerm        sx = sx + x(i) * sigmaTerm        sy = sy + y(i) * sigmaTerm        sxy = sxy + x(i) * y(i) * sigmaTerm        sxx = sxx + x(i) * x(i) * sigmaTerm      enddo      denom = s*sxx - sx*sx      !* Compute intercept a_fit(1) and slope a_fit(2)      a_fit(1) = (sxx*sy - sx*sxy)/denom      a_fit(2) = (s*sxy - sx*sy)/denom      !* Compute error bars for intercept and slope      sig_a(1) = sqrt(sxx/denom)      sig_a(2) = sqrt(s/denom)      !* Evaluate curve fit at each data point and compute Chi^2      chisqr = 0.0      do i=1,N        yy(i) = a_fit(1)+a_fit(2)*x(i)     ! Curve fit to the data        delta = (y(i)-yy(i))/sigma(i)        chisqr = chisqr + delta**2         ! Chi square      enddo      return      end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -