Sample Answer for Programming Assignment
Unit 5
Python Program
import math def mysqrt(a):
x = a
while True:
y = (x + a/x) / 2.0 if y == x:
break x = y
return x
def test_square_root(): a = 1
while a < 26:
mine = mysqrt(a) maths = math.sqrt(a)
print("a =", a, "| mysqrt(a) =",
mine, "| math.sqrt(a) =", maths, "| diff =",
abs(mine-maths))
a = a + 1 test_square_root()
Output
for Python 3
a = 1 |
mysqrt(a) = 1 | math.sqrt(a) = 1.0 | diff = 0.0 a = 2 | mysqrt(a) =
1.414213562373095 | math.sqrt(a) = 1.4142135623730951 | diff =
2.220446049250313e-16
a
= 3 | mysqrt(a) = 1.7320508075688772 | math.sqrt(a) = 1.7320508075688772 | diff
= 0.0
a = 4 | mysqrt(a)
= 2.0 | math.sqrt(a) = 2.0 | diff = 0.0 a = 5 | mysqrt(a) = 2.23606797749979 |
math.sqrt(a) = 2.23606797749979 | diff = 0.0
a
= 6 | mysqrt(a) = 2.449489742783178 | math.sqrt(a) = 2.449489742783178 | diff =
0.0
a = 7 | mysqrt(a)
= 2.6457513110645907 | math.sqrt(a) = 2.6457513110645907 | diff = 0.0
a = 8 |
mysqrt(a) = 2.82842712474619 | math.sqrt(a) = 2.8284271247461903 | diff =
4.440892098500626e-16
a = 9 | mysqrt(a)
= 3.0 | math.sqrt(a) = 3.0 | diff = 0.0
a = 10 |
mysqrt(a) = 3.162277660168379 | math.sqrt(a) = 3.1622776601683795 | diff =
4.440892098500626e-16
a = 11 |
mysqrt(a) = 3.3166247903554 | math.sqrt(a) = 3.3166247903554 | diff = 0.0
a
= 12 | mysqrt(a) = 3.4641016151377544 | math.sqrt(a) = 3.4641016151377544 |
diff = 0.0
a
= 13 | mysqrt(a) = 3.6055512754639896 | math.sqrt(a) = 3.605551275463989 | diff
= 4.440892098500626e-16
a = 14 |
mysqrt(a) = 3.7416573867739413 | math.sqrt(a) = 3.7416573867739413 | diff = 0.0
a = 15 | mysqrt(a) = 3.872983346207417 |
math.sqrt(a) = 3.872983346207417 |
diff = 0.0
a = 16 |
mysqrt(a) = 4.0 | math.sqrt(a) = 4.0 | diff =
0.0 a = 17 | mysqrt(a) = 4.123105625617661 | math.sqrt(a) =
4.123105625617661 | diff = 0.0
a
= 18 | mysqrt(a) = 4.242640687119286 | math.sqrt(a) = 4.242640687119285 | diff =
8.881784197001252e-16
a = 19 |
mysqrt(a) = 4.358898943540673 | math.sqrt(a)
= 4.358898943540674 | diff = 8.881784197001252e-16
a = 20 | mysqrt(a) = 4.47213595499958 |
math.sqrt(a) = 4.47213595499958 |
diff = 0.0
a = 21 | mysqrt(a) = 4.58257569495584 |
math.sqrt(a) = 4.58257569495584 |
diff = 0.0
a
= 22 | mysqrt(a) = 4.69041575982343 | math.sqrt(a) = 4.69041575982343 | diff =
0.0
a = 23 |
mysqrt(a) = 4.795831523312719 | math.sqrt(a)
= 4.795831523312719 | diff = 0.0
a = 24 | mysqrt(a) = 4.898979485566356 |
math.sqrt(a) = 4.898979485566356 |
diff = 0.0
a = 25 |
mysqrt(a) = 5.0 | math.sqrt(a) = 5.0 | diff = 0.0
Output for Python 2
('a =', 1, '| mysqrt(a) =', 1, '| math.sqrt(a) =', 1.0, '| diff =',
0.0)
('a =', 2, '|
mysqrt(a) =', 1.414213562373095, '|
math.sqrt(a)
=', 1.4142135623730951, '| diff =', 2.220446049250313e-16)
('a =', 3, '|
mysqrt(a) =', 1.7320508075688772, '| math.sqrt(a) =', 1.7320508075688772, '|
diff =', 0.0)
('a =', 4, '|
mysqrt(a) =', 2.0, '| math.sqrt(a) =', 2.0, '| diff =', 0.0)
('a =', 5, '| mysqrt(a) =', 2.23606797749979, '|
math.sqrt(a) =',
2.23606797749979, '| diff =', 0.0) ('a =', 6, '| mysqrt(a) =',
2.449489742783178, '|
math.sqrt(a) =', 2.449489742783178, '| diff =', 0.0)
('a =', 7, '|
mysqrt(a) =', 2.6457513110645907, '| math.sqrt(a) =', 2.6457513110645907, '|
diff =', 0.0) ('a =', 8, '| mysqrt(a) =', 2.82842712474619, '|
math.sqrt(a)
=', 2.8284271247461903, '| diff =', 4.440892098500626e-16)
('a =', 9, '|
mysqrt(a) =', 3.0, '| math.sqrt(a) =', 3.0, '| diff =', 0.0)
('a =', 10, '| mysqrt(a) =', 3.162277660168379, '|
math.sqrt(a)
=', 3.1622776601683795, '| diff =', 4.440892098500626e-16)
('a =', 11, '| mysqrt(a) =', 3.3166247903554, '|
math.sqrt(a) =',
3.3166247903554, '| diff =', 0.0) ('a =', 12, '| mysqrt(a) =',
3.4641016151377544, '| math.sqrt(a) =', 3.4641016151377544, '| diff =', 0.0) ('a =', 13, '| mysqrt(a) =',
3.6055512754639896, '|
math.sqrt(a)
=', 3.605551275463989, '| diff =', 4.440892098500626e-16)
('a =', 14, '|
mysqrt(a) =', 3.7416573867739413, '| math.sqrt(a) =', 3.7416573867739413, '|
diff =', 0.0) ('a =', 15, '| mysqrt(a) =', 3.872983346207417, '|
math.sqrt(a) =', 3.872983346207417, '| diff =', 0.0)
('a =', 16,
'| mysqrt(a) =', 4.0, '| math.sqrt(a) =', 4.0, '| diff =', 0.0)
('a =', 17, '| mysqrt(a) =', 4.123105625617661, '|
math.sqrt(a)
=', 4.123105625617661, '| diff =', 0.0)
('a =', 18, '| mysqrt(a) =', 4.242640687119286, '|
math.sqrt(a)
=', 4.242640687119285, '| diff =', 8.881784197001252e-16)
('a =', 19, '|
mysqrt(a) =', 4.358898943540673, '|
math.sqrt(a)
=', 4.358898943540674, '| diff =', 8.881784197001252e-16)
('a =', 20, '|
mysqrt(a) =', 4.47213595499958, '|
math.sqrt(a)
=', 4.47213595499958, '| diff =', 0.0)
('a =', 21, '| mysqrt(a) =', 4.58257569495584,
'|
math.sqrt(a)
=', 4.58257569495584, '| diff =', 0.0)
('a =', 22, '| mysqrt(a) =', 4.69041575982343,
'|
math.sqrt(a) =',
4.69041575982343, '| diff =', 0.0)
('a =', 23, '| mysqrt(a) =', 4.795831523312719, '|
math.sqrt(a)
=', 4.795831523312719, '| diff =', 0.0)
('a =', 24, '| mysqrt(a) =', 4.898979485566356, '|
math.sqrt(a) =', 4.898979485566356, '| diff =', 0.0)
('a =', 25,
'| mysqrt(a) =', 5.0, '| math.sqrt(a) =', 5.0, '| diff =', 0.0)