用于迭代计算的公式替换

时间:2014-06-27 16:32:24

标签: loops math iteration formula taylor-series

我陷入了一个简单的计算,我曾经在for循环中迭代计算。但现在我不想用循环来计算它。

// What I know
double x0 =  p*J;
double x1 =  p*J -  p*J*J;
double x2 =  p*J -  p*J*J - p*J*J*J;
double x3 =  p*J -  p*J*J - p*J*J*J - p*J*J*J*J;

// What I want to know
double xi =  ?;

如何在不使用循环的情况下计算xi?

1 个答案:

答案 0 :(得分:2)

我们简化:

xi = pJ - pJ^2 - ... - pJ^(i+1)
   = pJ(1 - J - ... - J^i)
   = pJ(2 - 1 - J - ... - J^i)
   = pJ(2 - (1 + J + ... + J^i))

Wolfram Alpha为我们提供了1 + J + ... + J^i的部分总和;它是(J^(i + 1) - 1) / (J - 1)。我们将其替换为我们的公式:

xi = pJ(2 - (J^(i + 1) - 1) / (J - 1))

您可以尝试以代数方式简化,但是您已经为xi创建了一个封闭形式的表达式。