常州大学数值分析作业共六章

常州大学数值分析作业共六章
常州大学数值分析作业共六章

第一章:9.设2

cos 1)(x x

x f -=

,给出计算函数值)012.0(f 的一个合适算法,并在字长m 给定的,十进制计算机上给出数值计算结果。

解:由 )24

21(242)2421(1)cos(1224242x x x x x x x -=-=+-

-≈- 得 )24

21(cos 1)(22x x x x f -≈-=

10. 字长为5的十进制计算机上计算

)015.0(f 和)015.0(g ,并与)015.0(f 的精确值

1.79比较,说明差异存在理由,其中x e x f x 1)(-=,24

621)(3

2x x x x g +++=。

12.对任意给定的实数a 、b 、c 、试编写Matlab 程序,求方程02

=++c bx ax 的根。

解:利用教材例11的方法: 当b>0时,a ac b b x 2421---=,b

ac b c x +--=4222。

13.利用1

,753arctan 7

53<+-+-=x x x x x x 及

()

3/3arctan 6

,给出一个计算π的方

法,根据此方法编写程序,给出π的至少有10位有效数字的近似值。

解:根据题中所给公式,容易得到:

()

1

2)3/3(16)3/3arctan(61

21

1

--≈=-=+∑i i n

i i π

14.分别利用下式给出计算ln2的近似方法,编写相应程序并比较算法运行情况。

11,32)

