我在使用rSymPy和Ryacas处理符号矩阵时遇到了问题。在Matlab中这很容易。 我正在寻找如何在R中实现类似Matlab的结果的建议。在Matlab中,我需要使用“符号工具箱”。
在这个例子中,我希望生成一个符号转移概率矩阵“P”,该矩阵为5 x 5,其中包含元素P11、P12、...、P55。然后,我想将这个矩阵用于矩阵乘法(与它本身和其他矩阵相乘),并可能执行其他操作。
(1) Matlab - 生成符号矩阵 -> OK
P = sym('P%d%d', [5 5])
(1) R - 获得符号矩阵 -> 完成
library(rSymPy)
P<-matrix(nrow=5, ncol=5)
for (i in 1:5){
for (j in 1:5) {
P[i,j]<-paste0(Sym("P"), i, j) # tried Var("P") also
}
}
我想要将这些矩阵相乘。
(2) Matlab - 乘法符号矩阵 -> 成功
P*P
运行良好。
(2) R - 乘法符号矩阵 -> 问题
sympy("P * P")
Need Help Here!
无法工作。许多其他尝试也没有成功。我需要关于如何正确执行此操作并获得与Matlab(例如(2))相同的输出的建议。
附加任务:
(3)Matlab-将每个元素分别sym() -> OK
此外,我想要一个建议,如何在R中将矩阵P的单个元素Sym(),就像在Matlab中一样。
for i = 1:5;
for j = 1:5;
P = sprintf('P%d%d',i,j);
assignin('caller',P,sym(P));
end;
end;
(3) R - Sym() 分别作用于每个元素 -> 问题
Need Help Here!
感谢各位的建议!
library(Ryacas); yacas("P := {{p11, p12}, {p21, p22}}"); yacas("PrettyForm(P*P)")
- G. GrothendieckrSymPy
中进行包装... - Ben Bolker