給定精度e求 1 x 的近似值和迭代次數

2021-08-20 23:43:24 字數 1421 閱讀 6118

給定精度e,求(1+x)^α,|x|<1的近似值和迭代次數

【問題描述】

給定乙個精度e,用下列taylor公式計算(1+x)a,|x|<1的近似值。

(1+x)a=1+ax+a(a-1)x2/2!+...+[a(a-1)...(a-n+1)]xn/n!+..., |x|<1

其中|x|<1,e為實數,a為實數。編寫程式根據使用者輸入的x(|x|<1)、a和e的值,利用上述taylor展開式計算(1+x)a的近似值,要求前後兩次迭代之差的絕對值小於e,給出相應的最小迭代次數n和最後一次計算的(1+x)a的值。

【輸入形式】

從控制台輸入小數x(|x|<1且x不等於0)、實數a和實數e(0),兩數中間用空格分隔。

【輸出形式】

控制台輸出公式結果:輸出迭代次數n和最後一次計算的(1+x)a的值(以乙個空格分隔,並且輸出(1+x)a時要求小數點後保留8位有效數字)。

【樣例輸入1】

0.63628 0.5 0.00000001

【樣例輸出1】

28 1.27917161

【樣例輸入2】

0.47683 -0.5 0.00000001

【樣例輸出2】

23 0.82287667

【樣例說明】

輸入x為0.63628,a為0.5,e為0.00000001(小數點後8位),當n為28時,根據taylor展開式求得(1+x)a近似值為1.279171611(小數點後9位),n為29時,根據taylor展開式求得(1+x)a近似值為1.279171605(小數點後9位),兩結果之差絕對值約為0.000000006(小數點後9位),小於要求的精度,所以最小迭代次數為28,最後一次計算的(1+x)a的值為1.27917161(小數點後保留8位有效數字);同樣,輸入x為0.47683,a為-0.5,e為0.00000001(小數點後8位),當n為23時,根據taylor展開式求得(1+x)a近似值為0.822876669(小數點後9位),n為24時,根據taylor展開式求得(1+x)a近似值為0.822876664(小數點後9位),兩結果之差絕對值約為0.000000005(小數點後9位),小於要求的精度,所以最小迭代次數為23,最後一次計算的(1+x)a的值為0.82287667(小數點後保留8位有效數字)

注意:為保證資料的準確性和一致性,請使用double資料型別儲存計算結果。

更詳細的說明請移步與 

下面附上我的**

#include

#include

#include

using namespace std;

int main()

total += nval;

oval = nval;

}cout << i-1 << " " << fixed << setprecision(8) << total;

return 0;

}

C語言 求e的近似值(用到高精度乘法)

自然常數 e 可以用級數 1 1 1 1 2 1 n 來近似計算。本題要求對給定的非負整數 n,求該級數的前 n 1 項和。輸入格式 輸入第一行中給出非負整數 n 1000 輸出格式 在一行中輸出部分和的值,保留小數點後八位。輸入樣例 10輸出樣例 2.71828180 這道題要求計算1000的fa...

練習4 7 求e的近似值 (15 分)

自然常數e可以用級數1 1 1 1 2 1 n 來近似計算。本題要求對給定的非負整數n,求該級數的前n項和。輸入格式 輸入第一行中給出非負整數n 1000 輸出格式 在一行中輸出部分和的值,保留小數點後八位。輸入樣例 輸出樣例 2.71828180 ps 一開始factorial函式用的返回型別是i...

第4章 5 求e的近似值 15分

自然常數 e 可以用級數 1 1 1 1 2 1 n 來近似計算。本題要求對給定的非負整數 n,求該級數的前 n 1 項和。輸入第一行中給出非負整數 n 1000 在一行中輸出部分和的值,保留小數點後八位。10 2.718281801 求e的近似值2 author cnrick3 time 2020...