如何计算复数的对数到'e'以外的基数?

bug*_*net 1 vb6 math logarithm complex-numbers mixed-radix

我正在从我正在研究的项目中切掉一些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
Run Code Online (Sandbox Code Playgroud)

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

mol*_*olf 9

您可以使用以下数学标识:

替代文字

在VB中它将是这样的:

Log10 = Log(X) / Log(10)
Log2 = Log(X) / Log(2)
' ... LogN = Log(X) / Log(N)
Run Code Online (Sandbox Code Playgroud)

  • 这适用于复杂的数字,但复杂的日志是无限值的.你的公式只计算主分支,但这可能足够好了.在实践中,没有人喜欢无限值的功能. (2认同)
  • @boost,是的,请参阅:http://en.wikipedia.org/wiki/Complex_logarithm#Logarithms_to_other_bases(但请注意,复数具有多个对数). (2认同)