求解R中的复数方程

时间:2016-08-05 01:44:38

标签: r

我正在使用此表格获得等式

exp(az) = 1 + cz

我想为z解决,

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

我希望有人可以帮助我

2 个答案:

答案 0 :(得分:5)

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

enter image description here

emdbook包(以及其他包)具有Lambert 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)
}

实施例

a <- 2+1i; c <- 1+1i
(z <- sfun(a,c))
## [1] -0.1686391-0.2337278i

检查答案:

(exp(a*z)-(1+c*z))
## [1] 0+5.551115e-17i

在预期的数字容差范围内为零......

答案 1 :(得分:3)

Ben Bolker解决方案的中间步骤:

enter image description here