例如,用Excel解一元四次方程需要用到算术立方根。
Excel里面没有自带求算术立方根的函数,但是可以自己用VB写出来。
 
Function IMCBRT(x, Optional w As Integer = 0)
    If WorksheetFunction.Imaginary(x) = 0 Then
        IMCBRT = WorksheetFunction.Power(x, 1 / 3)
    Else
        IMCBRT = WorksheetFunction.ImPower(x, 1 / 3)
    End If
    
    If w Mod 3 = 1 Then
        w1 = WorksheetFunction.Complex(-1 / 2, VBA.Sqr(3) / 2)
        IMCBRT = WorksheetFunction.ImProduct(w1, IMCBRT)
    ElseIf w Mod 3 = 2 Then
        w2 = WorksheetFunction.Complex(-1 / 2, -VBA.Sqr(3) / 2)
        IMCBRT = WorksheetFunction.ImProduct(w2, IMCBRT)
    End If
End Function
Function IMROUND(x, Optional n As Integer = 0)
    real = WorksheetFunction.Round(WorksheetFunction.ImReal(x), n)
    imag = WorksheetFunction.Round(WorksheetFunction.Imaginary(x), n)
    IMROUND = WorksheetFunction.Complex(real, imag)
End Function
Function IMOPPSITE(x)
    If x = 0 Then
        IMOPPSITE = 0
    Else
        real = -WorksheetFunction.ImReal(x)
        imag = -WorksheetFunction.Imaginary(x)
        IMOPPSITE = WorksheetFunction.Complex(real, imag)
    End If
End Function
函数的用法:
IMCBRT(x)求x的算术立方根,IMCBRT(x,1)和IMCBRT(x,2)求x的其他两个立方根
IMROUND(x,n)让复数x四舍五入保留n位小数
IMOPPSITE(x)求复数x的相反数-x 
 
