实验五-数值微分与积分计算方法实验报告

时间:2020-10-06 08:41:12 手机站 来源:网友投稿

PAGE

PAGE 1

计算方法实验报告

姓 名

学 号

系 别

数学与统计学院

班级

主讲教师

指导教师

实验日期

2019.5.9

专业

数学与应用数学

课程名称

数值计算方法

同组实验者

一、实验名称:

实验五、数值积分与微分实验

实验目的:

理解数值积分和微分的基本思想;

熟悉并掌握数值积分的MATLAB程序;

掌握一阶导数的数值计算及其MATLAB程序。

实验内容及要求:

用1阶、2阶、3阶、4阶、5阶、6阶、8阶的牛顿-科特斯公式,计算定积分,列表给出计算结果。

(课外阅读,感兴趣的同学可实现文献中的算法)

实验步骤(或记录)

1.(1)问题分析:

由于牛顿-科特斯公式如下:abfxdx

其中ck(n)=1b-a

其中主程序1是利用牛顿-科特斯公式求定积分的程序,由于科特斯系数最多7阶,为了方便我们可以直接使用,省得每次都计算,故编写主程序2来计算科特斯系数。

(2)程序:主程序1:

function [y,Ck,Ak]=NewtonCotes(fun,a,b,n)

xk=linspace(a,b,n+1);

a=min(xk);

b=max(xk);

xk=linspace(a,b,n+1);

fx=fun(xk);

Ck=cotescoeff(n);

Ak=(b-a)*Ck;

y=Ak*fx';

主程序2:

function Ck=cotescoeff(n)

for i=1:n+1

k=i-1;

Ck(i)=(-1)^(n-k)/factorial(k)/factorial(n-k)/n*quadl(@(t)intfun(t,n,k),0,n);

end

function f=intfun(t,n,k)

f=1;

for i=[0:k-1,k+1:n]

f=f.*(t-i);

end

(3)算法:

>>NewtonCotes(@(x)sin(x.*x),0,pi/2,1)

ans =

0.4903

>> NewtonCotes(@(x)sin(x.*x),0,pi/2,2)

ans =

0.7692

>> NewtonCotes(@(x)sin(x.*x),0,pi/2,3)

ans =

0.8061

>> NewtonCotes(@(x)sin(x.*x),0,pi/2,4)

ans =

0.8324

>> NewtonCotes(@(x)sin(x.*x),0,pi/2,5)

ans =

0.8305

>> NewtonCotes(@(x)sin(x.*x),0,pi/2,6)

ans =

0.8282

>> NewtonCotes(@(x)sin(x.*x),0,pi/2,8)

ans =

0.8281

结果:

利用1阶、2阶、3阶、4阶、5阶、6阶、8阶的牛顿-科特斯公式计算定积分的结果绘制成表格如下:

n

1

2

3

4

5

6

8

0.4903

0.7692

0.8061

0.8324

0.8305

0.8282

0.8281

四、教师评语(或成绩)

教师签字 :      

年 月 日

推荐访问:实验报告 实验 微分 数值 实验五-数值微分与积分计算方法实验报告

版权声明 :以上文章中选用的图片文字均来源于网络或用户投稿 ,如果有侵权请立即联系我们 , 我们立即删除 。