MATLAB vpa() 不计算指数表达式的变量点数?

标签 matlab symbolic-math double-precision rational-numbers

尝试使用 vpa() 计算指数中有理表达式的变量点数:

syms x;
ans1 = x^(12345/67890)
ans2 = vpa(x^(12345/67890),3)
ans2_5 = vpa((12345/67890),3)
ans3 = vpa(x*(12345/67890),3)

上面显示了这个问题。 ans1 显示表达式的默认输出。 ans2 显示 vpa() 没有计算表达式的变量点数。 ans 2_5 显示了它应该计算什么。我正在寻找的结果是x^0.182

ans3 只是表明,当函数进行乘法运算时,vpa() 会产生预期的结果——这是指数中的某些东西导致了它的错误。

如何请求 vpa 计算指数?

[编辑]

也许我可以说得更清楚。我真正需要的是指数表达式的指数的访问器或索引。所以如果我的表达是 y = x^a 我需要能够在 x 上有一些返回 a 的访问器。

这可能吗?

最佳答案

+1 发现这个有趣的错误。 这为我解决了您的问题:

digits(3)
p=vpa(12345/67890,3)
ans1 = x^p

ans1 =
       x^0.182

关于MATLAB vpa() 不计算指数表达式的变量点数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14347457/

相关文章:

opengl - GLSL double 角、三角函数和指数函数解决方法

java - 如何判断一个double变量是否有整型值?

matlab - 如何更改条形图中条形的颜色?

Matlab:对有限制的列元素求和

matlab - 如何避免Matlab中的大矩阵乘法

matlab - Matlab 中集合的所有可能组合

python - 同情 : creating a numpy function from diagonal matrix that takes a numpy array

python - 在 Python 中解决符号 boolean 变量

python - Sympy:使用 Wild 符号替换

c++ - 如何在 MacOS 上的 C++ 中设置 double ?