《现代数值计算方法(MATLAB版)》习题解答

合集下载

MATLAB课后习题集附标准答案

MATLAB课后习题集附标准答案

第2章MATLAB概论1、与其他计算机语言相比较,MA TLAB语言突出的特点是什么?答:起点高、人机界面适合科技人员、强大而简易的作图功能、智能化程度高、功能丰富,可扩展性强.2、MA TLAB系统由那些部分组成?答:开发环境、MATLAB数学函数库、MATLAB语言、图形功能、应用程序接口3、安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装.第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可.4、MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?答:在MATLAB操作桌面上有五个窗口,在每个窗口的右下角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口称为独立的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面称为独立窗口,在独立窗口的view菜单中选择Dock,菜单项就可以将独立的窗口重新防止的桌面上.5、如何启动M文件编辑/调试器?答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动.在命令窗口中键入edit命令时也可以启动M文件编辑/调试器.6、存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可.7、命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中.8、如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成.在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上.9、在MA TLAB中有几种获得帮助的途径?答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器.(2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息.(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数.(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数.注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息.第3章 MATLAB 数值运算3.1在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? 答:在Command Window 窗口输入操作:>> a=[5 7 3;4 9 1]3.2有几种建立矩阵的方法?各有什么优点? 答:(1)直接输入法,如a=[1 2 3 4],优点是输入方法方便简捷;(2)通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; (3)由函数建立,如y=sin(x),可以由MATLAB 的内部函数建立一些特殊矩阵; (4)通过数据文件建立,该方法可以调用由其他软件产生数据.3.3在进行算术运算时,数组运算和矩阵运算各有什么要求?答:进行数组运算的两个数组必须有相同的尺寸.进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数.渗釤呛俨匀谔鱉调硯錦。

Matlab习题及答案

Matlab习题及答案

现代计算方法Matlab 作业答案1.绘出函数f(x)=sin x x ,在[0,4]上的图形解:在M 文件输入:x=0:pi/100:4;y=x.*sin(x);plot(y)运行2. 求3x +2x +5 = 0的根解:在命令窗口输入:>> solve('x^3+2*x+5=0')ans =((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3) - 2/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3))1/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)) - ((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)/2 -(3^(1/2)*i*(2/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)) + ((108^(1/2)*707^(1/2))/108 -5/2)^(1/3)))/21/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)) - ((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)/2 +(3^(1/2)*i*(2/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)) + ((108^(1/2)*707^(1/2))/108 -5/2)^(1/3)))/23.321436min x x x z ++=120..321=++x x x t s301≥x5002≤≤x203≥x解:运用单纯形法计算此题,首先把约束条件化成标准形式:,,,,,205030120654321635241321≥=-=+=-=++x x x x x x x x x x x x x x x(1)在M 文件输入SimpleMthd 函数:function [x,minf] = SimpleMthd(A,c,b,baseVector)sz = size(A);nVia = sz(2);n = sz(1);xx = 1:nVia;nobase = zeros(1,1);m = 1;for i=1:nViaif (isempty(find(baseVector == xx(i),1)))nobase(m) = i;m = m + 1;else;endendbCon = 1;M = 0;while bConnB = A(:,nobase);ncb = c(nobase);B = A(:,baseVector);cb = c(baseVector);xb = inv(B)*b;f = cb*xb;w = cb*inv(B);for i=1:length(nobase)sigma(i) = w*nB(:,i)-ncb(i);end[maxs,ind] = max(sigma);if maxs <= 0minf = cb*xb;vr = find(c~=0 ,1,'last');for l=1:vrele = find(baseVector == l,1);if (isempty(ele))x(l) = 0;elsex(l)=xb(ele);endendbCon = 0;elsey = inv(B)*A(:,nobase(ind));if y <= 0disp('不存在最优解!');x = NaN;minf = NaN;return;elseminb = inf;chagB = 0;for j=1:length(y)if y(j)>0bz = xb(j)/y(j);if bz<minbminb = bz;chagB = j;endendendtmp = baseVector(chagB);baseVector(chagB) = nobase(ind);nobase(ind) = tmp;endendM = M + 1;if (M == 1000000)disp('找不到最优解!');x = NaN;minf = NaN;return;endend(2)在命令窗口输入:clear allA=[1 1 1 0 0 0;1 0 0 -1 0 0;0 1 0 0 1 0;0 0 1 0 0 -1];c=[6 3 4 0 0 0];b=[120;30;50;20];[xm,mf]=SimpleMthd(A,c,b,[3 4 5 6])xm =0 50 70mf =4304.计算下面函数在区间(0,1)内的最小值。

数值计算方法第四章习题部分参考答案

数值计算方法第四章习题部分参考答案

3) 快速弦截法 相应的弦截迭代公式为:
f x k x x x x k 1 k k k 1 f x f x k k 1
x k e 4 c o s x k x x x k k k 1 x x k k 1 e 4 c o s x e 4 c o s x k k 1
2) 弦截法:取 x0


4
, x1

2
相应的弦截迭代公式为:
f xk xk1 xk xk x0 f xk f x0 xk e 4co sxk xk xk x0 exk 4co sxk (e4 4 2 ) 2
因此有 x 1 . 3 , 1 . 6

2 x3
x 又:
,易知 x 为单调递减函数,所以有
2 x 0 . 9 1 0 3 1 3 ( 1 . 3 )
由压缩影像定理知该迭代式收敛。
2) 对于该迭代式,相应的迭代函数为:
x 3 1x2


利用公式作迭代得:
x 1 e 4 c o s x 1 x x x x 0 . 8 7 7 0 0 3 2 1 1 0 x 1 4 e 4 c o s x ( e 4 2) 1 2
x2 e 4cosx2 x3 x2 x2 x0 0.906360 ex2 4cosx2 (e4 4 2 ) 2 x3 e 4cosx3 x4 x3 x3 x0 0.904701 ex3 4cosx3 (e4 4 2 ) 2
2 2 3 x 1 . 6 1 1 . 6 0 . 5 6 4 1 1 3

数值计算与MATLAB第二章

数值计算与MATLAB第二章

第二章非线性方程求根习题2-11. 试寻找f(x)= x 3+6.6 x2-29.05 x +22.64=0的实根上下界,及正根所在的区间,区间长度取1。

解:由笛卡儿符号规则知,f(x)=0可能有二个正根或无正根f(-x)= -x 3+6.6 x2+29.05 x +22.64=0即x 3 -6.6 x2-29.05 x -22.64=0f(-x)=0有一个正根,因此,f(x)=0有一个负根。

由定理2-3,f(x)=0的正根上界f(x)=0的负根下界x0123456 6.39f(x)++-+++++正根所在区间为(1, 2),(2, 3)。

2.你能不利用多项式的求导公式,而借鉴于余数定理的思想,构造出P n(x)=a0x n+a1x n-1+...+a n-1x+a n在x0这点上的导数值的算法吗?习题2-21.用二分法求方程x2-x-1=0的正根,要求准确到小数点后第一位a F(a)b F(b)x F(x)0-1211-11-121 1.5-0.251.5-0.2521 1.750.31251.5-0.25 1.750.3125 1.6250.3015625 1.5-0.25 1.6250.015625 1.5625-0.12109375 1.5625-0.12104375 1.6250.015625 1.59375-0.053710937 1.59375-0.053710937 1.6250.015625 1.609375-0.019287109 1.609375-0.019287109 1.6250.015625 1.6171875-0.001892089 1.6171875-0.001892089 1.6250.015625 1.621093750.006851196 1.6171875-0.001892089 1.621093750.006851196 1.6191406250.002175738 1.6171875-0.001892089 1.619140620.002475738 1.6181640630.000290904X*=1.618K=5X*=1.593752.试证明用试位法(比例求根法),求在区间[0, 1]内的一个根必然收敛。

实验6答案Matlab数值计算

实验6答案Matlab数值计算

实验6 Matlab数值计算实验目的:1、掌握数据统计与分析的方法;2、掌握数据插值和曲线拟合的方法及其应用;3、掌握多项式的常用运算。

实验内容:1.利用randn函数生成符合正态分布的10×5随机矩阵A,进行如下操作:(1)求A的最大元素和最小元素;(2)求A的每行元素的和以及全部元素的和;(3)分别对A的每列元素按升序、每行元素按降序排列。

a = randn(10,5)+10;ma = max(max(a))mi = min(min(a))s = sum(a,2)sa = sum(sum(a))p = sort(a)p1 = -sort(-a,2)2.用3次多项式方法插值计算1-100之间整数的平方根。

f = sqrt(n);interp1(n,f,(1:100),'cubic')3.某气象观测站测得某日6:00-18:00之间每隔2h的室内外温度(°C)如下表所示。

使用三次样条插值分别求出该日室内外6:30-17:30之间每隔2h 各点的近似温度,并绘制插值后的温度曲线。

n= 6:2:18;f1 = [18 20 22 25 30 28 24]; f2 = [15 19 24 28 34 32 30]; r = 6.5:2:17.5;w = interp1(n,f1,r,'spline'); w1 = interp1(n,f2,r,'spline'); subplot(211),plot(r,w) subplot(212),plot(r,w1)4. 已知lgx 在[1,101]区间10个整数采样点的函数值如下表所示,试求lgx 的5次拟合多项式p(x),并绘制lgx 和p(x)在[1,101]区间的函数曲线。

x = linspace(1,101,10); y = log(x) /log(10); p = polyfit(x,y,5) y1 = polyval(p,x) plot(x,y,':o',x,y1,'-*') legend('sin(x)','fit')5. 有3个多项式(),(),()P x x x x P x x P x x x =+++=+=++4322123245223,试进行下列操作:(1) 求()()()()P x P x P x P x =+123。

现代数值计算方法(MATLAB版)第3章(2)

现代数值计算方法(MATLAB版)第3章(2)

数计学院
16/16
ak ck−1 |¯ bk | = bk − ck−1 ≥ |bk | − |ak | · > |bk | − |ak | > 0, bk−1 bk−1 bk = 0, k = 2, · · · , n. , .
Back Close
福建师范大学
数计学院
10/16
MATLAB >> A=[2 -1 4 -3 1;-1 1 2 1 3;4 2 3 3 -1; -3 1 3 2 4; 1 3 -1 4 4]; >> b=[11 14 4 16 18]’; >> x=magauss2(A,b); x’
Back Close
x = 1.0000 §3.3 , b1 c1 a2 b 2 c 2 ... ... ... an−1 bn−1 cn−1 an b n Gauss x1 x2 . . . xn−1 xn d1 d2 = . . . dn−1 dn . 2.0000 1.0000 -1.0000 4.0000
(3.8)
福建师范大学
数计学院
13/16
(3.9)
Back Close
function x= machase(a,b,c,d) % % % % : : x= machase(a,b,c,d) b d ,x , c Ax=d a ,
14/16
,
福建师范大学
数计学院
n=length(a); for k=2:n b(k)=b(k)-a(k)/b(k-1)*c(k-1); d(k)=d(k)-a(k)/b(k-1)*d(k-1); end x(n)=d(n)/b(n); for k=n-1:-1:1 x(k)=(d(k)-c(k)*x(k+1))/b(k);

数值计算课后答案3

数值计算课后答案3

习 题 三 解 答1、用高斯消元法解下列方程组。