1()1ln(321

1

≤<-+++-=-=+∑∞

=+x n

x x x x n x x n

n n n 11),1253(21

2211ln 1253112<<-+-++++=-=-+-∞

=-∑x n x x x x n x x x n n n

解:

由运行结果可知,

方法二的绝对误差比方法一的误差要小得多。

这是因为方法一给出的计算公式含有相近数相减项,损失了有效数字。

而方法二给出的计算公式避免了相近数相减,具有较好的精度。

东南大学数值分析上机题答案

数值分析上机题 第一章 17.(上机题)舍入误差与有效数 设∑=-= N j N j S 2 2 11 ,其精确值为)111-23(21+-N N 。 (1)编制按从大到小的顺序1 -1 ···1-311-21222N S N +++=,计算N S 的通用 程序; (2)编制按从小到大的顺序1 21 ···1)1(111 222-++--+ -=N N S N ,计算N S 的通用程序; (3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数(编制程序时用单精度); (4)通过本上机题,你明白了什么? 解: 程序: (1)从大到小的顺序计算1 -1 ···1-311-21222N S N +++= : function sn1=fromlarge(n) %从大到小计算sn1 format long ; sn1=single(0); for m=2:1:n sn1=sn1+1/(m^2-1); end end (2)从小到大计算1 21 ···1)1(111 2 22 -++--+-= N N S N function sn2=fromsmall(n) %从小到大计算sn2 format long ; sn2=single(0); for m=n:-1:2 sn2=sn2+1/(m^2-1); end end (3) 总的编程程序为: function p203()

clear all format long; n=input('please enter a number as the n:') sn=1/2*(3/2-1/n-1/(n+1));%精确值为sn fprintf('精确值为%f\n',sn); sn1=fromlarge(n); fprintf('从大到小计算的值为%f\n',sn1); sn2=fromsmall(n); fprintf('从小到大计算的值为%f\n',sn2); function sn1=fromlarge(n) %从大到小计算sn1 format long; sn1=single(0); for m=2:1:n sn1=sn1+1/(m^2-1); end end function sn2=fromsmall(n) %从小到大计算sn2 format long; sn2=single(0); for m=n:-1:2 sn2=sn2+1/(m^2-1); end end end 运行结果:

最新第六章习题答案-数值分析

第六章习题解答 2、利用梯形公式和Simpson 公式求积分2 1 ln xdx ? 的近似值,并估计两种方法计算值的最大 误差限。 解:①由梯形公式: 21ln 2 ()[()()][ln1ln 2]0.3466222 b a T f f a f b --= +=+=≈ 最大误差限 3''2 ()111 ()()0.0833******** T b a R f f ηη-=-=≤=≈ 其中,(1,2)η∈ ②由梯形公式: 13()[()4()()][ln14ln()ln 2]0.38586262 b a b a S f f a f f b -+= ++=++≈ 最大误差限 5(4)4()66 ()()0.0021288028802880 S b a R f f ηη-=-=≤≈, 其中,(1,2)η∈。 4、推导中点求积公式 3''()()()()() ()224 b a a b b a f x dx b a f f a b ξξ+-=-+<

东南大学数值分析上机作业汇总

东南大学数值分析上机作业 汇总 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

数值分析上机报告 院系: 学号: 姓名:

目录 作业1、舍入误差与有效数 (1) 1、函数文件cxdd.m (1) 2、函数文件cddx.m (1) 3、两种方法有效位数对比 (1) 4、心得 (2) 作业2、Newton迭代法 (2) 1、通用程序函数文件 (3) 2、局部收敛性 (4) (1)最大δ值文件 (4) (2)验证局部收敛性 (4) 3、心得 (6) 作业3、列主元素Gauss消去法 (7) 1、列主元Gauss消去法的通用程序 (7) 2、解题中线性方程组 (7) 3、心得 (9) 作业4、三次样条插值函数 (10) 1、第一型三次样条插值函数通用程序: (10) 2、数据输入及计算结果 (12)

作业1、舍入误差与有效数 设∑ =-=N j N j S 2 2 11 ,其精确值为?? ? ??---1112321N N . (1)编制按从小到大的顺序1 1 131121222-? ??+-+-=N S N ,计算N S 的通用程序; (2)编制按从大到小的顺序()1 21 11111222-???+--+-=N N S N ,计算N S 的通用程序; (3)按两种顺序分别计算642101010,,S S S ,并指出有效位数; (4)通过本上机你明白了什么? 程序: 1、函数文件cxdd.m function S=cxdd(N) S=0; i=2.0; while (i<=N) S=S+1.0/(i*i-1); i=i+1; end script 运行结果(省略>>): S=cxdd(80) S= 0.737577 2、函数文件cddx.m function S=cddx (N) S=0; for i=N:-1:2 S=S+1/(i*i-1); end script 运行结果(省略>>): S=cddx(80) S= 0.737577 3、两种方法有效位数对比

常州大学数值分析07-08试卷B及参考答案

江苏工业学院2007~2008学年第 2 学期硕士生考试试题解答 一、(10分)举例说明如何在数值计算过程中防止相近数相减及避免“大数吃小数”。 答:1)防止相近数相减举例:当x 充分大时,即1x >>时,计算 会出现相近数相减, 可以用下述数学上等价的表达式 来计算,以避免相近数相减。 ………… 5 分 2) 避免“大数吃小数”举例: 设,1:1000,i i δ=为区间[0, 0.5]上的随机数,在字长为5的计算机上计算 12100012345S δδδ=++++ 时,如果采用上述给定的顺序计算S ,则会出现大数吃小数的现象;要避免大数吃小数,这里可以采用表达式:212100012345S δδδ=++++规定的顺序来计算即可。 ………… 5 分 注:学生的举例只要符合要求均可以算对。 二、(15分) (1)叙述Newton 插值方法的方法思想; (2) 设(1)0,(2)1,(3)3,(4)5f f f f ====, 试求)(x f 的三次Newton 插值多项式; (3) 利用上述插值公式近似计算(2.3)f . 解: (1) 牛顿插值方法是通过构造如下形式的多项式 01020101()()()()()()n n n N x a a x x a x x x x a x x x x -=+-+--++-- 其中,0,1,2,,i a i n =通过Newton 差商公式得到,且仅与0,1,,,i x x x 有关,由此可以保 证在增加节点时, 原先的计算量能够被充分利用。 ………… 6 分 (2) 根据列表函数可得差商表如下: 0 0 0 0 1.0000 1.0000 0 0 3.0000 2.0000 0.5000 0 5.0000 2.0000 0 -0.1667 )(x f 的三次Newton 插值多项式为: 3()(1)0.5(1)(2)0.1667(1)(2)(3)N x x x x x x x =-+------ ………… 6 分 (3) 3(2.3)(2.3) 1.5405f N ≈≈ ………… 3 分 三、(15分) (1)简要叙述求非线性方程()0f x =根的迭代法的方法思想。 (2)选用适当的迭代方法求方程3 2 210x x x ---=在0 2.5x =附近的一个根, 精度 为3 10-。 解:(1)求非线性方程()0f x =根的迭代法的方法思想: 将方程()0f x =改写成 ()x x ?=

东南大学 数值分析 考试要求

第一章绪论 误差的基本概念:了解误差的来源,理解绝对误差、相对误差和有效数的概念,熟练掌握数据误差对函数值影响的估计式。 机器数系:了解数的浮点表示法和机器数系的运算规则。 数值稳定性:理解算法数值稳定性的概念,掌握分析简单算例数值稳定性的方法,了解病态问题的定义,学习使用秦九韶算法。 第二章非线性方程解法 简单迭代法:熟练掌握迭代格式、几何表示以及收敛定理的内容,理解迭代格式收敛的定义、局部收敛的定义和局部收敛定理的内容。 牛顿迭代法:熟练掌握Newton迭代格式及其应用,掌握局部收敛性的证明和大范围收敛定理的内容,了解Newton法的变形和重根的处理方法。 第三章线性方程组数值解法 (1)Guass消去法:会应用高斯消去法和列主元Guass消去法求解线性方程组,掌握求解三对角方程组的追赶法。 (2)方程组的性态及条件数:理解向量范数和矩阵范数的定义、性质,会计算三种常用范数,掌握谱半径与2- 范数的关系,会计算条件数,掌握实用误差分析法。 (3)迭代法:熟练掌握Jacobi迭代法、Guass-Seidel迭代法及SOR方法,能够判断迭代格式的收敛性。 (4)幂法:掌握求矩阵按模最大和按模最小特征值的幂法。 第四章插值与逼近 (1)Lagrange插值:熟练掌握插值条件、Lagrange插值多项式的表达形式和插值余项。(2)Newton插值:理解差商的定义、性质,会应用差商表计算差商,熟练掌握Newton插值多项式的表达形式,了解Newton型插值余项的表达式。 (3)Hermite插值:掌握Newton型Hermite插值多项式的求法。 (4)高次插值的缺点和分段低次插值:了解高次插值的缺点和Runge现象,掌握分段线性插值的表达形式及误差分析过程。 (5)三次样条插值:理解三次样条插值的求解思路,会计算第一、二类边界条件下的三次样条插值函数,了解收敛定理的内容。 (6)最佳一致逼近:掌握赋范线性空间的定义和连续函数的范数,理解最佳一致逼近多项式的概念和特征定理,掌握最佳一致逼近多项式的求法。 (7)最佳平方逼近:理解内积空间的概念,掌握求离散数据的最佳平方逼近的方法,会求超定方程组的最小二乘解,掌握连续函数的最佳平方逼近的求法。

东南大学《数值分析》-上机题

数值分析上机题1 设2 21 1N N j S j ==-∑ ,其精确值为1311221N N ??-- ?+?? 。 (1)编制按从大到小的顺序222 111 21311 N S N = +++---,计算N S 的通用程序。 (2)编制按从小到大的顺序22 21111(1)121 N S N N =+++----,计算N S 的通用程序。 (3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数。(编制程序时用单精度) (4)通过本上机题,你明白了什么? 程序代码(matlab 编程): clc clear a=single(1./([2:10^7].^2-1)); S1(1)=single(0); S1(2)=1/(2^2-1); for N=3:10^2 S1(N)=a(1); for i=2:N-1 S1(N)=S1(N)+a(i); end end S2(1)=single(0); S2(2)=1/(2^2-1); for N=3:10^2 S2(N)=a(N-1); for i=linspace(N-2,1,N-2) S2(N)=S2(N)+a(i); end end S1表示按从大到小的顺序的S N S2表示按从小到大的顺序的S N 计算结果

通过本上机题,看出按两种不同的顺序计算的结果是不相同的,按从大到小的顺序计算的值与精确值有较大的误差,而按从小到大的顺序计算的值与精确值吻合。从大到小的顺序计算得到的结果的有效位数少。计算机在进行数值计算时会出现“大数吃小数”的现象,导致计算结果的精度有所降低,我们在计算机中进行同号数的加法时,采用绝对值较小者先加的算法,其结果的相对误差较小。

常州大学数值分析作业共六章

第一章:9.设2 cos 1)(x x x f -= ,给出计算函数值)012.0(f 的一个合适算法,并在字长m 给定的,十进制计算机上给出数值计算结果。 解:由 )24 21(242)2421(1)cos(1224242x x x x x x x -=-=+- -≈- 得 )24 21(cos 1)(22x x x x f -≈-= 10. 字长为5的十进制计算机上计算 )015.0(f 和)015.0(g ,并与)015.0(f 的精确值 1.79比较,说明差异存在理由,其中x e x f x 1)(-=,24 621)(3 2x x x x g +++=。

12.对任意给定的实数a 、b 、c 、试编写Matlab 程序,求方程02 =++c bx ax 的根。 解:利用教材例11的方法: 当b>0时,a ac b b x 2421---=,b ac b c x +--=4222。 13.利用1 ,753arctan 7 53<+-+-=x x x x x x 及 () 3/3arctan 6 =π ,给出一个计算π的方 法,根据此方法编写程序,给出π的至少有10位有效数字的近似值。 解:根据题中所给公式,容易得到:

() 1 2)3/3(16)3/3arctan(61 21 1 --≈=-=+∑i i n i i π 14.分别利用下式给出计算ln2的近似方法,编写相应程序并比较算法运行情况。 11,32) 1()1ln(321 1 ≤<-+++-=-=+∑∞ =+x n x x x x n x x n n n n 11),1253(21 2211ln 1253112<<-+-++++=-=-+-∞ =-∑x n x x x x n x x x n n n 解: 由运行结果可知, 方法二的绝对误差比方法一的误差要小得多。 这是因为方法一给出的计算公式含有相近数相减项,损失了有效数字。 而方法二给出的计算公式避免了相近数相减,具有较好的精度。

东南大学-数值分析上机题作业-MATLAB版

2015.1.9 上机作业题报告 JONMMX 2000

1.Chapter 1 1.1题目 设S N =∑1j 2?1 N j=2 ,其精确值为 )1 1 123(21+--N N 。 (1)编制按从大到小的顺序1 1 131121222-+ ??+-+-=N S N ,计算S N 的通用程序。 (2)编制按从小到大的顺序1 21 1)1(111222-+ ??+--+-= N N S N ,计算S N 的通用程序。 (3)按两种顺序分别计算64210,10,10S S S ,并指出有效位数。(编制程序时用单精度) (4)通过本次上机题,你明白了什么? 1.2程序 1.3运行结果

1.4结果分析 按从大到小的顺序,有效位数分别为:6,4,3。 按从小到大的顺序,有效位数分别为:5,6,6。 可以看出,不同的算法造成的误差限是不同的,好的算法可以让结果更加精确。当采用从大到小的顺序累加的算法时,误差限随着N 的增大而增大,可见在累加的过程中,误差在放大,造成结果的误差较大。因此,采取从小到大的顺序累加得到的结果更加精确。 2.Chapter 2 2.1题目 (1)给定初值0x 及容许误差ε,编制牛顿法解方程f(x)=0的通用程序。 (2)给定方程03 )(3 =-=x x x f ,易知其有三个根3,0,3321= *=*-=*x x x ○1由牛顿方法的局部收敛性可知存在,0>δ当),(0δδ+-∈x 时,Newton 迭代序列收敛于根x2*。试确定尽可能大的δ。 ○2试取若干初始值,观察当),1(),1,(),,(),,1(),1,(0+∞+-----∞∈δδδδx 时Newton 序列的收敛性以及收敛于哪一个根。 (3)通过本上机题,你明白了什么? 2.2程序

数值分析习题六解答

习 题 六 解 答 1、在区间[0,1]上用欧拉法求解下列的初值问题,取步长h=0.1。 (1)210(1)(0)2y y y '?=--?=?(2)sin (0)0x y x e y -'?=+?=? 解:(1)取h=0.1,本初值问题的欧拉公式具体形式为 21(1)(0,1,2,)n n n y y y n +=--= 由初值y 0=y(0)=2出发计算,所得数值结果如下: x 0=0,y 0=2; x 1=0.1,2100(1)211y y y =--=-= x 2=0.2,2211(1)101y y y =--=-= 指出: 可以看出,实际上求出的所有数值解都是1。 (2)取h=0.1,本初值问题的欧拉公式具体形式为 21(sin )(0,1,2,)n x n n n y y h x e n -+=++= 由初值y 0=y(0)=0出发计算,所得数值结果如下: x 0=0,y 0=0; x 1=0.1, 02 1000 (sin )00.1(sin 0)00.1(01)0.1x y y h x e e -=++=+?+=+?+= x 2=0.2, 122110.1 (sin )0.10.1(sin 0.1)0.10.1(0.10.9)0.2 x y y h x e e --=++=+?+=+?+= 指出: 本小题的求解过程中,函数值计算需要用到计算器。 2、用欧拉法和改进的欧拉法(预测-校正法)求解初值问题,取步长h=0.1。 22(00.5) (0)1 y x y x y '?=-≤≤? =? 解:(1) 取h=0.1,本初值问题的欧拉公式具体形式为 2 1(2)(0,1,2,)n n n n y y h x y n +=+-= 由初值y 0=y(0)=1出发计算,所得数值结果如下:

东南大学数值分析上机解剖

第一章 一、题目 设∑ =-=N j N j S 22 1 1,其精确值为)11 123(21+--N N 。 (1)编制按从大到小的顺序1 1 131121222-+ ??+-+-=N S N ,计算SN 的通用程序。 (2)编制按从小到大的顺序1 21 1)1(111222-+ ??+--+-=N N S N ,计算SN 的通用程序。 (3)按两种顺序分别计算64210,10,10S S S ,并指出有效位数。(编制程序时用单精度) (4)通过本次上机题,你明白了什么? 二、MATLAB 程序 N=input('请输入N(N>1):'); AccurateValue=single((0-1/(N+1)-1/N+3/2)/2); %single 使其为单精度 Sn1=single(0); %从小到大的顺序 for a=2:N; Sn1=Sn1+1/(a^2-1); end Sn2=single(0); %从大到小的顺序 for a=2:N; Sn2=Sn2+1/((N-a+2)^2-1); end fprintf('Sn 的值 (N=%d)\n',N); disp('____________________________________________________') fprintf('精确值 %f\n',AccurateValue); fprintf('从大到小计算的结果 %f\n',Sn1); fprintf('从小到大计算的结果 %f\n',Sn2); disp('____________________________________________________')

常州大学数值分析第三章

第三章作业 1.设节点x 0=0,x 1=π/8,x2=π/4,x3=3π/8,x4=π/2,试适当选取上述节点,用拉格朗日插值法分别构造cosx 在区间[0,π/2]上的一次、二次、四次差值多项式P 1(x ),P 2(x)和P 4(x),并分别计算P 1(π/3),P 2(π/3)和P 4(π/3). 解: x0 x1 x2 x3 x4 x π/8 π/4 3π/8 π/2 y=cosx 1 0.923879 0.707106 0.382683 (1)选择x0=0,x4=π/2的节点 y0=cosx0=1,y4=cosx4=0,可得 ) () ()()()(0101 1010 1x x x x y x x x x y x P --+--=,即 333333 .0)3/(1636620.0)(11≈+-≈πP x x P (2)选择x0=0,x2=π/4,x4=π/2的节点 y0=cosx0=1,y2=cosx2=0.707106,y4=cosx4=0,可得 ) )(())(())(() )(())(())(()(1202102 2101201 2010210 1x 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 y x P ----+----+----=,即 145968 .1)3/(1511124.5482067.1)(222≈++-≈πP x x x P (3)选择x0=0,,x1=π/8,x2=π/4,x3=3π/8,x4=π/2的节点y0=cosx0=1,y1=cosx1=0.923879,y2=cosx2 =0.707106,y3=cosx3=0.382683,y4=cosx4=0可得 ) ( )(4 ,04 4∏ ∑≠==--=i j j j i j i i x x x x y x P , 得 P3(x)=1+0.0031x-0.51542x +0.02423 x +0.02 844 x 4(3) 0.5001P π=/ 7.解: 选取0123=0=1=2=3x x x x ,,,为节点 >> T0=[0.0 0.5];x=[1 2 3]';y=[1.25 2.75 3.5]';x0=2.8;T=aitken(x,y,x0,T0) T = 0.0000 0.5000 0.0000 0.0000 0.0000 1.0000 1.2500 2.6000 0.0000 0.0000 2.0000 2.7500 3.6500 4.4900 0.0000 3.0000 3.5000 3.3000 3.2300 3.4820 16 1)拉格朗日差值 .选取 函数 ],[),sin()cos(ππ-∈+=x x x y x0=-pi:0.5*pi:pi; y0=cos(x0); x=-pi:0.05*pi:pi; if length(x0)~=length(y0) error('The length of x0 must be equal to it of y0'); end w=length(x0); n=w-1; L=zeros(w,w); for k=1:n+1 V=1; for j=1:n+1 if k~=j if abs(x0(k)-x0(j))

数值分析上机题(matlab版)(东南大学)

数值分析上机题(matlab版)(东南大学)

数值分析上机报告

第一章 一、题目 精确值为)1 1 123(21+--N N 。 1) 编制按从大到小的顺序 1 1 131121222-+??+-+-= N S N ,计算S N 的通用程序。 2) 编制按从小到大的顺序 1 21 1)1(111222-+??+--+-= N N S N ,计算S N 的通用程序。 3) 按两种顺序分别计算6 42 10,10, 10S S S ,并指出有效位 数。(编制程序时用单精度) 4) 通过本次上机题,你明白了什么? 二、通用程序 clear N=input('Please Input an N (N>1):'); AccurateValue=single((0-1/(N+1)-1/N+3/2)/2); Sn1=single(0); for a=2:N; Sn1=Sn1+1/(a^2-1); end Sn2=single(0); for a=2:N; Sn2=Sn2+1/((N-a+2)^2-1); end fprintf('The value of Sn using different algorithms (N=%d)\n',N); disp('____________________________________________________') fprintf('Accurate Calculation %f\n',AccurateValue); fprintf('Caculate from large to small %f\n',Sn1); fprintf('Caculate from small to large %f\n',Sn2);

