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

📄 integral.h

📁 内容包含了《科学与工程数值计算算法》一书中全部的源代码。使用时只需将相应的目录拷贝到您的硬盘中。
💻 H
字号:
//////////////////////////////////////////////////////////////////////
// Integral.h
//
// 操作数值积分的类 CIntegral 的声明接口
//
// 周长发编制, 2002/8
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_INTEGRAL_H__21478079_DA0B_4D58_8565_E197C022F2FA__INCLUDED_)
#define AFX_INTEGRAL_H__21478079_DA0B_4D58_8565_E197C022F2FA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <math.h>

class CIntegral  
{
public:
	//
	// 构造与析构
	//

	CIntegral();
	virtual ~CIntegral();

	//
	// 虚函数:计算积分函数值,必须在派生类中覆盖该函数
	//

	virtual double Func(double x)
	{
		return 0.0;
	}

	//
	// 数值积分求解算法
	//

	// 变步长梯形求积法
	double GetValueTrapezia(double a, double b, double eps = 0.000001);
	// 变步长辛卜生求积法
	double GetValueSimpson(double a, double b, double eps = 0.000001);
	// 自适应梯形求积法
	double GetValueATrapezia(double a, double b, double d, double eps = 0.000001);
	// 龙贝格求积法
	double GetValueRomberg(double a, double b, double eps = 0.000001);
	// 计算一维积分的连分式法
	double GetValuePq(double a, double b, double eps = 0.000001);
	// 高振荡函数求积法
	double GetValuePart(double a, double b, int m, int n, double fa[], double fb[], double s[]);
	// 勒让德-高斯求积法
	double GetValueLegdGauss(double a, double b, double eps = 0.000001);
	// 拉盖尔-高斯求积法
	double GetValueLgreGauss();
	// 埃尔米特-高斯求积法
	double GetValueHermiteGauss();

	//
	// 内部函数
	//
private:
	void ppp(double x0, double x1, double h, double f0, double f1, double t0, double eps, double d, double t[]);

};

#endif // !defined(AFX_INTEGRAL_H__21478079_DA0B_4D58_8565_E197C022F2FA__INCLUDED_)

⌨️ 快捷键说明

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