(1)12312312231425427x x x x x x x x -+=⎧⎪++=⎨⎪+=⎩①②③解:⨯4②+(-)①2,12⨯③+(-)①消去第二、三个方程的1x ,得:1232323231425313222x x x x x x x ⎧⎪-+=⎪-=⎨⎪⎪-=⎩④⑤⑥ 再由52)4⨯⑥+(-⑤消去此方程组的第三个方程的2x ,得到三角方程组:1232332314272184x x x x x x ⎧⎪-+=⎪-=⎨⎪⎪-=⎩回代,得:36x =-,21x =-,19x = 所以方程组的解为(9,1,6)T x =--注意:①算法要求,不能化简。

化简则不是严格意义上的消元法,在算法设计上就多出了步骤。

实际上,由于数值计算时用小数进行的,化简既是不必要的也是不能实现的。

无论是顺序消元法还是选主元素消元法都是这样。

②消元法要求采用一般形式,或者说是分量形式,不能用矩阵,以展示消元过程。

要通过练习熟悉消元的过程而不是矩阵变换的技术。

矩阵形式错一点就是全错,也不利于检查。

一般形式或分量形式: 12312312231425427x x x x x x x x -+=⎧⎪++=⎨⎪+=⎩①②③ 矩阵形式123213142541207x x x -⎛⎫⎛⎫⎛⎫ ⎪⎪ ⎪= ⎪⎪ ⎪ ⎪⎪ ⎪⎝⎭⎝⎭⎝⎭向量形式 123213142541207x x x -⎛⎫⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪++= ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭③必须是方程组到方程组的变形。

三元方程组的消元过程要有三个方程组,不能变形出单一的方程。

④消元顺序12x x →→L ,不能颠倒。

按为支援在方程组中的排列顺序消元也是存储算法的要求。

实际上,不按顺序消元是不规范的选主元素。

⑤不能化简方程,否则系数矩阵会变化,也不利于算法设计。

(2)1231231231132323110221x x x x x x x x x --=⎧⎪-++=⎨⎪++=-⎩①②③解:⨯23②+()①11,111⨯③+(-)①消去第二、三个方程的1x ,得: 123232311323523569111111252414111111x x x x x x x ⎧--=⎪⎪⎪-=⎨⎪⎪+=-⎪⎩④⑤⑥ 再由2511)5211⨯⑥+(-⑤消去此方程组的第三个方程的2x ,得到三角方程组:123233113235235691111111932235252x x x x x x ⎧⎪--=⎪⎪-=⎨⎪⎪=-⎪⎩回代,得:32122310641,,193193193x x x =-==, 所以方程组的解为 41106223(,,)193193193Tx =-2、将矩阵1020011120110011A ⎛⎫ ⎪⎪= ⎪- ⎪⎝⎭作LU 分解。

matlab教程习题答案

matlab教程习题答案

matlab教程习题答案
MATLAB教程习题答案
MATLAB是一种用于数学计算、数据分析和可视化的强大工具。

它被广泛应用于工程、科学和金融领域,因此掌握它的使用对于提高工作效率和解决问题至关重要。

在学习MATLAB的过程中,许多人会遇到各种习题,下面我们将给出一些常见习题的答案,希望能帮助大家更好地理解和掌握MATLAB的使用。

1. 编写一个MATLAB程序,计算并输出1到100之间所有奇数的和。

答案:
```matlab
sum = 0;
for i = 1:100
if mod(i, 2) == 1
sum = sum + i;
end
end
disp(sum);
```
2. 编写一个MATLAB程序,生成一个5x5的随机矩阵,并计算矩阵每一行的平均值。

答案:
```matlab
A = rand(5, 5);
row_means = mean(A, 2);
disp(row_means);
```
3. 编写一个MATLAB程序,求解以下线性方程组的解:
```
2x + 3y = 8
4x - 2y = 2
```
答案:
```matlab
A = [2, 3; 4, -2];
B = [8; 2];
X = A \ B;
disp(X);
```
通过以上习题的答案,我们可以看到MATLAB的强大功能和灵活性。

掌握这些基本的使用技巧,可以帮助我们更好地应用MATLAB解决实际问题,提高工作效率。

希望大家在学习和使用MATLAB的过程中能够不断积累经验,不断提升自己的技能水平。

数值计算方法与Matlab样卷答案

数值计算方法与Matlab样卷答案

腹有诗书气自华《数值计算方法与Matlab 》 样卷答案一.填空题:(每空3分,共42分)1. 8,6105.0-⨯ 。

2.)(3)1(2)1(1)(3)1(2)1(1)(3)1(3)(3)(2)1(1)(3)(2)1(1)(2)1(2)(3)(2)(1)(3)(2)(1)(1)1(1)1(22)22()1()1(222)1()222(k k k k k k k k k k k k k k k k k k k k k k k k x x x x x x x x x x x x x x x x x x x x x x x x ωωωωωωωωωωωωωω-+--=---⋅+=+--+-=---⋅+=++--=+--⋅+=+++++++++,)2,1(∈ω。

3.],[1b a C S m -∈。

4. 1e 2e ---x ,⎩⎨⎧==-=⋅--⎰,3,2,1,0;0,e 1d )(e 110k k x x g k x ,正交投影。

5. 2阶,6阶。

6.10.6658,10.9521,10.9501。

7. 4002.2)00.1(=ε,4030.2)01.1(=ε。

二.解下列各题:(每题9分,共36分)1.解:令)1(23+=t x , (2分) 则⎰⎰-+++=+112302dt )1(25.21)1(49d 1t t x x x ⎭⎬⎫++++⎩⎨⎧++-+-≈22)6.01(25.21)6.01(9525.2198)6.01(25.21)6.01(9549 (8分)210631.10≈ (9分) 2.解:记系数矩阵为A, 对增广矩阵[]b A |作初等行运算,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--401533933112⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--==5.55.115.35.405.75.401125.1,5.11,31,2l l ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=45.114005.75.4011212,3l , 所以13-=x ,2)5.75.1(5.4112=-=x x ,1)1(21321=-+-=x x x ,即方程组的解为 [1,2,-1]T . (4分)故系数矩阵A 的LU 分解为⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--⋅⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=4005.75.40112115.1015.1001A 。

现代数值计算方法与习题解答

现代数值计算方法与习题解答

习题一6、解:设正方形的边长为x ,则其面积为x 2,由题设知x 的近似值为x *。

记y *为y 的近似值,则E (y *)= y- y *= 2 x *(x- x *)= 20(x-x *)= 20E (x *)≤0.1 所以E (x *)= 0.005cm12、解:因为y 。

= 2,*0y = 1.41,所以*0y-y ≤12⨯210- =δ 于是有*11y y -=**00010y 110y 110y y 10--+=-≤0δ *22y y -=**2111110y 110y 110y y 10--+=-≤δ 类推有*10101010y y -≤δ=81102⨯ 即计算到10y ,其误差限为1010δ,亦即若在0y 处有误差限为δ,则 10y 的误差将扩大1010倍,可见这个计算过程是不稳定的。

习题二2、解:第一步:计算U 的第一行,L 的第二行,得116u = 122u = 131u = 141u =- 21211113l a u == 31311116l au == 41411116l a u ==-第二步:计算U 的第二行,L 的第二列,得22222112232321132424211432323112224242411222102/31/3()1/5()1/10u a l u u a l u u a l u l a l u u l a l u u =-==-==-==-==-=第三步:计算U 的第三行,L 的第三列,得33333113322334343114322443434113422333444441144224433437/109/10()/9/37U 955/370u a l u l u u a l u l u l a l u l u u u a l u l u l u =--==--=-=--=-=---=第四步:计算的第四行,得从而,6211241011411013-⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥--⎣⎦=100062111100010321161100110161109371000955370-⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥---⎣⎦⎣⎦由LY=b,解得Y=(6,-3,23/5,-955/370)T 由UX=Y ,解得X=(1,-1,1,-1)T 。

数值计算方法学习指导

数值计算方法学习指导
数值计算方法学习指导数值计算方法解题指导现代数值计算习题指导数值计算方法数值计算方法第二版数值计算方法课后答案数值计算方法pdf数值计算方法答案数值计算方法与算法matlab数值计算方法
第一章
1、误差估计
绪论
, x 为 x 的一个近似值。称 e = e( x ) = x − x 为近似值 x 的 (1)设 x 为真值(精确值) 绝对误差,简称误差。如果 e = x − x ≤ ε ,则称 ε 为近似值 x 的绝对误差限,简称误差
说法是:取几位有效数字就能确保近似数的相对误差不超过 0.1% 。
x − x∗ 1 解 因为 20 = 4.4 L ,故在例 1 中, s = 1, m = 0 , a1 = 4 , ≤ ×10− ( n −1) , ∗ 2a1 x

x − x∗ 1 ≤ × 10− ( n −1) < 0.1% ∗ x 2× 4
特别,设计算函数值 A = f ( x1 , x2 , L , xn ) ,如果 x1 , x2 , L , xn 的近似值为 x1 , x2 , L , xn , 则 A 的近似值为 A = f ( x1 , x2 , L , xn ) ,函数值 A 的误差可由 Taylor 展开方法得到:
∗ ∗ ∗ ∗
1 10 + 99
=
1 = 0.050125639L 10 + 9.94987
利用有效数字的多少来比较不同算法的优劣,说明了算法选取的重要性。 记x=
99, x ∗ = 9.94987 , e( x ∗ ) = x ∗ − x ,则 e( x ∗ ) ≤
1 × 10−5 , 2
由 e(10 − x ) ≈ − e( x ) 得
10 − 99 =

习题六(Matlab数值计算)课后习题

习题六(Matlab数值计算)课后习题

习题六(Matlab数值计算)课后习题1、利⽤MATLAB 提供的randn 函数⽣成符合正态分布的10×5随机矩阵A,进⾏如下操作:(1)A 各列元素的均值和标准⽅差。

(2)A 的最⼤元素和最⼩元素。

(3)求A 每⾏元素的和以及全部元素之和。

(4)分别对A 的每列元素按升序、每⾏元素按降序排序。

A=randn(10,5);disp('各列元素的均值:');mean(A)disp('各列元素的标准⽅差:');std(A)disp('A 的最⼤元素:');max(max(A))disp('A 的最⼩元素:');min(min(A))disp('A 每⾏元素之和:');sum(A,2)disp('全部元素之和:');sum(sum(A))disp('每列元素按升序:');Y=sort(A)disp('每⾏元素按降序:');Y=sort(A,2,'descend')各列元素的均值:ans =-0.1095 0.1282 -0.2646 0.3030 -0.2464各列元素的标准⽅差:ans =0.9264 1.2631 0.8129 0.8842 1.3151A 的最⼤元素:ans =2.5855A 的最⼩元素:ans =-1.9330A 每⾏元素之和:ans =-2.29701.25450.06615.0489-0.69881.1002-2.9310-2.0595-1.68780.3112全部元素之和:ans =-1.8932每列元素按升序:Y =-1.2141 -1.4916 -1.4224 -1.1658 -1.9330-1.1135 -1.0891 -1.4023 -0.8045 -1.7947-0.8637 -1.0616 -0.7648 -0.2437 -1.1480-0.7697 -0.7423 -0.6156 0.1978 -0.6669-0.2256 0.0326 -0.1961 0.2157 -0.4390-0.0068 0.0859 -0.1924 0.2916 -0.08250.0774 0.5525 -0.1774 0.6966 0.10490.3714 1.1006 0.4882 0.8351 0.18731.1174 1.5442 0.7481 1.4193 0.72231.53262.3505 0.8886 1.5877 2.5855每⾏元素按降序:Y =1.4193 -0.6156 -0.8637 -1.0891 -1.14800.7481 0.2916 0.1049 0.0774 0.03260.7223 0.5525 0.1978 -0.1924 -1.21412.5855 1.5877 1.1006 0.8886 -1.11351.5442 -0.0068 -0.6669 -0.7648 -0.80451.5326 0.6966 0.1873 0.0859 -1.40230.8351 -0.0825 -0.7697 -1.4224 -1.49160.4882 0.3714 -0.2437 -0.7423 -1.93300.2157 -0.1774 -0.2256 -0.4390 -1.06162.3505 1.1174 -0.1961 -1.1658 -1.79472、按要求对指定函数进⾏插值和拟合。

数值计算方法 Matlab实题训练(内附程序,模型)

数值计算方法 Matlab实题训练(内附程序,模型)

《数值计算方法训练》实习报告题目:6-A组院系:上海电力学院数理学院专业年级:信息与计算科学专业2009级学生姓名:XX远学号:200924262011年7月8日第1题:含炭量与时间的关系在某冶炼过程中,钢的含炭量y 与时间t 的统计数据如下 t 0 5 10 15 20 25 30 35 40 45 50 55 y 0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.584.024.64(1)画出原始数据分布趋势图;(2)用最小二乘法求钢的含炭量y 与时间t 的拟合曲线32ct bt at y ++=; (3)打印出拟合曲线;(4)另外选用b at y =进行拟合,比较二种拟合的效果。

解:分析:使用到曲线拟合的最小二乘法,对于拟合函数,尽量转化为可以方便提炼出基函数的方程。

在明确基函数的基础上,通过计算,得到各个系数,得到法方程组 (1),程序:function yuan(y)t=[0:5:55]; plot(t,y,'*')legend('原始数据分布趋势图')运行结果:yuan([0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64])图1 原始数据分布趋势(2),使用最小二乘法,就必须先取基函数,对于该题流程如下:①:取基函数为:t =0ϕ 21t =ϕ 32t =ϕ ②:由基函数和y 求法方程组的系数:⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎨⎧⋅=⋅=⋅=⋅=⋅=⋅=⋅=⋅=⋅=∑∑∑∑∑∑∑∑∑=========)(),()(),()(),()()(),()()(),()()(),()()(),()()(),()()(),(212121121101210212122221211211121111212102011210100121000i i i i i i i i i ii i i i i i i i i i i i i i i i i x y f x y f x y f x x x x x x x x x x x x ϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕ ③:由这些系数,确定法方程组:BX A =⋅⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=),(),(),(),(),(),(),(),(),(),(),(),(210222120121110020100ϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕϕf f f B A ④:解这个法方程组:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡==⋅c b a X B X A ,得到拟合函数:32ct bt at y ++= 程序:function [a,b,c]=xian(y0)t0=[0:5:55]; k1=t0;k2=t0.*t0; k3=t0.*t0.*t0;A=[sum(k1.*k1) sum(k2.*k1) sum(k3.*k1);sum(k1.*k2) sum(k2.*k2)sum(k3.*k2);sum(k1.*k3) sum(k2.*k3) sum(k3.*k3)]; B=[sum(k1.*y0);sum(k2.*y0);sum(k3.*y0)]; x=pinv(A)*B; a=x(1,1); b=x(2,1); c=x(3,1); t=0:55;y=a.*t+b.*t.^2+c.*t.^3; plot(t,y,'--') hold onplot(t0,y0,'*')legend('y=a*t+b*t^2+c*t^3拟合效果','真实值')运行结果:[a,b,c]=xian([0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64]) a =0.2657 b =-0.0053 c =3.5168e-005(3)拟合的图形,即上一题显示的图像图2 拟合函数32ct bt at y ++=效果(4),用于这种非线性模型的拟合①:把其化作线性:b t y ⋅=α→两边同时取以e 为底的对数→ t b y ln ln )ln(⋅+=α②:重复上面第二题的步骤进行,其中需要强调的是(0,0)的点需要另外输入,因为)0ln(不存在,为了在同图出现,故对第二条拟合函数,取b n a m ==程序:function [m,n,a,b,c]=fei(y2,y0)%y2=y0除了0以外的数y1=log(y2);t1=[5:5:55];n=length(t1);k1=ones(1,n);k2=log(t1);A=[sum(k1.*k1) sum(k2.*k1);sum(k1.*k2) sum(k2.*k2)];B=[sum(k1.*y1);sum(k2.*y1)];x=pinv(A)*B;m=exp(x(1,1));n=x(2,1);t=0:55;y=m*t.^n;plot(t,y,'-')hold on[a,b,c]=xian(y0)plot(t,y,'--')hold onplot(t1,y2,'*',0,0,'*')legend('y=m*t.^n拟合效果','y=a*t+b*t^2+c*t^3拟合效果','真实值')得到的拟合图像:图3 两种拟合函数拟合效果对比结论:在实际生活当中,不免需要对一组数据进行拟合,通过采用最佳的拟合,找到一个近似的函数来研究数据的共性。

MATLAB 课后部分答案

MATLAB 课后部分答案

P77 第2章1、>> x=2;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)>> x=4;>> y=power(x,3)+(x-0.98).^2./(x+1.35).^3-5*(x+1./x)7、>> mat=rand(4,5);>> m=1;>> for i=1:2for j=1:5if mat(i,j)>0.3b(m)=mat(i,j);m=m+1;endendend>> b8、>> V=inv(A)>> A=rand(5,5);10、>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C=A*B??? Error using ==> mtimesInner matrix dimensions must agree.>> C=A.*BC =5 16 24 -26-18 -12 -15 72-2 -21 108 -5611、>> x=linspace(0,2*pi,125);>> y=cos((x).*(0.5+3*sin(x)./(1+x.^2)));>> plot(x,y)13、>> x=-2:0.1:2;y=-2:0.1:2;>> [X,Y]=meshgrid(x,y);>> Z=X.^2.*exp(-X.^2-Y.^2);>> mesh(Z)建立一个M函数文件mycos.m,程序如下:function y=mycos(x)clear allx=input('请输入x的值')y=1./((x-2).^2+0.1)+1./((x-3).^3+0.01)在命令窗口输入:mycosP123 第3章1、>> x=[446 714 950 1422 1634];y=[7.04 4.28 3.40 2.54 2.13];>> xi=500:500:1500;>> yi=interp1(x,y,xi,'linear')4、>> p=[3 4 7 2 9 12];>> roots(p)8、>> a=[2 4 9;4 2 4;9 4 18];>> [V,D]=eig(a) %V的列向量是相应的特征向量,对角阵D的对角元素为a的特征值10、>> p1=[-1 4 0];p2=[-1 -4 0];>> A=polyder(p1);B=polyder(p2);>> A1=roots(A);B1=roots(B);>> y=4*A1-4*B1-A1.^2-B1.^213、>> syms x y>> Ex=int(int(x.*12.*y.^2,y,0,x),x,0,1)>> Ey=int(int(y.*12.*y.^2,x,y,1),y,0,1)>> Exy=Ex.*Ey14、>> A=rand(4,4);>> [L,U]=lu(A)>> [Q,R]=qr(A)P183 第4章1、>> n=-2*pi:0.01:2*pi;>> N=12;x=cos(n*pi./6);>> X=fft(x,N)>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> y=conv(xn,hn)4、>> n=0:11;h=0:5;>> nx=((n>=0)&(n<=11)); hx=((n>=0)&(n<=5)); >> xn=0.8*nx;hn=hx;>> M=length(xn);N=length(hn);>> L=pow2(nextpow2(M+N-1));>> Xk=fft(xn,L);Hk=fft(hn,L);>> Yk=Xk.*Hk;>> yn=ifft(Yk,L)5、>> num=[2 3 0];den=[1 0.4 1];>> [z,p,k]=tf2zp(num,den)6、>> num=[4 15.6 6 2.4 -6.4];den=[3 2.4 6.3 -11.4 6]; >> [z,p,k]=tf2zp(num,den)>> zplane(z,p)7、>> num=[18 0 0 0];den=[18 3 -4 -1];>> [r,p,k]=residuez(num,den)9、建立一个M函数文件,程序如下:clear allN=10;[z,p,k]=buttap(N);[A,B,C,D]=zp2ss(z,p,k);wc1=100;wc2=200;[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,wc1,wc2);[num1,den1]=ss2tf(At,Bt,Ct,Dt);[num2,den2]=impinvar(num1,den1);dimpulse(num2,den2)10、建立一个M函数文件,程序如下:clear allwp=100*2*pi;ws=200*2*pi;Rp=2;Rs=15;Fs=500;[N,Wc]=buttord(wp,ws,Rp,Rs,'s'); %选择滤波器的最小阶数[z,p,k]=buttap(N);[B,A]=zp2tf(z,p,k);[num,den]=bilinear(B,A,Fs); %模拟滤波器的传递函数转换为数字滤波器的传递函数freqz(num,den)11、建立一个M函数文件,程序如下:clear allN=48;w=[0.35,0.65];B=fir1(N,w,'bandpass'); %返回一个N阶的带通滤波器freqz(B) %绘制滤波器的频率响应曲线12、建立一个M函数文件,程序如下:clear allN=37;wc=0.3*pi;B=fir1(N,wc);freqz(B) %绘制滤波器的频率响应曲线13、建立一个M函数文件,程序如下:clear allN=55;F=[0:1/55:1];A=[ones(1,28),zeros(1,N-27)];B=fir2(N,F,A);freqz(B) %绘制滤波器的频率响应曲线15、建立一个M函数文件,程序如下:clear allwc=0.4*pi/(2*pi);N=12;[B,A]=butter(N,wc);%设计N阶截止频率为wc的Butterworth低通数字滤波器的传递函数模型m=dimpulse(B,A,101);stem(m,'.')P277 第6章2、建立一个M函数文件,程序如下:function [h,l]=huffmancode(P)if length(find(P<0))~=0,error('Not a prod.vector')endif abs(sum(P)-1)>10e-10error('Not a prod.vector')endn=length(P);for i=1:n-1for j=i:nif P(i)<=P(j)p=P(i);P(i)=P(j);P(j)=p;endendenddisp('概率分布'),PQ=P;m=zeros(n-1,n);for i=1:n-1[Q,l]=sort(Q);m(i,:)=[l(1:n-i+1),zeros(1,i-1)];Q=[Q(1)+Q(2),Q(3:n),1];endfor i=1:nc(i,:)=blanks(n*n);endc(n-1,n)='0';c(n-1,2*n)='1';for i=2:n-1c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))-(n-2):n*(find(m(n-i+1,:)==1)));c(n-1,n)='0';c(n-i,n+1:2*n-1)=c(n-i,1:n-1);c(n-i,2*n)='1';for j=1:i-1c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,:)==j+1));endendfor i=1:nh(i,1:n)=c(1,n*(find(m(1,:)==i)-1)+1:find(m(1,:)==i)*n);ll(i)=length(find(abs(h(i,:))~=32));endl=sum(P.*ll); %计算平均码长在命令窗口中输入:>> P=[0.20 0.15 0.13 0.12 0.1 0.09 0.08 0.07 0.06];>> [h,l]=huffmancode(P)3、建立一个M函数文件,程序如下:function[sqnr,a_quan,code]=u_pcm(a,n)% U_PCM 一个序列均匀的PCM编码.% n=量化级数的数目(偶数).% sqnr=输入信号量化噪声比(偶数)。

