求解线性方程组迭代法与插值法(1)
- 格式:doc
- 大小:114.50 KB
- 文档页数:9
数值分析上机实习报告学号:姓名:专业:联系电话:任课教师:序 (3)一、必做题 (4)1、问题一 (4)1.1 问题重述 (4)1.2 实验方法介绍 (4)1.3 实验结果 (5)2、问题二 (7)2.1 问题重述 (7)2.2 实验原理 (7)雅各比算法:将系数矩阵A分解为:A=L+U+D,则推到的最后迭代公式为: (8)2.3 实验结果 (8)二、选做题 (10)3、问题三 (10)3.1 问题重述 (10)3.2 实验原理 (10)3.3 实验结果 (11)总结 (11)序伴随着计算机技术的飞速发展,所有的学科都走向定量化和准确化,从而产生了一系列的计算性的学科分支,而数值计算方法就是解决计算问题的桥梁和工具。
数值计算方法,是一种研究并解决数学问题的数值近似解方法,是在计算机上使用的解数学问题的方法。
为了提高计算能力,需要结合计算能力与计算效率,因此,用来解决数值计算的软件因为高效率的计算凸显的十分重要。
数值方法是用来解决数值问题的计算公式,而数值方法的有效性需要根据其方法本身的好坏以及数值本身的好坏来综合判断。
数值计算方法计算的结果大多数都是近似值,但是理论的严密性又要求我们不仅要掌握将基本的算法,还要了解必要的误差分析,以验证计算结果的可靠性。
数值计算一般涉及的计算对象是微积分,线性代数,常微分方程中的数学问题,从而对应解决实际中的工程技术问题。
在借助MA TLAB、JA V A、C++ 和VB软件解决数学模型求解过程中,可以极大的提高计算效率。
本实验采用的是MATLAB软件来解决数值计算问题。
MA TLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,其对解决矩阵运算、绘制函数/数据图像等有非常高的效率。
本文采用MATLAB对多项式拟合、雅雅格比法与高斯-赛德尔迭代法求解方程组迭代求解,对Runge-Kutta 4阶算法进行编程,并通过实例求解验证了其可行性,使用不同方法对计算进行比较,得出不同方法的收敛性与迭代次数的多少,比较各种方法的精确度和解的收敛速度。
数值计算方法思考题第一章 预篇1.什么是数值分析?它与数学科学和计算机的关系如何?2.何谓算法?如何判断数值算法的优劣?3.列出科学计算中误差的三个来源,并说出截断误差与舍入误差的区别。
4.什么是绝对误差与相对误差?什么是近似数的有效数字?它与绝对误差和相对误差有何关系?5.什么是算法的稳定性?如何判断算法稳定?为什么不稳定算法不能使用?6.判断如下命题是否正确:(1)一个问题的病态性如何,与求解它的算法有关系。
(2)无论问题是否病态,好的算法都会得到好的近似解。
(3)解对数据的微小变化高度敏感是病态的。
(4)高精度运算可以改善问题的病态性。
(5)用一个稳定的算法计算良态问题一定会得到好的近似值。
(6)用一个收敛的迭代法计算良态问题一定会得到好的近似值。
(7)两个相近数相减必然会使有效数字损失。
(8)计算机上将1000个数量级不同的数相加,不管次序如何结果都是一样的。
7.考虑二次代数方程的求解问题ax 2 + bx + c = 0.下面的公式是熟知的aac b b x 242-±-=. 与之等价地有ac b b c x 422--=.对于 a = 1, b = -100 000 000 , c = 1应当如何选择算法?8.指数函数有著名的级数展开++++=!3!2132x x x e x如果对x < 0用上述的级数近似计算指数函数的值,这样的算法结果是否会好?为什么?9.考虑数列x i , i = 1,…, n , 它的统计平均值定义为∑==n i i x x x 11 它的标准差2112)(11⎥⎦⎤⎢⎣⎡--=∑-n i i x x n σ 数学上它等价于2112211⎥⎥⎦⎤⎢⎢⎣⎡⎪⎪⎭⎫ ⎝⎛--=∑=n i i x n x n σ 作为标准差的两种算法,你如何评价它们的得与失?第二章 非线性方程求根1.判断如下命题是否正确:(a) 非线性方程的解通常不是唯一的;(b) Newton 法的收敛阶高于割线法;(c) 任何方法的收敛阶都不可能高于Newton 法;(d) Newton 法总是比割线法更节省计算时间;(e) 如果函数的导数难于计算,则应当考虑选择割线法;(f) Newton 法是有可能不收敛;(g) 考虑简单迭代法x k +1 = g (x k ),其中x * = g (x *)。
科学和工程计算基础复习题一、 填空题:1. :2. 计算机计费的主要依据有两项:一是使用要由算数运算的次数决定;二是占据存储器的空间,3. 用计算机进行数值计算时,4. ,则称该算法是5. 函数求值问题()x f y =的条件数定义为:)()())(()(x f x f x x f cond x C '==6. 单调减且有 下界 的数列一定存在极限; 单调增且有 上界 的数列一定存在极限. 7. 方程实根的存在唯一性定理:设],[)(b a C x f ∈且0)()(<b f a f ,则至少存在一点()b a ,∈ξ使()0=ξf .当()x f '在()b a ,,方程在[]b a ,内有唯一的实根.8. 函数()y x f ,在有界闭区域D 上对y 满足Lipschitz 条件,是指对于D 上的任意一对点()1,y x 和()2,y x 成立不等式:2121),(),(y y L y x f y x f -≤-.其中常数L 只依赖于区域D . 9. 设n i RA i nn ,,2,1,, =∈⨯λ为其特征值,则称i ni A λρ≤≤=1max )(为矩阵A 的谱半径.10. 设1-A 存在,则称数A AA cond 1)(-=为矩阵A 的条件数,其中⋅是矩阵的算子范数.11. 方程组f x B x +=,对于任意的初始向量()0x 和右端项f ,迭代法()()f x B xk k +=+1收敛的充分必要条件是选代矩阵B 的 谱半径1)(<B ρ. 12. 设被插函数()x f 在闭区间[]b a ,上n 阶导数连续,()()x fn 1+在开区间()b a ,上存在.若{}ni i x 0=为[]b a ,上的1+n 个互异插值节点,并记()()∏=+-=ni in x x x 01ω,则插值多项式()()()()()∑=++'-=nk k n k n k n x x x x x f x L 011ωω的余项为)()!1()()()()(1)1(x n f x L x f x R n x n n n +++=-=ωξ,其中),()(b a x x ∈=ξξ.13. 若函数组(){}[]b a C x n k k ,0⊂=ϕ满足⎩⎨⎧=≠≠=lk lk l k ,0,0),(ϕϕ k,l =0,1,2,…,n ,则称(){}nk k x 0=ϕ为正交函数序列. 14. 复化梯形求积公式⎰∑⎥⎦⎤⎢⎣⎡+++=≈-=ban k n b f kh a f a f h f T dx x f 11)()(2)(2)()(,其余项为),(),(12)(2b a f h a b R nT∈''--=ηη15. 复化Simpson 求积公式⎰∑∑⎥⎦⎤⎢⎣⎡++++++=≈-=-=ban k n k n b f kh a f h k a f a f h f S dx x f 1011)()2(2))12((4)(3)()(,其余项为),(),(180)()4(4b a f h a b R nS∈--=ηη16. 选互异节点n x x x ,,,10 为Gauss 点,则Gauss 型求积公式的代数精度为2n+1 .17. 如果给定方法的局部截断误差是()11++=p n h O T ,其中1≥p 为整数,则称该方法是P 阶的或具有P 阶精度 .18. 微分方程的刚性现象是指快瞬态解严重影响 数值解的稳定性和精度 ,给数值计算造成很大的实质性困难的现象. 19. 迭代序列{}[]b a x k k ,0⊂∞=终止准则通常采用11k k kx x x ε--<+,其中的0>ε为 相对误差20.二、 选择题1. 下述哪个条件不是能使高斯消去法顺利实现求解线性代数方程组(),ijn nAx b A a ⨯==的充分条件? ( D )A. 矩阵A 的各阶顺序主子式均不为零;B. A 对称正定;C. A 严格对角占优;D. A 的行列式不为零.2. 高斯消去法的计算量是以下述哪个数量级的渐近速度增长的? ( B ) A.313n ; B. 323n ; C. 314n ; D. 334n .3. 对于任意的初始向是()0x和右端项f ,求解线性代数方程组的迭代法()()1k kxBx f +=+收敛的充分必要条件是( A ). A.()1B ρ<; B. 1B <; C. ()det 0B ≠; D. B 严格对角占优.4. 下述哪个条件不是能使求解线性代数方程组(),ijn nAx b A a ⨯==的Gauss-Seidel 迭代法收敛的充分条件? ( C )A. A 为严格对角占优阵;B. A 为不可约弱对角占优阵;C. A 的行列式不为零;D. A 为对称正定阵.5. 设()[]2,f x C a b =,并记()2m a x a xbM f x ≤≤''=,则函数()f x 的过点()()()(),,,a f a b f b 的线性插值余项()1R x ,[],x a b ∀∈满足( A ). A. ()()2218M R x b a ≤-; B. ()()2218M R x b a <-; C. ()()2216M R x b a ≤-; D. ()()2216M R x b a <-.6. 设()n x ϕ是在区间[],a b 上带权()x ρ的首项系数非零的n 次正交多项式()1n ≥,则()n x ϕ的n 个根( A ).A. 都是单实根;B. 都是正根;C. 有非负的根;D. 存在重根7. Legendre 多项式是( )的正交多项式.( B )A. 区间[]1,1-上带权()x ρ=B. 区间[]1,1-上带权()1x ρ=;C. 区间[],-∞∞上带权()2x x e ρ-=; D. 区间[]0,1上带权()1x ρ=8. 离散数据的曲线拟合的线性最小二乘法的Gram 矩阵与( D )无关?A. 基函数(){}n k k x ϕ=; B. 自变量序列{}0mi i x =;C. 权数{}0mi i w =; D. 离散点的函数值{}0mi i y =. 9. Simpson 求积公式的余项是( B ).A. ()()()3,,12h R f f a b ηη''=-∈;B. ()()()()54,,90h R f f a b ηη=-∈; C. ()()()()2,,12h b a R f f a b ηη-''=-∈; D. ()()()()()44,,90h b a R f f a b ηη-=-∈ 10. n 个互异节点的Gauss 型求积公式具有( D )次代数精确度.A. n ;B. 1n +;C. 21n +;D. 21n -.11. 一阶导数的数值计算公式中,中心差商公式的精度为( B ). A. ()O h ; B. ()2O h ; C. ()2o h ; D. ()32O h .12. 对于用插值法建立的数值求导公式,通常导数值的精确度比用插值公式求得的函数值的精度( B ).A. 高; B, 低; C. 相同; D. 不可比.13. 在常微分方程初值问题的数值解法中, 梯形公式是显式Euler 公式和隐式Euler 公式的( A ).A. 算术平均;B. 几何平均;C. 非等权平均;D. 和. 14. 当( B )时,求解(),0y y λλ'=<的显式Euler 方法是绝对稳定的. A. 11h λ-≤≤; B. 20h λ-≤≤; C. 01h λ≤≤; D. 22h λ-≤≤ 15. 求解(),0y y λλ'=<的经典R-K 公式的绝对稳定条件是( C ): A .20h λ-≤≤; B.()2112h h λλ++≤;C.()()()2341123!4!h h h h λλλλ++++≤; D.()()22121211212h h h h λλλλ++≤-+.16. 在非线性方程的数值解法中,只要()()***1,()x x x ϕϕ'≠=,那么不管原迭代法()()1,0,1,2,k k x x k ϕ+==是否收敛,由它构成的Steffensen 迭代法的局部收敛的阶是( D )阶的.A. 1;B. 0;C. 2<;D. 2≥.17. 在非线性方程的数值解法中,Newton 迭代法的局部收敛的阶是( D )阶的. A. 1; B. 0; C. 2<; D. 2≥.18. 在非线性方程的数值解法中,离散Newton 迭代法的局部收敛的阶是( C )阶的.A. 1;B.;C.12+; D. 2. 19. 在求解非线性方程时,迭代终止准则通常采用( A ),其中的0ε>为给定的相对误差容限. A.11k k k x x x ε--<+; B. 1k k k x x x ε--<; C. 1k k x x ε--<; D. 111k k k x x x ε---<+.20. 在求解非线性方程组时,加进阻尼项的目的,是使线性方程组的( C ). A. 系数矩阵非奇异; B. 系数矩阵的行列式不等于零; C. 系数矩阵非奇异并良态; D. 系数矩阵可逆.三、 判断题1. 在用计算机求数学问题的数值解就是构造算法的构造问题.( × )2. 用计算机进行数值计算时,所有的函数都必须转化成算术运算;在作加减法时,应避免接近的两个数相减;在所乘除法时,计算结果的精度不会比原始数据的高.( √ ) 3. 用计算机作加减法时,交换律和结合律成立.( × ) 4. 单调减且有下界的数列一定存在极限。
数值分析实验报告三求解线性方程组的迭代方法和插值法(2学时)班级专业 信科3 姓名 梁嘉城 学号201130760314日期一 实验目的1.掌握求解线性方程组的简单迭代法; 2. 掌握求解线性方程组的赛德尔迭代法。
3. 掌握不等距节点下的牛顿插值公式以及拉格朗日插值公式。
二 实验内容1.使用简单迭代法求解方程组(精度要求为610-=ε):⎪⎩⎪⎨⎧=+-=++=++301532128243220321321321x x x x x x x x x 2.使用赛德尔迭代法求解上述方程组(精度要求为610-=ε): 3.已知函数表:用拉格朗日插值公式计算01.54.1==y x 以及所对应的近似值。
4. 已知函数表:用牛顿插值公式求)102(y 的近似值。
三 实验步骤(算法)与结果1#include<stdio.h>main(){float a[3][4]={20,2,3,24,1,8,1,12,2,-3,15,30};for(int i=0;i<=2;i++){for(int j=0;j<=2;j++){a[i][j]=(-1)*a[i][j];}}a[0][0]=20;a[1][1]=8;a[2][2]=15;float x=0,y=0,z=0;float X,Y,Z;for(int q=0;q<=1000;q++){X=(y*a[0][1]+z*a[0][2]+a[0][3])/a[0][0];Y=(x*a[1][0]+z*a[1][2]+a[1][3])/a[1][1];Z=(x*a[2][0]+y*a[2][1]+a[2][3])/a[2][2];x=X;y=Y;z=Z;}printf("方程组的解是X=%9.6f,Y=%9.6f,Z=%9.6f\n",X,Y,Z); }2#include<stdio.h>main(){float a[3][4]={20,2,3,24,1,8,1,12,2,-3,15,30};for(int i=0;i<=2;i++){for(int j=0;j<=2;j++){a[i][j]=(-1)*a[i][j];}}a[0][0]=20;a[1][1]=8;a[2][2]=15;float x=0,y=0,z=0;for(int q=0;q<=1000;q++){x=(y*a[0][1]+z*a[0][2]+a[0][3])/a[0][0];y=(x*a[1][0]+z*a[1][2]+a[1][3])/a[1][1];z=(x*a[2][0]+y*a[2][1]+a[2][3])/a[2][2];}printf("方程组的解是X=%9.6f,Y=%9.6f,Z=%9.6f\n",x,y,z); }3.#include<stdio.h>main(){float x[3]={1.14,1.36,1.45};float y[3]={5.65,4.15,3.14};float Y;Y=(1.4-x[2])*y[1]/(x[1]-x[2])+(1.4-x[1])*y[2]/(x[2]-x[1] );float X;X=(5.01-y[1])*x[0]/(y[0]-y[1])+(5.01-y[0])*x[1]/(y[1]-y[ 0]);printf("由拉格朗日插值公式得当X=1.4时,Y=%f,当Y=5.01时,X=%f\n",Y,X);}4.#include<stdio.h>main(){float x[5]={93.0,96.2,100.00,104.2,108.7};float y[5]={11.38,12.80,14.70,17.07,19.91};float dy1,dy2,dy3,dy4;float ddy1,ddy2,ddy3;float dddy1,dddy2;float ddddy;dy1=(y[0]-y[1])/(x[0]-x[1]);dy2=(y[1]-y[2])/(x[1]-x[2]);dy3=(y[2]-y[3])/(x[2]-x[3]);dy4=(y[3]-y[4])/(x[3]-x[4]);ddy1=(dy1-dy2)/(x[0]-x[2]);ddy2=(dy2-dy3)/(x[1]-x[3]);ddy3=(dy3-dy4)/(x[2]-x[4]);dddy1=(ddy1-ddy2)/(x[0]-x[3]);dddy2=(ddy2-ddy3)/(x[1]-x[4]);ddddy=(dddy1-dddy2)/(x[0]-x[4]);float Y;Y=y[3]+(102-x[3])*dy3+(102-x[3])*(102-x[2])*ddy2+(1002-x [3])*(102-x[2])*(102-x[1])*dddy1;printf("由牛顿插值公式得当X=102时,Y=%f\n",Y);}四实验收获与教师评语利用计算机实现了线性方程组的简单迭代法,赛德尔迭代法以及不等距节点下的牛顿插值公式以及拉格朗日插值公式。
数值分析简述及求解应用摘要:数值分析是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,本文主要介绍了数值分析的一些求解方法的原理和过程,并应用在电流回路和单晶硅提拉过程中的,进一步体现数值分析的实际应用。
关键字:解方程组插值法牛顿法一、引言随着科学技术的发展,提出了大量复杂的数值计算问题,在建立电子计算机成为数值计算的主要工具以后,它以数字计算机求解数学问题的理论和方法为研究对象。
有可靠的理论分析,要有数值实验,并对计算的结果进行误差分析。
数值分析的主要内容包括插值法,函数逼近,曲线拟和,数值积分,数值微分,解线性方程组的直接方法,解线性方程组的迭代法,非线性方程求根,常微分方程的数值解法。
运用数值分析解决问题的过程包括:实际问题→数学建模→数值计算方法→程序设计→上机计算求出结果。
在自然科学研究和工程技术中有许多问题可归结为求解方程组的问题,方程组求解是科学计算中最常遇到的问题。
如在应力分析、电路分析、分子结构、测量学中都会遇到解方程组问题。
在很多广泛应用的数学问题的数值方法中,如三次样条、最小二乘法、微分方程边值问题的差分法与有限元法也都涉及到求解方程组。
在工程中常会遇到求解线性方程组的问题,解线性方程组的方法有直接法和迭代法,直接法就是经过有限步算术运算,可求的线性方程组精确解的方法(若计算过程没有舍入误差),但实际犹如舍入误差的存在和影响,这种方法也只能求得近似解,这类方法是解低阶稠密矩阵方程组级某些大型稀疏矩阵方程组的有效方法。
直接法包括高斯消元法,矩阵三角分解法、追赶法、平方根法。
迭代法就是利用某种极限过程去逐步逼近线性方程组精确解的方法。
将方程组的解看作是某极限过程的极限值,且计算这一极限值的每一步是利用前一步所得结果施行相同的演算步骤而进行。
迭代法具有需要计算机的存储单元少,程序设计简单,原始系数矩阵在计算过程始终不变等优点,但存在收敛性级收敛速度问题。
迭代法是解大型稀疏矩阵方程组(尤其是微分方程离散后得到的大型方程组)的重要方法。
习题11. 填空题(1) 为便于算法在计算机上实现,必须将一个数学问题分解为 的 运算; (2) 在数值计算中为避免损失有效数字,尽量避免两个 数作减法运算;为避免误差的扩大,也尽量避免分母的绝对值 分子的绝对值; (3) 误差有四大来源,数值分析主要处理其中的 和 ; (4) 有效数字越多,相对误差越 ; 2. 用例1.4的算法计算10,迭代3次,计算结果保留4位有效数字.3. 推导开平方运算的误差限公式,并说明什么情况下结果误差不大于自变量误差.4. 以下各数都是对准确值进行四舍五入得到的近似数,指出它们的有效数位、误差限和相对误差限.95123450304051104000003346087510., ., , ., .x x x x x -==⨯===⨯5. 证明1.2.3之定理1.1.6. 若钢珠的的直径d 的相对误差为1.0%,则它的体积V 的相对误差将为多少。
(假定钢珠为标准的球形)7. 若跑道长的测量有0.1%的误差,对400m 成绩为60s 的运动员的成绩将会带来多大的误差和相对误差.8. 为使20的近似数相对误差小于0.05%,试问该保留几位有效数字.9. 一个园柱体的工件,直径d 为10.25±0.25mm,高h 为40.00±1.00mm,则它的体积V 的近似值、误差和相对误差为多少. 10 证明对一元函数运算有r r xf x f x k x k f x εε'≈=()(())(),()其中 并求出157f x x x ==()tan ,.时的k 值,从而说明f x x =()tan 在2x π≈时是病态问题.11. 定义多元函数运算111,,(),n ni i i i i i S c x c x εε====≤∑∑其中求出S ε()的表达式,并说明i c 全为正数时,计算是稳定的,i c 有正有负时,误差难以控制. 12. 下列各式应如何改进,使计算更准确:111 11212 11-cos23 14 00xy x x xy x xy x x y p p q p q -=-++===>>(),()()()(),()(),(,,)习题21. 填空题(1) Gauss 消元法求解线性方程组的的过程中若主元素为零会发生 ;. 主元素的绝对值太小会发生 ;(2) Gauss 消元法求解线性方程组的计算工作量以乘除法次数计大约为 . 平方根法求解对称正定线性方程组的计算工作量以乘除法次数计大约为 ;(3) 直接LU 分解法解线性方程组时的计算量以乘除法计为 , 追赶法解对角占优的三对角方程组时的计算量以乘除法计为 ; (4) ,⎪⎪⎭⎫⎝⎛=2011A =1A , =2A , =)(A ρ ; (5) 1100>⎪⎪⎭⎫⎝⎛=t t A , )(A ρ , 2cond ()A = ; (6) 0>>>⎪⎪⎪⎭⎫⎝⎛=a b c c b a A , )(A ρ , 2cond ()A = ; 2.用Gauss 消元法求解下列方程组b Ax =⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛---=101,112221111)1(b A , ⎪⎪⎪⎪⎪⎭⎫⎝⎛--=⎪⎪⎪⎪⎪⎭⎫⎝⎛=1111,4321343223431234)2(b A 3.用列主元消元法解下列方程组b Ax =.⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎭⎫⎝⎛---=674,5150710623)1(b A ⎪⎪⎪⎪⎪⎭⎫⎝⎛--=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---=6720,5616103423221020)2(b A 4. 用Gauss -Jordan 消元法求:1011012111-⎪⎪⎪⎭⎫ ⎝⎛-- 5.用直接LU 分解方法求1题中两个矩阵的LU 分解,并求解此二方程组.6.用平方根法解方程组b Ax =321422131116,A b ⎛⎫⎛⎫ ⎪ ⎪== ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭7. 用追赶法解三对角方程组b Ax =⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--------=00001,2100012100012100012100012b A8.证明:(1)单位下三角阵的逆仍是单位下三角阵.(2)两个单位下三角阵的乘积仍是单位下三角阵.9.由111211----=n L L L L ,(见(2.18)式),证明:⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=-111111,321323121n n n n n l l l ll l l L10.证明向量范数有下列等价性质:∞∞∞∞≤≤≤≤≤≤xn x xxn x x x n x x 21212)3()2()1(11.求下列矩阵的()12,,,A A A A ρ∞.()()5131312110212326;.A A ⎛⎫⎛⎫⎪== ⎪ ⎪-⎝⎭⎪⎝⎭12.求()2cond A()()10099129998cos sin ;.sin cos A A θθθθ-⎛⎫⎛⎫== ⎪⎪⎝⎭⎝⎭13.证明:(1)若A 是正交矩阵,即T A A I =, 则()2cond 1A =;(2)若A 是对称正定阵, 1λ是A 的最大特征值, n λ是最小特征值,则()12cond nA λλ=. 习题31. 填空题:(1) 当A 具有严格对角线优势或具有对角优势且 时,线性方程组Ax =b 用Jacobi 迭代法和Gauss -Seidel 迭代法均收敛;(2) 当线性方程组的系数矩阵A 对称正定时, 迭代法收敛.(3) 线性方程组迭代法收敛的充分必要条件是迭代矩阵的 小于1; SOR 法收敛的必要条件是 ;(4) 用迭代法求解线性方程组,若q = ρ (B ), q 时不收敛, q 接近 时收敛较快, q 接近 时收敛较慢; (5)1112,A ⎛⎫= ⎪⎝⎭J B = ;S B = ; ()J B ρ= ; ()S B ρ= .2.用Jacobi 迭代法和Gauss -Seidel 迭代法求解方程组(1) ⎪⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛453210*********x x x ; (2)⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛---7161411151118321x x x 各分量第三位稳定即可停止.3.用SOR 法解方程组,取0.9ω=,与取1ω= (即Gauss-Seidel 法)作比较.1233215573132573x x x -⎛⎫⎛⎫⎛⎫ ⎪⎪ ⎪-= ⎪⎪ ⎪ ⎪⎪ ⎪-⎝⎭⎝⎭⎝⎭. 4.下面是一些方程组的系数阵,试判断它们对Jacobi 迭代法,Gauss-Seidel 迭代法的收敛性(1)⎪⎪⎪⎭⎫ ⎝⎛211231125; (2)⎪⎪⎭⎫ ⎝⎛2321;(3)212121212⎛⎫⎪⎪ ⎪-⎝⎭; (4)⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----210012*********2; (5)⎪⎪⎪⎪⎪⎭⎫⎝⎛------------101111511111011115 ; (6)112211221122111⎛⎫ ⎪ ⎪ ⎪⎝⎭. 5.方程组0,0,2211212122211211≠≠⎪⎪⎭⎫⎝⎛=⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛a a b b x x a a a a证明用Jacobi 迭代法收敛的充要条件是:122112112<=a a a a r . 6.设为实数;a a a a a a a A ,111⎪⎪⎪⎭⎫ ⎝⎛=(1)若A 正定,a 的取值范围;(2)若Jacobi 迭代法收敛,a 的取值范围.习题41. 填空题:(1) 幂法主要用于求一般矩阵的 特征值,Jacobi 旋转法用于求对称矩阵的 特征值;(2) 古典的Jacobi 法是选择 的一对 元素将其消为零;(3) QR 方法用于求 矩阵的全部特征值,反幂法加上原点平移用于一个近似特征值的 和求出对应的 . 2.用幂法求矩阵.⑴⎪⎪⎪⎭⎫ ⎝⎛111132126, ⑵⎪⎪⎪⎭⎫⎝⎛---20101350144按模最大的特征值和对应的特征向量,精确到小数三位.3.已知: ⎪⎪⎪⎭⎫⎝⎛---=1321291111111A取t =15,作原点平移的幂法,求按模最大特征值.4. ⎪⎪⎪⎭⎫ ⎝⎛=10141101414A用反幂法加原点平移求最接近12的特征值与相应的特征向量,迭代三次.5.若A 的特征值为t n ,,,,21λλλ 是一实数,证明:t i -λ是tI A -的特征值,且特征向量不变.6.已知()321,,Tx =求平面反射阵H 使()00,*,Ty Hx ==,即使x 的1,3两个分量化零.7. ⎪⎪⎪⎭⎫ ⎝⎛=612133231A试用Jacobi 旋转法求作一次旋转,消去最大的非对角元,写出旋转矩阵,求出θ角和结果.8.设 ()()()()⎪⎪⎭⎫⎝⎛=⨯⨯⨯⨯222322333100T T T 已知λ是1T 的特征值,相应的特征向量为()Ta a a 321,,,证明λ也是T 的特征值,相应的特征向量为()Ta a a 0,0,,,321.9. 证明定理4.5.10. 证明(4.21)中的s A 和1+s A 相似.习题51.填空题(1) 用二分法求方程310x x +-=在[0,1]内的根,迭代一次后,根的存在区间为 ,迭代两次后根的存在区间为 ;(2) 设()f x 可微,则求方程()x f x =根的Newton 迭代格式为 ;(3) 2()(5)x x C x ϕ=+-,若要使迭代格式1()k k x x ϕ+=局部收敛到α=C 取值范围为 ;(4) 用迭代格式1()k k k k x x f x λ+=-求解方程32()10f x x x x =---=的根,要使迭代序列{}k x 是二阶收敛,则k λ= ;(5) 迭代格式12213k k kx x x +=+收敛于根α= ,此迭代格式是 阶收敛的.2.证明Newton 迭代格式(5.10)满足12()lim2()k k kf f εαεα+→∞''=-'3. 方程3291860, [0,)x x x x -+-=∈+∞的根全正实根,试用逐次扫描法(h =1),找出它的全部实根的存在区间,并用二分法求出最大实根,精确到0.01.4.用二分法求下列方程的根,精度0.001ε=.(1) 340 [2,1]x x x -+=∈-- (2) 1020 [0,1]x e x x +-=∈5.用迭代法求3250x x --=的正根,简略判断以下三种迭代格式:(1) 3152k k x x +-=; (2) 1252k k x x +=- ; (3)1k x +=在02x =附近的收敛情况,并选择收敛的方法求此根.精度410ε-=.6. 方程x e x-=(1) 证明它在(0,1)区间有且只有一个实根; (2) 证明 ,,,101==-+k ex kx k ,在(0,1)区间内收敛;(3) 用Newton 迭代法求出此根,精确到5位有效数字. 7.对方程3310x x --=,分别用(1) Newton 法0(2)x =;(2) 割线法01(2, 1.9)x x ==求其根.精度410ε-=.8.用迭代法求下列方程的最小正根(1) 5420x x --=; (2) 2tan 0x x -=; (3) 2sin x x = 9.设有方程 230xx e -=(1) 以1h =,找出根的全部存在区间;(2) 验证在区间[0,1]上Newton 法的区间收敛定理条件不成立; (3) 验证取00.21x =, 用Newton 法不收敛;(4) 用Newton 下山法,取00.21x =求出根的近似值,精度410ε-=.10.分别用Jacobi 法,Gauss —Seidel 法求解非线性方程组22230250x y x y +-=⎧⎨+-=⎩在(1.5,0.7)附近的根,精确到410-.11.分别用Newton 法,简化Newton 法求解非线性方程组s i nc o s 01x y x y +=⎧⎨+=⎩在(0,1)附近的根,精确到410-.习题61.填空题(1) 设53()1f x x x x =+++,则[0,1]f ,[0,1,2]f = ,[0,1,2,3,4,5]f = ;[0,1,2,3,4,5,6]f = .(2) 设01(),(),,()n l x l x l x 是以节点0,1,2,…,n 的Lagrange 插值基函数,则()njj jl x ==∑ ;0()njj jl k ==∑ .(3) 设(0)0,(1)16,(2)46,[0,1]f f f f ====则 ,[0,1,2]f = ,()f x 的二次Newton 插值多项式为 .2.已知函数2)(x ex f -=的数据如下试用二次,三次插值计算=0.35,=0.55的近似函数值,使其精度尽量地高. 3.利用x sin 在3,4,6,0πππ=x 及2π处的值,求5sin π的近似值,并估计误差.4计算积分⎰=xdt ttx f 0sin )(, 当)(x f =0.45时的x 的取值. 5.试用Newton 插值求经过点(-3,-1),(0,2),(3,-2),(6,10)的三次插值多项式.6.求满足)()(),()(1100x f x P x f x P ==及)()(00x f x P '='的次数不超过2次的插值多项式)(x P ,并给出其误差表达式.7.设i x 是互异节点,)(x l j 是Lagrange 插值基函数(n j ,,2,1,0 =),证明(1)1)(0≡∑=nj jx l;(2)k nj jk j x x l x≡∑=0)( (n k ,,2,1,0 =);(3)0)()(0≡-∑=nj j k jx l x x(n k ,,2,1,0 =).8.设有如下数据试计算此表中函数的差分表,并分别利用Newton 向前,向后插值公式求出它的插值多项式. 9.试构造一个三次Hermite 插值多项式使其满足5.0)1( ,2)1( ,5.0)0( ,1)0(='=='=f f f f10.已知函数)(x f 的数据表分别用x =0.75的近似值. 11.对函数()sin f x x =进行分段线性插值,要求误差不超过5105.0-⨯,问步长h 应如何选取.12用三转角插值法求满足下述条件的三次样条插值函数(1) 0000.1)25.0(='S ,6868.0)53.0(='S (2) 2)25.0(-=''S , 6479.0)53.0(=''S 13. 证明定理6.6.习题81.填空题(1) 1n +个点的插值型数值积分公式()()nbj j aj f x dx A f x =≈∑⎰的代数精度至少是 ,最高不超过 .(2) 梯形公式有 次代数精度,Simpson 公式有 次代数精度. (3) 求积公式20()[(0)()][(0)()]2hhf x d xf f h h f f h α''≈++-⎰中的参数α=时,才能保证该求积公式的代数精度达到最高,最高代数精度为 .2.确定下列求积公式的求积系数和求积节点,使其代数精度尽量高,并指出其最高代数精度. (1) )2()()0()(21020h f A h f A f A dx x f h++≈⎰ (2))](3)(2)1([)(2111x f x f f A dx x f ++-≈⎰-(3)1123111()(1)33f x dx A f A f A f -⎛⎫⎛⎫=-+-+ ⎪ ⎪⎝⎭⎝⎭⎰ (4) )1()0()()(321111f A f A x f A dx x f ++≈⎰- (5))()()(212x f x f dx x f +≈⎰3.分别利用复化梯形公式,复化Simpson 公式,复化Cotes 公式计算下列积分 (1) ⎰+1024dx x x(n =8)(2) ⎰10dx x (n =10)(3) ⎰-12dx ex (n =10)(4) (n =6)(5)⎰20sin πdx xx(n =8) 4.用Romberg 公式计算积分(1) ⎰-1022dx e x π (精度要求510-=ε) (2) ⎰+404cos 1dx x (精度要求510ε-=)5.分别取节点数为2,3,4利用Gauss -Legendre 求积公式计算积分 (1) ⎰-+44211dx x , (2) ⎰-10dx e x , (3) 311dx x ⎰ 6.利用Gauss 型求积公式,分别取节点数2,3,4计算积分 (1) ⎰+∞-0dx x e x , (2) ⎰+∞∞--+dx x e x212 7.用节点数为4的Gauss -Laguerre 求积公式和Gauss -Hermite 求积公式计算积分 ⎰+∞-=02dx e I x 的近似值,并与准确值2π=I 作比较.8.分别用两点公式与三点公式求2)1(1)(x x f +=在x =1.0,x =1.2的导数值,并估计误差,其中)(x f 的数据由下表给出9.已知)(x f x e -=的数据如下取=0.1,=0.2,分别用二点、三点公式计算=2.7处的一阶和二阶导数值.习题91.填空题(1) 解初值问题的Euler 法是 阶方法,梯形方法是 阶方法,标准R -K 方法是 阶方法.(2) 解初值问题()20(),(0)1y x x y y '=-=时,为保证计算的稳定性,若用经典的四阶R -K 方法,步长0h << .采用Euler 方法,步长h 的取值范围为 ,若采用Euler 梯形方法,步长h 的取值范围为 若采用Adams 外推法,步长h 的范围为 ,若采用Adams 内插法,步长h 的取值范围为 .(3) 求解初值问题Euler 方法的局部截断误差为 Euler 梯形方法的局部截断误差为 , Adams 外推法的局部截断误差为 Adams 内插法的局部截断误差为 .2.对初值问题⎪⎩⎪⎨⎧=≤≤-+='0)0(1021122y x y x y试用Euler 法取步长h =0.1和h =0.2计算其近似解,并与准确解21x y x=+进行比较. 3.利用Euler 预测-校正法和四阶经典R -K 方法,取步长h =0.1,求解方程⎪⎩⎪⎨⎧=≤≤+='1)0(10y x y x y 并与准确解x e x x y 21)(+--=进行比较.4.用待定系数法推导二步法公式)85(12111-++-++=i i i i i f f f h y y 并证明它是三阶公式,求出它的局部截断误差.5.用Adams 预测-校正法求解⎪⎩⎪⎨⎧=≤≤-='1)0(102y x y y 并与准确解1()1y x x=+进行比较. 6.用Euler 中点公式计算0 2.5(0)1y yx y '⎧=-≤≤⎨=⎩取步长h =0.25,与准确解x e y -=比较,并说明中点公式是不稳定的.7.写出用经典的R -K 方法及Adams 预测-校正法解初值问题⎪⎩⎪⎨⎧==+='+-='0)0(,1)0(782z y yz x z z y y的计算公式.8.写出用Euler 方法及Euler 预测-校正法解二阶常微分方程初值问题⎩⎨⎧='==+''0)0(,1)0(0sin y y y y的计算公式.9.证明用单步法1,(,)22i i i i i i h h y y hf x y f x y +⎛⎫=+++ ⎪⎝⎭解方程ax y 2-='的初值问题,可以给出准确解.。
第一章 绪论误差来源:模型误差、观测误差、截断误差(方法误差)、舍入误差ε(x )=|x −x ∗|是x ∗的绝对误差,e =x ∗−x 是x ∗的误差,ε(x )=|x −x ∗|≤ε,ε为x ∗的绝对误差限(或误差限) e r =ex =x ∗−x x为x ∗ 的相对误差,当|e r |较小时,令 e r =ex ∗=x ∗−x x ∗相对误差绝对值得上限称为相对误差限记为:εr 即:|e r |=|x ∗−x||x ∗|≤ε|x ∗|=εr绝对误差有量纲,而相对误差无量纲若近似值x ∗的绝对误差限为某一位上的半个单位,且该位直到x ∗的第一位非零数字共有n 位,则称近似值 x ∗有n 位有效数字,或说 x ∗精确到该位。
例:设x=π=3.1415926…那么x ∗=3,ε1(x )=0.1415926…≤0.5×100,则x ∗有效数字为1位,即个位上的3,或说 x ∗精确到个位。
科学计数法:记x ∗=±0.a 1a 2⋯a n ×10m (其中a 1≠0),若|x −x ∗|≤0.5×10m−n ,则x ∗有n 位有效数字,精确到10m−n 。
由有效数字求相对误差限:设近似值x ∗=±0.a 1a 2⋯a n ×10m (a 1≠0)有n 位有效数字,则其相对误差限为12a 1×101−n由相对误差限求有效数字:设近似值x ∗=±0.a 1a 2⋯a n ×10m (a 1≠0)的相对误差限为为12(a 1+1)×101−n 则它有n 位有效数字令x ∗、y ∗是x 、y 的近似值,且|x ∗−x|≤η(x )、|y ∗−y|≤η(y)1. x+y 近似值为x ∗+y ∗,且η(x +y )=η(x )+η(y )和的误差(限)等于误差(限)的和2. x-y 近似值为x ∗−y ∗,且η(x +y )=η(x )+η(y )3. xy 近似值为x ∗y ∗,η(xy )≈|x ∗|∗η(y )+|y ∗|∗η(x)4. η(xy )≈|x ∗|∗η(y )+|y ∗|∗η(x)|y ∗|21.避免两相近数相减2.避免用绝对值很小的数作除数 3.避免大数吃小数 4.尽量减少计算工作量 第二章 非线性方程求根1.逐步搜索法设f (a ) <0, f (b )> 0,有根区间为 (a , b ),从x 0=a 出发, 按某个预定步长(例如h =(b -a )/N )一步一步向右跨,每跨一步进行一次根的搜索,即判别f (x k )=f (a +kh )的符号,若f (x k )>0(而f (x k -1)<0),则有根区间缩小为[x k -1,x k ] (若f (x k )=0,x k 即为所求根), 然后从x k -1出发,把搜索步长再缩小,重复上面步骤,直到满足精度:|x k -x k -1|< 为止,此时取x *≈(x k +x k -1)/2作为近似根。
数值分析实验报告三求解线性方程组的迭代方法和插值法(2学时) 班级专业:11信科一班 姓名:黄文康 学号:16一 实验目的1.掌握求解线性方程组的简单迭代法; 2. 掌握求解线性方程组的赛德尔迭代法。
3. 掌握不等距节点下的牛顿插值公式以及拉格朗日插值公式。
二 实验内容1.使用简单迭代法求解方程组(精度要求为610-=ε):⎪⎩⎪⎨⎧=+-=++=++301532128243220321321321x x x x x x x x x 2.使用赛德尔迭代法求解上述方程组(精度要求为610-=ε): 3.已知函数表:用拉格朗日插值公式计算01.54.1==y x 以及所对应的近似值。
4. 已知函数表:用牛顿插值公式求)102(y 的近似值。
三 实验步骤(算法)与结果1简单迭代法(雅可比迭代法)#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <math.h>#define N 10int main(){int k,i,j,n;float a[N][N]={0},b[N],p[N]={0},x2[N]={0},x1[N]={0},sum=0,g[N][N]={0};printf("方程组为:\n\t20*x1+2*x2+3*x3=24 \n\tx1+8*x2+x3=12\n\t2*x1-3*x2+15*x3=30");printf("\n转换后的迭代式:\n\tx1=-0.1*x1-0.15*x3+1.2\n\tx2=-.125*x1-0.125*x2+1.5 \n\tx3=2.0/15*x1+0.2*x2+2");printf("\n输入根的个数:\n");scanf("%d",&n);printf("输入系数矩阵:\n");for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%f",&a[i][j]);printf("输入b[i]:\n");for(i=1;i<=n;i++){scanf("%f",&b[i]);p[i]=a[i][i];}//开始求解for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i!=j)g[i][j]=-a[i][j]/p[i];elseg[i][i]=0;}for(i=1;i<=n;i++)b[i]=b[i]/p[i];for(k=1;k<=6;k++){for(i=1;i<=n;i++){sum=0;for(j=1;j<=n;j++)sum+=g[i][j]*x1[j];x1[i]=sum+b[i];}}for(i=1;i<=n;i++)printf("x[%d]=%-9.6f",i,x1[i]);printf("\n");return 0;}2赛德尔迭代法#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <math.h>#define N 10int main(){int k,i,j,n;float a[N][N]={0},b[N],p[N]={0},x2[N]={0},x1[N]={0},sum=0,g[N][N]={0};printf("方程组为:\n\t20*x1+2*x2+3*x3=24 \n\tx1+8*x2+x3=12\n\t2*x1-3*x2+15*x3=30");printf("\n转换后的迭代式:\n\tx1=-0.1*x1-0.15*x3+1.2\n\tx2=-.125*x1-0.125*x2+1.5 \n\tx3=2.0/15*x1+0.2*x2+2");printf("\n输入根的个数:\n");scanf("%d",&n);printf("输入系数矩阵:\n"); for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%f",&a[i][j]);printf("输入b[i]:\n");for(i=1;i<=n;i++){scanf("%f",&b[i]);p[i]=a[i][i];}//开始求解for(i=1;i<=n;i++)for(j=1;j<=n;j++){if(i!=j)g[i][j]=-a[i][j]/p[i];elseg[i][i]=0;}for(i=1;i<=n;i++)b[i]=b[i]/p[i];for(k=1;k<=6;k++){for(i=1;i<=n;i++){sum=0;for(j=1;j<=n;j++)sum+=g[i][j]*x1[j];x2[i]=sum+b[i];}for(i=1;i<=n;i++)x1[i]=x2[i];}for(i=1;i<=n;i++)printf("x[%d]=%-9.6f",i,x1[i]);printf("\n");return 0;}3.拉格朗日法#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <math.h>#define N 10int main(){int i,j,n,k;float x[N]={0},y[N]={0},sum,num,an[N],m=1,p[N];printf("输入x的个数:");scanf("%d",&n);printf("输入x的值:");for(i=1;i<=n;i++)scanf("%f",&x[i]);printf("输入y的值:");for(i=1;i<=n;i++)scanf("%f",&y[i]);printf("输入所求数的值:");scanf("%f",&sum);for(i=1;i<=N;i++)an[i]=p[i]=1;for(i=1;i<=n;i++)m=m*(sum-x[i]);for(j=1;j<=n;j++)for(i=1;i<=n;i++)if(x[j]!=x[i])p[j]=p[j]*(x[j]-x[i]);for(i=1;i<=n;i++)an[i]=m/((sum-x[i])*p[i]);for(i=1;i<=n;i++)num=num+an[i]*y[i];printf("f(%g)=%f",sum,num);return 0;}4.牛顿差值法#include <stdio.h>#include <math.h>#define N 8int main(){float x[N],y[N],f[N][N],xn[N],sum=0,sum1=1,t;int i,j,n;printf("输入x的个数:\n");scanf("%d",&n);printf("输入x的值:\n");for(i=0;i<n;i++)scanf("%f",&x[i]);printf("输入y的值:\n");for(i=0;i<n;i++)scanf("%f",&y[i]);for(j=0,i=0;i<n-1;i++)f[i][j]=(y[i+1]-y[i])/(x[i+1]-x[i]);for(j=1;j<n-1;j++)for(i=0;i<=n-1-j;i++)f[i][j]=(f[i+1][j-1]-f[i][j-1])/(x[i+j+1]-x[i]);printf("差商表为:\n");for(j=0;j<n-1;j++){for(i=0;i<n-1-j;i++)printf("%-9f",f[i][j]);printf("\n");}printf("输入x的值求f(x):");scanf("%f",&t);xn[0]=t-x[0];for(i=1;i<n-1;i++)xn[i]=xn[i-1]*(t-x[i]);sum=y[0];for(i=0,j=0;j<n-1;j++)sum=sum+xn[j]*f[i][j];printf("f(%g)=%g",t,sum);return 0;}。