计算方法教案

计算方法教案
计算方法教案

《计算方法》教案

(第一章绪论(1)误差)

选用教材:高等教育出版社

《计算机数值方法》(第三版)

施吉林等编著

主讲老师:张利萍

一.基本内容提要

1. 误差的来源

2. 浮点数、误差、误差限和有效数字

3. 相对误差和相对误差限

4. 误差的传播

5. 在近似计算中需要注意的一些问题

二.教学目的和要求

1. 熟练掌握绝对误差、绝对误差限、相对误差、相对误差限和有

效数字的概念及其相互关系;

2. 了解误差的来源以及误差传播的情况,掌握在基本算术运算中

误差传播后对运算结果误差限的计算方法和函数求值中的误

差估计;

3. 理解并掌握几种减少误差避免错误结果应采取的措施,了解选

用数值稳定的算法的重要性。

三.教学重点

1.绝对误差、绝对误差限、相对误差、相对误差限和有效数字的

概念及其相互关系,误差传播,减少误差避免错误结果应采取的措施。

四.教学难点

1.误差传播;

2. 数值稳定算法的选用。

五.课程类型

新知识理论课;

六.教学方法

结合课堂提问,以讲授为主。

七.教学过程如下:

Introduction

1.《计算方法》课程介绍

计算方法是用数值的方法研究研究科学与工程中的计算问题;它的内容主要包括:近似值的计算和误差估计两个方面;主要工具:计算机;地位:这门课已成为工科各专业,特别是计算机科学与技术、土木工程、机械、数学等专业的必修基础课。

2.发展状况

几十年来,计算方法效率的提高是与计算机速度的提高几乎同步地、同比例地前进的。这里简述一下国家重点基础研究计划项目(简称973项目)“大规模科学计算研究”(1999-2004)的主要内容,可以帮助同学们了解我国科学计算界所关心的问题。此项目由石钟慈院士等人为首组织,集中了我国计算数学、计算物理、计算力学、计算机、以及材料、环境能源等领域60多名专家,跨学科,跨部门通力合作研究以下几个方面的主要内容:

(1)复杂流体的高精度计算,含天气预报数值模拟研究;

(2)新材料的物理性质机理多尺度计算研究,含超导、超硬度合金等问题的计算研究;

(3)地质油藏模拟与波动问题及其反问题计算研究;

(4)基础计算方法的理论创新与发展;

(5)大规模计算软件系统的基础理论和实施。

计算规模是解决百万级节点问题(即求解百万至千万个未知数的方程组)。项目的目标是在几个重大科技难题的计算研究中取得突破性进展,并在国际科学计算的学科前沿取得重要的一席之地。

3. 我国计算科学主要专家简介

冯康(1920-1993)院士,早年学习物理,后去苏联研究拓扑学和函数论,有深厚的数学和物理功底。1957年受命组建国家计算中心,为推动我国计算科学进入国际前列,培养一批批优秀人才,做出了不朽的贡献。冯院士一生中作出两项国际公认的重大创造,早在20世纪60年代,独立提出变分差分格式(即有限元),用于计算水坝很成功,1964年在国际上首次证明有限元的收敛性(中文发表),比M.Zlamal早四年,接着10年文化大革命,冯康的工作几乎被淹没,到70年代末才被国际公认为有限元理论的开拓者。1984年又开创了Hamilton系统的辛几何算法。

周毓麟(1923- )院士,著名的拓扑学、偏微分方程与计算科学家。1945年毕业于大同大学数学系,后在北京大学任教,1953年留学莫斯科大学研究偏微分方程,是我国最早用先验估计和拓扑方法研究偏微分方程的专家。1957年回国在北大任教,1960年调国防科工委从事核武器与数值模拟的研究,为“两弹一星”的成功做出了默默的贡献,这20年的工作鲜为人知,仍公开发表百余篇论文,他对差

分法首次建立离散Sobolev空间的嵌入理论,并用于偏微分方程的研究,建立了全新体系。

石钟慈(1933- )院士,早年在浙江大学和复旦大学学习基础数学,后留学苏联学习计算数学,在中国科学院成为冯康的得力助手、合作者和接班人。与冯康合作研究弹性组合结构的数学理论,获得国家自然科学奖。20世纪80年代初,是我国最早赴德国洪堡基金会研究的学者之一。在对四阶板问题的非协调元的研究中,首次提出了非协调元收敛的F-E-M检验准则,成为以后一系列研究的基石,也培养了一批批优秀的人才。今年来对瀑布式网格法研究中,证明了最佳收敛性,并引发了一系列工作。1993年冯康院士去世后,石钟慈院士成为我国计算数学的领头人,为继续推动我国科学计算进入世界强国做出了贡献。

我国计算数学界的院士还有林群和催俊芝。

4. 河南省计算数学发展状况介绍

5. 河南大学计算数学发展状况介绍

6. 课堂纪律要求,作业收交安排和答疑办法。

第一章 误 差

1.1误差的来源

用数学作为工具解决实际问题过程:

实际问题→数学模型→数值计算方法

→程序设计→上机计算结果。

从上述过程看,影响计算精度的误差可分为两类:一类是“过失误差”,人为造成的,可以避免;另一类是“非过失误差”,无法避免。按来源的不同,分为下面几种:

1. 模型误差:数学模型与实际问题之间出现的不可避免的误差。 将实际问题转化为数学问题,即建立数学模型时,对被描述的实际问题进行了抽象和简化,忽略了一些次要因素,数学模型只是客观世界的一种近似描述,之间存在一定的差别。属于“非过失误差”。 例如,用

212

s gt = 描述自由落体规律,就是一个数学模型,此模型建立时忽略了空气阻力等因素。如果用()s t 表示真正的运动规律,则模型误差为

21()2

s t gt -。 2. 观测误差:建立模型和数值计算过程中,通常用到一些观测数据,由于仪器设备精度的限制,观测值和实际值之间的误差称为观测误差,也叫数据误差。

3. 截断误差:在计算中常遇到只有通过无限过程才能得到的结 果,但在实际计算中只能用有限过程来计算,于是产生了有限过程代替无限过程的误差,这种误差称为截断误差,也叫方法误差。

本课程主要研究该误差。

例如,指数函数在0x =点有Taylor 展式

212!!n

x

