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

📄 xsvdfit.cpp

📁 这是C++数值算法(第二版)的源代码,其中包含了目前一些比较常用的数值计算的算法.
💻 CPP
字号:
#include <iostream>
#include <iomanip>
#include <cmath>
#include "nr.h"
using namespace std;

// Driver for routine svdfit

int main(void)
{
        const int NPT=100,NPOL=5;
        const DP SPREAD=0.002;
        int i,idum=(-911);
        DP chisq;
        Vec_DP x(NPT),y(NPT),sig(NPT),a(NPOL),w(NPOL);
        Mat_DP cvm(NPOL,NPOL),u(NPT,NPOL),v(NPOL,NPOL);

        cout << fixed << setprecision(6);
        for (i=0;i<NPT;i++) {
          x[i]=0.02*(i+1);
          y[i]=1.0+x[i]*(2.0+x[i]*(3.0+x[i]*(4.0+x[i]*5.0)));
          y[i] *= (1.0+SPREAD*NR::gasdev(idum));
          sig[i]=y[i]*SPREAD;
        }
        NR::svdfit(x,y,sig,a,u,v,w,chisq,NR::fpoly);
        NR::svdvar(v,w,cvm);
        cout << endl << "polynomial fit:" << endl << endl;
        for (i=0;i<NPOL;i++) {
          cout << setw(12) << a[i] << "  +-";
          cout << setw(11) << sqrt(cvm[i][i]) << endl;
        }
        cout << endl << "Chi-squared " << setw(12) << chisq << endl;
        NR::svdfit(x,y,sig,a,u,v,w,chisq,NR::fleg);
        NR::svdvar(v,w,cvm);
        cout << endl << "Legendre polynomial fit:" << endl << endl;
        for (i=0;i<NPOL;i++) {
          cout << setw(12) << a[i] << "  +-";
          cout << setw(11) << sqrt(cvm[i][i]) << endl;
        }
        cout << endl << "Chi-squared " << setw(12) << chisq << endl;
        return 0;
}

⌨️ 快捷键说明

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