1
我想交流的程序編寫,爲LN的泰勒級數的「N」次迭代迭代次數,從而獲得所需的精度在C(LN X,泰勒多項式)
- GET結果(X) 獲得與相對於來自
到目前爲止,我已經創建了兩個函數的泰勒級數,第一個爲0 < X < 1和第二對於x>日誌(x)的期望的精度的結果所需的迭代
double taylorTheSecond(double x, int n) // second formula for taylor x > 1
{
double sum = 0.0;
for (int i = 1; i <= n; i++)
{
sum += xTOn((x-1)/x, i)/i;
}
return sum;
}
我也算所需的迭代的數目的函數,但它的結果與函數的日誌進行比較()從math.h中,這是undiserable。它應該通過比較兩個連續迭代來完成,但我不知道該怎麼做,因爲我不明白當你比較兩個不準確的數字時有什麼意義。現在,「x」是ln函數的參數,「eps」是期望的精度(例如0.001或1e-3 ...)。
#include <math.h>
int iterations(double x, double eps)
{
int i = 1;
while(1)
{
if (fabs(taylorTheSecond(x, i) - log(x)) <= eps)
{
break;
}
i++;
}
return i;
}
這很簡單。但是爲了在不使用數學庫的情況下對迭代進行計數,對我來說看起來是不可能的。我將不勝感激任何建議如何完成這項工作:)。
我明白了你的觀點,起初這也是我的想法,但後來我沒有得到確切的迭代次數,因爲與精確結果相比,波動值可能遠低於準確度的實際值。儘管感謝你的反應。 –