如何计算复数对除“e”以外的基数的对数?

Posted

技术标签:

【中文标题】如何计算复数对除“e”以外的基数的对数?【英文标题】:How to calculate log of a complex number to a base other than 'e'? 【发布时间】:2009-06-26 08:54:04 【问题描述】:

我从我正在处理的项目中截取了一些 VB6:

Public Function C_Ln(c As ComplexNumber) As ComplexNumber
    Set C_Ln = toComplex(Log(C_Abs(c)), Atan2(c.Imag, c.Real))
End Function

VB6 Log() 函数是 base-e。我想制作这个版本来做 base-2、base-10 和 base-n。我从哪里开始?

【问题讨论】:

【参考方案1】:

您可以使用以下数学公式identity:

在 VB 中是这样的:

Log10 = Log(X) / Log(10)
Log2 = Log(X) / Log(2)
' ... LogN = Log(X) / Log(N)

【讨论】:

这仍然适用于复数吗?抱歉,如果我显得幼稚,那是因为我是(w.r.t. 复数) 这适用于复数,但复杂的日志具有无限的价值。您的公式将仅计算主要分支,但这可能已经足够了。在实践中,没有人喜欢无限值函数。 @boost,是的,请参阅:en.wikipedia.org/wiki/…(但请注意,复数有多个对数)。【参考方案2】:

如果你将 x 的自然对数除以你想要达到的基数的对数,你会得到想要的结果,即 (ln x)/(ln n) = y

见here for an explanation

【讨论】:

以上是关于如何计算复数对除“e”以外的基数的对数?的主要内容,如果未能解决你的问题,请参考以下文章

复变函数里的主值到底啥意思

辐角主值和辐角有啥区别

用C++编写一个小型复数计算器

用 Numpy 计算复数的绝对值

如何利用matlab进行复数运算?

[Python] math库的使用