• 大小: 1.57KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-03-28
  • 语言: Matlab
  • 标签: matlab  

资源简介


自己编写的一些代码。matlab编程实现矩阵LU分解、QR分解、Jordan约当标准型。

资源截图

代码片段和文件信息

clc
clear
%A=round(255*rand(5));%创建一个在0~255取值的5阶整数随机矩阵
% A=100*rand(5);%创建一个在0~100取值的实数矩阵
A=[2-1-1;2-1-2;-112];%用一道例题检验
L0=eig(A);%求矩阵A的特征值
L=single(L0);%降低精度方便unique函数判断相等关系
tzz=unique(L(:));
J=[];
for i=1:length(tzz)
    num=length(find(L==tzz(i)));%第i个特征值的重复次数,即特征值的阶数
    R=rank(eye(size(A))*tzz(i)-A);
    [a~]=size(A);
    x=a-R;%第i个特征值有x个线性无关的特征向量
    jie=num-x+1;%第i个特征值对应的最高阶Jordan块的阶数
    %将第i个特征值对应的最高阶Jordan块写入结果矩阵
    for j=1:jie
        [mn]=size(J);
        J(m+1n+1) = tzz(i);
        if j>1
            J(m+1n) = 1;
        end
    end
    %将第i个特征值对应的剩余Jordan块依次写入结果矩阵
    if x>1
        [mn]=size(J);
        for k=1:(x-1)
            J(m+kn+k) = tzz(i);
        end
    end
end
A
%将结果与matlab内置函数结果进行对照
J
J2 = jordan(A)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         940  2015-12-29 16:55  Jordan001.m
     文件         575  2015-11-10 22:32  LUfenjie.m
     文件         477  2015-11-10 21:08  QRfenjie.m

评论

共有 条评论