数值分析实验报告
课题9 数值积分
一、问题提出
选用复合梯形公式,复合Simpson公式,Romberg算法,计算
14(1) I =
1?04?sin2xdx ?I?1.5343916?
(2) I =
sinxdx?x01?f(0)?1, I?0.9460831?
exdx (3) I = ?204?x(4) I =
ln?1?x?dx 2?01?x1二、要求
1、编制数值积分算法的程序;
2、分别用两种算法计算同一个积分,并比较其结果;
/ 3、分别取不同步长h?? b?a ?/n,试比较计算结果(如n = 10, 20等);
4、给定精度要求?,试用变步长算法,确定最佳步长。 三、目的和意义
1、掌握各种数值积分方法;
2、了解数值积分精度与步长的关系;
3、体验各种数值积分方法的精度和计算量。 四、流程图
复化梯形求积算法 复化Simpson求积算法
21
数值分析实验报告
Romberg算法
22
数值分析实验报告
五、程序代码 对于第(2)题采用复合梯形公式 #include \#include %using namespace std; double f(double x) { double ss; if(x==0) ss=1; else ss=sin(x)/x; return ss; } int main() { int n,k;
double e=0.9460831; double x,a,b,h,temp; cout<<\请输入积分下界a=\cin>>a;
cout<<\请输入积分上界b=\cin>>b;
cout<<\ Cn e\for(n=1;n<=20;n++){ h=(b-a)/n; x=a; temp=0; for(k=1;k<=n;k++)
temp+=h/2*(f(x+(k-1)*h)+f(x+k*h)); cout< 23 数值分析实验报告 cout< 对于第(2)题采用复合Simpson公式 #include \#include %using namespace std; double f(double x) { double ss; if(x==0) ss=1; else ss=sin(x)/x; return ss; } int main() { int n,k; double a,b,h,temp=0; double e=0.9460831; double x; cout<<\请输入下界a=\cin>>a; cout<<\请输入上界b=\cin>>b; 24 数值分析实验报告 cout<<\ Tn e\for(n=1;n<=20;n++){ h=(b-a)/n; x=a; temp=0; for(k=1;k<=n;k++) temp+=h/6*(f(x+(k-1)*h)+4*f(x+(k-0.5)*h)+f(x+k*h)); cout< 对于第(2)题采用Romberg公式 #include \# include \double T[20][20] ; double f(double x) { double ss; if(x==0) ss=1; else ss=sin(x)/x; return ss; } void main() { double a,b,e;double sum=0.0 ; double temp,help; int i,j,k,m,p,q; printf(\请输入积分上限a=\scanf(\ 25 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数值分析实验报告(5)在线全文阅读。
相关推荐: