求解R中的复数方程

mah*_*thy 3 r

我正在用这种形式得到一个等式

exp(az) = 1 + cz
Run Code Online (Sandbox Code Playgroud)

我想解决z,

其中c是复数,所以预期z也很复杂.我无法弄清楚如何解决R中涉及复数的方程.

我希望有人可以帮助我

Ben*_*ker 5

Wolfram Alpha可以在Lambert W函数(它称之为ProductLog函数)方面获得解决方案:

在此输入图像描述

emdbook(其中包括)封装具有朗伯W函数的实现.(为了完成这项工作,我必须修复一个错误,所以你不能使用CRAN实现.而是从Github安装最新版本:library(devtools); install_github("bbolker/emdbook")...

library(emdbook)
sfun <- function(a,c) {
    w <- lambertW(-a/c*exp(-a/c))
    -(c*w+a)/(a*c)
}
Run Code Online (Sandbox Code Playgroud)

a <- 2+1i; c <- 1+1i
(z <- sfun(a,c))
## [1] -0.1686391-0.2337278i
Run Code Online (Sandbox Code Playgroud)

检查答案:

(exp(a*z)-(1+c*z))
## [1] 0+5.551115e-17i
Run Code Online (Sandbox Code Playgroud)

这是零到预期的数字容差...