数值分析实验报告(5)

2018-12-06 20:36

数值分析实验报告

课题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


数值分析实验报告(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:法理学案例分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: