3、一個數的平方根可以使用下列公式,反覆計算近似得出
NG=0.5(LG+N/LG)
其中NG代表下一個猜測值,LG代表最後猜測值。寫一程式實做出過程的程
式。(容忍值設定為0.005)
提示:初次猜測值將是LG的開始值。程式將使用上述公式計算NG的值。若是
NG與LG的差值,小於可容忍值,則程式結束,NG即為平方根。否則,
NG將變成LG,並重複處理前述的計算。
3.
輸入範例一
|
4
|
輸出範例一
|
第 1 次逼近,lg=2.500000,ng=2.050000
第 2 次逼近,lg=2.050000,ng=2.000610
第 3 次逼近,lg=2.000610,ng=2.000000
4 的平方根為 2
|
輸入範例二
|
7
|
輸出範例二
|
第 1 次逼近,lg=4.000000,ng=2.875000
第 2 次逼近,lg=2.875000,ng=2.654891
第 3 次逼近,lg=2.654891,ng=2.645767
第 4 次逼近,lg=2.645767,ng=2.645751
7 的平方根為 2.64575
|
輸入範例三
|
99
|
輸出範例三
|
Enter n: 99
第 1 次逼近,lg=50.000000,ng=25.990000
第 2 次逼近,lg=25.990000,ng=14.899579
第 3 次逼近,lg=14.899579,ng=10.772031
第 4 次逼近,lg=10.772031,ng=9.981249
第 5 次逼近,lg=9.981249,ng=9.949924
第 6 次逼近,lg=9.949924,ng=9.949874
99 的平方根為 9.94987
|
輸入範例四
|
6553777
|
輸出範例四
|
第 1 次逼近,lg=3276889.000000,ng=1638445.500000
第 2 次逼近,lg=1638445.500000,ng=819224.749998
第 3 次逼近,lg=819224.749998,ng=409616.374986
第 4 次逼近,lg=409616.374986,ng=204816.187389
第 5 次逼近,lg=204816.187389,ng=102424.092862
第 6 次逼近,lg=102424.092862,ng=51244.039768
第 7 次逼近,lg=51244.039768,ng=25685.966609
第 8 次逼近,lg=25685.966609,ng=12970.558355
第 9 次逼近,lg=12970.558355,ng=6737.919689
第 10 次逼近,lg=6737.919689,ng=3855.295190
第 11 次逼近,lg=3855.295190,ng=2777.618437
第 12 次逼近,lg=2777.618437,ng=2568.556752
第 13 次逼近,lg=2568.556752,ng=2560.048708
第 14 次逼近,lg=2560.048708,ng=2560.034570
第 15 次逼近,lg=2560.034570,ng=2560.034570
6.55378e+006 的平方根為
2560.03
請按任意鍵繼續 . . .
|
NG=0.5(LG+N/LG)
|
||||||
次數
|
N
|
LG
|
N/LG
|
NG
|
abs(LG-NG)
|
0.05
|
1
|
4
|
1
|
4
|
2.5
|
1.5
|
|
2
|
4
|
2.5
|
1.6
|
2.05
|
0.45
|
|
3
|
4
|
2.05
|
1.95122
|
2.0006098
|
0.049390244
|
|
4
|
2.00061
|
1.99939
|
2.0000001
|
0.000609707
|
||
NG=0.5(LG+N/LG)
|
||||||
次數
|
N
|
LG
|
N/LG
|
NG
|
abs(LG-NG)
|
0.05
|
1
|
7
|
1
|
7
|
4
|
3
|
|
2
|
7
|
4
|
1.75
|
2.875
|
1.125
|
|
3
|
7
|
2.875
|
2.434783
|
2.6548913
|
0.220108696
|
|
4
|
7
|
2.654891
|
2.636643
|
2.645767
|
0.009124256
|
|
NG=0.5(LG+N/LG)
|
||||||
次數
|
N
|
LG
|
N/LG
|
NG
|
abs(LG-NG)
|
0.05
|
1
|
99
|
1
|
99
|
50
|
49
|
|
2
|
99
|
50
|
1.98
|
25.99
|
24.01
|
|
3
|
99
|
25.99
|
3.809157
|
14.899579
|
11.09042132
|
|
4
|
99
|
14.89958
|
6.644483
|
10.772031
|
4.127547979
|
|
5
|
99
|
10.77203
|
9.190467
|
9.9812492
|
0.790781788
|
|
6
|
99
|
9.981249
|
9.918598
|
9.9499237
|
0.031325517
|
|
7
|
99
|
9.949924
|
9.949825
|
9.9498744
|
4.93288E-05
|
程式
#coding:Big5
print (' python 程式設計50題測試範例-3 ')
print (' ')
print (' 一個數的平方根可以使用下列公式,反覆計算近似得出')
print (' NG=0.5(LG+N/LG) ')
print ('其中NG代表下一個猜測值,LG代表最後猜測值。')
print ('寫一程式實做出過程的程式。(容忍值設定為0.005)')
print ('提示:初次猜測值將是LG的開始值。程式將使用上述公式計算NG的值。')
print (' 若是NG與LG的差值,小於可容忍值,則程式結束,NG即為平方根。')
print (' 否則,NG將變成LG,並重複處理前述的計算。')
LG =1
while True:
N = input('請輸入 數字:')
try:
N = int(N)
except ValueError:
print ('這是不合法的輸入. 請再輸入一次...')
continue
if N > 0:
break
NG=0.5*(LG+(N/LG))
T=abs(LG-NG)
i=1
while T>=0.05 :
LG=NG
NG=0.5*(LG+(N/LG))
T=abs(LG-NG)
i=i+1
print ('反覆計算次數 : %d' % i )
print ('此數的平方根 : %8.5f' % NG )
結果
================== RESTART: D:/程式語言 Python 入門/50題/ex50-3.py ==================
python 程式設計50題測試範例-3
一個數的平方根可以使用下列公式,反覆計算近似得出
NG=0.5(LG+N/LG)
其中NG代表下一個猜測值,LG代表最後猜測值。
寫一程式實做出過程的程式。(容忍值設定為0.005)
提示:初次猜測值將是LG的開始值。程式將使用上述公式計算NG的值。
若是NG與LG的差值,小於可容忍值,則程式結束,NG即為平方根。
否則,NG將變成LG,並重複處理前述的計算。
請輸入 正負數字:7
反覆計算次數 : 4
此數的平方根 : 2.64577
>>>
================== RESTART: D:/程式語言 Python 入門/50題/ex50-3.py ==================
python 程式設計50題測試範例-3
一個數的平方根可以使用下列公式,反覆計算近似得出
NG=0.5(LG+N/LG)
其中NG代表下一個猜測值,LG代表最後猜測值。
寫一程式實做出過程的程式。(容忍值設定為0.005)
提示:初次猜測值將是LG的開始值。程式將使用上述公式計算NG的值。
若是NG與LG的差值,小於可容忍值,則程式結束,NG即為平方根。
否則,NG將變成LG,並重複處理前述的計算。
請輸入 正負數字:99
反覆計算次數 : 6
此數的平方根 : 9.94992
>>>
沒有留言:
張貼留言