上一个求模逆矩阵的方法在阶数超过一定时会不正确。
下面这个是全新版本:输入1:矩阵
输入2:模数
function key = modinv(F,m)
format rat
Ptable=zeros(1,m);
for i=1:m-1
for j=1:m-1
if mod(i*j,m)==1
Ptable(i+1)=j;
break;
end
end
end
invV=eye(size(F,1));
for i=1:size(F,1)
if F(i,i)==0
flag=0;
for j=i+1:size(F,1)
if F(j*size(F,1),i)~=0
flag=1;
temp=F(j,:);
F(j,:)=F(i,:);
F(i,:)=temp(:);
temp=invV(j,:);
invV(j,:)=invV(i,:);
invV(i,:)=temp(:);
break;
end
end
if flag==0
print('bucunza