【问题标题】:matrix inside matrix when multiplying symbolic matrices符号矩阵相乘时矩阵内的矩阵
【发布时间】:2014-11-20 09:01:13
【问题描述】:

在 matlab 中,我正在尝试将符号矩阵相乘(大小为 3X3)。输出显示具有一些元素的矩阵,这些元素本身就是矩阵。 为什么有些元素是矩阵?

示例代码:

syms a1 a2 a3
F2 = [a1+0.0003 .0002 .0004; a2+.0003 .0005 .0003; a3+.0003 .0002 .0004];
C2 = F2'*F2;
K = C2^(16/57); 
T = inv(K)*C2*inv(K);
S = T - 0.5*T^2 + 0.33*T^3;

【问题讨论】:

  • 这是在什么编程语言/环境中发生的?
  • 抱歉我忘了说,我用的是Matlab
  • 你能举个例子吗?
  • a1 a2 a3 是符号变量。 F2=[a1+0.0003 .0002 .0004; a2+.0003 .0005 .0003; a3+.0003 .0002 .0004]; C2=F2'*F2; K=C2^(16/57); T= inv(K)*C2*inv(K); S=T-0.5*T^2+0.33*T^3; S 包含本身就是矩阵的元素
  • 如果我运行提供的代码,S 是一个 3x3 矩阵,其中每个元素都是一个 1x1 sym。在这种情况下你会得到什么结果?

标签: matlab matrix


【解决方案1】:

问题似乎是K = C2^(16/57)。取矩阵的根并非易事,解决方案并不总是存在。这就是 MATLAB 无法解析此表达式的原因。举个例子:

A = syms('A',[3,3]);    % create 3x3 symbolic matrix
B = A^(1/3);            % calculate the 3rd root of A

结果是

ans = matrix([[a1_1, a1_2, a1_3], [a2_1, a2_2, a2_3], [a3_1, a3_2, a3_3]])^(1/3)

您的情况也是如此。如果仔细观察,您会发现S(1,1) 中的matrix 表达式的形式为matrix(...)^(32/57)

【讨论】:

  • 谢谢!!!有没有办法解决这个困难?我需要在代码中真正使用这个表达式并获得解决方案。大概的解决方案。
  • 你的结果必须是符号的,还是你会在某个时候插入a1,a2,a3 的值并为这些值评估S
猜你喜欢
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 2016-12-11
  • 1970-01-01
  • 2022-06-30
  • 2017-03-11
相关资源
最近更新 更多