/** ***定步长复化梯形求解积分方程*** 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; }
|