matlba与线性代数

matlab与线性代数

语法知识
2.34逆矩阵
对于方阵A,如果AB=BA=单位矩阵,其实称B为A的逆矩阵。A的逆矩阵的函数inv(A)。也可以用A\eye(n),eye(n)/A,A^(-1),rref[A,eye(size(A))]。
2.35矩阵的LU分解
将矩阵A分解为L*U,其中L为下三角行列式,U为上三角行列式,LU分解常用于求解行列式以及解线性方程组。
2.36矩阵的正交分解
即矩阵的qr分解,将矩阵A分解为一个正交矩阵
q和一个上三角矩阵r的乘积,所谓正交矩阵是该矩阵与她的转置矩阵的乘积是一个单位矩阵。
2.37矩阵的Cholesky分解
cholesky用来分解正定矩阵,他将正定矩阵分解为一个上三角矩阵T和T的转置的乘积。正定矩阵是一个对称矩阵,且特征值全为正。
2.38广义逆矩阵
当矩阵A的行列和列数不相等或者det(A)=0,则不存在逆矩阵,但存在广义逆矩阵,它满足APA=A,PAP=A。函数pinv。
2.39数组与矩阵的乘幂
设X、,Y为矩阵,但其行数和列数必须相同,则她的数组乘幂为V=X.^Y。V=power(X
,Y)。
2.40矩阵的垂直连接和水平连接
水平连接函数 horzcat(x,y);水平连接时行数必须相等。垂直连接函数 vertcat(x,y),垂直连接时列数必须相等。
2.41矩阵的复制
repoat(A,m,n),A为待复制的矩阵或向量m,n为需要复制的行数和列数。
2.42稀疏矩阵的创建
当矩阵中大部分元素为0时为稀疏矩阵。
(1)用稀疏矩阵行数sparse(A)建立。
(2)用非零元素直接输入创建稀疏矩阵。S=sparse(i,j,s,m,n)其中i,j为非零元素所在行和列的整数向量,s为对应i和j向量的元素向量,m,n,为稀疏矩阵的总的行数和列数。
(3)从对角线创建稀疏矩阵。A=spdiags(B
,d,m,n)他是将矩阵B的每一列,按整数向量d的对应元素的值写入矩阵A的对角线上,d=0写在主对角线上,d>0上移整数行,d<0下移整数行。
2.43稀疏矩阵的图形显示
spy(s)。
2.44寻找矩阵的非0元素
[i,j,v]=find(k),i,j为下标,v为所在下标的元素。
实战演练
2-51

A=[1 2 3 4;2 3 5 8;1 3 5 7;3 4 7 11]
A =
1 2 3 4
2 3 5 8
1 3 5 7
3 4 7 11

det(A)
ans =
1.0000

inv(A)
ans =
1.0000 -1.0000 -1.0000 1.0000
2.0000 4.0000 -1.0000 -3.0000
-0.0000 -5.0000 1.0000 3.0000
-1.0000 2.0000 -0.0000 -1.0000

inv(A)*A
ans =
1.0000 -0.0000 0.0000 0.0000
0.0000 1.0000 0.0000 0.0000
-0.0000 0 1.0000 0
0.0000 0 0 1.0000

A\eye(4)
ans =
1.0000 -1.0000 -1.0000 1.0000
2.0000 4.0000 -1.0000 -3.0000
-0.0000 -5.0000 1.0000 3.0000
-1.0000 2.0000 -0.0000 -1.0000

eye(4)/A
ans =
1.0000 -1.0000 -1.0000 1.0000
2.0000 4.0000 -1.0000 -3.0000
-0.0000 -5.0000 1.0000 3.0000
-1.0000 2.0000 -0.0000 -1.0000

A^(-1)
ans =
1.0000 -1.0000 -1.0000 1.0000
2.0000 4.0000 -1.0000 -3.0000
-0.0000 -5.0000 1.0000 3.0000
-1.0000 2.0000 -0.0000 -1.0000

2-52

A
A =
1 2 3 4
2 3 5 8
1 3 5 7
3 4 7 11

B=[A,eye(size(A))]
B =
1 2 3 4 1 0 0 0
2 3 5 8 0 1 0 0
1 3 5 7 0 0 1 0
3 4 7 11 0 0 0 1

rref(B)
ans =
1 0 0 0 1 -1 -1 1
0 1 0 0 2 4 -1 -3
0 0 1 0 0 -5 1 3
0 0 0 1 -1 2 0 -1

C=ans(:,5:8)
C =
1 -1 -1 1
2 4 -1 -3
0 -5 1 3
-1 2 0 -1