常州大学数值分析09-10试卷及参考答案

常州大学2009~2010学年第 2 学期硕士生考试试题评分标准 1. (10分)当x 充分大时, 试比较 算上的差异?并叙述常见的防止误差的一些原则。 解:当x 充分大时,两个表达式在理论上恒等, 但其数值计算结果不同,前者会出现相近数相减,失去有效数位,降低计算结果精度的问题;后者避免了相近数相减的问题,尽可能地保证了计算结果的精度。 防止误差的几个基本原则主要有: 1) 防止大数“吃”小数; 2) 避免除数绝对值远远小于被除数绝对值的除法; 3) 避免相近数相减; 4) 避免使用不稳定的算法; 注意简化计算步骤,减少运算次数; ………… 5 分 2. (15分)已知列表函数 利用Newton 插值方法求()f x 的插值逼近多项式3()N x ,利用插值多项式近似计算 (1.52)f 。 解: Newton 差商表: D = 1.0000 -1.0000 - 2.0000 3.0000 4.0000 3.0000 2.0000 -1.0000 -2.5000 -1.8333 ………… 5 分 3() 1.8333^38.5000^28.6667 1.0000N x x x x =-+-+ ………… 5 分 3(1.52)(1.52) 1.0268f N ≈=。 ………… 5 分 3. (10分)已知列表函数 解:写出正规方程组 42 5.15 26 6.09 a b a b +=?? +=? ………… 5 分 解上述正规方程组得 0.9360,0.7030a b == ………… 5 分

