在 Base R 中实现代数方程

问题描述 投票:0回答:1

我对 R 中的代数方程不熟悉,正在尝试在 R 中实现以下方程(如下)。

然而,正如我试图做到的那样精确,我希望答案是

0.050865
,但我却得到了
11.43653

我想知道我错过了什么,因为我真的找不到任何错误?

delta_T=0.1522
n=18
NT=324
NC=162
p=0.264
N=NT+NC

V_T2 =  ((NT+NC)/(NT*NC))*(1 + ((n - 1)*p)) +
    ( delta_T^2 * ( 
      (((N - 2)*(1-p)^2 ) + (n*(N - 2*n)*p^2) +
         (2* (N - 2*n) * p * (1 - p)) ) /
         (2* (N-2)) * ( (N-2) - (2* (n-1)*p) ) 
    )  )

V_T2

# > [1] 11.43653 BUT I expect the answer to be 0.050865

r function math algebra
1个回答
0
投票

你得到错误答案的原因是,在第二学期,你认为你正在做

numerator 
/
denominator

但你实际上在做的是

numerator 
/
(2 * (N - 2)) 
* 
((N - 2) - (2 * (n - 1) * p) )

所以,换句话说,你在分母两边缺少括号。

但是,一般来说,在处理复杂的方程时,将代码分解为中间变量会很有帮助,这样更容易调试,并且可以对它们进行健全性检查:


© www.soinside.com 2019 - 2024. All rights reserved.