📄 数值积分.cpp
字号:
//程序代码:
#include<stdio.h>
#include<math.h>
#define f(x) (sin(x))
#define a 0.0
#define b 4.0
//复化梯形积分的通用函数
double CT(double n)
{ double h=(b-a)/n;
double T=(f(a)+f(b))/2;
int i;
for(i=1;i<n;i++)
T+=f(a+h*i);
T*=h;
return T;
}
//复化辛普森积分的通用函数
double CS(double n)
{ double m=n/2;
double h=(b-a)/n;
double S=f(a)+f(b);
int i,j;
for(i=0;i<m;i++)
S+=4*f(a+h*(2*i+1));
for(j=1;j<m;j++)
S+=2*f(a+h*(2*j));
S*=h/3.0;
return S;
}
//主函数调用复化梯形积分和复化辛普森积分计算函数积分
void main()
{ double k;double m;
double S,T;
double accurate;
accurate=cos(a)-cos(b);
printf("复化辛普森积分\n");
for(k=1;k<=12;k++)
{m=pow(2.0,k);
S=CS(m);
printf("%4.0f: %.12f %.12f\n",m,S,S-accurate);
}
printf("复化梯形积分\n");
for(k=0;k<=12;k++)
{m=pow(2.0,k);
T=CT(m);
printf("%4.0f: %.12f %.12f\n",m,T,T-accurate);
}
}
//End of file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -