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

📄 xdlinmin.cpp

📁 这是数学计算上常用的计算方法
💻 CPP
字号:
#include <iostream>
#include <iomanip>
#include <cmath>
#include "nr.h"
using namespace std;

// Driver for routine dlinmin


DP func(Vec_I_DP &x)
{
        int i;
        DP f=0.0;

        for (i=0;i<3;i++) f += (x[i]-1.0)*(x[i]-1.0);
        return f;
}

void dfunc(Vec_I_DP &x, Vec_O_DP &df)
{
        int i;

        for (i=0;i<3;i++) df[i]=2.0*(x[i]-1.0);
}

int main(void)
{
        const int NDIM=3;
        const DP PIO2=1.570796326794896619;
        int i,j;
        DP fret,sr2,x;
        Vec_DP p(NDIM),xi(NDIM);

        cout << endl << "Minimum of a 3-d quadratic centered" << endl;
        cout << "at (1.0,1.0,1.0). Minimum is found" << endl;
        cout << "along a series of radials." << endl << endl;
        cout << setw(9) << "x" << setw(12) << "y";
        cout << setw(12) << "z" << setw(14) << "minimum" << endl;
        cout << fixed << setprecision(6);
        for (i=0;i<=10;i++) {
          x=PIO2*i/10.0;
          sr2=sqrt(2.0);
          xi[0]=sr2*cos(x);
          xi[1]=sr2*sin(x);
          xi[2]=1.0;
          p[0]=p[1]=p[2]=0.0;
          NR::dlinmin(p,xi,fret,func,dfunc);
          for (j=0;j<3;j++) cout << setw(12) << p[j];
          cout << setw(12) << fret << endl;
        }
        return 0;
}

⌨️ 快捷键说明

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