x x e x n =+++++ (||1)x < 实际计算时只能取前面的有限项(例如n 项) 1

0!k

n k x k -=∑ 截断误差 100!!k k

n k k x x k k ∞

-===-∑∑ 。

4. 舍入误差:数值计算过程中遇到的数据可能位数很多,也可能是无穷小数,但在计算时只能对有限位数进行运算,往往要进行四舍五入,这样产生的误差称为舍入误差。

1,3π等,在计算时只能取有限位数进行运算,要进行四舍五入。 少量舍入误差微不足道,但在计算机上完成百千万次运算后,舍入误差的积累有时是很大的。

前两种误差是客观存在的,后面两种是计算方法所引起的,本课程所研究的内容只涉及后两种误差。

1.2 浮点数、误差、误差限和有限数字

一. 浮点数

1. 浮点数:(1)浮点数属于有理数集的某特定子集,为该特定子集中数的数字表示;(2)浮点数可以用来近似表示任意一个实数,这种表示方法类似于基数为10的科学计数法;(3)如何一个浮点数x 均可表示为

120.,J J t x ωβαααβ=±?=±? L J U ≤≤

其中,β叫做这个数x 的基(10进制中10β=,二进制中2β=),J 是阶,取整数,ω是尾数,由t 位小数构成,t 又称精度,01(1,2,)i i t αβ≤≤-= 。

所谓浮点数就是小数点在逻辑上是不固定的,而定点数只能表示小数点固定的数值,具用浮点数或定点数表示某哪一种数要看用户赋予了这个数的意义是什么。

浮点计算是指浮点数参与的运算,这种运算通常伴随着无法精确表示而进行的近似或舍入。

2. 浮点数的规格化(normalize )

