1、讨论绝对误差(限)、相对误差(限)与有效数字之间的关系。 2、相对误差在什么情况下可以用下式代替?
exxexxr3、查阅何谓问题的“病态性”,并区分与“数值稳定性”的不同点。
21.41,计算 4、 取 21,下列方法中哪种最好?为什么?
6(1)322(2),75232,(3)13322,(4)1216,(5)99702 数值实验
数值实验综述:线性代数方程组的解法是一切科学计算的基础与核心问题。求解方法大致可分为直接法和迭代法两大类。直接法——指在没有舍入误差的情况下经过有限次运算可求得方程组的精确解的方法,因此也称为精确法。当系数矩阵是方的、稠密的、无任何特殊结构的中小规模线性方程组时,Gauss消去法是目前最基本和常用的方法。如若系数矩阵具有某种特殊形式,则为了尽可能地减少计算量与存储量,需采用其他专门的方法来求解。
Gauss消去等同于矩阵的三角分解,但它存在潜在的不稳定性,故需要选主元素。对正定对称矩阵,采用平方根方法无需选主元。方程组的性态与方程组的条件数有关,对于病态的方程组必须采用特殊的方法进行求解。
数值计算方法上机题目1
1、实验1. 病态问题
实验目的:
算法有“优”与“劣”之分,问题也有“好”和“坏”之别。所谓坏问题就是问题本身的解对数据变化的比较敏感,反之属于好问题。希望读者通过本实验对此有一个初步的体会。
数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。
问题提出:
考虑一个高次的代数多项式
p(x)(x1)(x2)...(x20) (xk) (E1-1)
k120显然该多项式的全部根为l,2,„,20,共计20个,且每个根都是单重的(也称为简
单的)。现考虑该多项式方程的一个扰动
p(x)x190 (E1-2) 其中是一个非常小的数。这相当于是对(E1-1)中x的系数作一个小的扰动。我们希望比较(E1-1)和(E1-2)根的差别,从而分析方程(E1-1)的解对扰动的敏感性。
实验内容:
为了实现方便,我们先介绍两个 Matlab函数:“roots”和“poly”,输入函数
u=roots(a)
其中若变量a存储n1维的向量,则该函数的输出u为一个n维的向量。设a的元素依次为a1,a2,...,an1,则输出u的各分量是多项式方程
19a1xna2xn1...anxan10
的全部根,而函数
b=poly(v)
的输出b是一个n+1维变量,它是以n维变量v的各分量为根的多项式的系数。可见“roots”和“Poly”是两个互逆的运算函数.
ve=zeros(1,21); ve(2)=ess;
roots(poly(1:20))+ve) 上述简单的Matlab程序便得到(E1-2)的全部根,程序中的“ess”即是(E1-2)中的。 实验要求:
(1)选择充分小的ess,反复进行上述实验,记录结果的变化并分析它们。如果扰动项的系数很小,我们自然感觉(E1-1)和(E1-2)的解应当相差很小。计算中你有什么出乎意料的发现?表明有些解关于如此的扰动敏感性如何?
(2)将方程(E1-2)中的扰动项改成x或其他形式,实验中又有怎样的现象出现? (3)请从理论上分析产生这一问题的根源。注意我们可以将方程(E1-2)写成展开的形式,
18p(x,)x20x19...0
同时将方程的解x看成是系数的函数,考察方程的某个解关于的扰动是否敏感,与研究它关于的导数的大小有何关系?为什么?你发现了什么现象,哪些根关于的变化更敏感?
2、实验2。多项式插值的振荡现象,即插值的龙格(Runge)现象
问题提出:
考虑在一个固定的区间上用插值逼近一个函数。显然,拉格朗日插值中使用的节点越多,插值多项式的次数就越高、自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼
近的函数。龙格给出的一个例子是极著名并富有启发性的。设区间[1,1]上函数
f(x)实验内容:
考虑区间[1,1]的一个等距划分,分点为
1 2125xxi1则拉格朗日插值多项式为
2i,i0,1,2,...,n nnLn(x)1l(x) 2i125xi0i其中的li(x),i0,1,2,...,n是n次拉格朗日插值基函数。 实验要求:
(l)选择不断增大的分点数目n2,3,...,画出原函数f(x)及插值多项式函数Ln(x)在
[1,1]上的图像,比较并分析实验结果。
(2)选择其他的函数,例如定义在区间[-5,5]上的函数 h(x)重复上述的实验看其结果如何。 (3)区间[a,b]上切比雪夫点的定义为
x,g(x)arctanx 41x xk(2k1)babacos,k1,2,...,n1 22(2(n1)以x1,x2,...,xn1为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果。
3、实验3。 样条插值的收敛性
问题提出:
一般的多项式插值不能保证收敛性,即插值的节点多,效果不一定就好。对样条函数插值又如何呢?理论上证明样条插值的收敛性是比较困难的,也超出了本课程的内容。通过本实验可以验证这一理论结果。
实验内容:
请按一定的规则分别选择等距或者非等距的插值节点,并不断增加插值节点的个数。考虑实验2.中的函数或选择其它你有兴趣的函数,可以用 Matab的函数 “spline”作此函数的三次样条插值。在较新版本的Matlab中,还提供有spline工具箱,你可以找到极丰富的样条工具,包括B-样条。
实验要求:
(1)随节点个数增加,比较被逼近函数和样条插值函数误差变化情况。分析所得结果
并与拉格朗目多项式插值比较。
(2)样条插值的思想最早产生于工业部门。作为工业应用的例子,考虑如下问题:某汽车制造商用三次样条插值设计车门的曲线,其中一段的数据如下: xk yk ' yk0 0.0 0.8 1 0.79 2 1.53 3 2.19 4 2.71 5 3.03 6 3.27 7 2.89 8 3.06 9 3.19 10 3.29 0.2 (3)计算此实验的B-样条插值(选做)。
数值计算方法(二)
1、利用Newton方法和Muller(抛物线)方法计算下列方程
f(x)2xex2cos(x)60
在区间[1,3]上的实根,要求精度为10,并比较迭代次数。
52、用Gauss列主元消去法求解下列方程组
6212813 36424x10x41021033x339
218x416T3、用改进的平方根(ALDL分解)法求解下列方程组
40602
2x112x13022631926x3360255x42
x26516215060实验一
一、实验名称:矩阵的LU分解.
二、实验目的:用不选主元的LU分解和列主元LU分解求解线性方程组 Ax=b, 并比较这两
种方法.
三、实验内容与要求 (1)用所熟悉的计算机语言将不选主元和列主元LU分解编成通用的子程序,然后用编写的程序求解下面的84阶方程组
将计算结果与方程组的精确解进行比较,并就此谈谈你对Gauss消去法的看法。 (2)写出追赶法求解三对角方程组的过程,并编写程序求该实验中的方程组
实验二
一、实验名称:实对称正定矩阵的A的Cholesky分解.
二、实验目的:用平方根法和改进的平方根方法求解线性方程组 Ax=b. 三、实验内容与要求
用所熟悉的计算机语言将Cholesky分解和改进的Cholesky分解编成通用的子程序,然后用编写的程序求解对称正定方程组Ax=b,其中 (1) b随机的选取,系数矩阵为100阶矩阵
(2) 系数矩阵为40阶Hilbert矩阵,即系数矩阵A的第i行第j列元素为
,向量b的第i个分量为
(3) 用实验一的程序求解这两个方程组,并比较所有的计算结果,然后评价各个方法的
优劣。
实验三
实验名称:直接法的时间复杂性试验。
实验目的:分别用三种不同方法求解线性方程组 Ax=b,不同工作量得出不同时间。 实验内容与要求:
生成方程组Axb中矩阵A和右端项b,分别用xA\\b,xinv(A)*b和三角分解法计算,并分别记录所花费的CPU时间,进行分析比较。
实验要求:
(1)取n300,随机生成A的一条主对角线元素和二条次对角线元素,使A为严格对角占优的三对角阵和b;其中三条对角线元素分别用三个一维数组存储;
(2)用Matlab语言自编M文件分别用xA\\b,xinv(A)*b和追赶法计算这三对角方程组;并分别记录所花费的CPU时间;
(3) 分析结果,得出你的结论。
数值分析思考题4
1、Gauss消去法和LU三角分解法解线性方程组的工作量相同吗?工作量为多少?平方根方法的工作量为多少?
2、求解一个线性方程的LU分解法什么条件下可以保障成功?选主元的目的是什么?分别用列主元和全主元Gauss消去法求解下列方程组:
12x13x23x31518x13x2x315 x1x2x363、用平方根方法(Cholesky分解法)求解下列方程组,并用紧凑格式存储。
8x141644x3
5428422x3104、已知线性方程组
2.00021.9998x141.99982.0002x4 21(1)求系数矩阵的逆A和条件数cond(A); (2)若方程组右端有微小扰动
b2104,2104T,不用求解方程
组,试利用解与系数扰动之间的关系式来估计解的相对变化率。
数值分析思考题5
1、插值与拟合的相同点和不同点分别是什么?
2、写出n次多项式拟合的一般形式,奇函数和偶函数的多项式拟合的一般形式。
3、详述你所知道的矩阵分解,它们的意义如何?
4、超定(矛盾)线性方程组的最小二乘解有哪些情况?说明它与广义逆的关系。
5、给出各种正交化方法的优劣比较。
6、用Householder变换求解下列线性方程组的极小最小二乘解
111111244x1235x253466
x34577x49568
实验一
1.根据Matlab语言特点,描述Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法。 2.编写Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法的M文件。 3.给定AR2020为五对角矩阵
3121412312141412312141412312141412312 14123(1)选取不同的初始向量x(0)及右端面项向量b,给定迭代误差要求,分别用编写的Jacobi迭
代法和Gauss-Seidel迭代法程序求解,观察得到的序列是否收敛?若收敛,通过迭代次数分析计算结果并得出你的结论。
(2)用编写的SOR迭代法程序,对于(1)所选取的初始向量x(0)及右端面项向量b进行求解,
(k)(k1)105时停止迭代,通过迭代次数分析计松驰系数ω取1<ω<2的不同值,在xx算结果并得出你的结论。
实验二
题目: 多项式最小二乘法
摘要:对于具体实验时,通常不是先给出函数的解析式,再进行实验,而是通过实验的观察和测量给出离散的一些点,再来求出具体的函数解析式。又因为测量误差的存在,实际真实的解析式曲线并不一定通过测量给出的所有点。最小二乘法是求解这一问题的很好的方法,本实验运用这一方法实现对给定数据的拟合。 数学原理:
对于给定的测量数据(xi,fi)(i=1,2,„,n),设函数分布为
y(x)ajj(x)
j0m特别的,取j(x)为多项式
j(x)xj (j=0, 1,„,m)
则根据最小二乘法原理,可以构造泛函
nmH(a0,a1,,am)(fiajj(xi))
i1j0令
H0 (k=0, 1,„,m) ak则可以得到法方程
(0,0)(1,0)(m,0)a0(f,0)(,)(,)(,)a(f,)11m11101
(,)(,)(,)a(f,)0m1mmmmm求该解方程组,则可以得到解a0,a1,,am,因此可得到数据的最小二乘解
f(x)ajj(x)
j0m程序设计:编写求解多项式拟合的Matlab函数子程序
实验要求:用最小二乘法处理下面的实验数据. xi 3 4 5 6 7 fi 2.01 2.98 3.50 5.02 5.47 8 6.02 9 7.05 并作出f(x)的近似分布图。
分别采用一次,二次、五次和偶数次多项式来拟合数据得到相应的拟合多项式,并分别作出它们的曲线图。
实验三
实验名称:非线性方程组数值求解的Newton类方法试验。 实验目的:用Newton类方法求解线性方程组 F(x)=0,理解其解的复杂性、初始点选择策略、减少算法工作量的方法等。 实验内容与要求:
分别用Newton法用Broyden秩1校正法求解下面非线性方程组
3x1cos(x2x3)0.5022x181(x20.1)sinx31.060 1ex1x220x3(103)03(1) 写出MATLAB源代码;
(2) 给出迭代五次以上的结果;
(3) 尝试不同的初值,如可取(0.1,0.1,0.1)); (4) 计算两种方法的用时。
数值分析思考题6
1、数值计算中迭代法与直接法的区别是什么? 2、详述你所知道的线性方程组的迭代法的收敛性定理。
3、详述你所知道的非线性方程(组)的迭代法以及收敛性结果。 4、举例说明解线性方程组的SOR方法的最佳松弛因子与何种因素有关?
5、指出解非线性方程组的Newton法的主要工作量所在。分别用Newton法和Broyden秩1校正方法求解如下方程组在1,1,1点附近的根:
212x1x24x370,2x110x2x3110, x310x80.23T
因篇幅问题不能全部显示,请点此查看更多更全内容