gpt4 book ai didi

matlab - 禁用 Matlab 符号有理逼近

转载 作者:行者123 更新时间:2023-12-04 01:33:25 25 4
gpt4 key购买 nike

Matlab Symbolic 工具有一个让我非常恼火的功能。它会自动转换为有理数/十进制值。

示例 1

z = sym('z', 'real');
f = 3^(1/2)*z;

我们得到预期的 Matlab 返回 f = 3^(1/2)*z

示例 2

z = sym('z', 'real');
f = 3^(1/3)*z;

然后我得到了糟糕的结果 f = (3247657313705851*z)/2251799813685248,不需要 f=3^(1/3)*z

可以找到原因here .默认情况下,sym() 使用有理数近似值。

我的问题是,如何禁用此功能?例如,如何从示例 2 中获取 return f=3^(1/3)*z

最佳答案

您链接到的文档告诉您如何通过强制以符号方式计算数值来解决此问题。在这种情况下,1/3 部分无法在 double 中以足够的精度表示,因此您可以:

f = 3 ^ (sym(1)/sym(3)) * z;

关于matlab - 禁用 Matlab 符号有理逼近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60378167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com