//高斯积分程序,高斯积分具有计算速度快,精度高,能计算反常积分等优点
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
static const double gp3[3]={-0.77459666924148338, 0.0 , 0.77459666924148338};//高斯点
static const double gc3[3]={ 0.55555555555555556, 0.88888888888888889, 0.55555555555555556};//系数
//三点Guass积分
double Guass_Integral(double x1,double x2,double (*fun)(double),int n)
{
int i;
double dx,k,l,r=0.0;
dx=(x2-x1)/n;
k=dx/2;
for(i=0;i<n;i++)
{
l=x1+(i+0.5)*dx;
r+=gc3[0]*fun(k*gp3[0]+l)+gc3[1]*fun(k*gp3[1]+l)+gc3[2]*fun(k*gp3[2]+l);
}
return r*k;
}
double Guass_Integral(double u1,double u2,double v1,double v2,void (*fun)(double,double,double *,double *,double *),int m,int n)
{
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
static const double gp3[3]={-0.77459666924148338, 0.0 , 0.77459666924148338};//高斯点
static const double gc3[3]={ 0.55555555555555556, 0.88888888888888889, 0.55555555555555556};//系数
//三点Guass积分
double Guass_Integral(double x1,double x2,double (*fun)(double),int n)
{
int i;
double dx,k,l,r=0.0;
dx=(x2-x1)/n;
k=dx/2;
for(i=0;i<n;i++)
{
l=x1+(i+0.5)*dx;
r+=gc3[0]*fun(k*gp3[0]+l)+gc3[1]*fun(k*gp3[1]+l)+gc3[2]*fun(k*gp3[2]+l);
}
return r*k;
}
double Guass_Integral(double u1,double u2,double v1,double v2,void (*fun)(double,double,double *,double *,double *),int m,int n)
{