12
מבוא לתכנות מדעי שבוע3 חלק6 חישוב שורש2016 Igor Kleiner

מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

Embed Size (px)

Citation preview

Page 1: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

מבוא לתכנות מדעי

6חלק 3שבוע

חישוב שורש

2016Igor Kleiner

Page 2: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

חישוב שורש ממספר ממשי

לכתוב תוכנה שמחשבת שורש ממספר ממשי: מטרה•

Page 3: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

חישוב שורש ממספר ממשי

לכתוב תוכנה שמחשבת שורש ממספר ממשי: מטרה•

כדי לחשב שורש אנו נעזר באחד מהאלגוריתמים הקיימים לחישוב שורש•

Page 4: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

חישוב שורש ממספר ממשי

לכתוב תוכנה שמחשבת שורש ממספר ממשי: מטרה•

כדי לחשב שורש אנו נעזר באחד מהאלגוריתמים הקיימים לחישוב שורש•

• Babylonian Method

en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method

Page 5: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

Algorithm of Babylonian Method

1. Given input X

2. Y = some initial guess for square root of X

3. Calculate Z=|Y^2-X|

4. while (Z is not small enough)

5. Y=(Y+X/Y)/2

6. Z=|Y^2-X|

7. print Y

Page 6: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

הדגמה לשימוש בשיטה• X=100, Y=1, eps=0.01

• Z=abs(Y^2-100)=99 > eps

• Y=(1+100/1)/2=50.5 Z=2450>eps

• Y=(50.5+100/50.5)/2=26.24 Z=588>eps

• Y=15.025 Z=125.76

• Y=10.84 Z=17.515

• Y=10.03 Z=0.65

• Y=10.00005 Z=0.001056<eps

Page 7: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

תרגום אלגוריתם לתוכנה

• http://www.codeskulptor.org/#user42_8QlK9bVtEO_0.py

1. Given input X

2. Y = some initial guess for square root of X

3. Calculate Z=|Y^2-X|

4. while (Z is not small enough)

5. Y=(Y+X/Y)/2

6. Z=|Y^2-X|

7. print Y

Page 8: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

תרגום אלגוריתם לתוכנה

• http://www.codeskulptor.org/#user42_8QlK9bVtEO_0.py

1. Given input X

2. Y = some initial guess for square root of X

3. Calculate Z=|Y^2-X|

4. while (Z is not small enough)

5. Y=(Y+X/Y)/2

6. Z=|Y^2-X|

7. print Y

Page 9: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

תרגום אלגוריתם לתוכנה

• http://www.codeskulptor.org/#user42_8QlK9bVtEO_8.py

1. Given input X

2. Y = some initial guess for square root of X

3. Calculate Z=|Y^2-X|

4. while (Z is not small enough)

5. Y=(Y+X/Y)/2

6. Z=|Y^2-X|

7. print Y

Page 10: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

תרגום אלגוריתם לתוכנה

• http://www.codeskulptor.org/#user42_8QlK9bVtEO_8.py

Page 11: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

תרגום אלגוריתם לתוכנה

:שאלות חשובות•?האם האלגוריתם נכון•

?(מהיר)האם האלגוריתם יעיל •

?איך לבדוק נכונות של אלגוריתם•

?איך להשוות בין אלגוריתם אחר לחישוב שורש•

?באיזה אלגוריתם להשתמש•

?איך כותבים אלגוריתם•

•....

:תשובות•קורס אלגוריתמים•

Page 12: מבוא לתכנות מדעי פייתון הרצאה 3 חלק 6 Python

• Igor Kleiner (Hebrew version adaptation 2016)