浮点数在计算机中的表示是基于科学计数法(Scientific Notation ).例如,32676用科学计数法可写成:43.267610?,3.2676称为尾数(Mantissa \ m?n'tis ?\, 或者叫Significand ).4称为指数(Exponent ),10为基数(Radix ).浮点数在计算机中的表示于此类似,只不过基数是2而不是10.例如:

021717.0100.1710=?=?,

类似地

052217(10001)2(0.10001)2=?=?,

可以看出,每个浮点数的表示都不唯一,这样给计算机处理数据增加了复杂性。为了解决这个问题,规定尾数部分的最高位必须是1,也就是说尾数必须以0.1开头,只对指数做相应的调整,这称为正规化,也叫规格化。

注:二进制:除2取余!例如,100用二进制表示(%表示求余数,/表示整数除法,忽略余数):

100%2=0 \二进制最后一位\, 100/2=50;

50%2=0 \二进制倒数第二位\, 50/2=25;

25%2=1 \二进制倒数第三位\, 25/2=12;(忽略余数)

12%2=0 \二进制倒数第四位\, 12/2=6;

6%2=0 \二进制倒数第五位\, 6/2=3;

3%2=1 \二进制倒数第六位\, 3/2=1;

1%2=1 \二进制倒数第七位\, 结束。

100用二进制表示为

2561100100121212=?+?+?。

二. 误差、误差限和有效数字

1.误差:数x 的一个近似值x *与准确值x 的差称为误差。用e *来表 示,即

e x x **=-,

误差可证可负,近似值大于准确值,误差为正,叫“强近似”;近似值小于准确值,误差为负,叫“弱近似”。

2.误差限:误差绝对值的上限。用ε*表示,即

||||e x x ε***=-≤

x x x εε****?-≤≤+

因此,可以用误差限表示近似值x *的精确度

x x ε**=±.

例. 用有毫米刻度的尺子测量桌子长度,1235x mm *

=,是实际长度的一个近似值,由米尺的精度知,误差不会超过半个毫米,则有 1|||1235|2

x x x *-=-≤

即 1234.51235.5x ≤≤,

写成

(12350.5)x mm =±.

对于一个近似值,除了用误差表示精确程度外,还希望这个近似值本身就能表示出它的准确程度。于是引入有效数字的概念。

引例, 1.732050808x == ,下面通过四舍五入取近似值:

取3位: 1.73x *

=, ()0.005x ε*≤;

取5位: 1.7321x *=, ()0.00005x ε*≤, 这种近似值取法的特点是它们的误差都不超过末位数字的半个单位,即

2411.73|10,211.7321|10.2

--≤?≤? 3.有效数字:如果近似值x *的误差限是某位上的半个单位时,称近似值“准确”到这一位,且该位直到x *的第一位非零数字一共有n 位,则称x *有n 位有效数字。

n x *=*************← 位误差限不超过该位的半个单位从左向又看第一个非零数

注意:在同一问题中,参加运算的数都应该有相同位数的有效数

字。

例, 3.14159265x π== ,按四舍五入的原则

取1位: 13x *=, 10.14e *≈-;

取3位: 3 3.14x *=, 30.0016e *≈-;

取5位: 5 3.1416x *=, 50.000007e *≈+;

3.有效数字和误差限之间的关系

在有效数字的定义中给出了有效数字和误差限之间的关系。

一般地,设有一个数x ,其近似值x *的表示成规格化浮点数为:

120.10m n x ααα*=±? ,

其中,12,,,n ααα 都是0,1,2,…,9中的一个数字,且10α≠,n 是正整数,m 为整数。那么x *的误差限为

1|()|102

m n x ε*-≤? 称x *具有n 位有效数字,或称它精确到10m n -。

上式表达了有效数字和绝对误差限之间的关系,可以看出:有效

数字的位数越多,其绝对误差限也就越小。

例,(1)若3587.64x *=是x 的具有6位有效数字的近似值;

(2)若0.0023156x *=是x 的具有5位有效数字的近似值;

分别求其误差限。

解:(1)40.35876410x *=?,所以4m =, 有46211||101022

x x *---≤?=?;

(2)2

0.2315610x *-=?,所以2m =-,有 25711||101022

x x *----≤?=?; 当然,也可以由有效数字的定义直接读出两数的误差限分别为:0.005和0.00000005.

1.3 相对(relative )误差和相对误差限

1.相对误差:误差与精确值的比值,即

r

e x x e x x ***

-==。 注:实际应用中,真值x 无法知道,通常取r

e x x e x x ***

**-==。 2.相对误差限:相对误差绝对值的上界,记为:||r x εε**

*=,(ε*为x *

的误差限)。

注:为了区别相对误差与前面所讲的误差,把前面讲的误差称为绝对误差。

例 光速10(2.9979250.000001)10/c cm s =±?,近似值10

2.99792510/c cm s *=?, 计算c *的误差、误差限、相对误差和相对误差限。

解: 10117410

*10

0.00000110,

11||1010||,22

0.000001,2.997925100.00005.|| 2.99792510r r e c c e e e c c εεε***-******=-=?=?=?≥==?==?误差:误差限:相对误差:相对误差限: 3. 相对误差限与有效数字位数的关系

(1)*x 有n 位有效数字?*(1)1

1102n r εα--=

? 分析:设

120.10m n x ααα*=±?

为10进制规格化浮点数,则有

m 111110||(1)10m x αα-*-?≤≤+?

*(1)111110||1210||102m n n r m x x x εαα-*

--*-?-?=≤=?? 即,相对误差限可以取为:

*(1)1

1102n r εα--=?, 该式表达了有效数字位数n 与相对误差限之间的关系。

反过来,有下面的结论:

(2)*(1)11

102(1)n r εα--≤?+?*x 至少有n 位有效数字。

证明:因为 ***1(1)111

||||(1)10102(1)m n r x x x εαα----=?≤+??

?+ 1

102m n -=? 由误差限与有效数字的关系知道结论成立。

例,用*x 表示e 具有3位有效数字的近似值,求相对误差限。 解:*(1)(31)211111*********n r εα-----=

?=?=??.

Summary

一. 绝对误差*()e 、绝对误差限*()ε、相对误差*()r e 及相对误差限*()r ε

与有效数字之间的关系

(1)近似值*x 的规格化浮点数表示形式为:120.10m n x ααα*=±? ,10;α≠

(2)*x 有n 位有效数字;

(3)***1||||102

m n e x x ε-=-≤≤?;

(4)***(1)*1||1||10||2n r r x x e x εα---=≤≤?; (5)**

*(1)*1||1||10||2(1)n r

r x x e x εα---=≤≤?+(?*x 至少有n 位有效数字); 则 (1)(2)(3)(4)(5)

??????????? (2)(3)(4)????? (4)?(5). 注:对具体问题而言,可能还可以写出更加具体更加精确的误差限和相对误差限,例如: 3.1415929π= ,若取近似值*10.31410x =?,按上述统一的方法取误差限为:*21102ε-≤?,其实我们可以看出来:*2||0.210x x --

1.4 误差的传播

1.误差的传播:参与运算的数据往往都带有误差,这些数据的误

差在多次的运算中使计算结果产生一定的误差,这就是误差的传播问题。

下面考虑用近似数代替准确数作基本算术运算,研究运算结果的误差限以及函数求值的误差估计问题。

注:*x 的绝对误差常用x 的微分来近似地表示,即

**dx e x x x ≈=-? .

可看作*x 是x 获得了一个该变量得到的,即

*x x x +?=,

由微分定义知

'*()dx x x x e ≈??=?=。

2.基本运算结果的误差限

结论1 设*x 和*y 分别是x 和y 的近似值,即

*dx x x ≈-, *dy y y ≈-,

则直接运用微分运算法则,有

(1)()d x y dx dy ±=±; (2)()d xy ydx xdy =+;

(3)2()()/,d x y xdy ydx y =-+ 0y ≠.

例. 设 1.21 3.659.81a =?+,其中每个数据的绝对误差限为0.005,求a 的绝对误差限。

解:(1.21 3.65)9.81da d d =?+=3.65 1.21 1.21 3.659.81d d d ?+?+

所以,有

|| 1.210.005 3.650.0050.0050.02930.03da ≤?+?+≈≤

结论2 若把r d x 和r d y 分别看做*x 和*y 的相对误差限,即

|

||(ln )|,r dx d x d x x == (x 的相对误差近似地等于ln x 的微分) |||(ln )|r dy d y d y y

== (不妨认为分母都是正的),则有

(1)()max(,)r r r d x y d x d y +≈,,x y 同号;

(2)()(||||)/||r r r d x y x d x y d y x y -≈+-,,x y 同号;

(3)()r r r d xy d x d y ≈+;

(4)()r r r d x y d x d y ≈+,0y ≠.

证明:(1) ()()r d x y dx dy x dx y dy d x y x y x y x y x x y y +++≈

==?+?++++ r r x y d x d y x y x y

=+++. 若1x 与2x 同号,则上式右端r d x 和r d y 的系数

x y x y x y ++和都在0和1之间,且它们的和等于1,所以有 ()max{,}max{,}r r r r r x y d x y d x d y d x d y x y x y

+≤+++ max{,}r r d x d y =.

综上知有

()max(,)r r r d x y d x d y +≈

(2) ()()r d x y dx dy x dx y dy d x y x y x y x y x x y y ---≈

==?-?---- ||||||

r r x d x y d y x y +≤- 故(2)成立。

(3)()|ln()||ln ln ||ln ||ln |r r r d xy d xy d x d y d x d y d x d y ≈=+≤+=+.

故(3)成立.

(4)()|ln()||ln ln |||r r r r r x d x y d d x d y d x d y d x d y y

≈=-=-≤+. 故(4)成立。

例 上例中a 的相对误差限

max((1.21 3.65),9.81)r r r d a d d ≈?max( 1.21 3.65,9.81)r r r d d d ≈+

max(1.211.21 3.65/3.65,9.81/9.81)d d d =+

max(0.005/1.210.005/3.65,0.005/9.81)=+

max(0.0055,0.005)0.0055.≈= 3. 函数求值的误差估计

由于x 不精确,计算()f x 时会产生误差。有下面的结论

结论:假定f 在包含x 和*x 的区间上足够光滑,用*()f x 去近似()f x ,则()f x 的相对误差限有下面的关系

'()()()()

r r f x x d f x d x f x ?=. 分析:由Taylor 公式可得

''*'*

*2()()()()()()()2!f f x f x f x f x x x x x ξ?=-=-+- 其中ξ在x 和*x 之间。若''()f x 与'()f x 相比不太大,则忽略高阶项得

'()()()f x df x f x dx ?≈=

'()()()()()df x f x x dx f x f x x

??= 即

'()()()()

r r f x x d f x d x f x ?=.

注:上式中系数'()()

f x x f x ?表示x 的相对误差经过传播后增大或者缩小的因子。

多元函数值的误差科研多元函数的Taylor 公式得到。这里我们以二元函数为例,给出误差估计的一般公式。

对于二元函数12(,)y f x x =,设*12,,x x y **分别是12,,x x y 的近似值,且

*12(,)y f x x **=,将函数在12(,)x x 处作Taylor 展开,得 1212112212

(,)(,)[()()]f f f x x f x x x x x x x x ****??=+-+-?? 222221111222221122

1[()2()()()]2!f f f x x x x x x x x x x x x ****???+-+--+-????+

所以,忽略高阶项后有

*1212()(,)(,)e f f f x x f x x **=?=-

1212

()()f f e x e x x x **??=+?? 这里,两个系数1f x ??和2

f x ??分别是1x *和2x *的绝对误差增长的因子,表示绝对误差经传播后增大或缩小的倍数。 ***12***12()()()()r

e x e x e

f f f e f y x y x y ***

??==+?? ******1212**12

()()r r x x f f e x e x y x y x ??=?+??? 两个系数*1*1

x f y x ???和*2*2x f y x ???分别是1x *和2x *对*y 的相对误差增长的因子,表示相对误差经传播后增大或缩小的倍数。

上述讨论结果可以推广到一般的n 元函数

12(,,,)n y f x x x = .

将12(,,,)n f x x x 在点12(,,,)n x x x 处作Taylor 展开,并略去高阶项,即可得函数的近似值****12(,,,)n y f x x x = 的绝对误差和相对误差的估计式:

*

**1()[()]n i i i

f e y e x x =?≈??∑, *****1()[()]n

i r r i i i x f e y e x y x =?=??∑

系数分别表示自变量的误差经传播变化的倍数。

1.5 在近似计算中要注意的一些现象

一.避免两个相近的数相减

1.例:0.3721478693x =,0.3720230572y =,*0.37215x =,*0.37202y =; 则有:

0.0001248121x y -=, **0.00013x y -=

那么相对误差为 **()()0.000130.0001248121||||4%0.0001248121

x y x y x y ----=≈-. 这个相对误差是很大的。

2.原因分析:如果x 和y 很接近,它们的差u x y =-就很小,因而u 的相对误差就很大。另一方面,从相对误差的公式来看:

*(1)1

1102n r εα--≤? *x 和*y 的前面几位有效数字相同,相减后有效数字位数会大大减少,致使相对误差增大。

4. 解决办法:(1)取近似值时,多保留几位有效数字(上例适

用);(2)有时可以通过变换计算公式,以防止这种现象出现;看下面例子:

例: 当x 接近于零时,要计算1cos sin x x -,应先变换为sin 1cos x x

+; 当x

充分大时,要计算

二.两个相差很大的数进行运算时,要防止小的那个数被“吃掉”

大数“吃掉”小数有些情况是允许的,但有些情况下会造成谬误。为说明这一点,下面举个例子

例:计算方程 299(101)100x x -++= 的根.

分析:用因式分解法,得 9(10)(1)0x x --=,两根为:91210,1x x ==. 如果只能用将数表达到小数点后8位的计算机,按二次方程求根的公式编制程序进行计算,则有

1,2x =其中,910101010.1100.000000000110b -=+=?+?,由于只能表达到小数点后8

位,故100.000000000110?将不起作用(即被“吃掉”)。因

224,b ac b -≈

||b ≈

解得

9110x =, 20x =.

为避免上面的现象出现,算法上做些处理,取

1x =, 在计算2x 时利用根与系数的关系式12c

x x a =,得21

c x ax =,这样可以算出

数值计算方法教学大纲

《数值计算方法》教学大纲 课程编号:MI3321048 课程名称:数值计算方法英文名称:Numerical and Computational Methods 学时: 30 学分:2 课程类型:任选课程性质:任选课 适用专业:微电子学先修课程:高等数学,线性代数 集成电路设计与集成系统 开课学期:Y3开课院系:微电子学院 一、课程的教学目标与任务 目标:学习数值计算的基本理论和方法,掌握求解工程或物理中数学问题的数值计算基本方法。 任务:掌握数值计算的基本概念和基本原理,基本算法,培养数值计算能力。 二、本课程与其它课程的联系和分工 本课程以高等数学,线性代数,高级语言编程作为先修课程,为求解复杂数学方程的数值解打下良好基础。 三、课程内容及基本要求 (一) 引论(2学时) 具体内容:数值计算方法的内容和意义,误差产生的原因和误差的传播,误差的基本概念,算法的稳定性与收敛性。 1.基本要求 (1)了解算法基本概念。 (2)了解误差基本概念,了解误差分析基本意义。 2.重点、难点 重点:误差产生的原因和误差的传播。 难点:算法的稳定性与收敛性。 3.说明:使学生建立工程中和计算中的数值误差概念。 (二) 函数插值与最小二乘拟合(8学时) 具体内容:插值概念,拉格朗日插值,牛顿插值,分段插值,曲线拟合的最小二乘法。 1.基本要求 (1)了解插值概念。 (2)熟练掌握拉格朗日插值公式,会用余项估计误差。 (3)掌握牛顿插值公式。 (4)掌握分段低次插值的意义及方法。

(5)掌握曲线拟合的最小二乘法。 2.重点、难点 重点:拉格朗日插值, 余项,最小二乘法。 难点:拉格朗日插值, 余项。 3.说明:插值与拟合是数值计算中的常用方法,也是后续学习内容的基础。 (三) 第三章数值积分与微分(5学时) 具体内容:数值求积的基本思想,代数精度的概念,划分节点求积公式(梯形辛普生及其复化求积公式),高斯求积公式,数值微分。 1.基本要求 (1)了解数值求积的基本思想,代数精度的概念。 (2)熟练掌握梯形,辛普生及其复化求积公式。 (3)掌握高斯求积公式的用法。 (4)掌握几个数值微分计算公式。 2.重点、难点 重点:数值求积基本思想,等距节点求积公式,梯形法,辛普生法,数值微分。 难点:数值求积和数值微分。 3.说明:积分和微分的数值计算,是进一步的各种数值计算的基础。 (四) 常微分方程数值解法(5学时) 具体内容:尤拉法与改进尤拉法,梯形方法,龙格—库塔法,收敛性与稳定性。 1.基本要求 (1)掌握数值求解一阶方程的尤拉法,改进尤拉法,梯形法及龙格—库塔法。 (2)了解局部截断误差,方法阶等基本概念。 (3)了解收敛性与稳定性问题及其影响因素。 2.重点、难点 重点:尤拉法,龙格-库塔法,收敛性与稳定性。 难点:收敛性与稳定性问题。 3.说明:该内容是常用的几种常微分方程数值计算方法,是工程计算的重要基础。 (五) 方程求根的迭代法(4学时) 具体内容:二分法,解一元方程的迭代法,牛顿法,弦截法。 1.基本要求 (1)了解方程求根的对分法和迭代法的求解过程。 (2)熟练掌握牛顿法。 (3)掌握弦截法。 2.重点、难点 重点:迭代法,牛顿法。

数值计算实验课题目

数值实验课试题 本次数值实验课结课作业,请按题目要求内容写一篇文章。按题目要求 人数自由组合,每组所选题目不得相同(有特别注明的题目除外)。试题如下: 1)解线性方程组的Gauss 消去法和列主元Gauss 消去法(2人)/*张思珍,巩艳华*/ 用C 语言将不选主元和列主元Gauss 消去法编写成通用的子程序,然后用你编写的程序求解下列84阶的方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 1681684 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 2)解线性方程组的平方根法(4人)/*朱春成、黄锐奇、张重威、章杰*/ 用C 语言将平方根法和改进的平方根法编写成通用的子程序,然后用你编写的程序求解对称正定方程组b Ax =,其中 (1)b 随机的选取,系数矩阵为100阶矩阵 ?????? ???? ? ? ?101 1101 1101 1101 1101110 ; (2)系数矩阵为40阶的Hilbert 矩阵,即系数矩阵A 的第i 行第j 列元素为 1 1-+= j i a ij ,向量b 的第i 个分量为∑=-+ = n j i j i b 1 1 1. 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编

