/**
***定步长复化梯形求解积分方程***
n-1 n-1
定步长复化梯形公式: Tn= ∑ h/2〔 f(a) + f(b) + 2 ∑ f(x(k)) 〕
k=0 k=0
属性:数值积分法
n-1
误差(精度):I - Tn = ∑ [ - h*h/12 f''(ε(k)) ] ≈ - h*h/12 [ f'(b) - f'(a) ]
k=0
步长:h = ( b - a ) / n
《数值分析简明教程》-2 Editon -高等教育出版社- page 64 无算法流程图
代码维护:2005.6.14 DragonLord
**/
#include<iostream.h>
#include<math.h>
#include<stdio.h>
double f(double x)
{
double f;
if(x==0)f=1;
else f=sin(x)/x;
return f;
}
int main()
{
double h,s,a,b,n,x;
while(cin>>a>>b>>n)
{
h=(b-a)/n;
s=f(b)+f(a);
x=a;
for(int i=0;i<n;i++)
{
x=x+h;
s=s+2*f(x);
printf("x=%.7f f(x)=%.7f s=%.7f\n",x,f(x),h*s/2);
}
}
return 0;
}