Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab matrx函数的行列式_Matlab_Linear Algebra - Fatal编程技术网

Matlab matrx函数的行列式

Matlab matrx函数的行列式,matlab,linear-algebra,Matlab,Linear Algebra,我有两个K-by-K矩阵,A和B,B是对角的。我想找到方程的根: det(Ax+B) = 0 在MATLAB中x与A逐元素相乘。我知道det(Ax+B)是x的K阶多项式 我怎样才能找到这个多项式的系数?如果我找到这些系数,我可以在MATLAB中通过roots()找到上述方程的根。如果没有,我应该使用fzero 最好的 M.R.您可以使用符号工具箱。以下说明了如何执行此操作: >> A = magic(4) %// example matrix A = 16 2

我有两个
K
-by-
K
矩阵,
A
B
B
是对角的。我想找到方程的根:

det(Ax+B) = 0
MATLAB
x
A
逐元素相乘。我知道
det(Ax+B)
x
的K阶多项式

我怎样才能找到这个多项式的系数?如果我找到这些系数,我可以在MATLAB中通过
roots()
找到上述方程的根。如果没有,我应该使用
fzero

最好的
M.R.

您可以使用符号工具箱。以下说明了如何执行此操作:

>> A = magic(4) %// example matrix

A =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

>> B = diag([4 2 6 5]) %// example matrix

B =

     4     0     0     0
     0     2     0     0
     0     0     6     0
     0     0     0     5

>> syms x
>> det(A*x+B)

ans =

- 11016*x^3 + 1342*x^2 + 2568*x + 240

在我看来,根应该是
eig(B,A)

如果你想使用
根,这个函数会很有用。如果你想让一切都保持符号化,那就简化(solve(det(A*x+B)=0,x))
。注意,这个解决方案只适用于小尺寸K。对于大于5阶的多项式的根,没有符号解决方案。高阶多项式的求根在进行数值计算时往往是不稳定的。