矩阵与数值分析实习题
学
专
部:
业:
电子信息与电气工程学部
计算机科学与技术
学生姓名:
陶 鑫
学
班
号:
级:
21509192
电硕 1506
目 录
习题 1..................................................................................................................................................1
1.1 题目 .......................................................................................................................................1
1.2 源程序................................................................................................................................. 1
1.3 计算结果 ............................................................................................................................. 2
1.4 分析 ......................................................................................................................................2
习题 2..................................................................................................................................................3
2.1 题目 .......................................................................................................................................3
2.2 源程序................................................................................................................................. 3
2.3 计算结果 ............................................................................................................................. 3
习题 3..................................................................................................................................................4
3.1 题目 .......................................................................................................................................4
3.2 源程序................................................................................................................................. 4
3.2.1 Gauss 消元法源程序 ................................................................................................ 4
3.2.1 列主元消去法源程序.............................................................................................. 5
3.3 计算结果 ............................................................................................................................. 7
3.3.1 Gauss 消元法计算结果 ............................................................................................ 7
3.3.2 列主元消去法计算结果 .......................................................................................... 7
习题 4..................................................................................................................................................7
4.1 题目 .......................................................................................................................................7
4.2 源程序................................................................................................................................. 8
4.2.1 LU 分解源程序.........................................................................................................8
4.2.2 列主元的 LU 分解源程序.......................................................................................9
4.3 计算结果 ........................................................................................................................... 10
4.3.1 LU 分解结果 ...........................................................................................................10
4.3.2 带列主元的 LU 分解结果 .....................................................................................12
习题 5................................................................................................................................................13
5.1 题目 .................................................................................................................................... 13
5.2 源程序............................................................................................................................... 14
5.3 计算结果 ........................................................................................................................... 15
习题 6................................................................................................................................................16
6.1 题目 .................................................................................................................................... 16
6.2 源程序............................................................................................................................... 16
6.3 计算结果 ........................................................................................................................... 17
习题 7................................................................................................................................................18
7.1 题目 .................................................................................................................................... 18
7.2 源程序............................................................................................................................... 18
7.3 计算结果 ........................................................................................................................... 19
习题 8................................................................................................................................................20
8.1 题目 .................................................................................................................................... 20
8.2 源程序............................................................................................................................... 20
8.2.1 Jacobi 迭代法源程序 ..............................................................................................20
8.2.2 Gauss-Seidel 迭代法源程序 ...................................................................................21
8.3 计算结果 ........................................................................................................................... 21
8.3.1 Jacobi 迭代法计算结果..........................................................................................21
8.3.2 Gauss-Seidel 迭代法计算结果 ...............................................................................22
习题 9................................................................................................................................................23
9.1 题目 .................................................................................................................................... 23
9.2 源程序............................................................................................................................... 23
9.2.1 Newton 法源程序 ....................................................................................................23
9.2.2 割线法源程序 ........................................................................................................ 24
9.3 计算结果 ........................................................................................................................... 24
9.3.1 Newton 法计算结果 ............................................................................................... 24
9.3.2 割线法计算结果.................................................................................................... 26
习题 10..............................................................................................................................................27
10.1 题目 .................................................................................................................................. 27
10.2 源程序............................................................................................................................. 28
10.3 计算结果......................................................................................................................... 29
习题 11..............................................................................................................................................30
11.1 题目...................................................................................................................................30
11.2 源程序 ..............................................................................................................................30
11.3 计算结果 ..........................................................................................................................31
习题 12..............................................................................................................................................35
12.1 题目 .................................................................................................................................. 35
12.2 源程序............................................................................................................................. 35
12.3 计算结果......................................................................................................................... 36
习题 13..............................................................................................................................................40
13.1 题目 .................................................................................................................................. 40
13.2 源程序............................................................................................................................. 40
13.2.1 复化梯形法源程序 .............................................................................................. 40
13.2.2 复化 Simpson 法源程序 ......................................................................................40
13.3 计算结果......................................................................................................................... 41
13.3.1 复化梯形法结果 .................................................................................................. 41
13.3.2 复化 Simpson 法结果 .......................................................................................... 42
习题 14..............................................................................................................................................43
14.1 题目 .................................................................................................................................. 43
14.2 源程序............................................................................................................................. 43
14.3 计算结果......................................................................................................................... 44
习题 15..............................................................................................................................................46
15.1 题目 .................................................................................................................................. 46
15.2 源程序............................................................................................................................. 46
15.2.1 Euler 法源程序......................................................................................................46
15.2.2 改进 Euler 法源程序 ........................................................................................... 47
15.2.3 Runge-Kutta 法源程序 ......................................................................................... 47
15.3 计算结果......................................................................................................................... 48
15.3.1 Euler 法计算结果..................................................................................................48
15.3.2 改进 Euler 法计算结果 ....................................................................................... 51
15.3.3 Runge-Kutta 法计算结果..................................................................................... 54
习题 1
1.1 题目
设
, 其精确值为
.
, 计算 的通用
, 计算
并指出有效位数(编制程序时用单精度)
(1) 编制按从大到小的顺序
程序
(2) 编制按从小到大的顺序
的通用程序
(3) 按两种顺序分别计算
(4) 通过本上机题,你明白了什么
1.2 源程序
%prob1.m
clear
n = input('请输入 n(n>1):');
Snlts = single(0);
Snstl = single(0);
%精确值
trueValue = single(1/2*(3/2-1/n-1/(n+1)));
%从大到小顺序
for j = 2:n
Snlts = Snlts + 1/(j^2-1);
end
%从小到大顺序
for j = n:-1:2
Snstl = Snstl + 1/(j^2-1);
end
fprintf('#############################################\n');
fprintf('Sn 精确值为: %f\n',trueValue);
fprintf('按从大到小的顺序计算 Sn 值为: %f\n',Snlts);
fprintf('按从小到大的顺序计算 Sn 值为: %f\n',Snstl);
1
fprintf('#############################################\n');
1.3 计算结果
(1)n=100
请输入 n(n>1):10^2
#############################################
Sn 精确值为: 0.740049
按从大到小的顺序计算 Sn 值为: 0.740049
按从小到大的顺序计算 Sn 值为: 0.740049
#############################################
(2)n=10^4
请输入 n(n>1):10^4
#############################################
Sn 精确值为: 0.749900
按从大到小的顺序计算 Sn 值为: 0.749900
按从小到大的顺序计算 Sn 值为: 0.749900
#############################################
(3)n=10^6
请输入 n(n>1):10^6
#############################################
Sn 精确值为: 0.749999
按从大到小的顺序计算 Sn 值为: 0.749999
按从小到大的顺序计算 Sn 值为: 0.749999
#############################################
1.4 分析
当输入 10^10 时,结果如下
请输入 n(n>1):10^10
>>
#############################################
Sn 精确值为: 0.750000
按从大到小的顺序计算 Sn 值为: 0.750000
按从小到大的顺序计算 Sn 值为: 0.000000
#############################################
可以得出,算法对误差的传播又一定的影响,在计算时选一种好的算法可以使结果更为
精确。从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,
求和运算从小数到大数算所得到的结果才比较准确。
2
习题 2
2.1 题目
秦九韶算法。已知 n 次多项式
,用秦九韶算法编写通用的程序计算函数在
点的值,并计算
在点的值.
(提示:编写程序时,输入系数向量和点,输出结果,多项式的次数可以通过向量的长度来
判断)
2.2 源程序
%prob2_qin.m
clear
a = str2num(input('请依次输入多项式系数 a0,a1,a2...:','s'));
x = input('请输入 x 的值:');
len = length(a);%数组长度
s = a(len);
for i=len-1:-1:1
s = x*s+a(i);
end
fprintf('使用秦九昭算法计算的结果为:%f\n',s);
2.3 计算结果
>> prob2_qin
请依次输入多项式系数 a0,a1,a2...:11 -5 3 7
请输入 x 的值:1.6
使用秦九昭算法计算的结果为:39.352000
3
习题 3
3.1 题目
分别用 Gauss 消元法和列主元消去法编程求解方程组 Ax=b,其中
3.2 源程序
3.2.1 Gauss 消元法源程序
(1)command window 中程序
>>clear
>> d = [31 35 31 79 57 47 41 27 29];
>> A=diag(d);
>> d1=[-13 -9 -10 -30 -7 -30 0 -2];
>> A=A+diag(d1,1)+diag(d1,-1);
>> A(1,6)=-10;A(2,5)=-11;A(4,9)=-9;A(5,8)=-5;A(8,5)=-5;A(9,4)=-9;
>> b=[-15,27,-23,0,-20,12,-7,7,10]';
>> x=gaussFuc(A,b)
x =
-0.2892
0.3454
-0.7128
-0.2206
-0.4304
0.1543
-0.0578
0.2011
0.2902
4
(2)Gauss 消元法 M 文件
%gaussFunc.m
function x = gaussFuc(A,b)
len = length(b);
l = cell(1,len-1);%建立 len-1 个元胞数组,用来存放 L_i 下三角矩阵
l(:)={eye(len)};
U = A;
for i=1:len-1
for j=i+1:len
l{i}(j,i) = -U(j,i)/U(i,i);%求出每个变换矩阵
end
U = l{i}*U;%逐步变为上三角阵
end
L = eye(len);
%求下三角阵 L
for i=1:len-1
L=L*inv(l{i});
end
%求出 x
x=inv(U)*(inv(L)*b);
3.2.1 列主元消去法源程序
(1)command window 中程序
>>clear
>> d = [31 35 31 79 57 47 41 27 29];
>> A=diag(d);
>> d1=[-13 -9 -10 -30 -7 -30 0 -2];
>> A=A+diag(d1,1)+diag(d1,-1);
>> A(1,6)=-10;A(2,5)=-11;A(4,9)=-9;A(5,8)=-5;A(8,5)=-5;A(9,4)=-9;
>> b=[-15,27,-23,0,-20,12,-7,7,10]';
>> x = colMainFuc(A,b)
x =
-0.2892
0.3454
-0.7128
-0.2206
-0.4304
0.1543
-0.0578
0.2011
0.2902
5