hypser.cpp

来自「C++数值算法原书代码」· C++ 代码 · 共 31 行

CPP
31
字号
#include <complex>
#include "nr.h"
using namespace std;

void NR::hypser(const complex<DP> &a, const complex<DP> &b,
	const complex<DP> &c, const complex<DP> &z,
	complex<DP> &series, complex<DP> &deriv)
{
	int n;
	complex<DP> aa,bb,cc,fac,temp;

	deriv=0.0;
	fac=1.0;
	temp=fac;
	aa=a;
	bb=b;
	cc=c;
	for (n=1;n<=1000;n++) {
		fac *= ((aa*bb)/cc);
		deriv += fac;
		fac *= ((1.0/n)*z);
		series=temp+fac;
		if (series == temp) return;
		temp=series;
		aa += 1.0;
		bb += 1.0;
		cc += 1.0;
	}
	nrerror("convergence failure in hypser");
}

⌨️ 快捷键说明

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