用MATLAB求代数余子式

如题所述

1、首先打开代表电脑上的“matlab”,软件主界面如下图所示,在箭头处命令行窗口输入命令即可运行。
2、求余运算主要使用rem函数和mod函数,具体的调用格式为rem(x,y)和mod(x,y)。
3、下面把rem函数中的x换为负数,rem(-3,4)中使用fix函数求得结果为0,输出为-3。
4、mod(x,y)=x-y.*floor(x./y),floor函数为向左取整。mod(3,4)中使用floor函数求得结果为0,输出为3。
5、下面把mod函数中的x换为负数。mod(-3,4)中使用floor函数求得结果为-1,输出为1。然后运行就完成了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-30
用MATLAB求代数余子式有定义求和根据矩阵的逆求两种方法
例如
第一种:根据定义求
H=[1,2,3;1,4,9;1,8,27];
[n,m]=size(H);
for
i=1:n
ni=1:n;
ni(i)=[];
for
j=1:m
mj=1:m;
mj(j)=[];
A(i,j)=(-1)^(i+j)*det(H(ni,mj))
end
end
A=A'
B在这里是矩阵H的伴随矩阵
第二种:根据矩阵的逆来求
A=det(H)*inv(H)
即可得:H(i,j)对应的代数余子式为A(j,i)
第2个回答  2019-07-01
我刚查了书,对代数余子式和余子式的定义看了一下.代数余子式为余子式乘上一个与下标有关的-1次方.代数余子式不是固定的,它与取的a(i,j)有关,就是说:
Mij为a(i,j)的代数余子式,而余子式就是把i行和j列去掉留下的n-1阶方阵.我编写了如下程序.如果定义不一样,则另当别论了.
求a(1,1)代数余子式:
>>
H=[1,2,3;1,4,9;1,8,27]
H
=
1
2
3
1
4
9
1
8
27
>>
H(:,1)=[];H(1,:)=[];r=det(H)*(-1)^(1+1)%当不是a(1,1)时,把那里的1换成i,j.
r
=
36
a{i,j}=H(i,:)
%你这样引用是不对的,矩阵用[],不用{},只有类才用{}.
第3个回答  2019-05-12
我不知道有没有现成的函数.
clear
H=[1,2,3;1,4,9;1,8,27];
[n,m]=size(H);
for
i=1:n
ni=1:n;
ni(i)=[];
for
j=1:m
mj=1:m;
mj(j)=[];
A(i,j)=(-1)^(i+j)*det(H(ni,mj))
end
end
%检验:
A'./det(H)*H%应当为单位阵