inv(A)
ans =
1.0000 -1.0000 -1.0000 1.0000
2.0000 4.0000 -1.0000 -3.0000
-0.0000 -5.0000 1.0000 3.0000
-1.0000 2.0000 -0.0000 -1.0000

2-54

A
A =
1 2 3 4
2 3 5 8
1 3 5 7
3 4 7 11

[L,U]=LU(A)
未定义函数或变量 ‘LU’。
L =
0.3333 0.4000 1.0000 0
0.6667 0.2000 0.5000 1.0000
0.3333 1.0000 0 0
1.0000 0 0 0
U =
3.0000 4.0000 7.0000 11.0000
0 1.6667 2.6667 3.3333
0 0 -0.4000 -1.0000
0 0 0 0.5000

L*U
ans =
1 2 3 4
2 3 5 8
1 3 5 7
3 4 7 11

2-55

B=magic(3)
B =
8 1 6
3 5 7
4 9 2

[q,r]=qr(B)
q =
-0.8480 0.5223 0.0901
-0.3180 -0.3655 -0.8748
-0.4240 -0.7705 0.4760
r =
-9.4340 -6.2540 -8.1620
0 -8.2394 -0.9655
0 0 -4.6314
q*r
ans =
8.0000 1.0000 6.0000
3.0000 5.0000 7.0000
4.0000 9.0000 2.0000

q*q’
ans =
1.0000 -0.0000 -0.0000
-0.0000 1.0000 0.0000
-0.0000 0.0000 1.0000

2-56

A=[1 1 1 1;1 3 3 3;1 3 5 5;1 3 5 7]
A =
1 1 1 1
1 3 3 3
1 3 5 5
1 3 5 7

eig(A)
ans =
0.5198
0.7232
1.6199
13.1371

chol(A)
ans =
1.0000 1.0000 1.0000 1.0000
0 1.4142 1.4142 1.4142
0 0 1.4142 1.4142
0 0 0 1.4142

T=ans
T =
1.0000 1.0000 1.0000 1.0000
0 1.4142 1.4142 1.4142
0 0 1.4142 1.4142
0 0 0 1.4142

T’*T
ans =
1.0000 1.0000 1.0000 1.0000
1.0000 3.0000 3.0000 3.0000
1.0000 3.0000 5.0000 5.0000
1.0000 3.0000 5.0000 7.0000

2-57

A=magic(3)
A =
8 1 6
3 5 7
4 9 2

rank(A)
ans =
3

det(A)
ans =
-360

pinv(A)
ans =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028

inv(A)
ans =
0.1472 -0.1444 0.0639
-0.0611 0.0222 0.1056
-0.0194 0.1889 -0.1028

2-58

A=[1 2 3;4 5 6;1 3 5;2 5 8;4 7 9]
A =
1 2 3
4 5 6
1 3 5
2 5 8
4 7 9

rank(A)
ans =
3

pinv(A)
ans =
0.1739 1.0870 0.0435 0.2174 -1.0000
-0.3789 -1.4037 -0.4161 -0.7950 2.0000
0.2174 0.6087 0.3043 0.5217 -1.0000

2.61

x=magic(3)
x =
8 1 6
3 5 7
4 9 2

y=[1 2 3;4 5 6;7 8 9]
y =
1 2 3
4 5 6
7 8 9

V=power(x,y)
V =
8 1 216
81 3125 117649
16384 43046721 512

V=x.^y
V =
8 1 216
81 3125 117649
16384 43046721 512

2-64

A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

B=ones(4)
B =
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1

C=horzcat(A,B)
C =
16 2 3 13 1 1 1 1
5 11 10 8 1 1 1 1
9 7 6 12 1 1 1 1
4 14 15 1 1 1 1 1

2-65

A=rand(2,5)
A =
0.8147 0.1270 0.6324 0.2785 0.9575
0.9058 0.9134 0.0975 0.5469 0.9649

B=[1 2 3 4 5; 3 5 7 9 11]
B =
1 2 3 4 5
3 5 7 9 11

C=vertcat(A,B)
C =
0.8147 0.1270 0.6324 0.2785 0.9575
0.9058 0.9134 0.0975 0.5469 0.9649
1.0000 2.0000 3.0000 4.0000 5.0000
3.0000 5.0000 7.0000 9.0000 11.0000

2-66

m=10;n=1;
v=[2 3 5 8]
v =
2 3 5 8

b=repmat(v,m,n)
b =
2 3 5 8
2 3 5 8
2 3 5 8
2 3 5 8
2 3 5 8
2 3 5 8
2 3 5 8
2 3 5 8
2 3 5 8
2 3 5 8

2-67

a=pascal(3)
a =
1 1 1
1 2 3
1 3 6

