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

📄 mnewt.cpp

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

void usrfun(Vec_I_DP &x, Vec_O_DP &fvec, Mat_O_DP &fjac);

void NR::mnewt(const int ntrial, Vec_IO_DP &x, const DP tolx, const DP tolf)
{
	int k,i;
	DP errx,errf,d;

	int n=x.size();
	Vec_INT indx(n);
	Vec_DP p(n),fvec(n);
	Mat_DP fjac(n,n);
	for (k=0;k<ntrial;k++) {
		usrfun(x,fvec,fjac);
		errf=0.0;
		for (i=0;i<n;i++) errf += fabs(fvec[i]);
		if (errf <= tolf) return;
		for (i=0;i<n;i++) p[i] = -fvec[i];
		ludcmp(fjac,indx,d);
		lubksb(fjac,indx,p);
		errx=0.0;
		for (i=0;i<n;i++) {
			errx += fabs(p[i]);
			x[i] += p[i];
		}
		if (errx <= tolx) return;
	}
	return;
}

⌨️ 快捷键说明

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