3.《数值分析简明教程》,王能超编 3)三对角线方程组的追赶法(3人)/*黄佳礼、唐伟、韦锡倍*/ 用C 语言将三对角线方程组的追赶法法编写成通用的子程序,然后用你编写的程序求解如下84阶三对角线方程组 ???? ?????? ? ??=??????????? ????????????? ? ?1415151515768 168 168 168 16816 84 8382321 x x x x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值分析简明教程》,王能超编 4)线性方程组的Jacobi 迭代法(3人)/*周桂宇、杨飞、李文军*/ 用C 语言将Jacobi 迭代法编写成独立的子程序,并用此求解下列方程组, 精确到小数点后5位 ???? ? ??=????? ??????? ? ?-149012 2111221 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 5)线性方程组的Gauss-Seidel 迭代法(3人)/*张玉超、范守平、周红春*/ 用C 语言将Gauss-Seidel 迭代法编写成独立的子程序,并用此求解下列方程组,精确到小数点后5位 ???? ? ??=????? ??????? ? ?--39721 1111112 3 2 1 x x x 参考书目: 1.《计算机数值方法》,施吉林、刘淑珍、陈桂芝编 2.《数值线性代数》,徐树方、高立、张平文编 3.《数值分析简明教程》,王能超编 6)解线性方程组的最速下降法法(2人)/*赵育辉、阿热孜古丽*/ 用C 语言将最速下降法编写成通用的子程序,然后用你编写的程序求解对称

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

