在一系列值上绘制矩阵的行列式

时间:2018-03-25 17:33:35

标签: matlab matrix linear-algebra

我试图绘制一个函数,它会告诉我给定输入的行列式的值。

x = 0:0.1:1
y = det([(cos(x)/x)^2,2*(cos(x)/x),2*(cos(x)/x);2*(cos(x)/x),8,8;2*(cos(x)/x),8,12])
figure
plot(x,y)

这就是我得到的。

enter image description here

我意识到只有一个y值,但我不知道为什么。如何使MATLAB显示所有x值的行列式值?

2 个答案:

答案 0 :(得分:1)

可能你想要达到这样的目的:

 x = linspace(0,1);
for i = 1:numel(x)
y(i) = det([(cos(x(i))/x(i))^2,2*(cos(x(i))/x(i)),2*(cos(x(i))/x(i));2*(cos(x(i))/x(i)),8,8;2*(cos(x(i))/x(i)),8,12]);
end
plot(x,y);

答案 1 :(得分:0)

正如linear algebra所告诉你的那样:矩阵的决定因素是一个数字。因此,您只有一个y值,因此只能绘制一个点。

我认为您正在寻找每个x值的决定因素,在这种情况下,使用for上的y循环计算每个决定因素,而不是只有一个。试图以这种方式计算一种3D矩阵(嗯,一系列x值的二维矩阵,基本上是3D)并不起作用。 MATLAB使用x的最后一个值并忽略其余值来计算你的 3 -by- 3 矩阵,并由此来计算它。' ll计算行列式,即单个数字。