现代数值计算方法习题解答

现代数值计算方法习题解答

现代数值计算方法习题答案习 题 一1、解:根据绝对误差限不超过末位数的半个单位,相对误差限为绝对误差限除以有效数字本身,有效数字的位数根据有效数字的定义来求.因此49×10-2:E = 0.005; r E= 0.0102; 2位有效数字. 0.0490 :E = 0.00005;r E = 0.00102; 3位有效数字. 490.00 :E = 0.005; r E = 0.0000102;5位有效数字. 2、解:722= 3.1428 …… , π = 3.1415 …… ,取它们的相同部分3.14,故有3位有效数字.E= 3.1428 - 3.1415 = 0.0013 ;r E = 14.3E = 14.30013.0 = 0.00041. 3、解:101的近似值的首位非0数字1α= 1,因此有 |)(*x E r |)1(10121−−××=n < = 21× 10-4, 解之得n > = 5,所以 n = 5 . 4、证:)()(1)()(1)(*11**11**x x x nx E x n x E n n n−=≈−−)(11)()(1)()(*****11****x E nx x x n x x x x nx x E x E r nnnn n r =−=−≈=− 5、解:(1)因为=204.4721…… , 又=)(*x E |*x x −| = |47.420−| = 0.0021 < 0.01, 所以 =*x4.47. (2)20的近似值的首位非0数字1α = 4,因此有|)(*x E r |)1(10421−−××=n < = 0.01 , 解之得n > = 3 .所以,=*x 4.47. 6、解:设正方形的边长为x ,则其面积为2x y =,由题设知x 的近似值为*x = 10 c m .记*y 为y 的近似值,则)(20)(20)(2)(*****x E x x x x x y E =−=−= < = 0.1,所以)(*x E< = 0.005 c m . 7、解:因为)()(*1x x nx x E n n −≈−,所以n x nE x x x n xx E x E r nn nr 01.0)()()(*==−≈=. 8、解:9、证:)()()(**t gtE t t gt S S S E =−≈−=t t E gt t t gt S S S S E r )(22/)()(2**=−≈−= 由上述两式易知,结论. 10、解:代入求解,经过计算可知第(3)个计算结果最好.11、解:基本原则为:因式分解,分母分子有理化、三角函数恒等变形…… (1)通分;(2)分子有理化;(3)三角函数恒等变形.12、解: 因为20=x ,41.1*0=x ,所以|*00x x −| < = δ=×−21021于是有|*11x x −| = |110110*00+−−x x | = 10|*00x x −| < =δ10|*22x x −| = |110110*11+−−x x | = 10|*11x x −| < =δ210类推有 |*1010x x −| < =810102110×=δ 即计算到10x ,其误差限为δ1010,亦即若在0x 处有误差限为δ,则10x 的误差将扩大1010倍,可见这个计算过程是不稳定的.习 题 二1、 解:只用一种方法. (1)方程组的增广矩阵为:−−−−11114423243112M M M → −−−−1010411101110112M M M →−−−11041001110112M M M → 31=x , 12=x , 13=x . (2)方程组的增广矩阵为:−−−−−−017232221413M M M → −−247210250413M M M → −−147200250413M M M → 21=x , 12=x, 2/13=x . (3)适用于计算机编程计算.2、 解:第一步:计算U 的第一行,L 的第一列,得611=u 212=u 113=u 114−=u3/1/112121==u a l 6/1/113131==u a l 6/1/114141−==u a l第二步:计算U 的第二行,L 的第二列,得3/1012212222=−=u l a u 3/213212323=−=u l a u 3/114212424=−=u l a u 5/1/)(2212313232=−=u u l a l 10/1/)(2212414242=−=u u l a l第三步:计算U 的第三行,L 的第三列,得10/37233213313333=−−=u l u l a u 10/9243214313434−=−−=u l u l a u 37/9/)(33234213414343−=−−=u u l u l a l第四步:计算U 的第四行,得370/9553443244214414444−=−−−=u l u l u l a u从而,−−−−3101141101421126 =−−137/910/16/1015/16/10013/10001−−−370/95500010/910/37003/13/23/1001126 由b LY =, 解得Y =(6,-3,23/5,-955/370)T . 由Y UX = , 解得X =(1,-1,1,-1)T . 3、(1)解:首先检验系数矩阵的对称正定性,这可以通过计算其各阶顺序主子式是否大于零来判断. 11a = 3 > 0,2223= 2 > 0, 301022123 = 4 > 0,所以系数矩阵是对称正定的.记系数矩阵为A ,则平方根法可按如下三步进行:第一步 分解:A = L L T . 由公式计算出矩阵的各元素:311=l 33221=l 3622=l 3331=l 3632−=l 233=l 因此, L =−23633036332003. 第二步 求解方程组LY = b . 解得Y = (335,36,2)T . 第三步 求解方程组L T X = Y . 解得X =(0,2,1)T .(2)解:首先检验系数矩阵的对称正定性,这可以通过计算其各阶顺序主子式是否大于零来判断.11a = 3 > 0,2223= 2 > 0, 1203022323 = 6 > 0,所以系数矩阵是对称正定的.记系数矩阵为A ,则平方根法可按如下三步进行:第一步 分解:A = L L T . 由公式计算出矩阵的各元素:311=l 33221=l 3622=l 331=l 632−=l 333=l因此, L =−363036332003 . 第二步 求解方程组LY = b . 解得Y = (335,66−,33)T. 第三步 求解方程组L T X = Y . 解得X = (1,21,31)T. 4、解: 对1=i , 2111==a d ;对2=i , 121−=t , 2121−=l ,252−=d ; 对3=i , 131=t , 2732=t ,2131=l , 5732−=l ,5273=d .所以数组A 的形式为:−−−=527572102521002A 求解方程组LY = b . 解得Y = (4,7,569)T .求解方程组DL T X = Y . 解得X = (910,97,923)T .5、解:(1)设A = LU =1010000000000010010015432l l l l5432106000000000600006006u u u u u 计算各元素得: 51=u ,512=l , 1952=u , 1953=l , 19653=u , 65194=l , 652114=u , 211655=l , 2116655=u .求解方程组LY = d . 解得Y = (1,51−,191,651−,211212)T.求解方程组UX = Y . 解得X = (6651509,6651145,665703,665395−,665212)T.(2)设A = LU =100100132l l3211001u u u 计算各元素得:51=u ,512=l ,5242=u ,2453=l ,241153=u . 求解方程组LY = d . 解得Y = (17,553,24115)T. 求解方程组UX = Y . 解得X = (3,2,1)T . 6、证:(1)(2)相同. 因为此方程组的系数矩阵为严格对角占优矩阵,所以雅可比迭代法和相应的高斯-赛德尔迭代法都收敛. (1)雅可比迭代公式:7107271)(3)(2)1(1+−−=+k k k x x x14141)(3)(1)1(2+−−=+k k k x x x329292)(2)(1)1(3+−−=+k k k x x x高斯-赛德尔迭代公式:7107271)(3)(2)1(1+−−=+k k k x x x14141)(3)1(1)1(2+−−=++k k k x x x329292)1(2)1(1)1(3+−−=+++k k k x x x(2)雅可比迭代公式:545152)(3)(2)1(1+−=+k k k x x x 525351)(3)(1)1(2++−=+k k k x x x 5115152)(2)(1)1(3++=+k k k x x x 高斯-赛德尔迭代公式:545152)(3)(2)1(1+−=+k k k x x x 525351)(3)1(1)1(2++−=++k k k x x x5115152)1(2)1(1)1(3++=+++k k k x x x7、(1)证:因为此方程组的系数矩阵为严格对角占优矩阵,所以雅可比迭代法和相应的高斯-赛德尔迭代法都收敛。

数值计算与MATLAB方法课后答案

数值计算与MATLAB方法课后答案

第一章习题1. 序列满足递推关系,取及试分别计算,从而说明递推公式对于计算是不稳定的。

n1 1 0.01 0.00012 0.01 0.0001 0.0000013 0.0001 0.000001 0.000000014 0.000001 0.0000000110-105 0.00000001 10-10n1 1.000001 0.01 0.0000992 0.01 0.000099 -0.000099013 0.000099 -0.00009901-0.010000994 -0.00009901 -0.01000099-1.00015 -0.01000099-1.0001初始相差不大,而却相差那么远,计算是不稳定的。

2. 取y0=28,按递推公式,去计算y100,若取(五位有效数字),试问计算y100将有多大误差?y100中尚留有几位有效数字?解:每递推一次有误差因此,尚留有二位有效数字。

3.函数,求f(30)的值。

若开方用六位函数表,问求对数时误差有多大?若改用另一等价公式计算,求对数时误差有多大?设z=ln(30-y),,y*, |E(y)| 10-4z*=ln(30-y*)=ln(0.0167)=-4.09235若改用等价公式设z=-ln(30+y),,y*, |E(y)|⨯10-4z*=-ln(30+y*)=-ln(59.9833)=-4.094074.下列各数都按有效数字给出,试估计f的绝对误差限和相对误差限。

1)f=sin[(3.14)(2.685)]设f=sin xyx*=3.14, E(x)⨯10-2, y*=2.685, E(y)⨯10-3,sin(x*y*)=0.838147484, cos(x*y*)=-0.545443667⨯(-0.5454) ⨯⨯10-2+3.14(-0.5454) ⨯⨯10-3|⨯10-2⨯10-2|E r(f)| ⨯10-2⨯10-2<10-22)f=(1.56)设f = x y ,x*=1.56, E(x)⨯10-2, y*=3.414, E(y)⨯10-3,⨯⨯⨯10-2⨯⨯⨯10-3|⨯⨯⨯10-2⨯⨯⨯10-3|=0.051|E r(f)| =0.01125.计算,利用下列等式计算,哪一个得到的结果最好,为什么?6.下列各式怎样计算才能减少误差?7. 求方程x2-56x+1=0的二个根,问要使它们具有四位有效数字,至少要取几位有效数字?如果利用伟达定理, 又该取几位有效数字呢?解一:若要取到四位有效数字,如果利用伟达定理,解二:由定理二,欲使x1,x2有四位有效数字,必须使由定理一知,∆至少要取7位有效数字。

