【发布时间】:2014-03-27 01:46:17
【问题描述】:
所以我需要使用泰勒级数的因式形式递归计算 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,并且在最后一次迭代中等于总迭代次数。
【问题讨论】:
-
这里的情况通常如此——请展示您尝试过的内容。
标签: java recursion taylor-series