• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C/C++
  • 标签: c语言  积分  高精度  

资源简介

参考网上的积分程序写的C语言求积分函数,支持自定义被积函数 1、可以精确到小数点后8到10位左右 2、因为是利用高斯积分表,所以计算速度也很快 3、有详细的文字说明,稍作更改就能化为己用!

资源截图

代码片段和文件信息

#include 
#include 
#define N 8   //N可自定义,越大对应最后的结果精度越高,这里最大只能取8,可精确到小数点后面8位以上,可以参考matlab的计算结果(matlab积分精度特别高)
double gass_integral(double (*)(double)doubledoubleint);//高斯求积分函数的声明

void main() 
{  
double function_name(double);//自定义函数的声明
double a=1b=3;//a,b分别表示积分函数的下、上限,可自行更改
double ans;//最终的结果
ans=gass_integral(function_nameabN);//调用高斯求积分函数
printf(“ans=%.10f\n“ans);//输出结果,显示小数点后10位
 } 

double gass_integral(double (*func)(double x) double a double b int n )//高斯求积分函数,勿更改(如果自定义函数的输入参数有多个,double x这块还是要改的。。。)
 {
//高斯点及其求积系数列表,话说我也是蛮拼的,眼睛都看疼了,才输完------------------------------------------------------------------
double  x1[1]={0.0};
double  A1[1]={2};
double  x2[2]={-0.55735026920.5573502692};
double  A2[2]={11}; 
double  x3[3]={-0.77459666920.00.7745966692};
double  A3[3]={0.55555555560.88888888890.5555555556};
double  x4[4]={0.3399810436-0.33998104360.8611363116-0.8611363116};
double  A4[4]={0.65214515490.65214515490.34785484510.3478548451};
double  x5[5]={0.00.5384693101-0.53846931010.9061798459-0.9061798459};
double  A5[5]={0.56888888890.47862867050.47862867050.23692688510.2369268851};
double  x6[6]={0.2386191861-0.23861918610.6612

评论

共有 条评论