gpt4 book ai didi

julia 角度函数返回相同角度的不同值

转载 作者:行者123 更新时间:2023-12-01 09:48:49 24 4
gpt4 key购买 nike

在使用函数角度时,我遇到了这个结果:

julia> angle(-1+im*0.0)
3.141592653589793

julia> angle(-1-im*0.0)
-3.141592653589793

这并没有错,但可能会引起不适,因为通常角度的评估在区间 (-pi,pi].

最佳答案

这是正确和故意的。您遇到了所谓的 "branch cut" :多值函数必须在它可能返回的多个值之间进行选择。约翰 D. 库克有一个 short but good article介绍概念并概述 Common Lisp 如何解决为各种相关功能一致地定义各种分支切割的问题。

angle 的情况下函数应用于复平面中的点-1,理论上任何奇数倍的π都是正确答案。角度值被归一化为在 [-π, π] 范围内,然而,它只留下 π 的两个奇数倍数可供选择:±π。哪一个应该在复平面中返回-1?从某种意义上说,问题是“你是从哪个方向接近真正的线的?”如果您在复平面上从上方接近 -1,则 π 是尊重连续性的答案,因为略高于实线的值的角度接近 π。但是,如果您从下方接近 -1,则 -π 是连续答案,因为在实线下方的角度接近 -π。因此,当我们评估 angle在 -1 附近,虚部的符号很重要——即使它的值为零(±0.0)——所以我们对 -1 ± 0.0im 给出不同的答案:

  • angle(-1 + 0.0im) == +3.141592653589793
  • angle(-1 - 0.0im) == -3.141592653589793

这些答案尊重 angle 的连续性关于论证虚部的符号。许多复函数在实线上具有相似的分支切割,其结果取决于其参数的零值虚部的符号。

关于julia 角度函数返回相同角度的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42575552/

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