matlab对负数开立方根得到虚数的解决方案 |
您所在的位置:网站首页 › 虚数i的平方开根号 › matlab对负数开立方根得到虚数的解决方案 |
问题描述:在matlab中,对负数开立方根,不出意外你将得到虚数。 例如 − 27 3 \sqrt[3]{-27} 3−27 ,我们知道其实数解是-3,但在matlab中的计算结果如下: 问题原因:matlab中的立方根运算是在复数域进行的,有3个,而matlab取的是辐角最小的那个。 解决方案:最小辐角是 π 3 \frac{\pi}{3} 3π,相邻两立方根辐角之差为 2 π 3 \frac{2\pi}{3} 32π,因此这三个根中,有一个实数根、两个复数根。 所以在matlab中对负数进行立方根运算时,可以按如下方式处理: x = -27 root = solveCubr(x) function root = solveCubr(x) if x >= 0 root = x^(1/3) else root = cos(pi)*(abs(x)^(1/3)) end end参考链接: https://www.zhihu.com/question/23107259/answer/2132830703 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |