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

📄 linmin.cpp

📁 实现共轭梯度法的实例
💻 CPP
字号:
#include "stdafx.h"
#include "Mnbrak.h"
#include "F1dim.h"
#include "Brent.h"
#define TOL 2.0e-4

int ncom=0;	/* defining declarations */
double *pcom=0,*xicom=0,(*nrfunc)(double[]);

void linmin(double p[],double xi[],int n,\
			double *fret,double (*func)(double[]))
{
	int j;
	double xx,xmin,fx,fb,fa,bx,ax;
	ncom=n;
	pcom=new double[n+1];
	xicom=new double[n+1];
	nrfunc=func;
	for (j=1;j<=n;j++) {
		pcom[j]=p[j];
		xicom[j]=xi[j];
	}
	ax=0.0;
	xx=1.0;
	bx=2.0;
	mnbrak(&ax,&xx,&bx,&fa,&fx,&fb,f1dim);
	*fret=brent(ax,xx,bx,f1dim,TOL,&xmin);
	for (j=1;j<=n;j++) {
		xi[j] *= xmin;
		p[j] += xi[j];
	}
	delete xicom,pcom;
}

#undef TOL

⌨️ 快捷键说明

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