Upload
igor-kleiner
View
187
Download
10
Embed Size (px)
Citation preview
מבוא לתכנות מדעי
6חלק 3שבוע
חישוב שורש
2016Igor Kleiner
חישוב שורש ממספר ממשי
לכתוב תוכנה שמחשבת שורש ממספר ממשי: מטרה•
חישוב שורש ממספר ממשי
לכתוב תוכנה שמחשבת שורש ממספר ממשי: מטרה•
כדי לחשב שורש אנו נעזר באחד מהאלגוריתמים הקיימים לחישוב שורש•
חישוב שורש ממספר ממשי
לכתוב תוכנה שמחשבת שורש ממספר ממשי: מטרה•
כדי לחשב שורש אנו נעזר באחד מהאלגוריתמים הקיימים לחישוב שורש•
• Babylonian Method
en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method
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
הדגמה לשימוש בשיטה• 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
תרגום אלגוריתם לתוכנה
• 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
תרגום אלגוריתם לתוכנה
• 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
תרגום אלגוריתם לתוכנה
• 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
תרגום אלגוריתם לתוכנה
• http://www.codeskulptor.org/#user42_8QlK9bVtEO_8.py
תרגום אלגוריתם לתוכנה
:שאלות חשובות•?האם האלגוריתם נכון•
?(מהיר)האם האלגוריתם יעיל •
?איך לבדוק נכונות של אלגוריתם•
?איך להשוות בין אלגוריתם אחר לחישוב שורש•
?באיזה אלגוריתם להשתמש•
?איך כותבים אלגוריתם•
•....
:תשובות•קורס אלגוריתמים•
• Igor Kleiner (Hebrew version adaptation 2016)