給定精度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...