在 MATLAB 中计算符号分数而不给符号变量赋值?

在 MATLAB 中计算符号分数而不给符号变量赋值?

我正在处理几个矩阵,并尝试简化涉及符号项的结果。该subs()命令不起作用,因为没有为变量分配值。但尝试处理这个很麻烦:

(5592405333333333*u11)/4194304 - (5592405333333333*u9)/4194304

(1977213867171907*2^(1/2)*u5)/4194304 + (1977213867171907*2^(1/2)*u6)/4194304 - (1977213867171907*2^(1/2)*u9)/4194304 - (1977213867171907*2^(1/2)*u10)/4194304

这些u值是象征性的。计算第一项,(5592405333333333*u11)/4194304非常接近1,333,333,333*u11我能使用的数值。

是否有一些命令可以进行除法以便使其变得更清理?

答案1

您正在寻找的命令是vpa。 一个例子:

syms u11;
expr =(5592405333333333*u11)/4194304;  %fraction
res1 = vpa(expr);    %it'll evaluate expr to at least 32 significant digits
res2 = vpa(expr,5);  %it'll evaluate expr to at least 5 significant digits
res3 = vpa(expr,9);  %it'll evaluate expr to at least 9 significant digits

输出:

res1 =
1333333333.3333332538604736328125*u11

res2 =
1.3333e9*u11

res3 = 
1333333333.0*u11

相关内容