数值计算方法实验指导(Matlab版)讲解

数值计算方法实验指导(Matlab版)讲解

《数值计算方法》实验指导(Matlab版)肇庆学院数学与统计学学院计算方法课程组《数值计算方法》实验1报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤) 2. 实验题目(1) 取1610=z ,计算z z -+1和)1/(1z z ++,验证两个相近的数相减会造成有效数字的损失.(2) 按不同顺序求一个较大的数(123)与1000个较小的数(15310-⨯)的和,验证大数吃小数的现象.(3) 分别用直接法和秦九韶算法计算多项式n n n n a x a x a x a x P ++++=--1110)(在x =1.00037处的值.验证简化计算步骤能减少运算时间.对于第(3)题中的多项式P (x ),直接逐项计算需要2112)1(+=+++-+n n n 次乘法和n 次加法,使用秦九韶算法n n a x a x a x a x a x P ++++=-)))((()(1210则只需要n 次乘法和n 次加法. 3. 实验目的验证数值算法需遵循的若干规则. 4. 基础理论设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab6. 实验过程(1) 直接计算并比较;(2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加; (3) 将由高次项到低次项的系数保存到数组A[n]中,其中n 为多项式次数.7. 结果与分析(1) 计算的z z -+1= ,)1/(1z z ++ .分析:(2) 123逐次加1000个6310-⨯的和是 ,先将1000个6310-⨯相加,再用这个和与123相加得.分析:(3) 计算次的多项式:直接计算的结果是,用时;用秦九韶算法计算的结果是,用时.分析:8. 附录:程序清单(1) 两个相近的数相减.%*************************************************************%* 程序名:ex1_1.m *%* 程序功能:验证两个相近的数相减会损失有效数字个数*%*************************************************************z=1e16;x,y======================================================================(2) 大数吃小数%*************************************************************%* 程序名:ex1_2.m *%* 程序功能:验证大数吃小数的现象. *%*************************************************************clc; % 清屏clear all; % 释放所有内存变量format long; % 按双精度显示浮点数z=123; % 大数t=3e-15; % 小数x=z; % 大数依次加小数% 重复1000次给x中加上ty=0; % 先累加小数% 重复1000次给y中加上ty=z + y; % 再加到大数x,y======================================================================(3) 秦九韶算法%*************************************************************%* 程序名:ex1_3.m *%* 程序功能:验证秦九韶算法可节省运行时间. *%*************************************************************clc; % 清屏clear all; % 释放所有内存变量format long; % 按双精度显示浮点数A=[8,4,-1,-3,6,5,3,2,1,3,2,-1,4,3,1,-2,4,6,8,9,50,-80,12,35,7,-6,42,5,6,23,74,65,55,80,78,77,98,56]; A(10001)=0; % 扩展到10001项,后面的都是分量0% A为多项式系数,从高次项到低次项x=1.00037;n=9000; % n为多项式次数% 直接计算begintime=clock; % 开始执行的时间% 求x的i次幂% 累加多项式的i次项endtime=clock; % 结束执行的时间time1=etime(endtime,begintime); % 运行时间disp('直接计算');disp(['p(',num2str(x),')=',num2str(p)]);disp([' 运行时间: ',num2str(time1),'秒']);% 秦九韶算法计算begintime=clock; % 开始执行的时间% 累加秦九韶算法中的一项endtime=clock; % 结束执行的时间time2=etime(endtime,begintime); % 运行时间disp(' ');disp('秦九韶算法计算');disp(['p(',num2str(x),')=',num2str(p)]);disp([' 运行时间: ',num2str(time2),'秒']);《数值计算方法》实验1报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验1 算法设计原则验证(之数值稳定性) 2. 实验题目 计算定积分⎰==-1110,1,0,d n x e xI x nn ,分别用教材例1-7推导出的算法A 和B ,其中:算法A :⎩⎨⎧≈-=-6321.0101I nI I n n 算法B :⎪⎩⎪⎨⎧≈-=-0)1(1101I I nI n n 验证算法不稳定时误差会扩大.3. 实验目的验证数值算法需遵循的若干规则. 4. 基础理论设计数值算法时,应采用数值稳定性好的算法.数值稳定的算法,误差不会放大,甚至会缩小;而数值不稳定的算法会放大误差. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab6. 实验过程分别用数组IA[ ]和IB[ ]保存两种算法计算的结果. 7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:ex1_4.m *%* 程序功能:验证数值稳定性算法可控制误差. *%*************************************************************clc; % 清屏clear all; % 释放所有内存变量format long; % 按双精度显示浮点数I=[0.63212055882856, 0.36787944117144, 0.26424111765712, 0.20727664702865, ...0.17089341188538, 0.14553294057308, 0.12680235656154, 0.11238350406938, ... 0.10093196744492, 0.09161229300662, 0.08387707010843];% 保留14位小数的精确值, …是Matlab中的续行符% 算法AIA(1) = 0.6321; % Matlab下标从1开始,所以要用IA(n+1)表示原问题中的I(n)% 算法Bdisp('n 算法A 算法B 精确值');for n=1:11fprintf('%2d %14.6f %14.6f %14.6f\n',n-1,IA(n),IB(n),I(n));end% n显示为2位整数, 其它显示为14位其中小数点后显示6位的小数《数值计算方法》实验1报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验1 算法设计原则(除数绝对值不能太小) 2. 实验题目将线性方程组增广矩阵利用初等行变换可化为⎪⎪⎭⎫⎝⎛→-⎪⎪⎭⎫ ⎝⎛→-⎪⎪⎭⎫ ⎝⎛''0'0''02221112'12221121112222211121122121121b a b a r r b a b a a r r b a a b a a a a a a 由此可解得'/',/'22221111a b x a b x ==.分别解增广矩阵为161011212-⎛⎫ ⎪⎝⎭和162121011-⎛⎫⎪⎝⎭的方程组,验证除数绝对值远小于被除数绝对值的除法会导致结果失真. 3. 实验目的验证数值算法需遵循的若干规则. 4. 基础理论设计数值算法时,应避免除数绝对值远小于被除数绝对值的除法,否则绝对误差会被放大,使结果失真. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab6. 实验过程用二维数组A 和B 存放方程组的增广矩阵,利用题目所给初等行变换求解方程组. 7. 结果与分析第1种顺序的方程组的解为x = ,y = ;第2种顺序的方程组的解为x = ,y = . 分析:8. 附录:程序清单%************************************************************* %* 程 序 名:ex1_5.m * %* 程序功能:验证除数的绝对值太小可能会放大误差. * %*************************************************************clc;A=[1e-16, 1, 1; 2, 1, 2];B=[2, 1, 2; 1e-16, 1, 1]; % 增广矩阵% 方程组A% m = - a_{21}/a_{11} 是第2行加第1行的倍数% 消去a_{21}% m = - a_{12}/a_{22} 是第1行加第2行的倍数% 消去a_{12}, 系数矩阵成对角线% 未知数x1的值% 未知数x2的值disp(['方程组A的解: x1=',num2str(A(1,3)),', x2=',num2str(A(2,3))]);disp(' ');% 方程组B% m = - b_{21}/b_{11} 是第2行加第1行的倍数% 消去b_{21}% m = - b_{12}/b_{22} 是第1行加第2行的倍数% 消去b_{12}, 系数矩阵成对角线% 未知数x1的值% 未知数x2的值disp(['方程组B的解: x1=',num2str(B(1,3)),', x2=',num2str(B(2,3))]);《数值计算方法》实验2报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验2 非线性方程的迭代解法(之简单迭代法) 2. 实验题目用简单迭代法求方程010423=-+x x 在区间[1,2]内的一个实根,取绝对误差限为410-.3. 实验目的掌握非线性方程的简单迭代法. 4. 基础理论简单迭代法:将方程0)(=x f 改写成等价形式)(x x ϕ=,从初值0x 开始,使用迭代公式)(1k k x x ϕ=+可以得到一个数列,若该数列收敛,则其极限即为原方程的解.取数列中适当的项可作为近似解. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验2 非线性方程的迭代解法(之Newton 迭代法) 2. 实验题目用Newton 迭代法求方程010423=-+x x 在区间[1,2]内的一个实根,取绝对误差限为410-.3. 实验目的掌握求解非线性方程的Newton 迭代法. 4. 基础理论Newton 迭代法:解方程0)(=x f 的Newton 迭代公式为)(')(1k k k k x f x f x x -=+.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验2 非线性方程的迭代解法(之对分区间法) 2. 实验题目用对分区间法求方程310x x --=在区间[1, 1.5]内的一个实根,取绝对误差限为410-. 3. 实验目的掌握求解非线性方程的对分区间法. 4. 基础理论对分区间法:取[a ,b ]的中点p ,若f (p ) ≈ 0或b – a < ε,则p 为方程0)(=x f 的近似解; 若f (a ) f (p ) < 0,则说明根在区间取[a ,p ]中;否则,根在区间取[p ,b ]中.将新的有根区间记为 [a 1,b 1],对该区间不断重复上述步骤,即可得到方程的近似根. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程用宏定义函数f (x );为了循环方便,得到的新的有根区间始终用[a ,b ]表示; 由于新的有根区间可能仍以a 为左端点,这样会反复使用函数值f (a ),为减少运算次数,将这个函数值保存在一个变量fa 中;同样在判断新的有根区间时用到函数值f (p ),若新的有根区间以p 为左端点,则下一次用到的f (a )实际上就是现在的f (p ),为减少运算次数,将这个函数值保存在一个变量fp 中.算法的伪代码描述:Input :区间端点a ,b ;精度要求(即误差限)ε;函数f (x );最大对分次数N7. 结果与分析8. 附录:程序清单说明: 源程序中带有数字的空行,对应着算法描述中的行号%**********************************************************%* 程序名:Bisection.m *%* 程序功能:使用二分法求解非线性方程. *%**********************************************************f=inline('x^3-x-1'); % 定义函数f(x)a=input('有根区间左端点: a=');b=input('右端点:b=');epsilon=input('误差限:epsilona=');N=input('最大对分次数: N=');1 % 对分次数计数器n置12 % 左端点的函数值给变量fafprintf('\n k p f(p) a(k) f(a(k))');fprintf(' b(k) b-a\n');% 显示表头fprintf('%2d%36.6f%12.6f%12.6f%12.6f\n',0,a,fa,b,b-a);% 占2位其中0位小数显示步数0, 共12位其中小数6位显示各值3 % while n≤ N4 % 取区间中点p5 % 求p点函数值给变量fpfprintf('%2d%12.6f%12.6f',n,p,fp); % 输出迭代过程中的中点信息p和f(p)6 % 如果f(p)=0或b-a的一半小于误差限εfprintf('\n\n近似解为:%f\n',p); % 则输出近似根p (7)return; % 并结束程序(7)89 % 计数器加110 % 若f(a)与f(p)同号11 % 则取右半区间为新的求根区间, 即a取作p12 % 保存新区间左端点的函数值13 % 否则14 % 左半区间为新的求根区间, 即b取作p15fprintf('%12.6f%12.6f%12.6f%12.6f\n',a,fa,b,b-a);% 显示新区间端点及左端函数值、区间长度16fprintf('\n\n经过%d次迭代后未达到精度要求.\n',N); % 输出错误信息(行17)《数值计算方法》实验2报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验2 非线性方程的迭代解法(之Aitken-Steffensen 加速法) 2. 实验题目用Aitken-Steffensen 加速法求方程010423=-+x x 在区间[1,2]内的一个实根,取绝对误差限为410-.3. 实验目的熟悉求解非线性方程的Aitken-Steffensen 加速法. 4. 基础理论将方程0)(=x f 改写成等价形式)(x x ϕ=,得到从初值0x 开始的迭代公式)(1k k x x ϕ=+后,基于迭代公式)(1k k x x ϕ=+的Aitken-Steffensen 加速法是通过“迭代-再迭代-加速”完成迭代的,具体过程为kk k k k k k k k k k x y z z y x x y z x y +---===+2)(),(),(21ϕϕ. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程为了验证Aitken-Steffensen 加速法可以把一些不收敛的迭代加速成迭代收敛,我们使用将方程组变形为31021x x -=,取迭代函数31021)(x x -=ϕ,并利用宏定义出迭代函数.由于不用保存迭代过程,所以用x0表示初值同时也存放前一步迭代的值,y 和z 是迭代过程中产生的y k 和z k ,x 存放新迭代的结果.算法的伪代码描述:Input :初值x 0;精度要求(即误差限)ε;迭代函数φ(x );最大迭代次数N7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:Aitken_Steffensen.m *%* 程序功能:用Aitken-Steffensen加速法求方程. *%*************************************************************clc;clear all;phi=inline('0.5 * sqrt( 10 - x^3)'); % 迭代函数x0=input('初值: x0 = ');epsilon=input('误差限: epsilon=');N=input('最大迭代次数: N=');disp(' n 迭代中间值y(n-1) 再迭代结构z(n-1) 加速后的近似值x(n)');fprintf('%2d%54.6f\n',0,x0);% 占2位整数显示步数0, 为了对齐, 占54位小数6位显示x01 % n是计数器2 % while n<=Ny= 3 ; % 迭代z= 3 ; % 再迭代x= 3 ; % 加速% x0初值及前一步的近似值, y和z是中间变量, x是下一步的近似值fprintf('%2d%18.6f%18.6f%18.6f\n',n,y,z,x);% 显示中间值和迭代近似值6 % 如果与上一步近似解差的绝对值不超过误差限fprintf('\n\n 近似解x≈x(%d)≈%f\n',n,x);% 则输出近似根(7),可简略为: fprintf('\n\n近似解x=%f',x);return; % 并结束程序(7)8 % 相当于endif9 % 计数器加110 % 新近似值x作为下一次迭代的初值11fprintf('\n 迭代%d次还不满足误差要求.\n\n',N); %输出错误信息(12)《数值计算方法》实验2报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验2 非线性方程的迭代解法(之Newton 下山法) 2. 实验题目用Newton 下山法求方程010423=-+x x 在区间[1,2]内的一个实根,取绝对误差限为410-.3. 实验目的熟悉非线性方程的Newton 下山法. 4. 基础理论Newton 下山法:Newton 下山法公式为)(')(1k k kk k x f x f x x λ-=+,使|)(||)(|1k k x f x f <+,其中10≤<k λ.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程定义函数f(x)和df(x),其中df(x)是f(x)的导函数.每步迭代时先取下山因子为1,尝试迭代,判断尝试结果是否满足下山因子,若满足则作为这步的迭代结果;否则将下山因子减半,然后再尝试.为防止当前的x k 是极小值点,附近不会有满足下述条件的其它点,使尝试陷入死循环,同时计算机中能表示出的浮点数也有下界,因此我们设置了最大尝试次数.当超过最大尝试次数时,不再进行下山尝试.由于反复尝试迭代且要判断下山条件,所以f (x 0)和f ‘(x 0)会反复使用,为避免重复计算浪费运行时间,将这两个值分别保存在变量fx0和dfx0.而尝试产生的节点,判断下山条件时要用到它的函数值,若尝试成功,这个点会作为下一步的初值再使用,所以把该点的函数值也保存在变量fx 中.算法的伪代码描述:Input :初值x 0;精度要求(即误差限)ε;函数及其导函数f (x )和f’(x);最大迭代次数N ;K 下山尝试最大次数7. 结果与分析8. 附录:程序清单%************************************************************* %* 程序名:NewtonDownhill.m * %* 程序功能:用Newton下山法求解非线性方程. * %*************************************************************clc;clear all;f=inline('x^3-x-1'); % 函数f(x)df=inline('3*x^2-1'); % 函数f(x)的导函数x0=input('初值: x0 = ');epsilon=input('误差限: epsilon=');N=input('最大迭代次数: N=');K=input('最大下山尝试次数: K=');1 % 迭代次数计数器2 % 存x0点函数值fprintf('\n\n n x(n) f(x(n))\n'); % 显示表头fprintf('%2d%14.6f%14.6f\n',0,x0,fx0); % 2位整数显示0, 共14位小数6位显示x0和fx03 % while n ≤ Ndisp(''); % 换行显示下山尝试过程的表头disp(' 下山因子尝试x(n) 对应f(x(n)) 满足下山条件');disp('');4 % 存x0点导数值, 每次下山尝试不用重新计算if dfx0==0 % 导数为0不能迭代disp(‘无法进行Newton迭代’);return;endlambda=1.0; % 下山因子从1开始尝试k=1; % k下山尝试次数计数器while k<=K % 下山最多尝试K次% 下山公式fx=f(x); % 函数值fprintf('%22.6f%14.6f%14.6f',lambda,x,fx); % 显示尝试结果if (abs(fx)<abs(fx0)) % 判断是否满足下山条件fprintf(' 满足\n');break; % 是, 则退出下山尝试的循环elsefprintf(' 不满足\n');endlambda=lambda/2; % 不是, 则下山因子减半k=k+1; % 计数器加1endif k>Kfprintf('\n 下山条件无法满足, 迭代失败.\n\n');return;endfprintf('%2d%14.6f%14.6f\n',n,x,fx);% 2位整数显示步数n, 共14位小数6位显示下步迭代结果22 % 达到精度要求否fprintf('\n\n 方程的近似解为: x≈%f\n\n',x); % (23)return; % 达到, 则显示结果并结束程序(23) end % (24)% 用x0,fx0存放前一步的近似值和它的函数值, 进行循环迭代25262728fprintf('\n 迭代%d次还不满足误差要求.\n\n',N);《数值计算方法》实验2报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验2 非线性方程的迭代解法(之弦截法) 2. 实验题目用弦截法求方程010423=-+x x 在区间[1,2]内的一个实根,取绝对误差限为410-. 3. 实验目的熟悉非线性方程的弦截法. 4. 基础理论将Newton 迭代法中的导数用差商代替,得到弦截法(或叫正割法)公式)()()(111k k k k k k k x f x f x f x x x x --+---=.5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程不保存迭代过程,所以始终以x 0和x 1分别存放x k -1和x k ,而x 存放新产生的迭代值x k +1,这样,下一次迭代时需要把上一步的x 1(即x k )赋值于x 0(做新的x k -1).这些点的函数值会重复用到,在迭代公式中也要用到,上一步的x 1作为下一步的x 0也会再一次用它的函数值,为减少重新计算该点函数值的运行时间,将x 1点的函数值保存在变量fx1中.算法的伪代码描述:Input :初值x 0,x 1;精度要求(即误差限)ε;函数f (x );最大迭代次数N7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:SecantMethod.m *%* 程序功能:用弦截法求解非线性方程. *%*************************************************************clc;clear all;f=inline('2*x^3-5*x-1'); % 函数f(x)x0=input('第一初值: x0 = ');x1=input('第二初值: x1 = ');epsilon=input('误差限: epsilon=');N=input('最大迭代次数: N=');fprintf('\n n x(n)\n'); % 显示表头fprintf('%2d%14.6f\n', 0, x0); % 占2位显示步数0, 共14位其中小数6位显示x0 fprintf('%2d%14.6f\n', 1, x1); % 占2位显示步数1, 共14位其中小数6位显示x11 % 存x0点函数值2 % 存x1点函数值3 % 迭代计数器4 % while n ≤ N% 弦截法公式fprintf('%2d%14.6f\n', n, x); % 显示迭代过程6 % 达到精度要求否fprintf('\n\n 方程的近似解为: x≈%f\n\n', x);return; % 达到, 则显示结果并结束程序89 % 原x1做x0为前两步的近似值10 % 现x做x1为一两步的近似值11 % x0点函数值12 % 计算x1点函数值, 为下一次循环13 % 计数器加114fprintf('\n 迭代%d次还不满足误差要求.\n\n',N);《数值计算方法》实验3报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验3 解线性方程组的直接法(之Gauss 消去法) 2. 实验题目用Gauss 消去法求解线性方程组⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--000.3000.2000.1643.5072.1000.2623.4712.3000.1000.3000.2001.0321x x x . 3. 实验目的掌握解线性方程组的Gauss 消去法. 4. 基础理论Gauss 消去法是通过对增广矩阵的初等行变换,将方程组变成上三角方程组,然后通过回代,从后到前依次求出各未知数.Gauss 消去法的第k 步(1≤k≤n -1)消元:若0≠kk a ,则依次将增广矩阵第k 行的kkik a a /-倍加到第i 行(k+1≤i≤n ),将第k 列对角线下的元素都化成0. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验3 解线性方程组的直接法(之Gauss 列主元消去法) 2. 实验题目用Gauss 列主元消去法求解线性方程组⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--000.3000.2000.1643.5072.1000.2623.4712.3000.1000.3000.2001.0321x x x . 3. 实验目的掌握解线性方程组的Gauss 列主元消去法. 4. 基础理论Gauss 列主元消去法也是通过对增广矩阵的初等行变换,将方程组变成上三角方程组,然后通过回代,从后到前依次求出各未知数.Gauss 列主元消去法的第k 步(1≤k≤n -1)消元:先在nk k k kk a a a ,,,,1 +中找绝对值最大的,将它所在的行与第k 行交换,然后将第k 行的kk ik a a /-倍加到第i 行(k+1≤i≤n ),将第k 列对角线下的元素都化成0. 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验3 解线性方程组的直接法(之Doolittle 分解) 2. 实验题目对矩阵A 进行Doolittle 分解,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛----=3101141101421126A .3. 实验目的掌握矩阵的Doolittle 分解. 4. 基础理论矩阵的Doolittle 分解是指将矩阵n n ij a A ⨯=)(可以分解为一个单位下三角矩阵和一个上三角矩阵的乘积.若设⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=nn n n n n n n u u u u u u u u u u U l l ll l l L000000,1010010001333223221131211321323121则可依如下顺序公式计算⎪⎪⎩⎪⎪⎨⎧++=-=+=-=∑∑-=-=1111,,2,1,/)(,,1,,k t kk tk it ik ik k r rj kr kj kj nk k i u u l a l nk k j u l a u其中k = 1,2,…,n .5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程(1)按计算公式依次计算一行u 同时计算一列l ;(2)因为计算完u ij (或l ij )后,a ij 就不再使用,为节省存储空间,将计算的u ij (和l ij )仍存放在矩阵A 中的相应位置;(3)使用L 矩阵和U 矩阵时需要根据元素所在位置取固定值或A 中相应位置的值.L 对角线上的元素为1,上三角部分为0,下三角部分为A 中对应的元素;U 的下三角部分为0,上三角部分为A 中对应的元素.算法的伪代码描述:Input:阶数n;矩阵A7. 结果与分析8. 附录:程序清单%****************************************************% 程序名: Doolittle.m *% 程序功能: 矩阵LU分解中的Doolittle分解. *%****************************************************clc;clear all;n=4; % 矩阵阶数A=[6 2 1 -1;2 4 1 0; 1 1 4 -1; -1 0 -1 3]disp('A=');disp(A);% LU分解(Doolittle分解)for k=1:n% 计算矩阵U的元素u_{kj}% (可参照下面l_{ik}的公式填写)% 计算矩阵L的元素l_{ik}% L在A下三角, U在上三角(对角线为1) enddisp('分解结果:');disp('L=');for i=1:nfor j=1:nif i>j % 在下三角部分, 则取A对于的元素显示fprintf(' %8.4f',A(i,j));elseif i==j % 在对角线上, 则显示1fprintf(' %8d',1);else % 在上三角部分, 则显示0fprintf(' %8d',0);endendfprintf('\n'); % 换行enddisp('U=');for i=1:nfor j=1:nif i<=j % 在上三角部分或对角线上, 则取A对于的元素显示fprintf(' %8.4f',A(i,j));else % 在下三角部分, 则显示0fprintf(' %8d',0);endendfprintf('\n'); % 换行end《数值计算方法》实验3报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验3 解线性方程组的直接法(之LU 分解法) 2. 实验题目用LU 分解(Doolittle 分解)法求解线性方程组⎪⎩⎪⎨⎧=++=++=++104615631552162321321321x x x x x x x x x 3. 实验目的熟悉解线性方程组LU 分解法. 4. 基础理论若将矩阵A 进行了Doolittle 分解,A = LU ,则解方程组b x A=可以分解求解两个三角方程组b y L =和y x U=.它们都可直接代入求解,其中b y L =的代入公式为∑-==-=11,,2,1,k j j kj k k n k y l b y而y x U=的代入公式为∑+=-=-=nk j kk j kjk k n n k u x uy x 11,,1,,/)( .5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程(1)Doolittle 分解过程依次计算一行u 同时计算一列l 完成,并将计算的u ij (和l ij )仍存放在矩阵A 中的相应位置;(2)求解方程组的代入公式中用到的u ij 和l ij 都直接在A 的相应位置取值即可. 算法的伪代码描述:Input :阶数n ;矩阵A ;常数项向量b5 for k ← 1 to n6 ∑+=-=-=nkjkkjkjk knnkuxuyx11,,1,,/)( 回代求解Ux=y7 endfor8 return x1,…,x n7. 结果与分析8. 附录:程序清单%****************************************************% 程序名: LinearSystemByLU.m *% 程序功能: 利用LU分解(Doolittle分解)解方程组. *%****************************************************clc;clear all;n=3; % 矩阵阶数A=[1 2 6; 2 5 15; 6 15 46];b=[1;3;10];% LU分解(Doolittle分解)for k=1:n% 计算矩阵U的元素u_{kj}% (可参照下面l_{ik}的公式填写)% 计算矩阵L的元素l_{ik}% L在A下三角, U在上三角(对角线为1)endfor k=1:n % 用代入法求解下三角方程组Ly=by(k)=b(k);3%∑-==-=11,,2,1,k j j kjk k n k y lb y3 3enddisp('方程组Ly=b 的解:y='); disp(y');for k=n:-1:1 % 回代求解上三角方程组Ux=y x(k)=y(k);6%∑+=-=-=nk j j kjk k n n k x uy x 11,,1,,66 6enddisp('原方程组的解:x='); disp(x');《数值计算方法》实验3报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验3 解线性方程组的直接法(之Cholesky 分解) 2. 实验题目对矩阵A 进行Cholesky 分解,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛----=3101141101421126A .3. 实验目的理解矩阵的Cholesky 分解. 4. 基础理论矩阵的Cholesky 分解是指将矩阵n n ij a A ⨯=)(可以分解为一个下三角矩阵L 和L 转置的乘积,即A =LL T ,其中L 各元素可依如下顺序公式计算⎪⎪⎩⎪⎪⎨⎧++=-=-=∑∑-=-=11112,,2,1,/)(k t kktk it ik ik k r kr kk kk nk k i l l l a l l a l其中k = 1,2,…,n .5. 实验环境操作系统:Windows xp ; 程序设计语言:VC++ 6. 实验过程(1)按计算公式依次先计算一列对角线上的元素l kk ,再计算这列其他元素l ik ,且对称位置的元素也取同一个值;(2)因为计算完l ij 后,a ij 就不再使用,为节省存储空间,将计算的l ij 仍存放在矩阵A 中的相应位置;(3)使用L 矩阵时需要根据元素所在位置取固定值或A 中相应位置的值.L 上三角部分为0,对角线和下三角部分为A 中对应的元素.算法的伪代码描述: Input :阶数n ;矩阵AOutput :矩阵L (合并存储在数组A 中)2∑-=-=112k r kr kk kk l a l3 for i ← k to n4 ∑-=-=11/)(k t kk tk it ik ik l l l a l计算结果存放在a ij 5 endfor 6 endfor 7return L输出L7. 结果与分析8. 附录:程序清单%************************************************************* %* 程 序 名:Cholesky.m * %* 程序功能:对称正定矩阵的Cholesky 分解. * %*************************************************************n=4; % 矩阵阶数 A=[6,2,1,-1; 2,4,1,0; 1,1,4,-1; -1,0,-1,3];disp('A ='); for i=1:n for j=1:nfprintf('%10.4f',A(i,j)); % 共占14位end fprintf('\n');% 一行结束换行end% Cholesky 分解for k=1:n% 计算对角线上的l _{kk}% 计算其他的l _{ik} % 和l _{ki}end % L在A下三角, L^T在上三角disp('分解结果:');disp('L=');for i=1:nfor j=1:nif i>=j % 在下三角部分或对角线上, 则取A对于的元素显示fprintf('%10.4f',A(i,j));else % 在上三角部分, 则显示0fprintf('%10d',0);endendfprintf('\n'); % 换行end《数值计算方法》实验3报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验3 解线性方程组的直接法(之改进的Cholesky 分解) 2. 实验题目对矩阵A 进行改进的Cholesky 分解,其中⎪⎪⎪⎪⎪⎭⎫⎝⎛----=3101141101421126A .3. 实验目的理解矩阵改进的Cholesky 分解. 4. 基础理论矩阵的改进的Cholesky 分解是指将矩阵n n ij a A ⨯=)(可以分解为一个单位下三角矩阵L 和对角矩阵D 及L 转置的乘积,即A =LDL T ,其中L 和D 各元素可依如下顺序公式计算⎪⎪⎩⎪⎪⎨⎧++=-=-=∑∑-=-=11112,,2,1,/)(k t k kt it t ik ik k r kr r kk k nk k i d l l d a l l d a d其中k = 1,2,…,n .5. 实验环境操作系统:Windows xp ; 程序设计语言:VC++ 6. 实验过程(1)按计算公式依次先计算D 的一个元素d k ,再计算L 中这列的元素l ik ,且对称位置的元素也取同一个值;(2)因为计算完d k 和l ij 后,a kk 或a ij 就不再使用,为节省存储空间,将计算的a kk 或l ij仍存放在矩阵A 中的相应位置;(3)使用L 矩阵时需要根据元素所在位置取固定值或A 中相应位置的值.L 对角线和上三角部分为0,下三角部分为A 中对应的元素;D 对角线为A 中对应的元素,其余都是0.算法的伪代码描述: Input :阶数n ;矩阵AOutput :矩阵L (合并存储在数组A 中)2 ∑-=-=112k r kr r kk k l d a d3 for i ← k to n4 ∑-=-=11/)(k t k kt it t ik ik d l l d a l计算结果存放在a ij 5 endfor 6 endfor7return L, D输出L 和D7. 结果与分析8. 附录:程序清单%************************************************************* %* 程 序 名:ImprovedCholesky.m * %* 程序功能:对称正定矩阵的改进的Cholesky 分解. * %*************************************************************n=4; % 矩阵阶数 A=[6,2,1,-1; 2,4,1,0; 1,1,4,-1; -1,0,-1,3];disp('A ='); for i=1:n for j=1:nfprintf('%10.4f',A(i,j)); % 共占14位end fprintf('\n');% 一行结束换行end% Cholesky 分解 for k=1:n% 计算D 对角线上的u _{kk}% 计算L 的元素l _{ik} % 和L 转置的元素l _{ki}end % L在A下三角, D在对角线disp('分解结果:');disp('L=');for i=1:nfor j=1:nif i>j % 在下三角部分, 则取A对于的元素显示fprintf('%10.4f',A(i,j));elseif i==j % 在对角线上, 则显示1fprintf('%10d',1);else % 在上三角部分, 则显示0fprintf('%10d',0);endendfprintf('\n'); % 换行enddisp('D=');for i=1:nfor j=1:nif i==j % 在对角线上, 则取A对于的元素显示fprintf('%10.4f',A(i,j));else % 其余显示0fprintf('%10d',0);endendfprintf('\n'); % 换行end《数值计算方法》实验3报告班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验3 解线性方程组的直接法(之追赶法) 2. 实验题目用追赶法求解线性方程组⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-----101053001210023100124321x x x x 3. 实验目的熟悉解线性方程组的追赶法. 4. 基础理论对于系数矩阵为三对角矩阵的方程组,其Crout 分解可分解为⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=------11111211122111122211n n nn n n n n n n t t t s a s a s a s b a c b a c b a c b A这样,解方程组可以由如下2步完成:“追”:,,,3,2,/)(,,/,/,1111111111n i s y a f y t a b s s c t s f y b s i i i i i i i i i i i i =-=-====-----其中:Tn f f ),,(1 为方程组的常数项,n t 没用;“赶”:.1,,2,1,,1 --=-==+n n i x t y x y x i i i i n n5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程在“追”的过程中,向量s 和y 都有n 个元素,t 只有n -1个元素,又1s 和1y 的计算公式与其它i s 和i y 不同,所以先单独计算1s 和1y ,然后在一个n -1次循环中,求其它i s 和i y 以及i t .由于在“追”的过程中,i b ,i c 和i f 在分别计算完对应的i s ,i t 和i y 后就不再使用,所以借用数组b ,c 和f 存储向量s ,t 和y ;同样在“赶”的过程中,i y 在计算完对应的i x 后就不再使用,所以再一次借用数组f 存储向量x .追赶法算法的伪代码描述:Input :阶数n ;三对角矩阵的三条对角线向量a ,b ,c ,常数项向量f Output :方程组的解x改进的追赶法算法的伪代码描述:Input :阶数n ;三对角矩阵的三条对角线向量a ,b ,c ,常数项向量f Output :方程组的解x7. 结果与分析8. 附录:程序清单%*************************************************************%* 程序名:ChaseAfter.m *%* 程序功能:用追赶法求解三对角线性方程组. *%*************************************************************clc;clear all;n=4;a=[0,-1,-1,-3];b=[2, 3, 2, 5];c=[-1, -2, -1, 0];f=[0, 1, 0, 1];% "追"s(1) = b(1);y(1) = f(1); % 先单独求s_1和y_1for k = 1 : n-1% 再求t_i(i=1,2,…,n-1)% s_i(i=2,3,…,n)% y_i(i=2,3,…,n)end% "赶"x(n) = y(n); % 先单独求x_nfor k = n-1 : -1 : 1% 再求x_i(i=n-1,n-2, (1)endx=x' % 输出解向量------------------------------------------------------------------------------------------------------------------- 改进的程序:%*************************************************************%* 程序名:ChaseAfter.m *%* 程序功能:用追赶法求解三对角线性方程组. *%*************************************************************clc;clear all;n=4;a=[0,-1,-1,-3];b=[2, 3, 2, 5];c=[-1, -2, -1, 0];f=[0, 1, 0, 1];% "追"% b(1)=b(1); % s_1仍在b_1中,不用重新计算y(1)=f(1)/b(1); % 先单独y_1for k=1:n-1% 再求t_i(i=1,2,…,n-1)% s_i(i=2,3,…,n)% y_i(i=2,3,…,n)end% "赶"% f(n)=f(n); % x_n等于y_n仍在f_n中for k=n-1:-1:1% 再求x_i(i=n-1,n-2, (1)endx=f' % 输出解向量班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验4 解线性方程组的迭代法(之Jacobi 迭代) 2. 实验题目用Jacobi 迭代法求解线性方程组1231231232251223x x x x x x x x x +-=⎧⎪++=⎪⎨++=⎪⎪⎩任取3. 实验目的掌握解线性方程组的Jacobi 迭代法. 4. 基础理论将第i (n i ≤≤1)个方程i n in i i b x a x a x a =+++ 2211移项后得到等价方程ii n in i i i i i i i i i a x a x a x a x a b x /)(11,11,11------=++--便可构造出Jacobi 迭代公式,1,0,/)()()(11,)(11,)(11)1(=------=++--+k a x a x a x a x a b x ii k n in k i i i k i i i k i i k i . 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单班级: 20xx 级XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩:1. 实验名称实验4 解线性方程组的迭代法(之Gauss-Seidel 迭代) 2. 实验题目用Gauss-Seidel 迭代法求解线性方程组⎪⎪⎩⎪⎪⎨⎧=+-=-+-=+-+-=+-15831110225311621043243214321321x x x x x x x x x x x x x x3. 实验目的掌握解线性方程组的Gauss-Seidel 迭代法. 4. 基础理论将第i (n i ≤≤1)个方程i n in i i b x a x a x a =+++ 2211移项后得到等价方程ii n in i i i i i i i i i a x a x a x a x a b x /)(11,11,11------=++--便可构造出Jacobi 迭代公式,1,0,/)()()(11,)(11,)(11)1(=-----=++--+k a x a x x a x a b x ii k n in k i i i k i i i k i i k i 和Gauss-Seidel 迭代公式,1,0,/)()()(11,)1(11,)1(11)1(=-----=+++--++k a x a x a x x a b x ii k n in k i i i k i i i k i i k i . 5. 实验环境操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程7. 结果与分析8. 附录:程序清单。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


5 2
> 1, 故

2.8 提示: (1) A = 1 3 a > 1, ⇒ a3 − 14a + 12 > 0, Seidel 迭代收敛.
a > 0, a 2 − 1 > 0, ⇒ 2 , 当 |a| > 5 时, Jacobi 迭代收敛. (2) a3 − 14a + 12 > 0, a 所以, 当 a ≥ √ 14 时, A 对称正定, 从而 Gauss-
2
故 Jacobi 迭代, Gauss-Seidel 迭代均收敛. 2.13 提示: ρ(J ) = 0.9 < 1, 故迭代法收敛. 1 0 . 5 0. 5 2.14 提示: 容易验证 A = 0.5 1 0.5 是对称正定的, 故 Gauss-Seidel 迭代收敛, 但 2D − A = 0.5 0.5 1 1 −0.5 −0.5 −0.5 1 −0.5 不正定, 故 Jacobi 迭代发散. −0.5 −0.5 1 0 0 −1 3 2.15 提示: BJ = 1 0 0 . 特征方程 3λ + λ + 2 = 0, 特征值 λ1 = −0.478, λ2,3 = 1 2 0 3 3 故 Jacobi 迭代收敛. −1 −1 , 因为 ρ(BS ) = 1, 故 Gauss-Seidel 迭代发散. −1 −22 11 1 2.16 提示: (1) 将原方程组的系数矩阵调整为: 1 −4 2 , 显然为严格对角占优矩阵, 故 11 −5 −33 = 0
1 2
= 0 0 0 0 0
2.7 提示: Bs = (D − L)−1 U = − 1 2 0 值 λ1 = 0, λ2 = λ3 0 1 BJ = 2 −2 1 Jacobi 迭代发散. = −1 , 2
1 2
0 1
1 2

1 4 11 33 11 22 1 22 2 4

0.374 ± 0.868i, ρ(BJ ) = 0.945 < 1, 0 0 −1 BS = (D − L) U = 0 0 0 0
迭代法收敛. (2) 将原方程组的系数矩阵调整为上述矩阵后, 写出迭代矩阵: BJ ∥BJ ∥∞ < 1, 故迭代法收敛.
上述三种迭代法都收敛. 是 A 的特征值, 故当 0 < θ < 可得 0 < θ <
2 . λn 1 √ 2 2 时, λn
有|1 − θλi | < 1, 从而迭代收敛. 反之, 若迭代收敛, 则 |1 − θλi | < 1,
2.11 当 |a| <
时, 迭代格式收敛. −8x1 + x2 + x3 = −7 2.12 提示: 将原方程组调整为: 上述方程组的系数矩阵是严格对角占优的, x1 − 5x2 + x3 = 14 x1 + x2 − 4x3 = −13
1 2(a1 +1)
× 10−(n−1) = 10−4 ⇒ n = 5 − lg 2 − lg(a1 + 1) ⇒ 4 − lg 2 ≤ n ≤ 5 − 2 lg 2 ⇒ × 10−2 ≤ 0.5 × 10−2 . + 1) ⇒ 3 − lg 6 ≤ n ≤ 3 − lg 1.2 ⇒ √ 783 = (3)
《现代数值计算方法(MATLAB版) 》
习题参考答案及部分习题解答提示 第一章
1.1 (1) 0.5, 0.00217%, 5; (2) 0.5×10−5 , 0.217%, 3; (3) 0.5×10−2 , 0.000217%, 6; (4) 0.5×102 , 0.0217%, 3. 1.2 (1) 0.5, 0.014%, 4; (2) 0.5×10−4 , 0.11%, 3; (3) 0.5×10−3 , 0.0017%, 5; (4) 0.5×10−9 , 0.017%, 4. 1.3 (1) 3.146, 0.5×10−4 ; (2) 3.1416, 0.5×10−4 ; (3) 3.14159. 1.4 提示:
2.2218 ≤ n ≤ 2.9208 ⇒ n √ = 2. 1.8 提示: x1,2 =
282 − √781 28+ 783
= 28 ±

783, x1 = 28 + 27.982 = 55.982 ≈ 55.98, x2 = 28 −
1−cos2 1◦ 1+cos 1◦
=
1 55.982
≈ 0.01786. =
(1)
a12 a22
(1) (2)
··· ··· .. .
a1m a2m . . . amm
(m) (2)
(1)
= a11 a22 · · · amm .
(1) (2)
(m)
这样便有 ∆m ̸= 0, m = 1, 2, · · · , k. 充分性. 用归纳法. 当 k = 1 时显然. 设该命题对 k − 1 成立. 现设 ∆1 ̸= 0, · · · , ∆k−1 ̸= 0, ∆k ̸= 0. 由 (k ) (k) A A 11 12 (1) (k−1) , 归纳假设有 a11 ̸= 0, ak−1,k−1 ̸= 0, Gauss 消去法可以进行 k − 1 步, A 约化为 A(k) = (k) 0 A22 其中 A11 是对角元为 a11 , · · · , ak−1,k−1 的上三角阵, 因为 A(k) 是通过消去法由 A 逐步得到的, A 的 k
sin2 1◦ , 1+cos 1◦
1.10 提示: (1) sin(x + y ) − sin x = 2 sin y cos(x + y ), (2) 1 − cos 1◦ = 2 2 √ √ = − ln( 1010 + 1 + 105 ). ln( 1010 + 1 − 105 ) = ln √ 10 1 5
. 因为
0
5 − 33
0
第三章
3.1 (1) x = (0, −1, 1)T ;
(i)
(2) x = (1.2, 2, −1.4).
3.2
1 3 n 3
+ n2 − 1 n. 3
3.3 提示: 必要性. 设 aii ̸= 0, i = 1, 2, · · · , k , 则可进行消去法的 k − 1 步. 每步 A(m) 由 A 逐次实 施 (−lij Ej + Ei ) → (Ei ) 的运算得到, 这些运算不改变相应顺序主子式之值, 所以有, a11 ∆m =
−2 1 λ −3 , ρ(Bs ) = 2 > 1, 故 Gauss 2 2 =λ3 = 0, 所以 λ1 = λ2 =
λ3 = 0, ρ(BJ ) = 0 < 1, 故 Jacobi 迭代法收敛. −1 1 0 0 0 −2 2 (2) Bs = 1 1 0 0 0 −1 2 2 1 0 0 0 Seidel 迭代法发散.
3.699 ≤ n ≤ 4.3976 ⇒ n = 3. 1.5 |εr (x)| ≤ 1.6 提示: 1.7 提示:
1 2a1 1 × 10−(n−1) < 10−3 ⇒ n > 4 − 2 lg 2 ⇒ n = 4. 2×2 1 × 10−(n−1) = 3 × 10−3 ⇒ n = 4 − lg 6 − lg(a1 2(a1 +1) 56+ 562 −4 2
10 +1+10
1.11 (1) (A) 比较准确; (2) (A) 比较准确. 1.12 算法 2 准确. 在算法 1 中, ε0 ≈ 0.2231 带有误差 0.5 × 10−4 , 而这个误差在以后的每次计算中 顺次以 41 , 42 , · · · 传播到 In 中. 而算法 2 中的误差是按
−1 2
0 0
−1

0 0 0
−1 = 0
1 2
−1 2
−1 2 0Fra bibliotek 1 , 其特征 −2 1 −2
1 0 1
故 ρ(Bs ) = < 1, 从而 Gauss-Seidel 迭代收敛. −1 √ 2 5 5 −2 , |λI − BJ | = λ(λ + 4 ) = 0,λ1 = 0, λ2,3 = ± 2 i, ρ(BJ ) = 0 a 1 a 2 3
1 4n
减少的, 是稳定的计算公式.
第二章
2.1 提示: 因 B 奇异, 故 ∃x ̸= 0, 使得 Bx = 0. 于是, Ax = (A − B )x,x = A−1 (A − B )x,∥x∥ ≤
1 . ∥∥A − B ∥∥x∥, 1 ≤ ∥A−1 ∥ · ∥A − B ∥,即∥A−1 ∥ ≥ ∥A− B∥ √ √ 2.2 ∥x∥1 = 9, ∥x∥2 = 29, ∥x∥∞ = 4; ∥A∥1 = 8, ∥A∥2 = 4 2, ∥A∥∞ = 6. 0 −0.4 −0.4 λ 0.4 0.4 2 2.3 提示: 迭代矩阵 BJ = −0.4 0 −0.8 , |λI − BJ |= 0.4 λ 0.8 =(λ − 0.8)(λ + −0.4 −0.8 0 0.4 0.8 λ √ √ 0.8λ − 0.32) = 0, λ1 = 0.8, λ2,3 = 0.4(−1 ± 3). 因 |λ3 | = 0.4(1 + 3) > 1, 故用 Jacobi 迭代法不收敛. −1 1 0 0 0 −2 2 1 0 0 0 −2 2 2.4 提示: Bs = 1 1 0 0 0 −1 = −1 1 0 0 0 −1 = 2 2 1 0 0 0 0 −2 1 0 0 0 0 −2 2 0 2 −3 . 谱半径 ρ(Bs ) = max |λi | = 2 > 1, 故用 Gauss-Seidel 迭代法不收敛. 0 0 2
相关文档
最新文档