当使用简化的乘法真的重要吗?

5视图(30天)
我注意到,当我输入以下命令:
信谊x;
信谊n个整数;
cn = int (abs (x) * exp(我* n * x), x -π,π);
cnp = 1 /(2 *π)* cn;%的顺序相乘。
显示器(简化(cnp))
ans =
cnp的价值被广泛扩展(即使使用格式)
然而,从小型的改变:
cnp = cn * 1 /(2 *π);%的顺序相乘。
扩张是根除,正如一位可以观察到:
显示器(简化(cnp))
ans =
这是为什么呢?

接受的答案

保罗
保罗 2021年7月13日
我怀疑在第一个实例1 /(2 *π)这个词第一次评估数值,然后导致耗损与cn为乘法符号,这是一个对称的对象。在第二种情况下,优先级的规则将会说2 *π评估首先,当转换成的sym公认为2π。在任何情况下,最好总是使用符号(π)
信谊x
信谊n个整数
cn = int (abs (x) * exp (1 * n * x), x -π,π);
cnp = 1 /(2 *信谊(π))* cn
cnp =
cnp = cn * 1 /(2 *符号(π))
cnp =

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2021年7月13日
符号工具箱有算法试图得到一个“好”表示对于任何给定的浮点数。这些算法通常可以注意理性与分母9999π的倍数。然而,该算法不能够检测部门设计π。
1 / (2 * pi)情况下,浮点数的计算已经完成,和象征性的引擎不碰巧注意到结果可以表示“很好”
在符号表达式的第一,乘以1 /(2 *π),首先乘符号表达式1,使符号表达式。然后将(2 *π)在浮点计算。然后转换,浮点数象征性的,这次是一个简单的理性的倍数π所以它能够检测到和替代2 *(符号π)。然后分工的象征性的符号表达式2 *符号π显示得很好。
当你把浮点和象征性的,最好是显式地将浮点数转换为符号,以防止这样的可能性。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!