我有一个简单的二次方程,但是我需要找到一种方法让R求解X或Y,具体取决于我输入的任意一个值。例如,我的方程是
y = 232352x^2+2468776x+381622
我需要找到一个在x = 8000时可求解y的代码,而在y = 4000时可求解x的代码。R中是否存在这样的代码/函数,还是我必须手动进行?
答案 0 :(得分:1)
第一部分(当x = 8000时求解y)非常简单。
您只需输入:
232352 * 8000^2 + 2468776 * 8000 + 381622
R给出:
[1] 1.489028e+13
第二个问题涉及根源。您需要的是polyroot()函数。它将等式的系数作为向量,然后返回根。因此,对于您的情况:
polyroot(c(381622-4000,2468776,232352))
给予:
[1] -0.155227+0i -10.469928-0i
然后由您决定要使用哪种解决方案。
通常请记住,如果要针对特定的y值求解y = Ax ^ 2 + Bx + C,则必须将方程重新排列为Ax ^ 2 + Bx +(C-y)= 0。 转换为R代码是:
coeff <- c(C-y,B,A)
polyroot(coeff)
用相关数字替换A,B,C,y的地方。