R 给出答案时求函数的系数

R 给出答案时求函数的系数,r,R,我试图解决R中下列函数的反问题 x + 2 (C1 * y) + C1 * C1 * z = d2 我目前可以输入C1并获得d2,但需要输入d2并获得C1。变量x、y和z都是已知的,永远不会改变 我已经有一些已知的C1和d2值可供使用 C1 d2 5 0.000316 0 0.000193 -5 0.000123 是否有一个R函数允许我输入函数、以前的结果和d2值,并返回C1系数 你有 d2 = x + 2 C1 y + C1^2 z 你可以重新安排以获得 z

我试图解决R中下列函数的反问题

x + 2 (C1 * y) + C1 * C1 * z = d2
我目前可以输入C1并获得d2,但需要输入d2并获得C1。变量x、y和z都是已知的,永远不会改变

我已经有一些已知的C1和d2值可供使用

 C1     d2 
 5   0.000316
 0   0.000193
-5   0.000123
是否有一个R函数允许我输入函数、以前的结果和d2值,并返回C1系数

你有

d2 = x + 2 C1 y + C1^2 z
你可以重新安排以获得

z C1^2 + 2 y C1 + x - d2 = 0
这是C1中的一个,你可以用二次公式求解,也可以把它插入


你有一个二次方程的形式:

(x - d2)*C1^0 + (2*y)*C1^1 + (z)*C1^2 = 0
你可以用R中的函数polyroot来解二次方程,事实上也可以解任何多项式方程:


代数是1000多年前为了解决这类问题而发明的。@Andrie我相信它是的。我还认为有人会创建一个R包来帮助解决这样的问题。嗯,我想你可以尝试[聊天]来解决这类问题。谢谢。我想我需要复习一下我的代数。
(x - d2)*C1^0 + (2*y)*C1^1 + (z)*C1^2 = 0
x <- 1
y <- 2
z <- 3

d <- 0

polyroot(c(x-d, 2*y, z))
[1] -0.3333333+0i -1.0000000+0i
d <- seq(0, 1, 0.2)

sapply(d, function(dd)polyroot(c(x-dd, 2*y, z)))

              [,1]          [,2]          [,3]          [,4]           [,5]         [,6]
[1,] -0.3333333+0i -0.2450296+0i -0.1722534-0i -0.1088933-0i -0.05203037+0i  0.000000+0i
[2,] -1.0000000+0i -1.0883037+0i -1.1610799+0i -1.2244400+0i -1.28130296+0i -1.333333+0i