gpt4 book ai didi

r - 具有 R 的复平面中的多个根

转载 作者:行者123 更新时间:2023-12-04 13:51:57 25 4
gpt4 key购买 nike

我一直在试图找到一个函数来返回方程的所有复杂解,例如:

16^(1/4) = 2+i0,  -2+i0,  0+i2,  0-i2

按照目前的情况,如果我输入 16^(1/4)进入控制台,它只返回 2。我可以为此编写一个函数,但我想知道在 R 中是否有一种简单的方法可以做到这一点。

最佳答案

您需要 polyroot() :

polyroot(z = c(-16,0,0,0,1))
# [1] 0+2i -2-0i 0-2i 2+0i

哪里 z是“递增顺序的多项式系数向量”。

我传递给 z 的向量在上面的例子中是这个方程的紧凑表示:
-16x^0 + 0x^1 + 0x^2 + 0x^3 + 1x^4 = 0

x^4 - 16 = 0

x^4 = 16

x = 16^(1/4)

编辑:

polyroot的语法让您感到困扰,您只需编写一个包装函数,为您提供更好的(如果不那么通用)界面:
nRoot <- function(x, root) {
polyroot(c(-x, rep(0, root-1), 1))
}
nRoot(16, 4)
# [1] 0+2i -2-0i 0-2i 2+0i
nRoot(16, 8)
# [1] 1.000000+1.000000i -1.000000+1.000000i -1.000000-1.000000i
# [4] 1.000000-1.000000i 0.000000+1.414214i -1.414214-0.000000i
# [7] 0.000000-1.414214i 1.414214+0.000000i

关于r - 具有 R 的复平面中的多个根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14966814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com