%就矩阵模的的迭代法~~~
%author(foddcus) FaFu 2022.3
%email:foddcus@163.com
%function Tresult=eliminationM(input);%模块化功能
%input输入矩阵,包括系数和参数
%oringinData保留的初始矩阵
%output 输出答案,对应X的各个值
%xnum,ynum 输入矩阵的尺寸
%keepnum 保留小数位数
%contrastFrom(各个多项式的误差)
%deltanum:矩阵中变化的最大值
%errorS:允许的目标误差;
%Xform:包含特征向量的表格;
clear all%启用模块化后需要注释该句
%误差、迭代次数
error1='the condition are not meet for using this algorithm' ;
input=[1,2,3,;
1,0,2;
0,1,-1];%输入矩阵
oringinData=input;
%format short%设置精度 short为精确到小数点后3位 数值型 roundn(A,3)保留3位小数
keepnum=-10;%设置保留n位小数,记得加负号表示小数位
[ynum,xnum]=size(input);%获取输入矩阵大小
aimnum=40;
%求模最大的特征根和特征向量
X=[0;0;1];
errorS=10^(-5);
alpa(1,1)=1;
for k=1:aimnum
Y=X/alpa(k,:);
X=input*Y;
xform(k,:)=X;
alpa(k+1,1)=max(max(X));
if errorS>abs(alpa(k+1,1)-alpa(k,1))
break
end
end
disp(['最大特征值',num2str(alpa(k+1,1))]);