2024年6月6日发(作者:)
第四章 线性代数问题的计算机求解
一、实验内容:
题目1.
Jordan矩阵是矩阵分析中一类很实用的矩阵,其一般形式为
-
0
J=
0
1
0
0
1
0
000
51
0
051
00
0
,例如J1=
00510
00051
0005
0
试利用diag()函数给出构造J1的语句。
【分析】该题为对角矩阵的问题。对J要利用diag()能够构造对角矩阵和次对角矩阵的性
质。J1只需对角矩阵和次对角矩阵相加即可。这里需要对diag()函数的调用。如
A=diag(V)---已知向量生成对角矩阵,A=diag(V,k)—生成主对角线上第k条对角
线为V的矩阵(其中k可为正负)
【解答】:
输入如下语句:
>>J1=diag([-5 -5 -5 -5 -5])+diag([1 1 1 1],1)
按ENTER键,显示如下:
J1=
-5 1 0 0 0
0 -5 1 0 0
0 0 -5 1 0
0 0 0 -5 1
0 0 0 0 -5
题目5.
a
4
4
b
试求出Vandermonde矩阵A=
c
4
4
d
e
4
a
3
b
3
c
3
d
3
e
3
a
2
b
2
c
2
d
2
e
2
a
b
c
d
e
1
1
并以最简的形式显示结果。
1
,的行列式,
1
1
【求解】该问题有两个知识点。一个构造是Vandermonde矩阵,另一个是求矩阵的行列式。
前者可以利用书中编写的面向符号矩阵的vander()函数构造出Vandermonde矩阵。
需要用到V=vander(C)来调用。后者可以用MATLAB的det()函数来求解,他会自
动采用解析解法求出其行列式的值。需要注意运用det()的前提是符号矩阵,本题
中A已是符号矩阵,所以不用转换。最后,用simple()函数简化一下即可。
【解答】:
(1)构造矩阵:
输入如下语句:
>>syms a b c d e; A=vander([a b c d e])
按ENTER键,显示如下:
A=
[ a^4, a^3, a^2, a, 1]
[ b^4, b^3, b^2, b, 1]
[ c^4, c^3, c^2, c, 1]
[ d^4, d^3, d^2, d, 1]
[ e^4, e^3, e^2, e, 1]
(2)以最简单的形式输出行列式:
输入如下语句:
>>det(A),simple(ans)
按ENTER键,显示如下:
ans=
(c-d)*(b-d)*(b-c)*(a-d)*(a-c)*(a-b)*(-d+e)*(e-c)*(e-b)*(e-a)
7
7
15. 试求出线性代数方程组X
2
6
6
1
1
4
9
3
5
2
7
2101
2
=
,并验证解的正确性
5
0312
6
-1,
【分析】:该题为线性方程的计算机求解问题。 需要考虑的是X=B*A在MATLAB中,需要
调用inv(A)*B函数,来得出方程的解。同时需要用到逆运算。
【解答】:
(1)输入如下语句:
>> A=[7,6,9,7;7,1,3,2;2,1,5,5;6,4,2,6];B=[2,1,0,1;0,3,1,2];A=A',B=B';
x=inv(A)*B,e1=norm(A*x-B),x1=inv(sym(A))*B,e2=norm(double(A*x1-B))
语句运行后,显示如下:
x =
-0.0057 0.4511
0.1034 -0.6207
-0.1609 -0.3678
0.2730 0.3204
e1 =
1.5879e-015
x1 =
[ -1/174, 157/348]
[ 3/29, -18/29]
[ -14/87, -32/87]
[ 95/348, 223/696]
e2 =
0
(2)对X进行逆运算,输入以下语句:
>> x1=x1';
x1*A'
语句运行后,显示如下:
ans =


发布评论