如何用MATLAB计算矩阵的行列式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用MATLAB计算矩阵的行列式相关的知识,希望对你有一定的参考价值。

利用矩阵的Laplace展开定理,而非用det命令求得。请教M程序该如何编写?
如下,请指教
function y=detnn(A)
y=0;
[n,n]=size(A);
if n==3
y=det33(A);
end
for i=1:n
y=y+(-1)^(i+1)*A(1,i)*detnn(A(2:n, [1:(i-1) (i+1):n]));
end

工具:
正常电脑
matlab软件
方法/步骤:
1、矩阵行列式的数学定义
行列式的定义是通过方程组的求解引入的,也可以说是行列式是由求解线性方程组产生的一种算式把!下面就介绍一下行列式的数学表示法。以三阶行列式为例。
2、matlab求行列式指令简介
matlab计算对应矩阵行列式的值的指令为:d=det(a),该指令返回方阵a的行列式,并赋给d。若a仅包含整数项,则该结果d也是一个整数。
下面是matlab给出的帮助信息,我们可以通过help
det

doc
det获取。乳腺图所示:
3、生成一个矩阵
这里先生成一个矩阵,然后有计算行列式时调用。生成矩阵的方法有很多种,如a=[1,2,3;4,5,6;7,8,9],a=[1
2
3
;
4
5
6
;
7
8
9],
或者
a=
1
2
3
4
5
6
7
8
9
此外还有一些其他指令可以生成矩阵,如:zeros(m,n),ones(m,n),eye(m,n),diag(x),rand(m,n)等,这里就在显示了。
4、求解上面两个矩阵的行列式,掉一批能干指令:“h_a=det(a)”和“h_b=det(b)”。就能得出结果。
参考技术A function y=detnn(A)
y=0;
[n,n]=size(A);
if n==1
y=A;
else
for i=1:n
y=y+(-1)^(i+1)*A(1,i)*detnn(A(2:n, [1:(i-1) (i+1):n]));
end
end
参考技术B clear
clc
n0=20;
e=1e0;
r0=(1:n0);
p0=poly(r0);
t=1;
for k=14:2:20
p=p0;
p(n0-k+1)=p(n0-k+1)+e;
r(:,k)=roots(p);
subplot(2,2,t)
plot(real(r(:,k)),imag(r(:,k)),'*')
xlabel('根的实部')
ylabel('根的虚部')
grid on
t=t+1;
end本回答被提问者采纳

以上是关于如何用MATLAB计算矩阵的行列式的主要内容,如果未能解决你的问题,请参考以下文章

如何用c语言来求一个四阶行列式的值

如何用MATLAB将特征向量标准化

如何用python实现行列互换?

怎么利用矩阵MATLAB计算?

如何用matlab画正态分布曲线

Python解决矩阵问题