אנליזה נומרית/פתרון משוואות דיפרנציאליות: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Mintz l (שיחה | תרומות)
מ דף חדש: {{בעבודה}} {{אנליזה נומרית}} נעבוד עם המקטעים <math>\ x_n=x_0+nh \quad,\quad n\in \mathbb{N}</math>. נתרכז במציאת פתרון לבעיה <math...
 
Mintz l (שיחה | תרומות)
מאין תקציר עריכה
שורה 1:
{{בעבודה}}
{{אנליזה נומרית}}
 
נעבוד עם המקטעים <math>\ x_nx_i=x_0+nhih \quad ,\quad ni\in \mathbb{N}</math>. נתרכז במציאת פתרון לבעיה <math>\ y'(x)=f(x,y)</math>, עם תנאי ההתחלה <math>\ y(x_0)=y_0</math>.
 
מכאן והלאה, הסימול <math>\ y(x_i)</math> יציין הערך האנליטי המדוייק של הפונקציה בנקודה x<sub>i</sub>, ואילו <math>\ y_i</math> יציין את הערך המקורב שחושב באמצעות השיטה. שימו לב כי במקרים מיוחדים יתכן שהערכים זהים, כלומר: לפעמים <math>\ y(x_i)=y_i</math>.
 
==פתרון באמצעות טור טיילור==
השיטה מתבססת על פיתוח לטור טיילור של ערכי הפונקציה <math>\ y_1,y_2,...</math> סביב הנקודות <math>\ x_1,x_2,...</math>, נקודה אחר נקודה, כך שבכל צעד משתמשים בתוצאה הקודמת.
(להשלים)
 
לשם כך נפתח תחילה את הפונקציה לטור טיילור סביב x<sub>0</sub>:
:<math>\ y_1=y_0+hy_0'+ \tfrac{h^2}{2}y_0''+ ...</math>
השלב הבא הוא לחשב את y<sub>2</sub> באמצעות הערך שהתקבל עבור y<sub>1</sub>, ובאופן כללי:
:<math>\ y_{i+1}=y_i+hy_i'+ \tfrac{h^2}{2}y_i''+...</math>
שימו לב כי רק y<sub>0</sub> הוא ערך מדוייק, כי ערכי y<sub>i</sub> עבור i>0 התקבלו באמצעות חישוב מקורב. המטרה היא, אם כן, להקטין ככל הניתן את ההפרש <math>\ y(x_i)-y_i\ ,\ i\ge1</math>.
 
על מנת למצוא קירוב נומרי, נשתמש, לשם הדגמה, בשלושת האיברים הראשונים של הטור. נמצא את ערכי המקדמים עבור y<sub>1</sub>:
:<math>\ y_0=y(x_0)</math> (נתון)
:<math>\ y_0'=y'(x_0)=f(x_0,y_0)</math>
:<math>\ y_0''= \left.\left( \tfrac{d}{dx}y' \right)\right|_{x_0}= \left.\left[ \tfrac{d}{dx}f(x,y(x)) \right]\right|_{x_0}= \left.\left[ \tfrac{\partial f}{\partial x}+ \tfrac{\partial f}{\partial y}\tfrac{dy}{dx} \right]\right|_{x_0}</math> (כלל השרשרת)
שימו לב כי ערכו של הביטוי שהתקבל באמצעות כלל השרשרת הינו ידוע ב-x<sub>0</sub>. בדרך זו ממשיכים ומוצאים את ערכי y<sub>2</sub>, y<sub>3</sub>...
 
ככל שרוצים לקבל דיוק רב יותר, יש צורך לחשב נגזרות מסדר גבוה יותר, ולפעמים הדבר בלתי אפשרי.
 
==פתרון בשיטת אוילר==
{{גזור ושמור|פתרון מד"ר (אוילר):<br /><math>\ y_{i+1}= y_i+hf(x_i,y_i)</math>}}
(להשלים)
 
שיטת אוילר היא פתרון באמצעות טור טיילור, כאשר לוקחים שני איברים ראשונים בלבד, דבר אשר חוסך חישוב נגזרות על חשבון פגיעה בדיוק הפתרון:
:<math>\ y_{i+1}=y_i+hy_i'+ R_2= y_i+hf(x_i,y_i)+ R_2</math>
 
==פתרון בשיטות רונגה-קוטה==
כפי שראינו, לפי טור טיילור:
:<math>\ y_{i+1}= y_i+hf(x_i,y_i)+ \frac{h^2}{2}\left[ \frac{\partial f(x_i,y_i)}{\partial x}+ \frac{\partial f(x_i,y_i)}{\partial y}f(x_i,y_i) \right]+R_3</math>
נשתמש בשיטה הבאה, אשר מזכירה מעט את משפט לגראנז':
:<math>\ y_{i+1}= y_i+\lambda_1hf(x_i,y_i)+ \lambda_2hf\left[x_i+\mu_1h,y_i+\mu_2hf(x_i,y_i)\right]</math>
ואת הקבועים <math>\ \lambda_1,\lambda_2,\mu_1,\mu_2</math> נמצא על ידי השוואת מקדמים.
 
(להשלים)
 
==קישורים חיצוניים==
{{מיזמים|ויקיפדיה=en:Runge–Kutta methods|שם ויקיפדיה=שיטות רונגה-קוטה (אנגלית)}}
 
{{אנליזה נומרית|מוגבל=כן}}