4. (15分)写出龙贝格(Romberg )方法的数值积分公式,并用龙贝格方法计算 1 sin 0 x e dx ? , 要求误差不超过2 10-。 解:龙贝格(Romberg )方法计算定积分 ()b a f x dx ? 的数值积分公式如下: 211122221(),, 2241 3316115156416363 n n n i i i i n n n n n n n n n h b a T T f x h x x n S T T C S S R C C --=-=+=-==-=-=-∑, 其中1[()()]2 b a T f a f b -= +。 ………… 7 分 利用上述公式计算可得 romberg_table = 1.6599 1.6301 1.6319 1.6375 1.6318 1.6332 ………… 8 分 5. (10分)设213212408A -????=---????--?? , 3312b -????=??????,试用高斯消去法或LU 分解法解线性方程组Ax b =。 解:利用LU 分解法可得 121311212113A LU -???? ????==--???? ????--???? 分别解,Ly b Ux y ==可得方程组的解为112x ?? ??=-????-?? 。 6. (15分)写出解线性方程组Ax b =的Jacobi 迭代法方法及Gauss-Seidel 迭代方法的分 量形式;对下述线性方程组 12312312 3335333 x x x x x x x x x --=?? +-=??+-=-? 给出一个收敛的Gauss-seidel 迭代格式,并说明收敛的理由。 解:设() ()() () 12(,, ,)'k k k k n x x x x =为方程组的第k 次迭代解, 则解线性方程组Ax b =的Jacobi 迭代法方法及Gauss-Seidel 迭代方法的分量形式分别为

