在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),我是苏承栈,我们下期再见!
