//高斯积分程序,高斯积分具有计算速度快,精度高,能计算反常积分等优点
#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_In
#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_In

这是一个C语言实现的高斯积分程序,适用于一维和二维的积分计算。程序利用三点高斯公式,通过调用用户定义的函数进行数值积分,具有高效、精确的特点。示例中展示了如何对自定义函数进行积分验证。
最低0.47元/天 解锁文章
2163

被折叠的 条评论
为什么被折叠?



