《计算方法》教案doc.docx
《《计算方法》教案doc.docx》由会员分享,可在线阅读,更多相关《《计算方法》教案doc.docx(18页珍藏版)》请在冰豆网上搜索。
《计算方法》教案doc
《计算方法》教案
(第一章绪论
(1)误差)
选用教材:
高等教育出版社
《计算机数值方法》(第三版)
施吉林等编著
主讲老师:
张利萍
%1.基本内容提要
1.误差的来源
2.浮点数、误差、误差限和有效数字
3.相对误差和相对误差限
4.误差的传播
5.在近似计算中需要注意的一些问题
%1.教学目的和要求
1.熟练掌握绝对误差、绝对误差限、相对误差、相对误差限和有效数字的概念及其相互关系;
2.了解误差的来源以及误差传播的情况,掌握在基本算术运算中误差传播后对运算结果误差限的计算方法和函数求值中的误差估计;
3.理解并掌握几种减少误差避免错误结果应采取的措施,了解选用数值稳定的算法的重要性。
%1.教学重点
1.绝对误差、绝对误差限、相对误差、相对误差限和有效数字的概念及其相互关系,误差传播,减少误差避免错误结果应采取的措施。
%1.教学难点
1.误差传播;2.数值稳定算法的选用。
%1.课程类型
新知识理论课;
%1.教学方法
结合课堂提问,以讲授为主。
%1.教学过程如下:
Introduction
1.《计算方法》课程介绍
计算方法是用数值的方法研究研究科学与工程中的计算问题;它的内容主要包括:
近似值的计算和误差估计两个方面;主要工具:
计算机;地位:
这门课已成为工科各专业,特别是计算机科学与技术、土木工程、机械、数学等专业的必修基础课。
2.发展状况
几十年来,计算方法效率的提高是与计算机速度的提高几乎同步地、同比例地前进的。
这里简述一下国家重点基础研究计划项目(简称973项目y大规模科学计算研究"(1999-2004)的主要内容,可以帮助同学们了解我国科学计算界所关心的问题。
此项目由石钟慈院士等人为首组织,集中了我国计算数学、计算物理、计算力学、计算机、以及材料、环境能源等领域60多名专家,踏学科,踏部门通力合作研究以下几个方面的主要内容:
(1)复杂流体的高精度计算,含天气预报数值模拟研究;
(2)新材料的物理性质机理多尺度计算研究,含超导、超硬度合金等问题的计算研究;
(3)地质油藏模拟与波动问题及其反问题计算研究;
(4)基础计算方法的理论创新与发展;
(5)大规模计算软件系统的基础理论和实施。
计算规模是解决百万级节点问题(即求解百万至千万个未知数的方程组项目的目标是在几个重大科技难题的计算研究中取得突破性进展,并在国际科学计算的学科前沿取得重要的一席之地。
3.我国计算科学主要专家简介
冯康(1920-1993)院士,早年学习物理,后去苏联研究拓扑学和函数论,有深厚的数学和物理功底。
1957年受命组建国家计算中心,为推动我国计算科学进入国际前列,培养一批批优秀人才,做出了不朽的贡献。
冯院士一生中作出两项国际公认的重大创造,早在20世纪60年代,独立提出变分差分格式(即有限元),用于计算水坝很成功,1964年在国际上首次证明有限元的收敛性(中文发表),比MZIanal早四年,接着10年文化大革命,冯康的工作几乎被淹没,到70年代末才被国际公认为有限元理论的开拓者。
1984年又开创了Hanil11on系统的辛几何算法。
周毓麟(1923-)院士,著名的拓扑学、偏微分方程与计算科学家。
1945年毕业于大同大学数学系,后在北京大学任教,1953年留学莫斯科大学研究偏微分方程,是我国最早用先验估计和拓扑方法研究偏微分方程的专家。
1957年回国在北大任教,1960年调国防科工委从事核武器与数值模拟的研究,为"两弹一星”的成功做出了默默的贡献,这20年的工作鲜为人知,仍公开发表百余篇论文,他对差分法首次建立离散Sobolev空间的嵌入理论,并用于偏微分方程的研究,建立了全新体系。
石钟慈(1933-)院士,早年在浙江大学和复旦大学学习基础数学,后留学苏联学习计算数学,在中国科学院成为冯康的得力助手、合作者和接班人。
与冯康合作研究弹性组合结构的数学理论,获得国家自然科学奖。
20世纪80年代初,是我国最早赴德国洪堡基金会研究的学者之一。
在对四阶板问题的非协调元的研究中,首次提出了非协调元收敛的F-E-M检验准则,成为以后一系列研究的基石,也培养了一批批优秀的人才。
今年来对瀑布式网格法研究中,证明了最佳收敛性,并引发了一系列工作。
1993年冯康院士去世后,石钟慈院士成为我国计算数学的领头人,为继续推动我国科学计算进入世界强国做出了贡献。
我国计算数学界的院士还有林群和催俊芝。
4.河南省计算数学发展状况介绍
5.河南大学计算数学发展状况介绍
6.课堂纪律要求,作业收交安排和答疑办法。
第一章误差
1.1误差的来源
用数学作为工具解决实际问题过程:
实际问题一数学模型f数值计算方法
f程序设计一上机计算结果。
从上述过程看,影响计算精度的误差可分为两类:
一类是过失误差",人为造成的,可以避免;另一类是"非过失误差",无法避免。
按来源的不同,分为下面几种:
1.模型误差:
数学模型与实际问题之间出现的不可避免的误差。
将实际问题转化为数学问题,即建立数学模型时,对被描述的实际问题进行了抽象和简化,忽略了一些次要因素,数学模型只是客观世界的一种近似描述,之间存在一定的差别。
属于"非过失误差"。
例如,用
1,
s^2gt'
描述自由落体规律,就是一个数学模型,此模型建立时忽略了空气阻力等因素。
如果用孑什)表示真正的运动规律,则模型误差为
一,、1,
SO
2.观测误差:
建立模型和数值计算过程中,通常用到一些观测数据,由于仪器设备精度的限制,观测值和实际值之间的误差称为观测误差,也叫数据误差。
3.截断误差:
在计算中常遇到只有通过无限过程才能得到的结
果,但在实际计算中只能用有限过程来计算,于是产生了有限过程代替无限过程的误差,这种误差称为截断误差,也叫方法误差。
本课程主要研究该误差。
例如,指数函数在X=0点有Taylor展式
(Ix1<1)
亍Xn
e'=l+x+—+…
2!
n\
实际计算时只能取前面的有限项(例如〃项)
截断误差:
8k〃一1k
-一Y—Jk'乙k'°k=0K.k=。
K.
4.舍入误差:
数值计算过程中遇到的数据可能位数很多,也可
能是无穷小数,但在计算时只能对有限位数进行运算,往往要进行四舍五入,这样产生的误差称为舍入误差。
例如,兀等,在计算时只能取有限位数进行运算,要进行四舍五入。
3
少量舍入误差微不足道,但在计算机上完成百千万次运算后,舍入误差的积累有时是很大的。
前两种误差是客观存在的,后面两种是计算方法所引起的,本课程所研究的内容只涉及后两种误差。
1.2浮点数、误差、误差限和有限数字
一.浮点数
1.浮点数:
(1)浮点数属于有理数集的某特定子集,为该特定子集中数的数字表示;
(2)浮点数可以用来近似表示任意一个实数,这种表示方法类似于基数为10的科学计数法;(3)如何一个浮点数x均可表示为
%=+a)x/3'=±0.«]«2■■■atx/3J,L其中,0叫做这个数x的基(10进制中Q=1O,二进制中尸=2),J是阶,取整数,切是尾数,由t位小数构成,t又称精度,O<«;<^-l(z=l,2,---/)o
所谓浮点数就是小数点在逻辑上是不固定的,而定点数只能表示小数点固定的数值,具用浮点数或定点数表示某哪一种数要看用户赋予了这个数的意义是什么。
浮点计算是指浮点数参与的运算,这种运算通常伴随着无法精确表示而进行的近似或舍入。
2.浮点数的规格化(normalize)
浮点数在计算机中的表示是基于科学计数法(Scientifichbtation).例如,32676用科学计数法可写成:
3.2676xio4,3.2676称为尾数(IVftintissa\maen'tisa、,或者叫Significand).4称为指数(Exponent),10为基数(Radix).浮点数在计算机中的表示于此类似,只不过基数是2而不是10.例如:
17=17.0x10°=0.17x102,
类似地
17=(10001)2x2°=(0.10001)2x25,
可以看出,每个浮点数的表示都不唯一,这样给计算机处理数据增加了复杂性。
为了解决这个问题,规定尾数部分的最高位必须是1,也就是说尾数必须以0.1开头,只对指数做相应的调整,这称为正规化,也叫规格化。
注:
二进制:
除2取余!
例如,100用二进制表示(嚎示求余数,
/表示整数除法,忽略余数):
100^=0
'二进制最后一位',
100/2=50;
50呢=0
'二进制倒数第二位\,
50/2=25;
数)
25呢=1
'二进制倒数第三位',
25/2=12;(忽略余
12^=0
'二进制倒数第四位',
12/2=6;
6呢=0
'二进制倒数第五位',
6/2=3;
3呢=1
'二进制倒数第六位',
3/2=1;
1呢=1
'二进制倒数第七位',
结束。
100用二进制表示为
1100100=1x22+1x25+1x26o
二.误差、误差限和有效数字
1.误差:
数X的一个近似值X,与准确值X的差称为误差。
用e,来表
e—x-xr误差可证可负,近似值大于准确值,误差为正,叫"强近似";近似值小于准确值,误差为负,叫"弱近似"。
2.误差限:
误差绝对值的上限。
用b表示,即
|e*|=|x-x|<£*
nx-£因此,可以用误差限表示近似值X*的精确度
*I*
X-X±£.
例.用有毫米刻度的尺子测量桌子长度,x*=1235mm,是实际长度的一个近似值,由米尺的精度知,误差不会超过半个毫米,则有
|/-x|=|1235-x|<|
即
1234.5<%<1235.5,写成
x=(1235±0.5)mm.
对于一个近似值,除了用误差表示精确程度外,还希望这个近似值本身就能表示出它的准确程度。
于是引入有效数字的概念。
引例,X=0=1.732050808…,下面通过四舍五入取近似值:
取3位:
%=1.73,£*(%)<0.005;
取5位:
x=1.7321,£*(%)<0.00005,
这种近似值取法的特点是它们的误差都不超过末位数字的半个单位,即
|V3-1.73|<-xl0
2
|V3-1.7321l^-xlO-4.
2
3.有效数字:
如果近似值的误差限是某位上的半个单位时,称近似值“准确”到这一位,且该位直到¥的第一位非零数字一共有n位,则称X*有n位有效数字。
X*=****.・.*********<—误差限不超过该位的半个单位
□从左向又看第一个非零数
注意:
在同一问题中,参加运算的数都应该有相同位数的有效数字。
例,x=m=3.14159265…,按四舍五入的原则
取1位:
=3,e;=-0.14;
取3位:
X,*=3.14,e*=-0.0016;
取5位:
<=3.1416,e;=+0.000007;
3.有效数字和误差限之间的关系
在有效数字的定义中给出了有效数字和误差限之间的关系。
一般地,设有一个数X,其近似值Xs的表示成规格化浮点数为:
X*=±0.%%"anX1°",
其中,都是0,1,2,…,臼中的一个数字,且n是
正整数,m为整数。
那么的误差限为
|£*(x)|弓><10"5
称x*具有n位有效数字,或称它精确到1(T"。
上式表达了有效数字和绝对误差限之间的关系,可以看出:
有效数字的位数越多,其绝对误差限也就越小。
例,
(1)若X*=3587.64是x的具有6位有效数字的近似值;
(2)若%*=0.0023156是x的具有5位有效数字的近似值;分别求其误差限。
解:
(1)X*=0.358764x104,所以秫=4,有|./-x|<-xl04_6=-xl0-2;
22
(2)x*=0.23156x10—2,所以m=—2,有
|x*-x|〃xl04=Lxio-7;
22
当然,也可以由有效数字的定义直接读出两数的误差限分别为:
0.005和0.00000005.
1.3相对(relative)误差和相对误差限
1.相对误差:
误差与精确值的比值,即
**
*ex-x
er=—=o
xx
注:
实际应用中,真值X无法知道,通常取e;=U=g。
XX
2.相对误差限:
相对误差绝对值的上界,记为,("为x*
的误差限),
注:
为了区别相对误差与前面所讲的误差,把前面讲的误差称为绝对误差。
例光速c=(2.997925±0.000001)xl0i°cm/s,近似值c*=2.997925xlO10cm/5,计算c*的误差、误差限、相对误差和相对误差限。
解:
误差:
e*=c*-c=0.000001x101°,
误差限:
|广1=1x10'•-^IxlO4>|e*I,
22
相对误差:
*_e*_0.000001
勺—c*~2.997925X1O10'
矩*、口世厢*e0.00005
"|c|2.997925x10
3.相对误差限与有效数字位数的关系
(1)X*有n位有效数字习药=土乂105)
分析:
设
%*=±O.ara2■anx10m
为10进制规格化浮点数,则有
xlQml<\x|<(%+l)xlO"'T
习£=|xfI<2=J_xi()-妇)
|x*|xlOffl2%
即,相对误差限可以取为:
£=1x105,
'2%
该式表达了有效数字位数n与相对误差限之间的关系。
反过来,有下面的结论:
(2)^;<——xios>nx*至少有n位有效数字。
2(%+1)
证明:
因为|x*—X1=1X*|£;<(%+1)x10"ix—-—XlOTi'2(%+1)
=Lx10"e
2
由误差限与有效数字的关系知道结论成立。
例,用,表示e具有3位有效数字的近似值,求相对误差限。
解:
=J-X1OTT=」—XIO”。
=J_xlO-2.
'2(Z]2x24
Summary
绝对误差0)、绝对误差限笆)、相对误差(e;)及相对误差限总)
与有效数字之间的关系
(1)近似值X*的规格化浮点数表示形式为:
X=±O.a1a2---anxlOm,%。
0;
(2)x,有"位有效数字;
(3)|e*|=|/-x|<.p*<|xlO,,M,;
(4)|<|=14-^<<<^10—|);
|x|2%
(5)|e;|=比寻1<£;<(nx至少有”位有效数字);
|x|2(/+1)
n
(2)
则
(1)⑵[5?
(4)n(5).
n(4)(4)
n⑤
注:
对具体问题而言,可能还可以写出更加具体更加精确的误差限和相对误差限,例如:
^=3.1415929…,若取近似值x*=0.314x10】,按上述统一的方法取误差限为:
<-xl0-2,其实我们可以看出来:
2
|x*-x|<0.2x10-2,即£*<0.2x10-2比0.5x10-2更精确。
即是说,在不同情况下,误差限或相对误差限可以取得不同的结果,但统一取法有时便于问题的讨论。
1.4误差的传播
1.误差的传播:
参与运算的数据往往都带有误差,这些数据的误差在多次的运算中使计算结果产生一定的误差,这就是误差的传播问题。
下面考虑用近似数代替准确数作基本算术运算,研究运算结果的误差限以及函数求值的误差估计问题。
注:
X*的绝对误差常用X的微分来近似地表示,即
dx-e=x-xUAx.
可看作X*是X获得了一个该变量得到的,即
x+Ax=X,
由微分定义知
dx-(x).Ax=Ax=g*°
2.基本运算结果的误差限
结论1设X,和寸分别是X和V的近似值,即
dx-x-x,dy--y,
则直接运用微分运算法则,有
(1)(x±y)-dx+dy;
(2)<7(xy)=ydx+xdy;
(3)d(x/v)=(-xdy+ydx)/y2,y/0.
例.设0=1.21x3.65+9.81,其中每个数据的绝对误差限为0.005,求。
的绝对误差限。
解:
da=<7(1.2lx3.65)+<79.81=3.65x<71.21+1.2lxJ3.65+<79.81
所以,有
|出|<1.21x0.005+3.65X0.005+0.005=0.0293<0.03
结论2若把《X和《丁分别看做X*和y*的相对误差限,即
drx=|—1=|d(lnx)|,(x的相对误差近似地等于Inx的微分)
x
(不妨认为分母都是正的),则有
(1)dr(x+v)=max(d,x,d,.y),x,y同号;
(2)dr{x-y)-(\x\drx+\y\dry)/\x-y\,同号;
(3)dr{xy)-drx+dry;
(4)d^x/y)-drx+dry,yAO・
证明:
(1)d,(x+Y)*(x+V)=臣也=二.巫+工也x+yx+yx+yxx+yy
x,y,
=ax+dry・
尤+yx+y
若与X,同号,则上式右端d,.x和d,〃的系数工和工都在0和1之
x+yx+y
间,且它们的和等于1,所以有
JQV
d\x+y}x+yx+y
=max{drx,dry}・
综上知有
dr(x+v)=max(i/rx,dry)
-n,,、d(x—y)dx-dyxdxydy
(Z)<(x-v)===:
x-yx-yx-yxx-yy
<\x\drx+\y\dry
_|x-v|
故
(2)成立。
(3)dr(xy)~|dln(xy)\=\dinx+diny\<\dinx\\diny\=drx+dry.
故(3)成立.
(4)d(x/v)~|dln(—)|=|JInx-JIny|=|dx-dy\y
故(4)成立。
例上例中。
的相对误差限
dra-max(d,.(1.21x3.65)0.9.81)-max(d,.1.21+d,.3.65,49.81)
=max(dl.21/1.21+d3.65/3.65,d9.81/9.81)=max(0.005/1.21+0.005/3.65,0.005/9.81)-max(0.0055,0.005)=0.0055.
3.函数求值的误差估计
由于X不精确,计算/■(》)时会产生误差。
有下面的结论
结论:
假定/■在包含X和X,的区间上足够光滑,用f(x,)去近似
f(x),则/■(》)的相对误差限有下面的关系
分析:
由Taylor公式可得
火)2("四)=E(D+孚(5
其中§在》和》*之间。
若/'"(X)与/''(X)相比不太大,则忽略伺]阶项得
W(X)=d『(x)=f(x)dx
旦df(x)=f\x\xdx
/■(x)f(x)x
注:
上式中系数丑公表示X的相对误差经过传播后增大或者缩f(x)
小的因子。
多元函数值的误差科研多元函数的Taylor公式得到。
这里我们以二元函数为例,给出误差估计的一般公式。
对于二元函数V=/(x,,x2),设X*,x\,y分别是的近似值,且
/=,将函数在(为,》2)处作Taylor展开,得
=y(X],工2)+(X;—一工2)]
+=[字一工1)2+2:
{(X;—X[)(X;一工2)+字'(X;一工2)2]2!
dxfox;ox2ox2
+
所以,忽略高阶项后有
e*(/)=Af=/(%*,%*)-/(%!
x2)
=e*(%!
)+e(x,)
dx{ox2
这里,两个系数要和字分别是*和x;的绝对误差增长的因子,表示绝对误差经传播后增大或缩小的倍数。
*(f)=e*(f)=e*(x;)|afe*(x;)
yoxxyox2y
=鼻知(第)+£•客e:
(£)
ydx1yox2
两个系数Eg和E半分别是x;和x:
对v*的相对误差增长的因子,
ydxryox2
表示相对误差经传播后增大或缩小的倍数。
上述讨论结果可以推广到一般的n元函数
将/'(知知…,X”)在点(知知…,X”)处作Taylor展开,并略去伺)阶项,即可得函数的近似值/=f(x,的绝对误差和相对误差的估计式:
e*(y)Rg[牙•£*(>:
)],
e;(y)=力反字祯等)]
日vdx,
系数分别表示自变量的误差经传播变化的倍数。
1.5在近似计算中要注意的一些现象
%1.避免两个相近的数相减
1.例:
x=0.3721478693,y=0.3720230572,x*=0.37215,/=0.37202;则有:
x-y=0.0001248121,=0.00013
那么相对误差为
(/-v*)-(x-v),,0.00013-0.0001248121,An/
———1=|==4%.
x-v0.0001248121
这个相对误差是很大的。
2.原因分析:
如果X和y很接近,它们的差u^x-y就很小,因而"的相对误差就很大。
另一方面,从相对误差的公式来看:
<<—xlO^-"
'2/
/和/的前面几位有效数字相同,相减后有效数字位数会大大减少,致使相对误差增大。
4.解决办法:
(1)取近似值时,多保留几位有效数字(上例适
用);
(2)有时可以通过变换计算公式,以防止这种现象出现;看下面
例子:
例I:
当X接近于零时,要计算5m,应先变换为淄土;
sin尤1+cosx
当X充分大时,要计算右,应先变换为/1/.
%1.两个相差很大的数进行运算时,要防止小的那个数被“吃掉”
大数’吃掉"小数有些情况是允许的,但有些情况下会造成谬误。
为说明这一点,下面举个例子
例:
计算方程x2-(109+l)x+109=0的根.
分析:
用因式分解法,得(x-109)(x-l)=0,两根为:
%]=109,x2=1.
如果只能用将数表达到小数点后8位的计算机,按二次方程求根
的公式编制程序进行计算,则有
-b+\lb~-4ac
其中,-z,=109+1=O.1X1O10+0.0000000001X1O10,由于只能表达到小数点
后8位,故0.0000000001X1O10将不起作用(即被"吃掉”因
b'-4u