python迭代法求平方根_1021: 迭代法求平方根
題目描述
用迭代法求 平方根
公式:求a的平方根的迭代公式為: X[n+1]=(X[n]+a/X[n])/2 要求前后兩次求出的差的絕對值少于0.00001。 輸出保留3位小數
輸入
X
輸出
X的平方根
樣例輸入
4
樣例輸出
2.000
一、解題代碼
代碼如下(示例):
x=int(input())
x1=x/2
x2=(x1+x/x1)/2
while abs(x1-x2)>0.00001:
x1=x2
x2=(x1+x/x1)/2
print('{:.3f}'.format(x2))
二、解題思路
1、假設要求6的平方根,當Xn和X(n+1)的差值小于0.001時,可以認為已經找到了精確值。
2、根據牛頓迭代法的步驟,首先猜測一個值X1,猜測X1=6/2=3。
3、將X1=3代入公式X(n+1)=(Xn+a/Xn)/2,則X2=(X1+6/X1)/2=(3+6/3)/2=2.5,由于3和2.5的差大于0.001,需要繼續計算。
4、將X2=2.5代入公式X(n+1)=(Xn+a/Xn)/2,則X3=(X2+6/X2)/2=(2.5+6/2.5)/2=2.45,由于2.5-2.45=0.5>0.001,故需要繼續計算。
5、將X3=2.45代入公式X(n+1)=(Xn+a/Xn)/2,則X4=(X3+6/X3)/2=(2.45+6/2.45)/2=2.4495,由于2.5-2.4495=0.0005<0.001,故不需要繼續計算。
6、則可以確定6的平方根,在自己認為的精確的范圍內,即誤差小于0.001的范圍內,值為2.4495,即 √(6)=2.4495。
圖文轉自https://jingyan.baidu.com/article/f79b7cb31082079144023ebb.html
總結
鍵盤輸入數字后,首先根據題目所給的公式算出X1和X2的值
使用while循環來執行程序,用X1和X2的差的絕對值來和0.00001作對比
若差大于0.00001,則需要繼續計算
print('{:.3f}'.format(x2)) 輸出保留三位小數
浮點數輸出:格式化輸出
%f ——保留小數點后面六位有效數字
%.3f,保留3位小數位
%e ——保留小數點后面六位有效數字,指數形式輸出
%.3e,保留3位小數位,使用科學計數法
%g ——在保證六位有效數字的前提下,使用小數方式,否則使用科學計數法
%.3g,保留3位有效數字,使用小數或科學計數法
以下是if和for和while的區別
if:
語句的判斷條件可以用>(大于)、=(大于等于)、<=(小于等于)來表示其關系。
如果條件成立,執行條件后的代碼塊內容,不成立,直接跳過代碼塊(代碼只執行一次)。
for:
for循環可以遍歷任何序列的項目,如一個列表或者一個字符串;
while:
用于循環執行程序,即在某條件下,循環執行某段程序,以處理需要重復處理的相同任務。判斷條件可以是任何表達式,任何非零、或非空(null)的值均為true。
在給定的判斷條件為 true 時執行循環體,否則退出循環體。
總結
以上是生活随笔為你收集整理的python迭代法求平方根_1021: 迭代法求平方根的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python画桃花_python 画图
- 下一篇: 谁还没经历过死锁呢