我收到以下警告:
warning: Using rat() heuristics for double-precision input (is this what you wanted?)
当我想要小数形式时,我的计算结果是使用理性方法。如何强制计算将有理数转换为十进制表示?
以下是代码:
pkg load symbolic
syms a b c d real
C = [1, 0, 0, 0; 0, 1, 0, 0; 0, 0, 0, 1; 0, 0, 1, 0]
H = (1/sqrt(2))*[1, 1; 1, -1]
I = [1, 0; 0, 1]
X = [a, b, c, d]
s = kron(H, I)
s*C*X'
答案 0 :(得分:1)
可以使用vpa
将有理表示转换为浮点表示。 vpa(x,n)
评估x
至少n
个有效数字。如果您想使用digits
的当前值,则可以省略n
。
vpa(s*C*X.',4)
% Above line evaluates the result to at least 4 significant digits
另请注意,'
不是转置。它是复共轭转置。如果要进行转置,请使用转置(即.'
)。这就是我在上面的代码中进行替换的原因。
关于警告消息,它可以是turned off:
warning ('off', 'OctSymPy:sym:rationalapprox');
您可以在上面的代码中将off
替换为on
,再次打开它。