数值分析报告上机题(matlab版)(东南大学)

数值分析上机报告

第一章 一、题目 精确值为)1 1123(21+--N N 。 1) 编制按从大到小的顺序11 131121222-+ ??+-+-=N S N ,计算S N 的通用程序。 2) 编制按从小到大的顺序1 21 1)1(111222-+ ??+--+-= N N S N ,计算S N 的通用程序。 3) 按两种顺序分别计算64210,10,10S S S ,并指出有效位数。(编制程序时用单精度) 4) 通过本次上机题,你明白了什么? 二、通用程序

三、求解结果 四、结果分析 可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为精确。从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数算所得到的结果才比较准确。

第二章 一、题目 (1)给定初值0x 及容许误差ε,编制牛顿法解方程f(x)=0的通用程序。 (2)给定方程03 )(3 =-=x x x f ,易知其有三个根3,0,3321=*=*- =*x x x a) 由牛顿方法的局部收敛性可知存在,0>δ当),(0δδ+-∈x 时,Newton 迭代序列收 敛于根x 2*。试确定尽可能大的δ。 b)试取若干初始值,观察当),1(),1,(),,(),,1(),1,(0+∞+-----∞∈δδδδx 时Newton 序列的收敛性以及收敛于哪一个根。 (3)通过本上机题,你明白了什么? 二、通用程序

1.运行search.m 文件 结果为: The maximum delta is 0.774597 即得最大的δ为0.774597,Newton 迭代序列收敛于根* 2x =0的最大区间为 (-0.774597,0.774597)。 2.运行Newton.m 文件 在区间(,1),(1,),(,),(,1),(1,)δδδδ-∞----++∞上各输入若干个数,计算结果如下: 区间(,1)-∞-上取-1000,-100,-50,-30,-10,-8,-7,-5,-3,-1.5

常州大学数值分析

4.(1)T=1/2(3+1)=2 S=1/6(3+8+1)=2 计算其准确的结果为2 与精确值比较,T的误差为0 S的误差为0 7(1)复合梯形公式T2n的matlab 实现: function I= trapezoid(fun,a,b,n) n=2*n; h=(b-a)/(n-1); x=a:h:b; f=feval(fun,x); I=h* (0.5*f(1)+sum(f(2:n-1))+ 0.5*f(n)); function trapezoid_and_sinpsom clc; format long syms x Iexact= int(x*exp(x^2),x,0,1); a=0; b=1; for n=2:1:4 t=trapezoid(@f,a,b,n) s=simpson(@f,a,b,n) err1=vpa(Iexact-t,5) err2=vpa(Iexact-s,5) end function y=f(x)y= x*exp(x^2); return 从而得出的结果: n=2 t=1.000576811286697 s=0.860997139578795 err1=-0.14144 err2=-0.0018562 n=3 t=0.923798756293777 s=0.859533825596209 err1=-0.064658 err2=-0.00039291 n=4 t=0.895892057505771 s=0.859268455239111 err1=-0.036751 err2=-0.00012754 13.function [Dc,err]=dfDc(f,x0,h) d0=1/x0; Dc=(f(x0+h)-f(x0-h))/(2*h); err=Dc-d0; return function [Sc,err]=dfSc(f,x0,h) d0=1/x0; Sc=4/3*dfDc(f,x0,h/2)... -1/3*dfDc(f,x0,h); err=Sc-d0; return function [Cc,err]=dfCc(f,x0,h) d0=1/x0; Cc=16/15*dfSc(f,x0,h/2)... -1/15*dfSc(f,x0,h); err=Cc-d0;return f=@(x)log(x); x0=2;h=0.1; [Dc,err]=dfDc(f,x0,h) [Sc,err]=dfSc(f,x0,h) [Cc,err]=dfCc(f,x0,h) Dc=0.500417292784913 err=4.172927849132035e-04 Sc=0.499999843400513 err= -1.565994868224507e-07 Cc=0.500000000017481 err=1.748101663423540e-11 14. 3.示位法的MATLAB实现:Function [c,k]=fapo(f,a,b,epsilon,max1) Use false position to find the toot of function Input:f=the function a,b=left and right brachets of root

常州大学数值分析作业 第四章

姓名:李俊乾专业:化学 用最小二乘法求形如y=axe的拟合函数。 答:Matlab程序 function [a,b]=ec(x,y) Y=log(y)'; A=zeros(5,3); for i=1:5 A(i,1)=1; A(i,2)=log(x(i)); A(i,3)=i; end c=inv(A'*A)*(A'*Y); a=exp(c(1)); b=c(3); for i=1:5 y=a*x.*exp(b*x); end return x=[1 2 3 4 5]; y=[1.222 2.984 5.466 8.902 13.592]; [a,b]=ec(x,y) 输出结果为: a = 1.000202219673205 b = 0.200293860504786 plot(x,y,'b*',x,1*x.*exp(0.2*x),'r-') 7、已知人体表面积S和人体身高h,体重w有近似关系式S=α0hα1wα2。试根据身高,体重及相应的人体表面积的一组观测值 工程(专)学号:14102932 (h i,w i,S i)(i=0,1,2….n)来估计参数α0α1 α2的大小 答:Matlab程序: function [a0,a1,a2]=ec2(h,w) S=log(s)';N=length(h); A=zeros(N,3); for i=1:5 A(i,1)=1; A(i,2)=log(h(i)); A(i,3)=log(w(i)); end c=inv(A'*A)*(A'*S); a0=exp(c(1)); a1=c(2); a2=c(3); return %给出数据 h=[175 172 183 164 156]; w=[80 90 80 70 65]; s=[1000 900 1200 750 800]; [a0,a1,a2]=ec2(h,w,s) 输出结果为: a0 =1.614815742043648e-04 a1 =3.383163094165866 a2 =-0.419165011582663 8、学习Matlab内部的函数lsqcurvefit,并 设计数值实验使用lsqcurvefit。 答:Matlab内部函数lsqcurvefit是用来解决 非线性拟合的最小二乘问题的。其调用格式为: x= lsqcurvefit(fun,x0,xdata,ydata) x=lsqcurvefit(fun,x0,xdata,ydata ,lb,ub) x=lsqcurvefit(fun,x0,xdata,ydata ,lb,ub,options) [x,resnorm] = lsqcurvefit(…)

东南大学_数值分析_第七章_偏微分方程数值解法

第七章 偏微分方程数值解法 ——Crank-Nicolson 格式 ****(学号) *****(姓名) 上机题目要求见教材P346,10题。 一、算法原理 本文研究下列定解问题(抛物型方程) 22(,) (0,0)(,0)() (0) (0,)(), (1,)() (0)u u a f x t x l t T t x u x x x l u t t u t t t T ?αβ???-=<<≤≤???? =≤≤??==<≤?? (1) 的有限差分法,其中a 为正常数,,,,f ?αβ为已知函数,且满足边界条件和初始条件。关于式(1)的求解,采用离散化方法,剖分网格,构造差分格式。其中,网格剖分是将区域{}0,0D x l t T =≤≤≤≤用两簇平行直线 (0) (0)i k x x ih i M t t k k N τ==≤≤?? ==≤≤? 分割成矩形网格,其中,l T h M N τ==分别为空间步长和时间步长。将式(1)中的偏导数使用不同的差商代替,将得到不同的差分格式,如古典显格式、古典隐格式、Crank-Nicolson 格式等。其中,Crank-Nicolson 格式具有更高的收敛阶数,应用更广泛,故本文采用Crank-Nicolson 格式求解抛物型方程。 Crank-Nicolson 格式推导:在节点(,)2 i k x t τ +处考虑式(1),有 22(,)(,)(,)222 i k i k i k u u x t a x t f x t t x τττ??+-+=+?? (2) 对偏导数 (,)2 i k u x t t τ ?+?用中心差分展开 []2311+13 1(,)(,)(,)(,) ()224k k i k i k i k i i k i k u u x t u x t u x t x t t t t ττηητ++??+=--<

东南大学数值分析上机题答案说课讲解

东南大学数值分析上 机题答案

数值分析上机题 第一章 17.(上机题)舍入误差与有效数 设∑=-= N j N j S 2 2 11 ,其精确值为)111-23(21+-N N 。 (1)编制按从大到小的顺序1 -1 ···1-311-212 22N S N +++=,计算N S 的通用程序; (2)编制按从小到大的顺序1 21 ···1)1(111 222 -++--+-=N N S N ,计 算N S 的通用程序; (3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数(编制程序时用单精度); (4)通过本上机题,你明白了什么? 解: 程序: (1)从大到小的顺序计算1 -1 ···1-311-212 22N S N +++= : function sn1=fromlarge(n) %从大到小计算sn1 format long ; sn1=single(0); for m=2:1:n sn1=sn1+1/(m^2-1); end end (2)从小到大计算1 21 ···1)1(111 222-++--+ -= N N S N function sn2=fromsmall(n) %从小到大计算sn2

format long; sn2=single(0); for m=n:-1:2 sn2=sn2+1/(m^2-1); end end (3) 总的编程程序为: function p203() clear all format long; n=input('please enter a number as the n:') sn=1/2*(3/2-1/n-1/(n+1));%精确值为sn fprintf('精确值为%f\n',sn); sn1=fromlarge(n); fprintf('从大到小计算的值为%f\n',sn1); sn2=fromsmall(n); fprintf('从小到大计算的值为%f\n',sn2); function sn1=fromlarge(n) %从大到小计算sn1 format long; sn1=single(0); for m=2:1:n sn1=sn1+1/(m^2-1); end end function sn2=fromsmall(n) %从小到大计算sn2 format long; sn2=single(0); for m=n:-1:2 sn2=sn2+1/(m^2-1); end end end 运行结果:

常州大学数值分析习题解答

1.1解: m=3; f=@(x)digit(digit(x^4,m)- digit(x^3,m)+ digit(3*x^2,m)+ digit(x-2,m),m); g=@(x)digit(digit(digit( digit(digit(digit( (x-1)*x,m)+3,m)*x,m)+1,m)*x,m)-2,m); f(3.33) g(3.33) 有ans = 121 ans =121 实际上,当m=2时,就可以看出这两种算法在计算的精确度上的区别: m=2; f=@(x)digit(digit(x^4,m)- digit(x^3,m)+ digit(3*x^2,m)+ digit(x-2,m),m); g=@(x)digit(digit(digit( digit(digit(digit( (x-1)*x,m)+3,m)*x,m)+1,m)*x,m)-2,m); f(3.33) g(3.33) 有ans = 120 ans =130,可以看出,两者在计算精度上的不同区别,数学上恒等,在数值上不一定恒等。 1.2解: (1)精确到小数点后第三位,故有4位有效数字 (2)精确到小数点后第三位,故有2位有效数字 (3)精确到小数点后第三位,故有0位有效数字 1.3 解; 记圆的面积为S,由题意有|e(S)|≤1%。由S=πr2知:dS=2πrdr所以 dS/S=(2πrdr)/(πr2)=2(dr/r) ∴|e(r)|≈1/2|e(S)|≤0.5×1%=0.5% 1.4 解: 由题有:|e(x)|≤1/2×10^-2 ; |e(y)|≤1/2×10^-2; |e(z)||≤1/2×10^-2 ∴|e(S)|≈|xe(x)+ye(y)|+ |ze(z)|^2≈x|e(x)|+y|e(y)|+z^2|z(z)|^2≤4.21×0.005+1.79×1.005+2.11×2.11×0.005^2=0.03≤1/2×10^-1 又S=4.21*1.79+2.11^2=11.988 ∴S至少具有3位有效数字。 在字长为3的计算机上运行,误差为: S1=4.21*1.79+2.11; S2=digit(digit(4.21*1.79,3)+digit(2.11^2,3),3); err=S1-S2 err = -2.3541 1.6 解: clc disp('Please input the coefficients of'); disp('quadratic equation ax^2+bx+c=0, respectively') a=input('a='); b=input('b='); c=input('c='); m=4; % m-digit rounding arithmetic

相关文档
最新文档