integralgaussmd.cpp

来自「是《计算机常用数值计算算法与程序 C++版》一书的配套C++程序源代码文件」· C++ 代码 · 共 56 行

CPP
56
字号
//IntegralGaussMD.cpp	 多重高斯法求积

#include <iostream>		//输入输出流头文件
#include "Integral.h"	//积分头文件
using namespace std;	//名字空间

void main(void)
{
	long double js[3]={4,4,4}; 

	valarray<long double> vjs(js, 3);

	long double dValue = IntegralGaussMD(vjs);
	
	cout << "IntegralGaussMD()" << endl << endl;

	cout << "dValue = " << dValue << endl << endl;
}

//计算各层积分上、下限值
template <class _Ty>
void FunctionBoundaryGMD(int j, valarray<_Ty>& x, valarray<_Ty>& y)
{
	  switch(j)
      { 
	    case 0:	{
					y[0] = 0.0;
					y[1] = 1.0;
					break;
				}
        case 1: {
					y[0] = 0.0;
					y[1] = sqrt(1.0-x[0]*x[0]);
					break;
				}
        case 2: {
					_Ty q = x[0]*x[0]+x[1]*x[1];
					y[0] = sqrt(q);
					y[1] = sqrt(2.0-q);
					break;
                }
	  }
}

//计算被积函数值
template <class _Ty>
_Ty FunctionValueGMD(valarray<_Ty>& x)
{
	_Ty dValue;
	
	dValue = x[2] * x[2];

    return(dValue);
}

⌨️ 快捷键说明

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