数值计算方法教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算方法》教案
课程名称:计算方法
适用专业:医学信息技术
适用年级:二年级
任课教师:***
编写时间:2011年 8月
新疆医科大学工程学院张利萍
教案目录
《计算方法》教学大纲 (4)
一、课程的性质与任务 (4)
二、课程的教学内容、基本要求及学时分配 (4)
三、课程改革与特色 (5)
四、推荐教材及参考书 (5)
《计算方法》教学日历..................................... 错误!未定义书签。
第一章绪论 .. (6)
第1讲绪论有效数字 (6)
第2讲误差………………………………………………………………………………
第二章线性方程组的直接法 (14)
第3讲直接法、高斯消去法 (14)
第4讲高斯列主元消去法 (22)
第5讲平方根法、追赶法 (29)
第三章插值法与最小二乘法 (31)
第6讲机械求积、插值型求积公式 (32)
第7讲牛顿柯特斯公式、复化求积公式 (37)
第8讲高斯公式、数值微分 (42)
第9讲
第10讲
第12讲
第四章数值积分与数值微分 (48)
第11讲欧拉公式、改进的欧拉公式 (48)
第12讲龙格库塔方法、亚当姆斯方法 (52)
第13讲收敛性与稳定性、方程组与高阶方程 (56)
第14讲
第15讲
第五章微分常微分方程的差分方法 (59)
第16讲迭代收敛性与迭代加速 (60)
第17讲牛顿法、弦截法 (64)
第18讲
第19讲
第20讲
第六章线性方程组的迭代法 (67)
第21讲迭代公式的建立 (68)
第22讲
第23讲
第24讲向量范数、迭代收敛性 (71)
第25讲
《计算方法》教学大纲
课程名称:计算方法/Computer Numerical Analysis B
学时/学分:54/4
先修课程:高等数学、线性代数、高级语言程序设计(如:Matlab语言)
适用专业:计算机科学与技术、信息管理与信息系统
开课学院(部)、系(教研室):医学工程技术学院、医学信息技术专业
一、课程的性质与任务
计算方法是一门专业必修课。
当前,由于科学技术的快速发展和计算机的广泛应用,学习和掌握计算机上常用的数值计算方法及有关的基础理论知识,并能用某种高级语言(如Matlab语言)将这些常用算法编程实现,这对于计算机专业的学生来说是非常重要的。
本课程着重介绍进行科学建设所必须掌握的一些最基本、最常用的算法,向高等院校有关专业的学生普及计算方法的知识。
二、课程的教学内容、基本要求及学时分配
(一)教学内容
1.引论
数值分析的研究对象、误差及有关概念、数值计算中应注意的一些原则。
2.线性代数方程组的数值解法
Gauss消去法、Gauss消去法的矩阵形式、主元消去法、三角分解法、迭代法、迭代法的收敛条件及误差估计。
3.插值方法
Lagrange插值、Newton插值、分段插值、Hermite插值、三次样条插值、数据拟合的最小二乘法。
4.数值积分与微分
机械求积、Newton-Cotes求积公式、复化求积、Romberg求积算法、Gauss求积公式、数值微分。
5.常微分方程初值问题的数值解法
Euler方法及其改进、龙格-库塔(Runge-Kutta)方法、线性多步法、收敛性与稳定性、一阶方程组与高阶方程。
6.方程求根的数值方法
二分法、迭代法、迭代过程的加速、Newton迭代法、Newton迭代法的几种变形。
(二)基本要求
1.了解数值分析的研究对象、掌握误差及有关概念。
2.正确理解使用数值方法求方程的解的基本思想、数学原理、算法设计。
3.了解插值是数值逼近的重要方法之一,正确理解每一种算法的基本思想、计算公式、算法设计、程序框图设计和源程序。
4.掌握数值积分的数学原理和程序设计方法。
5.能够使用数值方法解决一阶常微分方程的初值问题。
6.理解和掌握使用数值方法对线性方程组求解的算法设计。
(三)学时分配
本课程的理论教学时数为54学时分配如下表:
(四)课程内容的重点、难点
重点:Lagrange插值、Newton插值、分段插值、Hermite插值、三次样条插值、机械求积、Newton-Cotes求积公式、复化求积、Romberg求积算法。
难点:Gauss消去法、Gauss消去法的矩阵形式、主元消去法、三角分解法、迭代法、迭代法的收敛条件及误差估计。
三、课程改革与特色
本课程是一门重要的专业基础课。
数值计算方法既是一门古老的学科,又是一门新兴的学科。
电子计算机的产生和发展极大地促进了数值计算方法的发展。
只有把数值计算方法和程序设计紧密结合起来,把算法变为计算机能直接执行的程序,才能真正使计算机帮助人们解决各种复杂的计算任务。
本课程试图将数值计算方法和程序设计方法学融为一体,这也是一种尝试。
四、推荐教材及参考书
推荐教材:《计算机数值方法》(第三版),主编:施吉林、刘淑珍、陈桂芝,出版社:高等教育出版社,出版时间:2005年3月
参考书:
《数值计算方法和算法》,主编:张韵华、奚梅成、陈效群,出版社:科学出版社,出版时间:2002年3月
《Numerical Analysis》,主编:Richard L.Burden ,出版社:高等教育出版社影印,出版或修订时间:2003
《数值分析》,主编:金聪、熊盛武,出版社:武汉理工大学出版社,出版时间:2003年8月
第一章绪论
一、教学目标及基本要求
通过对本章的学习,使学生对了解涉及工程和科学实验中常见的数学问题,其中包括线性方程组、函数插值、离散数据的拟合、微积分、微分方程等,这些问题是其他数学问题的基础。
二、教学内容及学时分配
本章主要介绍数值分析的研究对象及误差的概念。
具体内容如下:
第1-2学时讲授内容:计算方法的研究内容、对象与特点;误差的基本概念。
三、教学重点难点
1.教学重点:误差、误差种类;误差分析:误差与有效数字的关系。
2. 教学难点:误差分析、误差与有效数字的关系。
四、教学中应注意的问题
多媒体课堂教学为主。
适当提问,加深学生对概念的理解。
第1讲绪论
基本求解步骤
数学模型是通过科学实验或者观察分析一系列数据后,用数学作为工具近似地描述客观事物的一种数学表达式。
在数学模型中,往往包含了若干参量,这些物理参数通常由实验仪器测得,根据仪器的精密程度,物理参数的确定也会产生一定的误差。
在建立了数学模型之后,并不能立刻用计算机直接求解,还必须寻找用计算机计算这些数学模型的数值方法,即将数学模型中的连续变量离散化,转化成一系列相应的算法步骤,编制出正确的计算程序,再上机计算得出满意的数值结果。
算法:从给定的已知量出发,经过有限次四则运算及规定的运算顺序,最后求出未知量的数值解,这样构成的完整计算步骤称为算法。
例1
32
()3426
p x x x x
=+-+
计算多项式的值。
23
,
1x x x
由计算出后再进
算法:行计算。
需乘法5次,加法3次。
()[(34)22]6p x x x x =+-+算法:
需乘法3次,加法3次。
一般地,计算n 次多项式的值
1110
()n n n n n P x a x a x a x a --=++
++
如若按k k a x 有k 次乘法运算,计算()n P x 共需()1122
n n n +++
+=
次乘法和n 次加
法运算。
采用:秦九韶算法(1247) 有递推公式: 1210
()(((())n n n n P x x x x
x a x a a a a --=+++
++ 从内往外一层一层计算,社层表示第k k v
k n k n n n k a x a x a x a v -+--++++=)...)(...(11
⎩⎨
⎧=+=--n
k
n k k a v a x v v 01 需乘法n 次,加法n 次,存储单元n+3个。
对算法所要考虑的问题,包括如下:
计算速度
例如,求解一个20阶线性方程组,用消元法需3000次乘法运算;而用克莱姆法则要进行
209.710⨯次运算,如用每秒1亿次乘法运算的计算机要30万年。
Y
N
开始
输入n a a a (10)
1,⇐⇐k a v n
k n a vx v -+=
k=n 输出v
结束
k k ⇒+1
存储量
大型问题必要考虑计算机的数据存贮。
数值稳定性
在大量计算中,舍入误差是积累还是能控制,这与算法有关。
实际算法往往表现为某种无穷递推过程 算法的精度控制
方程根的二分法求解
*],[0)(],[)(0)()(],[)(x b a x f b a x f b f a f b a x f 定实根为内一定有唯一实根。
假在即方程内一定有实的零点,在,根据连续函数性质,上单调连续,在=<2
0b
a x +=
若0)(0=x f ,则0x 为所求根
否则若0)()(0<x f a f ,则根在区间],[0x a ,取011,x b a a == 若0)()(0<x f b f ,则根在区间],[0b x ,取b b x a ==101,
...],[...],[],[11⊃⊃⊃⊃k k b a b a b a
每一区间为前一区间的一半,有根区间],[k k b a 长度)(21
a b a b k
k k -=
- )(2
1
)(211*a b a b x x k k k k -=-≤
-+ §1.2 预备知识和误差
(1) 误差的来源
实际问题→建立数学模型→研究计算方法→编程上机计算解结果。
模型误差: 在建立数学模型过程中,不可能将所有因素均考虑,必然要进行必要的简化,这就带来了与实际问题的误差。
测量误差: 测量已知参数时,数据带来的误差。
截断误差: 模型的准确解与某种数值方法的准确解之间的误差称为截断误差或方法误差。
舍入误差: 计算机的字长是有限的,每一步运算均需四舍五入,由此产出的误差称舍入误差。
如:π、1/3,……取小数点8位、16位。
[截断误差的实例]
23
11111,
2!3!
!
x n
e x x x x n e -=++
+++
+已知求的近似值,并估计误差。
解:利用展开式的前三项,取n=2,
121
1(1)(1)0.52e -≈+-+
-=
000()(1)1
000()()'()()()()()()!(1)!n n n n Taylor f x f x f x x x f x f x x x x n n ξ++=+-+
+-+-+由公式:
1
(),
01
(1)!n x n x R x e n θθ+=<<+
1121
0.5 1.7*103!R e --=-≤
<截断误差为:0.17
[舍入误差的实例]
590472.1066.1492.1=⨯,设在一台虚构的4位数字的计算机上计算
590.1066.1492.1≈⨯,舍入误差为 0.000472。
数值计算方法主要讨论截断误差和舍入误差的影响,不讨论模型误差和测量误差。
三、误差的基本概念 (1) 误差与误差限
误差不可避免,设以x 代表数*
x 的近似值,称*x x e -=是近似值x 的绝对误差。
简称误
差。
误差是有量纲的,可正可负。
误差通常是无法计算的,但可以估计出它的一个上界。
即
ε
≤-*x x 称
ε
是近似值x 的误差限,或称精度,即
εε+≤≤-**x x x 。
(2) 相对误差与相对误差限
绝对误差并不能完全反应精度,称x x x x
e -=
*为近似值x 的相对误差,记作r e 。
相对误差是个相对数,是无量纲的,也可正可负。
相对误差的估计r
r
e
ε≤,称
r ε为相对误差限,即
r
x
x
x x εε
=≤
-*。
(3) 有效数字 定义: 如果近似值x
的误差限是n
-⨯1021
(某一数位的半个单位),则称x
准确到小数点后n
位,并从第一个非零的数字到这一位的所有数字均为有效数字。
如:π=3.1415926535,
3.14有三位有效数字,误差限ε=0.005;
3.1416有五位有效数字,误差限为0.00005。
(4) 有效数字与误差限的关系:
x 有n 位有效数字,标准形式为n m a a a x ....01021⨯±= 其中a i (i=1,2,…)是0~9之间的
整数,且01≠a ,如果误差n l x x l m ≤≤⨯≤
--1,102
1
*
,称x 为*x 的具有l 位有效数值的近似值.
(5)有效数字与相对误差的关系:
标准形式为n m
a a a x ....01021*⨯±=,则:
a)n a x x x n x -⨯≤-11
**
*
1021||||位有效数字,则有若 证:n m n
m n m a a x x x x ----⨯=⨯⨯≤⨯≤-11
1
1***
10211010211021||||
b)n
a x x x -⨯+≤-11*
*10)1(21
||||若,则位有效数字有n x *
证:n m m n n a a x a x x ----⨯=⨯+⨯⨯+≤⨯⨯+≤
-102
1
10)1(10)1(2110)1(211111*11*
例,已知...14159265.3=π,试问其近似值1416.3,1415.3,14.3,1.33321====x x x x 各有几位有效数字?并给出它们的误差限和相对误差限。
111102
1
04.0-⨯<
≈-=x e π,十分位以前都是有效数字,有两位有效数字 1211
1
1106
1
10321--⨯=⨯⨯≤
-=
x x e r π 222102
1
002.0-⨯<
≈-=x e π有三位有效数字 2312
2
2106
1
10321--⨯=⨯⨯≤
-=
x x e r π 333102
1
00009.0-⨯<
≈-=x e π,有四位有效数字 3413
3
3106
1
10321--⨯=⨯⨯≤
-=
x x e r π 444102
1
00001.0-⨯<
≈-=x e π,有五位有效数字 4514
4
4106
1
10321--⨯=⨯⨯≤
-=
x x e r π 例:为使π*
的相对误差小于0.001%,至少应取几位有效数字? 解:
%001.01021
*11
<⨯≤
+-n r a ε
6,6,6log 6=≥->n n n 取即,则π
*
=3.14159
§1.3数值计算的若干原则 1. 避免两相近数相减 当x 较大时,计算x x -
+1,可先转化为x
x x x ++=
-+111
h
h h f x x x f 222)2(2)(--≈
==+得导数值在‘,精确值353553.0)2(=‘
f
令h=0.1得35350.02.03784
.14491.1222)2(≈-≈--≈
h h h f +‘
令h=0.0001得00002
.04142
.14142.1222)2(=-≈--≈h h h f +‘
计算。
1,sin cos 1=-x x x
,分子出现相近数相减,可转换为
x
x
x x cos 1sin sin cos 1--=
,再计算 2.避免绝对值太小的数做除数
分母接近零的数会产生溢出错误,因而产生大的误差,此时可以用数学公式化简后再做.
1000
10011000
10011+=-=
y
3.要防止大数“吃掉”小数
计算机在进行算术计算时,首先要把参加运算的数对阶,即把两数都写成绝对值小于1,而阶码相同的数。
如:1109
+=x 必须改写成: 10
10
100000000001.0101.0⨯+⨯=x 如果计算机只能表示8位小数,则算出10
101.0⨯=x , 大数吃掉了小数。
这种情形是要尽量避免的。
4. 简化计算步骤,提高计算效率
简化计算步骤是提高程序执行速度的关键,它不仅可以节省时间,还能减少舍入误差。
例4:设A 、B 、C 、D 分别是10⨯20、 20⨯50、 50⨯1、 1⨯100的矩阵,试按不同的算法求矩阵乘积E=ABCD.
解:由矩阵乘法的结合律,可有如下算法
1. E=((AB)C)D. 计算量N=11500flop
2. E=A(B(CD)). 计算量N=125000flop
3. E=(A(BC))D. 计算量N=2200flop 5.要使用数值稳定的算法
我们已经知道,所谓算法的稳定性,是指误差的传播可以得到控制,在用计算机解决实际问题时,运算次数成千上万。
如果误差的传播得不到控制,那么误差的累积会使问题的解答成为荒谬的,尤其是某些病态问题(如病态方程组),舍入误差对其计算结果往往有非常严重的影响。
因此,在选择计算方案时,要特别谨慎。
考察方程组
⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣
⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡ 6047 121361151 41 3141 31 2131 21 132
1x x x 解为1,1,1321===x x x
四舍五入系数后,解为49.1,484.0,09.1321===x x x
尽管系数变动不大,但求出得解却变动很大,这类问题称为病态的。
例:蝴蝶效应(气象学家洛伦兹,1963)
——南美洲亚马孙河流域热带雨林中的一只蝴蝶翅膀一拍,偶尔扇动几下翅膀,可能在两周后引起美国德克萨斯引起一场龙卷风?!
第二章 插值法
一、教学目标及基本要求
通过对本章的学习,使学生掌握插值法计算常见的数学问题。
二、教学内容及学时分配
本章主要介绍数值分析的插值法。
具体内容如下:
第3-4学时讲授内容:问题的提法、拉格朗日插值公式。
第5-6学时讲授内容:插值余项、牛顿插值公式。
第7-8学时讲授内容:曲线拟合。
三、教学重点难点
1.教学重点:插值方法的由来、拉格朗日插值公式、牛顿插值公式、曲线拟合。
2. 教学难点:拉格朗日插值公式、牛顿插值公式。
四、教学中应注意的问题
多媒体课堂教学为主。
适当提问,加深学生对概念的理解。
第2讲 拉格朗日插值公式
众所周知,反映自然规律的数量关系的函数有三种表示方法: A. 解析表达式
52)(3--=x x x f .
(开普勒(Kepler)方程)y y x sin ε-=.。
悬链线方程: )/cos(λλx y =。
B. 图象法
C. 表格法
1、插值法 对于一组离散点),...,2,1,0()),(,(n i x f x i i =,选定一个便于计算的简单函数P(x),如多项式函数,要求P(x)满足)()(i i x f x P =,由此确定函数P(x)作为f(x)的近似函数,然后通过处理P(x)获得关于f(x)的结果。
这就是插值方法。
2、曲线拟合 选定近似函数P(x)时,不要求近似函数P(x)必须满足
)()(i i x f x P =,而只要求在某种意义下(最小二乘法原理),使近似函数P(x)在
这些点上的总偏差量最小,这类方法成为曲线拟合。
§1.1 多项式插值问题的一般提法 1 插值法的概念:
假设函数y=f (x )是[a ,b ]上的实值函数,x 0,x 1,…,x n 是[a ,b ]上n +1个互异的点,f (x )在这些点上的取值分别为y 0,y 1,…,y n , 求一个确定的函数P (x ),使之满足:
P (x i )=y i (i =0,1,2,…,n ) (1)
称x 0,x 1,…,x n 为插值节点,关系式(1)称为插值原则,函数P (x )称为函数y=f (x )的插值函数,区间[a ,b ]称为插值区间。
2 泰勒插值:
人们熟悉的泰勒展开方法其实就是一种插值方法,泰勒多项式:
n n n x x n x f x x x f x x x f x f x P )(!
)(...)(!2)())(()()(002
00''00'0-++-+-+= (1)
与f(x)在点0x 邻近会很好的逼近f(x)。
泰勒余项定理:
定理1 假设f(x)在含有点0x 的区间[a,b]内有直到n+1阶导数,则当],[b a x ∈时,对于式(1)给出的(x)P n ,成立
101)()!
1()
()()(++-+=-n n n x x n f x P x f ξ
其中ξ介于0x 与x 之间,因而],[b a ∈ξ。
所谓泰勒插值指下述问题:
问题 1 求作n 次多项式(x)P n ,使满足n k y )(x P k k n ,...,2,1,0,)
(00)(==,)(0k y 为一组已给数据。
易看出,上述插值问题的解就是泰勒多项式(1)。
例1 例题分析:
求作x f(x)=在1000=x 的一次和二次泰勒多项式,利用它们计算115的近似值并估算误差。
解:
x f(x)=, 2/1'21-=
x (x)f , 2/3''41--=x
(x)f , 2/5'''8
3
-=x (x)f 100=)f(x , 20/10'=)(x f , 4000/10''-=)(x f , 8000000/30''=)(x f x f(x)=在1000=x 的一次泰勒多项式是
x x x x f x f x P 05.05))(()()(00'01+=-+=
115=x 时75.10)()115(1151=≈=x P f 根据定理1可估计误差
05.0028125.0)(2
)
()(2)
()()(200''20''1<<-<
-=
-x x x f x x f x p x f ξ
误差小于十分位的一半,故十分位及前面的数字为有效数字,所以结果有三位有效数字。
修正)(1x P 可进一步得到二次泰勒公式
20012)(2
)
('')()(x x x f x P x P -+=
721875.10028125.075.10)()115(1152=-=≈=x P f 005.00006328125.0)(2
)
()(2)
()()(300'''30'''2<<-<
-=
-x x x f x x f x p x f ξ
误差小于百分位的一半,故百分位及前面的数字为有效数字,所以结果有四位有效数字。
泰勒插值是一种有效的插值方法,对函数要求严格(要足够光滑,存在高阶导数),要计算函数的高阶导数,而高阶导数的计算对计算机来说就很困难;另外,计算过程不能形成机械重复的过程,不利于计算机程序实现。
§1.2 拉格朗日(Lagrange)插值 1 多项式插值的存在惟一性:
多项式导数易于计算,函数表达式简单,计算机易于计算,故考虑用多项式
求 n 次多项式n
n n x a x a a x P +++= 10)(, 使得:
P (x i )=y i (i =0,1,2,…,n ) 。
根据插值条件,有:
⎪⎪
⎩⎪⎪⎨
⎧=+++==+++==+++=n n n n n n n
n n
n y x a x a a x P y x a x a a x P y x a x a a x P 10111101000100)()()( (1)
显然,这是一个关于n a a a ,,10的n+1元线性方程组,其系数矩阵的行列式为
n
n
n
n
n
n n x x x x x x x x x V
11
1),,,(11
010=
注意到插值节点),,2,1(n i x i =两两相异,而0
)(),,,(010≠∏-=≤<≤n i j j i n n x x x x x V
故方程组(1)有惟一解n a a a ,,10,于是满足插值条件的多项式存在且惟一。
定理 由n +1个不同插值节点n x x x ,,,1
0 可以惟一确定一个n 次多项式n n n x a x a a x P +++= 10)(满足插值条件i i n y x P =)(。
从理论上说,由方程组(1)可以求出n a a a ,,10的惟一解,从而确定)(x P n 。
但从数值计算上看,当n 较大时求解线性方程组的工作量较大且不便应用。
解方程组(1)需计算n+1个n 阶行列式,每个n 阶行列式为n!项之和,每项又是n 个元素的乘积,需n-1次乘法,所以求解需要)1(!)1(-+n n n 次乘法,当n 较大时,计算量非常大。
为解决此问题,现已提出了不少构造)(x P n 的巧妙办法。
2 Lagrange 插值的基函数构造法 首先讨论n =1时的情形。
已知1010,;,y y x x ,求x a a x L 10
1)(+=使得111001)(;)(y x L y x L ==
显然)(1
x L 是过 ),(00y x 和),(11y x 两点的一条直线。
由点斜式容易求得
i
i i y x l y x x x x y x x x x x x x x y y y x L )()
()(1010
10
010100
10
101∑=--+--=---+==
其中,)1,0(),(=i
x l i 具有如下特点:
⎩⎨
⎧====1)(;0)(0)(;1)(11011000x l x l x l x l
称其为线性插值基函数。
)(1x L 可以通过函数)1,0(),(=i x l i
组合得出,且组
合系数恰为所给数据y 0,y 1。
再讨论n =2时的情形。
显然)(2
x L 是过 ),(00y x 、),(11y x 、),(22y x 三点的一条抛物线。
仿照线性插值基函数的构造方法,令
⎪⎪⎪
⎩
⎪⎪⎪⎨⎧----=
----=----=))(())(()())(())(()()
)(())(()(12021022101201
2010210
x x x x x x x x x l x x x x x x x x x l x x x x x x x x x l 其中,)2,1,0(),(=i
x l i 具有如下特点:
⎪⎩⎪
⎨⎧=========1)(;0)(;0)(0)(;1)(;0)(0
)(;0)(;1)(221202************x l x l x l x l x l x l x l x l x l
称其为抛物线插值基函数(如下图所示)。
于是,
∑=----+----+
----=
=2021202101
2101200
2010212)())(()
)(()
)(()
)(())(()
)(()(i i
i y x l y x x x x x x x x y x x x x x x x x y x x x x x x x x x L
最后讨论一般情形。
求L n (x )使得L(x i )=y i (i =0,1,2,…,n ) 。
令n 次多项式插值基函数为:
∏
--==≠n j i j j
i j i x x x x x l 0
)()
()(,
),,1,0(),(n i x l i =具有如下特点:
)
,,1,0,(,0,1)(n j i j i j
i x l ij j i =⎩⎨⎧≠===δ。
于是,满足插值条件的n 次多项式可以直接写为:
∑∑=∏--====≠n i i
i n
i i n j i j j
i j n y x l y x x x x x L 0
00
)()()
()(
我们称L n (x )为Lagrange 多项式,)(x l i 其Lagrange 插值基函数。
思考 给定 x i = i +1, i = 0, 1, 2, 3, 4, 5. 下面哪个是l 2(x )的图像?
3 插值余项
如图所示,其截断误差R n (x )=f (x )-L n (x ),称为Lagrange 插值多项式的余项。
Y
N
开始
输入
n i y x x i i ...2,1,0),,(,=
0,0⇐⇐k y
1⇐t
n k k j t t x x x x j
k j ,...,1,1,...,0,*+-=⇒--
y y t y k ⇒+*
k=n 输出y
结束
k k ⇒+1
定理 假设f (x )在[a,b]上有连续的直到n +1阶导数,且在不同插值节点
n x x x ,,,10 取值为i i y x f =)(,)(x L n 是经过插值样点),,(i
i
y x )
,,1,0(n i =的Lagrange 插值多项式,若引进记号:
∏-=---==+n
i i n n x x x x x x x x x 0
101)
()())(()( ω
则当],[b a x ∈时,有如下的误差估计:
),()(!)1()
()
(!)1()()()()(1)1(0
)1(b a x n f x x n f x L x f x R n n n
i i n n n ∈+=∏-+=-=++=+ξωξξ
证明:因为 ),,1,0(0)()()(n i x L x f x R i n i i n ==-=
于是可假定)(x R n 具有如下形式:
∏-=---==n
i i n n x x x k x x x x x x x k x R 0
10)
()()())()(()(
将x 看作(a,b)上的一个固定点,作辅助函数
∏---=-----==n
i i n n n x t x k t L t f x t x t x t x k t L t f t 010)
()()()()
())()(()()()( ϕ
容易看出,
)(t ϕ有n x x x x ,,,1,0 共n +2个相异零点,且在[a ,b]上存在n +1阶导数。
根据罗尔,)(t ϕ'在)(t ϕ的两个零点之间至少有一个零点,故)(t ϕ'在[a ,b]上至少有n +1个零点。
如此类推,)()
1(t n +ϕ
在(a ,b)上至少有1个零点ξ,使得
)()()()()(0)1()1()1()
1()
1(=∏---===+++++ξ
ξξξϕ
t n
i i n n n n
n n x t dt
d x k L
f
注意到n L 是n 次多项式,0)()
1(≡+t L n n
;∏-=n
i i x t 0)(的首项为1+n t ,
故)!1()(0)1()1(+=∏-=++n x t dt d n
i i n n 。
由上述方程解得 )
,()!1()
()()1(b a n f x k n ∈+=+ξξ。
于是∏-+==+n
i i n n x x n f x R 0
)1()
()!1()()(ξ
4 例题
例1 已知函数y =f (x )的观察数据为
x k -2 0 4 5 y k 5 1 -3
1
试构造f (x )的拉格朗日多项式L n (x ),并计算f (-1)。
解 先构造基函数
所求三次多项式为
L 3(x )=
= +
-+
=
L 3(-1)=
第3讲 牛顿公式
§1.4 差商与差分及其性质
1 差商的概念:
称
10110)()(],[x x x f x f x x f --=
为函数f (x )的一阶差商;
称
21021210]
,[],[],,[x x x x f x x f x x x f --=
为函数f (x )的二阶差商;
一般地,称0
10110]
,...,[],...,[],...,,[x x x x f x x f x x x f n n n n --=
-为函数f (x )的n 阶
差商; 特别地,定义
)(][00x f x f =为函数f (x )关于x o 的零阶差商。
由此可知,高阶差商总是由比它低一阶的的两个差商组合而成。
2
(a )n 阶差商可以表示成n +1个函数值01,,,n y y y 的线性组合,
即
∑
-----==+-k
i n i i i i i i i i k x x x x x x x x x x x f x x f 011100)())(())(()
(],...,[
该性质说明:k 阶差商
],...,,[10n x x x f 计算是由函数值f (x 0
),f (x 1
),…f (x k )线
性组合而。
如:
],,[],,[],,[012201210x x x f x x x f x x x f ==;
011100010110)
()()()(],[x x x f x x x f x x x f x f x x f -+
-=--=
))(()
())(()())(()()()()()()()()
()()()(],[],[],,[1202221011201000
21
221210111000
11100020
10112120
21021210x x x x x f x x x x x f x x x x x f x x x x x f x x x f x x x f x x x f x x x f x x x f x x x x x f x f x x x f x f x x x x f x x f x x x f --+
--+--=
--+
--
----=-+
-=----
--=--=
对称性): 差商与节点的顺序无关。
即
0110[,][,]f x x f x x =,
012102021[,,][,,][,,]f x x x f x x x f x x x ==
这一点可以从性质1看出。
3 利用差商表计算差商
利用差商的递推定义,可以用递推来计算差商。
差商表:
4 差分的概念定义设函数y=f (x )在等距节点),,1,0(0n i ih x x i =+=上的函数值f (x i )=f i ,
其中,h 为常数称作步长。
称△f i =f i+1-f i ▽f i =f i -f i-1
δf i =f (x i +h /2)-f (x i -h /2)=
212
1-
+
-i i f
f
分别为f (x )在i x
处以h 为步长的一阶向前差分,一阶向后差分和一阶中心差分。
称符号△、▽、δ分别为向前差分算子,向后差分算子和中心差分算子。
⎪⎪⎩⎪⎪⎨⎧-=∇-∇=∇∆-∆=∆-
+-+211-n 211-n n 11
-n 1-n n 1-n 11-n n i i i i i i i i i f
f f f f f f f f δδδ 在节点等距情况下,差商可用差分表示,设步长i i x x h -=+1,有
i i i i i i i y h
x x x f x f x x f ∆=--=+++1
)()(),(111
i i i i i i i i i i i i y h
y y h x x x x f x x f x x x f 221221212121
)(21),(),(),,(∆=∆-∆=--=+++++++
一般形式(数学归纳法可证)
i k
k
k i i i y h k x x x f ∆=++!1),...,,(1 §1.5 牛顿插值公式 1. 牛顿插值公式的构造
Lagrange 插值虽然易算,但若要增加一个节点时,全部基函数 l i (x ) 都需重新算过。
本节介绍另外一种方法-牛顿插值法,并用它解决上面所述问题。
由线性插值
)()(0010101x x x x y y y x N ---+
=,令)()(,,01010
10
1100x x a a x N x x y y a y a -+=--== 二次插值能否写成
))(()()(1020102x x x x a x x a a x N --+-+=
由条件222112002)(,)(,)(y x N y x N y x N ===得
120
10
102
022*******,,x x x x y y x x y y a x x y y a y a ----
--=--== 推广得
)
)...((...)
)(()()(10102010---++--+-+=n n n x x x x a x x x x a x x a a x N ,
其中,n a a a ,,,10 为待定系数。
如何求n a a a ,,,10 ?
解: 因为000
()()[,]f x f x f x x x x -=
-,
所以
000()()[,]()f x f x f x x x x =+-
(0)
又001011
[,][,][,,]f x x f x x f x x x x x -=
-,有
001011[,][,][,,]()f x x f x x f x x x x x =+- (1)
又
010120122
[,,][,,]
[,,,]f x x x f x x x f x x x x x x -=
-
010120122[,,][,,][,,,]()
f x x x f x x x f x x x x x x =+- (2)
一般地,n
n n n x x x x x f x x x x f x x x x f --=
-]
,...,,[],...,,,[],...,,,[1011010
)](,...,,,[],...,,[],...,,,[1010110n n n n x x x x x x f x x x f x x x x f -+=- (n)
将式(n)代入式(n-1), ...,式(2)代入式 (1),式(1)代入式 (0),
如此可得:
0010()()[,]()
f x f x f x x x x =+-01201[,,]()()f x x x x x x x +--+
01011[,,,]()()()
n n f x x x x x x x x x -+--- 0101[,,,,]()()()
n n f x x x x x x x x x x +---
尤为注意的是:最后一项中,差商部分含有x ,乃是余项部分,记作()n R x ;而前面n +1项中,差商部分都不含有x ,因而前面n +1项是关于x 的n 次多项式,记作()n N x ,这就是牛顿插值公式。
2 算例
例1:当n=1时,
0010()()[,]()f x f x f x x x x =+-0101[,,]()()
f x x x x x x x +--,
其中,
10010()()[,]()
N x f x f x x x x =+-
01
0001
()
y y y x x x x -=+--。
这就是牛顿一次插值多项式,也就是点斜式直线方程。
当n=2时,
0010()()[,]()f x f x f x x x x =+-01201[,,]()()
f x x x x x x x +--
012012[,,,]()()()
f x x x x x x x x x x +---
20010()()[,]()N x f x f x x x x =+-01201[,,]()()
f x x x x x x x +--
这就是牛顿二次插值多项式。
显然,
200()()
N x f x =,
0121010101
()()
()()()()
f x f x N x f x x x f x x x -=+
-=-
012202001
()()
()()()
f x f x N x f x x x x x -=+
--
01122021020112()()()()1()()f x f x f x f x x x x x x x x x x x ⎛⎫--+--- ⎪---⎝⎭
2()
f x =。
即
2()
N x 满足二次插值条件。
0()0f x =,
01[,]1f x x =,
012[,,]4
f x x x =,
0123[,,,] 1.25
f x x x x =-;
则牛顿三次插值多项式为
3()0(1)4(1)(3)
N x x x x =+-+⨯--1.25(1)(3)(4)x x x -⨯---。
3 拉格朗日插值与牛顿插值的比较
(1)
()
n P x 和()
n N x 均是n 次多项式, 且均满足插值条件:
()()(), 0,1,,n k n k k P x N x f x k n
===。
由多项式的唯一性,
()()
n n P x N x ≡,因而,两个公式的余项是相等的,即
(1)01
()
[,,,]()()
(1)!n n n n f f x x x x x x n ξωω+=+
(2)当插值多项式从n-1次增加到n 次时,拉格朗日型插值必须重新计算所
有的基本插值多项式;而对于牛顿型插值,只需用表格再计算一个n 阶差商,然后加上一项即可。
4 等距牛顿插值公式 插值节点为等距节点:
0k x x kh =+,0,1,,k n
=,如下图:
h h h ... h
牛顿插值公式 设等距节点
0k x x kh
=+,
记(),0,1,,k k y f x k n ==.当0[,]n x x x ∈,令0x x th =+,0t n ≤≤. 例如(下
图)
1
2 3
x 在x 2,x 3的中点时,0 2.5x x h
=+。
将牛顿插值公式中的差商用差分代替,而00()()(),
k x x x th x kh t k h -=+-+=-
从而,牛顿插值公式在等距插值节点下的形式为:
00()n N x y t y =+∆+
32
000111(1)(2)(1)(1)(1)3!!2!n t t t y t t t n y t t y n +--∆++--+∆-∆
余项为
(1)(1)11()()()(1)!(1)!
n n R x f x f n n n n ξω++==++1
()(1)()n h t t t n ξ+-- 这是等距牛顿向前插值公式。
例4: 设()x
y f x e ==插值节点为1,1.5,2,2.5,3x =,相应的函数值如下表,
求f (2.2)。
此时[x k , x k+1],x =2.2=1+2.4h 故t=2.4,于是
220001
8.87232
(2.2)(1)2!N y t y t t y ==+∆+-∆
求3(2.2)N 时,在(.)2N 22后加一项:13(1)(2)03!
t t t y
--∆ ,
1
2.4(2.41)(2.42)0.742100.166236=⨯⨯-⨯-⨯=,所以
32(2.2)(2.2)0.166239.03855
N N =+=
求4(2.2)N 时,在3(2.2)N 后再加一项:4
1(1)(2)(3)4!t t t t y ---∆ 1
2.4(2.41)(2.42)(2.43)0.4814624=⨯⨯-⨯-⨯-⨯0.01618=-,所以
43(2.2)(2.2)0.016189.02237N N =-=
2320.15269 , 0.01354 , 0.00264
R R R ==-=
第4讲 曲线拟合
§1.9 曲线拟合的最小二乘法 1 拟合问题的数学提法
通过观测、测量或试验得到某一函数在12
,,,n x x x
的函数值12,,,n y y y。
我们可以用插值的方法对这一函数进行近似,而插值方法要求所得到的插值多项式经过已知的这n 个插值结点;在n 比较大的情况下,插值多项式往往是高次多项式,这也就容易出现振荡现象:虽然在插值结点上没有误差,但在插值结点之外插值误差变得很大,从“整体”上看,插值逼近效果将变得“很差”。
于是,我们采用曲线拟合的方法。
所谓曲线拟合是求一个简单的函数
()y x ϕ=,例如()x ϕ是一个低次多项
式,这儿不要求()y x ϕ=通过已知的这n 个点,而是要求在整体上“尽量好”的
逼近原函数。
这时,在每个已知点上就会有误差
()k k y x ϕ-,1,2,,k n =,数
据拟合就是从整体上使误差()k k y x ϕ-,1,2,,k n
=尽量的小一些。
如果要求
()
1
()n
k
k k y
x ϕ=-∑达到最小,因误差
()
k k y x ϕ-可正可负,本来很大
的误差可能会正负抵消,为防止正负抵消,可以要求1()
n
k k k y x ϕ=-∑
达到最小,但
是由于绝对值函数不可以求导,分析起来不方便,求解也很难。
为了既能防止正负抵消,又能便于我们分析、求解,提出如下问题: 求一个低次多项式()x ϕ,使得()
2
1()n
k k k Q y x ϕ==-∑达到最小,此问题便是一
个曲线拟合的最小二乘问题。
1直线拟合(一次函数) a) 问题的提法
通过观测、测量或试验得到某一函数在
12,,,n
x x x 的函数值
12,,,n
y y y ,
即得到n 组数据11(,)x y ,22(,),,(,)
n n x y x y 如果这些数据在直角坐标系中近似地分布在一条直线上,我们可以用直线拟合的方法。
问题:已知数据
1122(,),(,),
x y x y ,(,)
n n x y ,求一个一次多
项式()x a bx ϕ=+(实际上,就是求a ,b ), 使得
()()
2
2
1
1
(,)()n
n
k k k k k k Q a b y x y a bx ϕ===-=--∑∑ 达到最小
注意到(,)Q a b 中,,k k x y
均是已知的,而a,b 是未知量,(,)Q a b 是未知量a,b 的二元函数,利用高等数学中求二元函数极小值(最小值)的方法,因此,上述问题转化为求解下列方程组
(,)
0(,)0Q a b a
Q a b b ∂⎧=⎪⎪∂⎨
∂⎪=⎪∂⎩
b) 正则方程组 由
()
2
1
(,)n
k k k Q a b y a bx ==--∑得:
1
1(,)
2()0(,)2()0
n
k k k n
k k k
k Q a b y a bx a Q a b y a bx x b
==⎧∂=---=⎪∂⎪⎨∂⎪=---=⎪∂⎩∑∑
得到如下的正则方程组
112111n n
k k k k n n n
k k k k
k k k na x b y x a x b x y
=====⎧⎛⎫
+=⎪ ⎪⎪⎝⎭⎨⎛⎫⎛⎫⎪+= ⎪ ⎪⎪⎝⎭⎝⎭⎩∑∑∑∑∑
这是个关于a,b 的二元一次方程组,称其为最小二乘问题的正则方程组.解得
a,b ,便得到最小二乘问题的拟合函数y a bx =+。
c) 算例
例1. 已知10对数据如下表,利用最小二乘法求拟合曲线
y a bx =+。
244 4.65 5.2 5.66 6.675 3.53 2.7 2.4 2.52 1.5 1.2 1.2
k k
x y
解:先列表来计算四个
∑
:
2
,,,k k k k k
x x y x y ∑∑∑∑
2254104 3.516144316124.6 2.721.1612.465 2.425125.2 2.527.04135.6231.3611.26 1.53696.6 1.243.567.927 1.2498.45025269.12
109.94
k
k k k k x y x x y ∑
形成正则方程组
10502550269.12109.94a b a b +=⎧⎨
+=⎩
解得
6.4383a =,0.7877b =-
于是,最小二乘拟合一次函数为
6.43830.7877y x =-。
第三章 数值积分
一、教学目标及基本要求
通过对本章的学习,使学生掌握积分的数值解法。
二、教学内容及学时分配
本章主要介绍积分的数值解法。
具体内容如下:
第9-10学时讲授内容:机械求积、插值型求积公式。
第11-12学时讲授内容:牛顿柯特斯公式、复化求积公式。
第13-14学时讲授内容:高斯公式、数值微分。
三、教学重点难点
1.教学重点:机械求积、牛顿柯特斯公式;复化求积公式;高斯公式。
2. 教学难点:复化求积公式;高斯公式。
四、教学中应注意的问题
多媒体课堂教学为主。
适当提问,加深学生对概念的理解。
第5讲 机械求积、插值型求积公式
2.0 引 言
1.定积分的计算可用著名的牛顿-莱布尼兹公式来计算:
()()()b
a f x dx F
b F a =-⎰
其中F (x )是f (x )的原函数之一,可用不定积分求得。
然而在实际问题中,往往碰到以下问题: 1)被积函数f (x )是用函数表格提供的;
2)被积函数表达式极为复杂,求不出原函数,或求出原函数后,由于形式复杂不利于计算;
3)大量函数的原函数不容易或根本无法求出,例如
概率积分2
1
0x e dx -⎰,正弦型积分10sin x dx x ⎰,等根本无法用初等函数来表示其原函
数,因而也就无法精确计算其定积分,只能运用数值积分。
2.所谓数值积分就是求积分近似值的方法。
§2.1 机械求积公式
1 数值积分的基本思想
基本思想:定积分的几何意义:曲线)(x f y =,直线b x a x ==,与x 轴所围成得曲边梯形得面积,无论被积函数是什么形式,只要近似计算曲边梯形面积,就可求定积分的值,这就是数值求积的基本思想。
积分中值定理⎰-=b
a f a
b dx x f )()()(ξ,点ξ具体值未知,只要对平均高度
)(ξf 提供一种数值算法,相应就求得一种数值求积方法。
(1) 用f (x )的零次多项式
00()()
y L x f x ==来近似代替()f x ,于是,
110
0001()(()
))(x x x x f x dx f x dx
f x x x ≈=-⎰
⎰
(为左矩公式)。