因此,我需要使用泰勒级数的因式形式递归计算 e^x:
等式:e^x = 1 +x + (x^2)/2!+ ... + ((x^n)/n!))
分解形式:e^x = 1 + x (1+x/2*(1+x/3*(...(1+x/n))))
在下面的函数定义中,“x”是幂,“n”是估计 e^x 的项总数。如果有人能指出我正确的方向,我会更喜欢。我尝试了许多不同的方法,包括使用分解方程最内项的基本情况,但无济于事。
static double eThree(double x, long n) {
//this is what i tried
if(n==0){
return 1 +x/n;
}else{
double a= (1+(x/n)) * (eThree(x,n-1));
System.out.println(a);
return a;
}
}
我已经意识到 'n' 应该像我尝试的那样增加而不是减少,但是,对函数的原始调用在变量 'n' 中具有迭代总数,并且无法跟踪整个迭代的总数所有递归调用。
(1 +(x/n))中每一项的除数的值,其中n是除数,应该每次增加1,并且在最后一次迭代中等于迭代的总数。