MATLAB矩阵求值
目录
方阵的行列式
在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)
>> A=rand(4)
A =
0.8147 0.6324 0.9575 0.9572
0.9058 0.0975 0.9649 0.4854
0.1270 0.2785 0.1576 0.8003
0.9134 0.5469 0.9706 0.1419
>> det(A)
ans =
-0.0261
>> A=[1,2;3,4]
A =
1 2
3 4
>> det(A)
ans =
-2
矩阵的秩
在MATLAB中,求矩阵秩的函数是rank(A)
>> A=[2,2,3;4,5,-6;7,8,9]
A =
2 2 3
4 5 -6
7 8 9
>> rank(A)
ans =
3
>> A=[1,2;1,2]
A =
1 2
1 2
>> rank(A)
ans =
1
矩阵的迹
在MATLAB中,求矩阵迹的函数是trace(A)
>> A=[2,2,3;4,5,-6;7,8,9]
A =
2 2 3
4 5 -6
7 8 9
>> trace(A)
ans =
16
矩阵的特征值和特征向量
在MATLAB中,计算矩阵A的特征值和特征向量的函数时eig(A)
>> A=[1,1,0.5;1,1,0.25;0.5,0.25,2];
>> eig(A)
ans =
-0.0166
1.4801
2.5365
>> [V,v]=eig(A)
V =
0.7212 0.4443 0.5315
-0.6863 0.5621 0.4615
-0.0937 -0.6976 0.7103
v =
-0.0166 0 0
0 1.4801 0
0 0 2.5365
>> [V,v]=eig(A,'nobalance')
V =
0.7212 0.4443 0.5315
-0.6863 0.5621 0.4615
-0.0937 -0.6976 0.7103
v =
-0.0166 0 0
0 1.4801 0
0 0 2.5365
向量和矩阵的范数
矩阵或向量的范数是用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。
1、向量的3种常用范数
设向量,他的3种范数定义如下
(1)向量1-范数:向量元素的绝对值之和。
(2)向量2-范数:向量元素平方和的平方根。
(2)向量-范数:所以向量元素绝对值中的最大值。
在MATLAB中,求这3种向量范数的函数如下:
norm(V,1)
norm(V,2)
norm(V,inf)
>> V=[-1,1/3,1];
>> v1=norm(V,1)
v1 =
2.3333
>> v2=norm(V,2)
v2 =
1.4530
>> vinf=norm(V,inf)
vinf =
1
2、矩阵的范数
设A是一个mn矩阵,V是一个含有n个元素的列向量,矩阵A的范数可以定义为
,
上式只给出了矩阵范数的基本定义,未给出具体计算方法,完全按照上式是难以计算一个矩阵的某种具体范数的,从属于2种向量范数的矩阵范数计算公式如下。
(1)矩阵A的1-范数:所有矩阵列元素绝对值之和的最大值。
(2)矩阵A的2-范数:A'A矩阵的最大特征根的平方根。
(2)矩阵A的-范数:所有矩阵行元素绝对值之和的最大值。
在MATLAB中,求这3种矩阵范数的函数如下:
norm(A,1)
norm(A,2)
norm(A,inf)
>> A=[1,0,1,0,5;3,5,7,4,6]
A =
1 0 1 0 5
3 5 7 4 6
>> a1=norm(A,1)
a1 =
11
>> a2=norm(A,2)
a2 =
12.1738
>> ainf=norm(A,inf)
ainf =
25
矩阵的条件数
在求解线性方程组 AX=b 时,一般认为,系数矩阵 A 中个别元素的微小扰动不会引起起解向量的很大变化。这样的假设在工程应用中非常重要,因为一般系数矩阵的数据是由实验数据获得的,并非精确值,但与精确值误差不大。
由上面的假设可以得出结论:当参与运算的系数与实际精确值误差很小时,所获得的解与问题的准确解误差也很小。
遗憾的是,上述假设并非总是正确的。
对于有的系数矩阵,个别元素的微小扰动会引起解的很大变化,在计算数学中,称这种矩阵为病态矩阵,而称解不因其系数矩阵的微小扰动而发生大的变化的矩阵为良性矩阵。当然,良性与病态是相对的,需要一个参数来描述,条件数就是用来描述矩阵的这种性能的一个参数。
矩阵 A 的条件数等于 A 的范数与A的逆矩阵的范数的乘积,即.这样定义的条件数总是大于1的。条件数越接近于1,矩阵的性能越好,反之,矩阵的性能越差。A 有3种范数,相应地可以定义3种条件数。
在 MATLAB 中,计算 A 的3种条件数的函数如下:
(1) cond(A,1):计算 A 的1-范数下的条件数.
(2)cond(A) 或 cond(A,2) :计算A的2-范数下的条件数。
(3)cond(A,inf):计算A的-范数下的条件数。
>> A=[2,2,3;4,5,-6;7,8,9];
>> c1=cond(A)
c1 =
87.9754
>> B=[2,-5,4;1,5,-2;-1,2,4];
>> c2=cond(B)
c2 =
3.7515
矩阵B条件数比矩阵A的条件数更接近与1,因此,矩阵B的性能要好于矩阵A
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了