b1=repmat(a,3,4)
b1 =
1 至 10 列
1 1 1 1 1 1 1 1 1 1
1 2 3 1 2 3 1 2 3 1
1 3 6 1 3 6 1 3 6 1
1 1 1 1 1 1 1 1 1 1
1 2 3 1 2 3 1 2 3 1
1 3 6 1 3 6 1 3 6 1
1 1 1 1 1 1 1 1 1 1
1 2 3 1 2 3 1 2 3 1
1 3 6 1 3 6 1 3 6 1
11 至 12 列
1 1
2 3
3 6
1 1
2 3
3 6
1 1
2 3

2-68

a1=magic(3)
a1 =
8 1 6
3 5 7
4 9 2

z=zeros(3)
z =
0 0 0
0 0 0
0 0 0

b2=[a1 z z;z a1 z;z z a1]
b2 =
8 1 6 0 0 0 0 0 0
3 5 7 0 0 0 0 0 0
4 9 2 0 0 0 0 0 0
0 0 0 8 1 6 0 0 0
0 0 0 3 5 7 0 0 0
0 0 0 4 9 2 0 0 0
0 0 0 0 0 0 8 1 6
0 0 0 0 0 0 3 5 7
0 0 0 0 0 0 4 9 2

2-69

A=eye(6)
A =
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1

B=sparse(A)
B =
(1,1) 1
(2,2) 1
(3,3) 1
(4,4) 1
(5,5) 1
(6,6) 1

whos
Name Size Bytes Class Attributes
A 6x6 288 double
B 6x6 152 double sparse
C 4x5 160 double
T 4x4 128 double
V 3x3 72 double
a 3x3 72 double
a1 3x3 72 double
ans 3x5 120 double
b 10x4 320 double
b1 9x12 864 double
b2 9x9 648 double
m 1x1 8 double
n 1x1 8 double
v 1x4 32 double
x 3x3 72 double
y 3x3 72 double
z 3x3 72 double

2-70

i=[1 1 1 2 2 2 3 3 3 4 4 4];
j=[1 3 5 2 4 6 3 5 7 4 6 8];
s=[2 5 13 3 8 21 5 13 34 8 21 55];
m=6;n=8;
S=sparse(i,j,s,m,n)
S =
(1,1) 2
(2,2) 3
(1,3) 5
(3,3) 5
(2,4) 8
(4,4) 8
(1,5) 13
(3,5) 13
(2,6) 21
(4,6) 21
(3,7) 34
(4,8) 55

full(S)
ans =
2 0 5 0 13 0 0 0
0 3 0 8 0 21 0 0
0 0 5 0 13 0 34 0
0 0 0 8 0 21 0 55
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0

nnz(S)
ans =
12

2-71

A=2*rand(4,5)
A =
0.3152 1.6006 1.5844 1.6983 1.4863
1.9412 0.2838 1.9190 1.8680 0.7845
1.9143 0.8435 1.3115 1.3575 1.3110
0.9708 1.8315 0.0714 1.5155 0.3424

A=A>1
A =
4×5 logical 数组
0 1 1 1 1
1 0 1 1 0
1 0 1 1 1
0 1 0 1 0

B=spdiags(A,[-2,-1,0,1,2],4,6)
B =
4×6 稀疏 logical 数组
(1,1) 1
(3,1) 1
(1,2) 1
(2,2) 1
(1,3) 1
(2,3) 1
(3,3) 1
(4,3) 1
(3,4) 1
(3,5) 1
(4,5) 1

C=full(B)
C =
4×6 logical 数组
1 1 1 0 0 0
0 1 1 0 0 0
1 0 1 1 1 0
0 0 1 0 1 0

2-73

A=2*rand(4,5)
A =
0.3152 1.6006 1.5844 1.6983 1.4863
1.9412 0.2838 1.9190 1.8680 0.7845
1.9143 0.8435 1.3115 1.3575 1.3110
0.9708 1.8315 0.0714 1.5155 0.3424

A=A>1
A =
4×5 logical 数组
0 1 1 1 1
1 0 1 1 0
1 0 1 1 1
0 1 0 1 0

B=spdiags(A,[-2,-1,0,1,2],4,6)
B =
4×6 稀疏 logical 数组
(1,1) 1
(3,1) 1
(1,2) 1
(2,2) 1
(1,3) 1
(2,3) 1
(3,3) 1
(4,3) 1
(3,4) 1
(3,5) 1
(4,5) 1

C=full(B)
C =
4×6 logical 数组
1 1 1 0 0 0
0 1 1 0 0 0
1 0 1 1 1 0
0 0 1 0 1 0

spy(B)

学习心得
学习了matlab与线性代数!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值