Loops 迭代计算的公式替换
我陷入了一个简单的计算中,我过去常常在for循环中迭代计算。但现在我不想再用循环计算了Loops 迭代计算的公式替换,loops,math,iteration,formula,taylor-series,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 = ?; 强>不使用循环时如何计算席?< >
// 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 = ?;
<>强>不使用循环时如何计算席?< <强> > /p> < p>简化:< /P>
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))
你可以尝试简化代数,但是你已经有了席的表达式。< / P >你到底想做什么?code>xi将收敛到
p*J-p*J*J/(1-J)
如果|J<1
则发散,但是你所说的问题没有什么意义。@tmyklebu为什么计算序列的部分和没有意义呢?顺便说一句,即使已经回答了,这个问题也离主题太远了。下次用。@Ordous:这就是他想要的吗?我说不出来。@tmyklebu很明显,他拥有的是一个系列(这是一个简单的几何系列)。他在问如何计算没有循环的序列的一个成员(即闭式表达式)。不是很重要,但对于一个简单的数学程序来说是有意义的。这只适用于i=0..1。对于值i>=2,它返回的负值永远不正确。例如,如果p=1000,J=0.8,它应该返回[800,160,32,4.8],但它确实返回[800,160,-352,-761,6]。你能确认这一点吗?@ LuftgWeeRidiaNER在你的例子中,考虑<代码> i=3 < /代码>。你给出的表达式是p*J-p*J*J-p*J*J*J*J-p*J*J*J*J
。当我在计算器中这样做时,我得到:1000*0.8-1000*0.8*0.8-1000*0.8*0.8*0.8-1000*0.8*0.8*0.8=800-640-512-409.6=-761.6
。对于i=2
,它将给出-352
。所以,我要说的是:你们提供的公式给出的值和我的表达式相同。不管你的公式是否正确,我不能说。@luftgewehrindianer(正如tmyklebu在对你的问题的评论中正确指出的,你的表达式收敛到p*J-p*J*J/(1-J)
对于J<1
,或者在您的示例中关于-2400
,所以很可能会出现负值。您当然是对的。我在问题中的公式上犯了错误,没有注意到。我的错。这一点属于您!