数值分析教案 ShandongUniversity

数值分析教案土建学院 工程力学系 2014年2月

一、课程基本信息 1、课程英文名称:Numerical Analysis 1 2、课程类别:专业基础课程 3、课程学时:总学时32 4、学分:2 5、先修课程:《高等数学》、《线性代数》、《C 语言》 6、适用专业:工程力学 二、课程的目的与任务: 数值分析是工程力学专业的重要理论基础课程,是现代数学的一个重要分支。其主要任务是介绍进行科学计算的理论方法,即在计算机上对来自科学研究和工程实际中的数学问题进行数值计算和分析的理论和方法。通过本课程的学习,不仅使学生初步掌握数值分析的基本理论知识,而且使学生具备一定的科学计算的能力、分析问题和解决问题的能力,为学习后继课程以及将来从事科学计算、计算机应用和科学研究等工作奠定必要的数学基础。 三、课程的基本要求: 1.掌握数值分析的常用的基本的数值计算方法 2.掌握数值分析的基本理论、分析方法和原理 3.能利用计算机解决科学和工程中的某些数值计算应用问题,增强学生综合运用知识的能力 4.了解科学计算的发展方向和应用前景 四、教学内容、要求及学时分配: (一) 理论教学: 引论(2学时) 第一讲(1-2节) 1.教学内容: 数值分析(计算方法)这门课程的形成背景及主要研究内容、研究方法、主要特点;算法的有关概念及要求;误差的来源、意义、及其有关概念。数值计算中应注意的一些问题。 2.重点难点: 算法设计及其表达法;误差的基本概念。数值计算中应注意的一些问题。3.教学目标: 了解数值分析的基本概念;掌握误差的基本概念:误差、相对误差、误差限、相对误差限、有效数字;理解有效数字与误差的关系。学会选用相对较好的数值计算方法。 2 A 算法 B误差 典型例题

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过 实验或观测得到量x与y的一组数据对(X i ,Y i )(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或 拟合已知数据。f(x,c)常称作拟合模型,式中c=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

数值计算方法教案5

§3 最佳平方逼近 3.1法方程 设已知],[)(b a C x f ∈,且选择一函数类{ })(,),(),(10x x x Span S n ???Λ=,其中],[)(b a C x i ∈?且设{})(,),(0x x n ??Λ在],[b a 上线性无关(例如取n H S =或 {}nx nx x x S cos ,sin ,,cos ,sin ,1Λ=等)。 研究最佳平方逼近问题:寻求S x P n ∈)(* dx x P x f x dx x P x f x n b a b a S x P 2*2)())()(()())()(()(min -=-??∈ωω (3.1) 或写为 2 2* 22 )(min x p f p f n S P -=-∈ 这里我们主要研究],[)(b a C x f ∈最佳平方逼近函数)(*x P n 存在性,唯一性,计算等问题。 设有S x P n ∈)(* ,即∑== n j j j n x a x P 0 **)()(? 使(3.1)式成立,来考查{}*j a 应满足什么条件。 对于任一S x P ∈)(,即有∑== n j j j x a x P 0 )()(? ,于是 dx x P x f x P f b a 22 2))()(()(-=-?ω dx x a x f x n j j j b a 2 ))()(()(∑?=-= ?ω ),,,(10n a a a I Λ= (3.2) dx x P x f x P f n b a n 2*2 2 *))()(()(-=-?ω dx x a x f x n j j b a j 20 * ))()(()(∑?=-= ? ω ),,,(* **10n a a a I Λ= (3.2)式说明均方误差是),,(10n a a a Λ多元函数(为二次函数),由设存在)(* x P n 是极值问题 (3.1)解,即说明存在),,(* **10n a a a Λ使 ),,(),,,(min 1010***=n n a a a a I a a a I i ΛΛ实数 由多元函数取极值的必要条件,则有

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

数值分析实验报告1

实验一 误差分析 实验(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对()中19x 的系数作一个小的扰动。我们希望比较()和()根的差别,从而分析方程()的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b =

的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve = ))20:1((ve poly roots + 上述简单的Matlab 程序便得到()的全部根,程序中的“ess ”即是()中的ε。 实验要求: (1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。 如果扰动项的系数ε很小,我们自然感觉()和()的解应当相差很小。计算中你有什么出乎意料的发现表明有些解关于如此的扰动敏感性如何 (2)将方程()中的扰动项改成18x ε或其它形式,实验中又有怎样的现象 出现 (3)(选作部分)请从理论上分析产生这一问题的根源。注意我们可以将 方程()写成展开的形式, ) 3.1(0 ),(1920=+-= x x x p αα 同时将方程的解x 看成是系数α的函数,考察方程的某个解关于α的扰动是否敏感,与研究它关于α的导数的大小有何关系为什么你发现了什么现象,哪些根关于α的变化更敏感 思考题一:(上述实验的改进) 在上述实验中我们会发现用roots 函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。

数值计算方法

《数值计算方法》 实习报告 题目: 院系: 专业年级: 学生姓名:学号: 年月日

报告规范 一、报告格式基本要求 格式基本要求: (1) 纸型:A4纸,单面打印; (2) 页边距:上2.5cm,下2.5cm,左3cm、右2.5cm,左侧装订; (3) 字体:正文全部宋体、小四; (4) 行距:多倍行距:1.25,段前、段后均为0,取消网格对齐选项。 二、论文页脚的编排 一律用阿拉伯数字连续编页码。页码应由正文首页开始,作为第1页。页码必须标注在每页页脚底部居中位置,宋体,小五。 三、正文格式 正文手动设置成每段落首行缩进2字,字体:宋体,字号:小四,行距:多倍行距1.25,间距:前段、后段均为0行,取消网格对齐选项。 四、标题格式 正文各级标题编号的示例如下所示: 1.第一级标题选用中文的数字编号,如一、二、三……..,设置成字体:黑体,居左,字号:小三,1.5倍行距,段后11磅,段前为0。 2.第二级标题选用1、2、3……..作为编号,设置成字体:黑体,居左,字号:四号,1.5倍行距,段后为0,段前0.5行。 3.第三级标题选用(1)、(2)……..作为编号,设置成字体:黑体,居左,字号:小四,1.5倍行距,段后为0,段前0.5行。 4.第四级标题选用①、②…….. 作为编号,设置成字体:黑体,居左,字号:小四,1.5倍行距,段后为0,段前0.5行。 五、图的格式 1.图的绘制方法 (1)插图、照片应尽量通过扫描粘贴进本文。

(2)简单文字图可用WORD直接绘制。 2.图的位置 (1)图居中排列。 (2)图与上文应留一行空格。 (3)图中若有附注,一律用阿拉伯数字和右半圆括号按顺序编排,如注1),附注写在图的下方。 3.图的版式 (1)“设置图片格式”的“版式”为“上下型”或“嵌入型”,不得“浮于文字之上”。 (2)图的大小尽量以一页的页面为限,不要超限,一旦超限要加续图。4.图名的写法 (1)图名居中并位于图下,编号以全文连续编号,如图1、图2。 (2)图名与下文留一空行。 (3)图及其名称要放在同一页中,不能跨接两页。 (4)图内文字清晰、美观。 (5)中文图名设置为宋体,五号,居中。 六、表格的格式 1.表的绘制方法 表要用WORD绘制,不要粘贴。 (1)表的位置 (2)表格居中排列。 (3)表格与下文应留一行空格。 (4)表中若有附注,一律用阿拉伯数字和右半圆括号按顺序编排,如注1),附注写在表的下方。 2.表的版式 表的大小尽量以一页的页面为限,不要超限,一旦超限要加续表。 3.表名的写法 (1)表名应当在表的上方并且居中。如表1、表2。 (2)表名与上文留一空行。 (3)表及其名称要放在同一页中,不能跨接两页。 (4)表内文字全文统一,设置为宋体,五号。

数值计算方法实验5

实验报告 学院(系)名称: 主程序部分列选主元部分

实验结果: 一.列主元消去法 输入各个数据,最终使用列选主元法,得到结果为:x1=x2=x3=1二.高斯-赛德尔迭代法 输入各个数据,输出每一步迭代数据,最终结果为:x1=0.285716,附录(源程序及运行结果) 一.列主元高斯消去法 #include #include void print(double a[3][3],int n,double b[3]){ printf("输出矩阵:\n"); for(int i=0;ifabs(d)){ d=a[i][k]; l=i; } i++; } printf("选出主元:%lf\n",d); if(d==0) printf("矩阵奇异!\n"); else if(l!=k){ for(int j=k;j

《数值分析》教案

1.7.2 三次样条插值的基本原理 三次样条插值也是一种分段插值方法,用分段的三次多项式构造成一个整体上具有函数、一阶和二阶导函数连续的函数,近似地替代已知函数)(x f ,“样条”一词源于过去绘图员使用的一种绘图工具样条,它是用于富于弹性、能弯曲的木条(或塑料)制成的软尺,把它弯折靠近所有的基点用画笔沿着样条就可以画出连续基点的光滑曲线。 假设已知函数)(x f 在区间],[b a 上的)1(+n 个节点b x x x x x a n n =<<<<<=-1210 及其对应的函数值 i i y x f =)(,),,2,1,0(n i =,即给出)1(+n 组样本点数据),(,),,(),,(1100n n y x y x y x ,可以构造一个定义在],[b a 上的函数)(x S , 满足下述条件。 ① i i y x S =)(,),,2,1,0(n i = ② )(x S 在每个小区间],[1+i i x x )1,,2,1,0(-=n i 上,都是一个三次多项式: 3 32210)(x a x a x a a x S i i i i i +++= (1-42) ③ )(),(),(x S x S x S '''在],[b a 上连续。 可见,)(x S 是一个光滑的分段函数,这样的函数称为三次样条(Spline )插值函数。 构造的函数)(x S 是由n 个小区间上的分段函数组成,根据条件②,每个小区间上构造出一个三次多项式,第 i 个小区间上的三次多项式为 332210)(x a x a x a a x S i i i i i +++=,共有n 个多项式,每个多项式有4个待定系数。要确定这n 个多项式,就需要确定 4 n 个系数

(完整版)数值计算方法上机实习题答案

1. 设?+=1 05dx x x I n n , (1) 由递推公式n I I n n 1 51+-=-,从0I 的几个近似值出发,计算20I ; 解:易得:0I =ln6-ln5=0.1823, 程序为: I=0.182; for n=1:20 I=(-5)*I+1/n; end I 输出结果为:20I = -3.0666e+010 (2) 粗糙估计20I ,用n I I n n 51 5111+- =--,计算0I ; 因为 0095.05 6 0079.01020 201 020 ≈<<≈??dx x I dx x 所以取0087.0)0095.00079.0(2 1 20=+= I 程序为:I=0.0087; for n=1:20 I=(-1/5)*I+1/(5*n); end I 0I = 0.0083 (3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。 首先分析两种递推式的误差;设第一递推式中开始时的误差为000I I E '-=,递推过程的舍入误差不计。并记n n n I I E '-=,则有01)5(5E E E n n n -==-=-Λ。因为=20E 20020)5(I E >>-,所此递推式不可靠。而在第二种递推式中n n E E E )5 1(5110-==-=Λ,误差在缩小, 所以此递推式是可靠的。出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制, 即算法是否数值稳定。 2. 求方程0210=-+x e x 的近似根,要求4 1105-+?<-k k x x ,并比较计算量。 (1) 在[0,1]上用二分法; 程序:a=0;b=1.0; while abs(b-a)>5*1e-4 c=(b+a)/2;

(完整版)哈工大-数值分析上机实验报告

实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b)<0,且f(x)在[a,b]内仅有一个实根x*,取区间中点c,若,则c恰为其根,否则根据f(a)f(c)<0是否成立判断根在区间[a,c]和[c,b]中的哪一个,从而得出新区间,仍称为[a,b]。重复运行计算,直至满足精度为止。这就是二分法的计算思想。

Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式 产生逼近解x*的迭代数列{x k},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 其中r为要求的方程的根的重数,这就是改进的Newton法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x); y=-x*x-sin(x); 写成如上形式即可,下面给出主程序。 二分法源程序: clear %%%给定求解区间 b=1.5; a=0;

%%%误差 R=1; k=0;%迭代次数初值 while (R>5e-6) ; c=(a+b)/2; if f12(a)*f12(c)>0; a=c; else b=c; end R=b-a;%求出误差 k=k+1; end x=c%给出解 Newton法及改进的Newton法源程序:clear %%%% 输入函数 f=input('请输入需要求解函数>>','s') %%%求解f(x)的导数 df=diff(f);

数值计算方法教学大纲(本)

数值计算方法教学大纲(本) 本着“崇术重用、服务地方”的办学理念和我校“高素质应用型人才”的培养目标,特制定了适合我校工科专业本科生的新教学大纲。 一、课程计划 课程名称:数值计算方法Numerical Calculation Method 课程定位:数学基础课 开课单位:理学院 课程类型:专业选修课 开设学期:第七学期 讲授学时:共15周,每周4学时,共60学时 学时安排:课堂教学40学时+实验教学20学时 适用专业:计算机、电科、机械等工科专业本科生 教学方式:讲授(多媒体为主)+上机 考核方式:考试60%+上机实验30%+平时成绩10% 学分:3学分 与其它课程的联系 预修课程:线性代数、微积分、常微分方程、计算机高级语言等。 后继课程:偏微分方程数值解及其它专业课程。 二、课程介绍 数值计算方法也称为数值分析,是研究用计算机求解各种数学问题的数值方法及其理论的一门学科。随着计算科学与技术的进步和发展,科学计算已经与理论研究、科学实验并列成为进行科学活动的三大基本手段,作为一门综合性的新科学,科学计算已经成为了人们进行科学活动必不可少的科学方法和工具。 数值计算方法是科学计算的核心内容,它既有纯数学高度抽象性与严密科学性的特点,又有应用的广泛性与实际实验的高度技术性的特点,是一门与计算机使用密切结合的实用性很强的数学课程.主要介绍插值法、函数逼近与曲线拟合、线性方程组迭代解法、数值积分与数值微分、非线性方程组解法、常微分方程数值解以及矩阵特征值与特征向量数值计算,并特别加强实验环节的训练以提高学生动手能力。通过本课程的学习,不仅能使学生初步掌握数值计算方法的基本理论知识,了解算法设计及数学建模思想,而且能使学生具备一定的科学计算能力和分析与解决问题的能力,不仅为学习后继课程打下良好的理论基础,也为将来从事科学计算、计算机应用和科学研究等工作奠定必要的数学基础。 科学计算是21世纪高层次人才知识结构中不可缺少的一部分,它潜移默化地影响着人们的思维方式和思想方法,并提升一个人的综合素质。

数值分析实验报告总结

数值分析实验报告总结 随着电子计算机的普及与发展,科学计算已成为现代科 学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 算法算法是指由基本算术运算及运算顺序的规定构成的完 整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 误差 计算机的计算结果通常是近似的,因此算法必有误差, 并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表 第三章泛函分析泛函分析概要 泛函分析是研究“函数的函数”、函数空间和它们之间 变换的一门较新的数学分支,隶属分析数学。它以各种学科

如果 a 是相容范数,且任何满足 为具体背景,在集合的基础上,把客观世界中的研究对象抽 范数 范数,是具有“长度”概念的函数。在线性代数、泛函 分析及相关的数学领域,泛函是一个函数,其为矢量空间内 的所有矢量赋予非零的正长度或大小。这里以 Cn 空间为例, Rn 空间类似。最常用的范数就是 P-范数。那么 当P 取1, 2 ,s 的时候分别是以下几种最简单的情形: 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式: 1 < n1/2 另外,若p 和q 是赫德尔共轭指标,即 1/p+1/q=1 么有赫德尔不等式: II = ||xH*y| 当p=q=2时就是柯西-许瓦兹不等式 般来讲矩阵范数除了正定性,齐次性和三角不等式之 矩阵范数通常也称为相容范数。 象为元素和空间。女口:距离空间,赋范线性空间, 内积空间。 1-范数: 1= x1 + x2 +?+ xn 2-范数: x 2=1/2 8 -范数: 8 =max oo ,那 外,还规定其必须满足相容性: 所以

数值分析实验报告1

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对(1.1)中19x 的系数作一个小的扰动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b = 的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =

数值分析每节课的教学重点、难点.doc

计算方法教案 新疆医科大学 数学教研室 张利萍

一、课程基本信息 1、课程英文名称: Numerical Analysis 2、课程类别:专业基础课程 3、课程学时:总学时54 4、学分:4 5、先修课程:《高等数学》、《线性代数》、《 Matlab 语言》 二、课程的目的与任务: 计算方法是信息管理与信息系统专业的重要理论基础课程,是现代数学的一个重要分支。其主要任务是介绍进行科学计算的理论方法,即在计算机上对来自科学研究和工程实际中的数学问题进行数值计算和分析的理论和方法。通过本课程的学习,不仅使学生初步掌握数值分析的基本理论知识,而且使学生具备一定的科学计算的能力、分析问题和解决问题的能力,为学习后继课程以及将来从事科学计 算、计算机应用和科学研究等工作奠定必要的数学基础。三、课程的基本要求: 1.掌握计算方法的常用的基本的数值计算方法 2.掌握计算方法的基本理论、分析方法和原理 3.能利用计算机解决科学和工程中的某些数值计算应用问题,增强学生综 合运用知识的能力 4.了解科学计算的发展方向和应用前景 四、教学内容、要求及学时分配: (一 ) 理论教学: 引论(2 学时) 第一讲( 1-2 节) 1.教学内容: 计算方法( 数值分析) 这门课程的形成背景及主要研究内容、研究方法、主 要特点;算法的有关概念及要求;误差的来源、意义、及其有关概念。数值计算 中应注意的一些问题。 2.重点难点: 算法设计及其表达法;误差的基本概念。数值计算中应注意的一些问题。 3.教学目标: 了解数值分析的基本概念;掌握误差的基本概念:误差、相对误差、误差限、相对误差限、有效数字;理解有效数字与误差的关系。学会选用相对较好的数值计算方法。

《数值分析》教案5

1.6.4 分段三次Hermite 插值 为了利用多项式插值方法而又克服高次插值多项式的缺陷,便引入了分段插值的概念。它的基本思想是把函数整个区间上分成许多段,每段都选用适当的低次插值多项式代替函数,整体上按一定的要求连接起来,构成一个分段的插值函数。 为此,把函数)(x f 的自变量x 在区间],[b a 上用)1(+n 个节点分割成n 段: b x x x x x a n n =<<<<<=-1210 根据这些节点的取值 i x ,)(x f 在节点上的函数值i i y x f =)(和导数值 i i m x f =')(),,2,1,0(n i =,可以构造一个分段三次插值函数)(x H ,它满足 下述条件: ①i i y x H =)(,i i y x H '=')(),,2,1,0(n i =。 ② 在每个小区间],[1+i i x x ),,2,1,0(n i =上,都是一个三次多项式: 3 32210)(x a x a x a a x H i i i i i +++= 把这样构成的分段三次函数)(x H 称为分段三次Hermite 插值函数,它的 各小段均为三次多项式,而整体上具有一阶连续导数。 由式(1-34)可直接写出分段三次Hermite 插值函数的分段表达式 12 112 1112 1112 111)()(2121)(++++++++++++'??? ? ??---+'???? ??---+??? ? ??--???? ? ?--++???? ??--???? ??--+=i i i i i i i i i i i i i i i i i i i i i i i i y x x x x x x y 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 H 也可通过构造基函数给出分段三次Hermite 插值函数的表达式。参照分段线性插值与Hermite 插值基函数公式(1-31)和式(1-32),可得出分段三次

数值分析实验报告

实验五 解线性方程组的直接方法 实验5.1 (主元的选取与算法的稳定性) 问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。 实验内容:考虑线性方程组 编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss 消去过程。 实验要求: (1)取矩阵?? ? ?? ?? ?????????=????????????????=1415157,6816816816 b A ,则方程有解T x )1,,1,1(* =。取n=10计算矩阵的 条件数。让程序自动选取主元,结果如何? (2)现选择程序中手动选取主元的功能。每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。 (3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。 (4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。重复上述实验,观察记录并分析实验结果。 思考题一:(Vadermonde 矩阵)设 ?? ??????????????????????=? ? ? ?????????????=∑∑∑∑====n i i n n i i n i i n i i n n n n n n n x x x x b x x x x x x x x x x x x A 0020 10022222121102001111 ,, 其中,n k k x k ,,1,0,1.01 =+=, (1)对n=2,5,8,计算A 的条件数;随n 增大,矩阵性态如何变化? (2)对n=5,解方程组Ax=b ;设A 的最后一个元素有扰动10-4,再求解Ax=b (3)计算(2)扰动相对误差与解的相对偏差,分析它们与条件数的关系。 (4)你能由此解释为什么不用插值函数存在定理直接求插值函数而要用拉格朗日或牛顿插值法的原因吗? 相关MATLAB 函数提示: zeros(m,n) 生成m 行,n 列的零矩阵 ones(m,n) 生成m 行,n 列的元素全为1的矩阵 eye(n) 生成n 阶单位矩阵 rand(m,n) 生成m 行,n 列(0,1)上均匀分布的随机矩阵 diag(x) 返回由向量x 的元素构成的对角矩阵 tril(A) 提取矩阵A 的下三角部分生成下三角矩阵

相关文档
最新文档