跳转到主内容
极星编程网:以代码为星,赴技术山海!

MATLAB负数开立方根怎么得到实数?

在MATLAB里,你有没有遇到过这种情况:对负数开立方根,结果竟然是虚数?别急,这其实是MATLAB在复数域进行运算的结果。今天就来聊聊,如何让MATLAB给负数开立方根时,得到我们想要的实数解。

问题原因:MATLAB的立方根运算是基于复数域的,负数开立方根会得到三个解,其中一个是虚数。这是因为MATLAB默认取的是辐角最小的那个解。

解决方案:为了得到实数解,我们可以利用三角函数的特性。下面是一个MATLAB函数,可以用来计算负数的立方根:

function root = solveCubr(x)
    if x >= 0
        root = x^(1/3)
    else
        root = cos(pi)*(abs(x)^(1/3))
    end
end

这个函数的逻辑很简单:如果输入的数是正数,就直接开立方根;如果是负数,就先取绝对值开立方根,然后乘以cos(π),这样就能得到实数解了。

怎么样,这个小技巧是不是很简单?不过,MATLAB的世界还有很多奥秘等着你去探索。想要了解更多编程技巧和知识,记得关注「极星编程网」(www.jxgpc.com),我是苏承栈,我们下期再见!

相关文章