在MATLAB或Mathematica中创建符号矩阵

时间:2014-04-20 15:33:15

标签: matlab mathematica-8

是否可以通过 m 矩阵定义 m 矩阵(m是符号整数),例如 m /(m + 1)作为对角线元素, -1 / m 作为MATLAB或Mathematica中的非对角元素?

让我给出更多的解释:假设你被要求找到 m 的反函数[行列式,特征值等] m 矩阵,如上所述[例如不难证明这种矩阵的逆是 m m 矩阵,其对角线 2 1 在非对角线上]。是否可以使用MATLAB或任何其他软件来回答这些问题?

2 个答案:

答案 0 :(得分:2)

像这样:

m = 4; % Or any other positive integer
matrix = eye(m) * (m/(m+1)) + (1 - eye(m)) * (-1/m)

答案 1 :(得分:1)

如果你想要一个真实的"象征性的"矩阵,在Matlab中你需要使用Symbolic Math toolbox的一点:

m = 7;
ms = sym(m);
mat = -ones(m)/ms;
mat(1:m+1:end) = ms/(ms+1);

返回

mat =

[  7/8, -1/7, -1/7, -1/7, -1/7, -1/7, -1/7]
[ -1/7,  7/8, -1/7, -1/7, -1/7, -1/7, -1/7]
[ -1/7, -1/7,  7/8, -1/7, -1/7, -1/7, -1/7]
[ -1/7, -1/7, -1/7,  7/8, -1/7, -1/7, -1/7]
[ -1/7, -1/7, -1/7, -1/7,  7/8, -1/7, -1/7]
[ -1/7, -1/7, -1/7, -1/7, -1/7,  7/8, -1/7]
[ -1/7, -1/7, -1/7, -1/7, -1/7, -1/7,  7/8]

与Mathematica相关的问题最好在专门的Mathematica.StackExchange处理。