MATLAB常用矩阵函数

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

1. 矩阵的构造与操作

zeros 生成元素全为0的矩阵

ones 生成元素全为1的矩阵

eye 生成单位矩阵

rand 生成随机矩阵

randn 生成正态分布随机矩阵

sparse 生成稀疏矩阵

full 将稀疏矩阵化为普通矩阵

diag 对角矩阵

tril 矩阵的下三角部分

triu 矩阵的上三角部分

flipud 矩阵上下翻转

fliplr 矩阵左右翻转

MATLAB还能够构造一些常用的特殊矩阵

2. 矩阵运算函数

norm 矩阵或向量范数

normest 稀疏矩阵(或大规模矩阵)的2-范数估计

rank 矩阵的秩

det 方阵的行列式

trace 方阵的迹

null 求基础解系(矩阵的零空间)

orth 正交规范化

rref 矩阵的行最简形(初等行变换求解线性方程组)subspace 计算两个子空间的夹角

3. 与线性方程有关的矩阵运算函数

inv 方阵的逆

cond 方阵的条件数

condest 稀疏矩阵1-范数的条件数估计

chol 矩阵的Cholesky分解(矩阵的平方根分解)cholinc 稀疏矩阵的不完全Cholesky分解

linsolve 矩阵方程组的求解

lu 矩阵的LU分解

ilu 稀疏矩阵的不完全LU分解

luinc 稀疏矩阵的不完全LU分解

qr 矩阵的正交三角分解

pinv 矩阵的广义逆

4. 与特征值或奇异值有关的矩阵函数

eig 方阵的特征值与特征向量

svd 矩阵的奇异值分解

eigs 稀疏矩阵的一些(默认6个)最大特征值与特征向量svds 矩阵的一些(默认6个)最大奇异值与向量

hess 方阵的Hessenberg形式分解

schur 方阵的Schur分解

a =

0.5000 0.8080 0.1660 0.8180 0.4440 0.1000

0.5810 1.3580 0.1870 0.7280 0.5450 0.1680

0.9960 2.0500 0.2250 1.7860 0.6320 0.2020

这有个我们以前的MATLAB幂法求特征值和特征响量的程序:[maxnorm.m]

function t=maxnorm(a)

%求数列中按模最大的分量

n=length(a);

t=0;

for i=1:n

if abs(a(i)/max(abs(a)))>=1

t=a(i);

end

end

function [mt,my]=maxtr(a,eps)

%用幂法求矩阵的主特征值和对应的特征向量

n=length(a);

x0=diag(ones(n));

k=1

x=a*x0

while norm(x-x0)>eps

k=k+1

q=x;

y=x/maxnorm(x)

x=a*y;

x0=q;

end

mt=maxnorm(x)

my=y

[main1.m]

a=[3 2;4 5]

maxtr(a,0.0001)

[invmaxtr.m]

function [mx,mt,my]=invmaxtr(a,eps)

%求矩阵按模最小的特征值和对应的特征向量

n=length(a);

x0=diag(ones(n));

x=inv(a)*x0;

k=0

while norm(x-x0)>eps

k=k+1

q=x;

y=x/maxnorm(x)

x=inv(a)*y;

x0=q;

end

mt=1/maxnorm(x)

my=y

[main.m]

a=[3 2;4 5]

invmaxtr(a)

用matlab求矩阵的最大特征值和特征向量

[ 2008-03-21 21:23:23 | 作者: dklkt ] 字号: 大 | 中 | 小

最近辅修数学建模,学习层次分析法的时候发现算矩阵的最大特征值和特征向量有点麻烦。于是找同学要了matlab。因为我连初学者也算不上,所以临阵磨枪,小学了下matlab 的语法,花了2个小时查资料,才写出了这个小程序。用于解决层次分析法中的求解问题。注意本程序给出的特征向量都是经过标准化的,可以直接拿来用。

保存成m文件在matlab中运行。

view plaincopy to clipboardprint?

01.%输出格式

02.format short;

03.%输入待求的矩阵A

04.A=[1 2

05. 1/2 1];

06.

07.[v,d]=eigs(A);

08.%最大特征值

09.tbmax=max(d(:));

10.%得到行数和列数

11.[m,n]=size(v);

12.

13.%将特征向量标准化

14.sum = 0;

15.for i=1:m

16. sum = sum + v(i,1);

17.end

18.tbvector = v(:,1);

19.for i=1:m

20. tbvector(i,1)= v(i,1)/sum;

21.end

22.

23.disp('========================================');

24.disp('输入的矩阵为:');

25.A

26.disp('所有的特征向量和特征值为:');

27.v

28.d

29.disp('最大的特征值为:');

30.tbmax

31.disp('最大的特征值对应的特征向量为(标准化后的):');

32.tbvector

%输出格式

format short;

%输入待求的矩阵A

相关文档
最新文档