数值分析与实验复化辛卜生公式 龙贝格算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析与实验课程设计
班级:
姓名:
学号:
08级应用数学《数值分析与实验(实践)》任务书
一、设计目的
通过《数值分析与实验(实践)》实践环节,掌握本门课程的众多数值解法和原理,并通过编写C语言或matlab程序,掌握各种基本算法在计算机中的具体表达方法,并逐一了解它们的优劣、稳定性以及收敛性。在熟练掌握C语言或matlab语言编程的基础上,编写算法和稳定性均佳、通用性强、可读性好,输入输出方便的程序,以解决实际中的一些科学计算问题。
二、设计教学内容
1、数值方法的稳定性;
2、利用牛顿法和割线法程序求出非线性方程的解,并比较它们之间的优
劣;
3、高斯消去法和列主元高斯消去法求解线性方程组;
雅克比法和高斯-赛德尔迭代法解方程组;
4、利用Lagrange插值多项式求未知点的近似值;
5、利用所给数据进行数据的多项式和可转化成多项式形式的函数拟合;
6、编写复化辛卜生公式和龙贝格算法,通过实际计算体会各种方法的精确
度;
7、利用改进Euler方法和四阶Runge-Kutta方法求解初值问题的微分方程
组;
8、利用幂法求矩阵按模最大的特征值及对应特征向量;
( 8个中选取1个)
三、设计时间
2011—2012学年第1学期:第16周共计一周
教师签名:
2011年12月12日
前言
数值计算方法是一种利用计算机解决数学问题的数值近似解方法,特别是无法用人工过计算器计算的数学问题。数值计算方法常用于矩阵高次代数方程矩阵特征值与特征向量的数值解法,插值法,线性方程组迭代法,函数逼近,数值积分与微分,常微分方程初值问题数值解等。
作为数学与计算机之间的一条通道,数值计算的应用范围已十分广泛,作为用计算机解决实际问题的纽带,数值算法在求解线性方程组,曲线拟合、数值积分、数值微分,迭代方法、插值法、拟合法、最小二乘法等应用广泛。
数值计算方法是和计算机紧密相连的,现代计算机的出现为大规模的数值计算创造了条件,集中而系统的研究适用于计算机的数值方法是十分必要的。数值计算方法是在数值计算实践和理论分析的基础上发展起来的。
通过数值计算方法与实验将有助于我们理解和掌握数值计算方法基本理论和相关软件的掌握,熟练求解一些数学模和运算,并提高我们的编程能力来解决实际问题。
摘要
随着计算机的迅速发展和广泛应用,在众多的领域内,人们越来越认识到科学计算是科学研究的新方法,当今理学学生更应具备这方面的知识与能力,计算方法作为科学计算的一门主干课程又是我们的必修课,我们要认真学习,数值计算方法不只注重理论分析还要求实验和实践,这样才能使我们更灵活地掌握数值计算方法,所以我们也要认真做好数值分析与实验实践环节。
复化辛卜生公式可以算是公路线行坐标计算的万能公式,不仅对直线、圆曲线都能用一套公式进行计算,而且它的精度可以人为判断。
对于不易直接用积分公式计算的原函数,通常用复合梯形求积公式或复合抛物线求积公式等方法,但这些方法精度不高,收敛的速度缓慢。为了提高收敛速度,减少计算量,人们寻求其他方法。
[关键字]:计算方法;复化辛卜生公式;龙贝格算法
目录
前言 (3)
摘要 (4)
实验设计内容 (6)
一.复化辛普森求积公式求解定积分 (6)
1实验目的 (6)
2实验内容 (6)
3.算法 (6)
3.Matlab程序 (6)
4运行结果 (7)
二、用龙贝格求积公式求解定积分 (7)
1实验目的 (7)
2 实验内容 (7)
3.1算法 (7)
3.2Matlab程序 (8)
3.4运行结果 (8)
三、结果分析 (9)
四、参考文献 (9)
实验设计内容
一、 复化辛普森求积公式求解定积分
1.实验目的:通过实际计算体会各种方法的精确度;
会编写用复化辛卜生求定积分的程序;
2.实验内容:用复化辛普森求积公式计算积分⎰-8
.002
dx e x 的近似值,自己设
置不同精度要求,对结果进行比较分析。
3.算法:将区间[],a b 二等分,用3个插值节点构造抛物线,并以此抛物线为顶的曲边梯形面积近似以曲线()y f x =为顶的曲边梯形面积。
经推导得到
()()4()()62b
a b a a b f x dx f a f f b -+⎡⎤
≈
++⎢⎥⎣⎦
⎰ (2.1) 或
001122()()()()b
a f x dx A f x A f x A f x ≈++⎰ (2.2)
其中026b a A A -==
,142
()()63
A b a b a =-=- 称式(2.1)或(2.2)为求积公式。
可以证明:若函数()f x 在[],a b 上有连续的4阶导数,Simpson 公式的截断误差为
2()()()4()()62b
a b a a b R f f x dx f a f f b -+⎡⎤
=-
++⎢⎥⎣⎦
⎰ y=f(x)
a
b
O
y
x
y=L 2(x)
2
b a +
5(4)
()()2880
b a f η-=- a b η≤≤ (2.3) 记a = 0,b = 1,f(x) = x e -,则
'
()x x e f
-=-
''
()x x e f
-=
'''
()x x e f
-=-
(4)
()x x e f
-=
因此,利用Simpson 公式计算得
0.51()()4()()6210(4)0.63236
b a a b S f f a f f b e e e ----+⎡⎤
=
++=⎢⎥⎣⎦
-++=
由4(4)4()11()()()()()18021802
b a b a I f S f f e η
η----=-
=- (0,1)η∈ 得截断误差估计为:4111()()()0.000347218022880
I f S f -≤-
==
4.Matlab 程序如下:
function fsimpson(a,b,n) /*调用matlab 的函数*/ h = (b-a)/n; /*定义自变量*/ t = h*(f(a)+f(b))/6; for i = 0:(n-1)
t = t+h*(4*f(a+(i+1/2)*h)+2*f(a+i*h))/6; /*定义函数*/ end /*结束函数*/ I = t
在Matlab 中输入命令:fsimpson(0,1,1000)
则输出结果为: 759262.0=I