האם ניתן לבנות תוכנה שהמשתמש מכניס

דונטאלו

New member
האם ניתן לבנות תוכנה שהמשתמש מכניס

משוואה עם נעלם אחד והתוכנה מוצאת את הפתרון?
 

the man is back

New member
אפשר וגם אפשר ../images/Emo13.gif

הצעה לפיתרון די מייגע: 1. תכין ספריית פונקציות שמבצעות את כל הפעולות האריתמטיות הפשוטות עם סוגריים. 2. תריץ לולאה שעוברת על המחרוזת של המשוואה ותשתמש בפונקציות האלה כדי לפשט אותה. 3. אתה עושה זאת עד שאתה מגיע לצורה הפשוטה ביותר.
 
במקרה הכללי זה לא כל כך פשוט

הרי המשוואה יכולה להיות טרנסצנדנטית, כלומר ללא פתרון אנליטי. למשל: x + sin(x) = 8 וברור שהכוונה למצוא פתרון מקורב. איך התוכנית תדע, למשל במקרה הזה, לחשב פתרון מקורב? איך היא תדע במקרה הכללי למצוא תחום התכנסות?
 
../images/Emo13.gif המממ...

השיטה כמובן מצויינת, אבל, כפי שציינתי, התכנית חייבת למצוא, קודם כל, x0 שיבטיח התכנסות! אתה מוזמן לפתור את בשיטת המשיקים את הדוגמה שהיצעתי - מבלי להשקיע בחיפוש ה-x0
 
היא נקראת גם 'שיטת המשיקים',

ומספקת התכנסות "מהירה מאוד", אם... נבחר ערך התחלתי שהוא כבר נמצא בתחום ההתכנסות. צריך לפתור משוואה:
f(x) = 0​
נניח שבסביבת השורש ("הפתרון") הפונקציה גזירה והנגזרת אינה מתאפסת, וכן מתקיימים תנאים נוספים שלא נפרט, ושנבחר ערך (x(0 "די קרוב" לפתרון המשוואה, אז השיטה היא לרוץ על הסדרה הבאה:
x(n+1) = x(n) - f(x(n))/f '(x(n))​
וכאמור, אם "הכל בסדר", אז הסדרה הזאת תתכנס לשורש "מהר מאוד". נסה למשל לפתור בדרך זו את המשוואה:
x² - a = 0 (a > 0)​
שזו אכן שיטה מהירה מאוד לחישוב מקורב של שורש ריבועי.
 
למעלה