03

לחשב כשאין נוסחה

שיטות גרפיות ונומריות

Graphical and Numerical Methods

כשאין פתרון סגור, עדיין אפשר לראות את כיוון התנועה ולחשב מסלול. שדה שיפועים, יציבות, אוילר ו־Runge–Kutta הופכים משוואה לתמונה ולאלגוריתם.

מפת הפרק

5 תחנות בדרך

5 יחידות לימוד עצמאיות · כ־5 שעות ו־15 דקות לשיעורים ולתרגול

  1. 3.1
    יחידת לימוד50 דקות

    משוואות לא־לינאריות ושדות שיפועים

    שאלה 1: מה ננסה להבין?

    איזוקלינות, כיווני זרימה וקיום ויחידות של פתרון.

    לשיעור
  2. 3.2
    יחידת לימוד60 דקות

    מקורות, בורות, אוכפים וספירלות

    שאלה 2: מה ננסה להבין?

    מסווגים נקודות שיווי משקל לפי הכיוונים שאליהם המסלולים נכנסים ויוצאים.

    לשיעור
  3. 3.3
    יחידת לימוד65 דקות

    לינאריזציה ויציבות

    שאלה 3: מה ננסה להבין?

    מקרבים מערכת לא־לינארית ליד שיווי משקל בעזרת מטריצת יעקובי.

    לשיעור
  4. 3.4
    יחידת לימוד70 דקות

    שיטות אוילר

    שאלה 4: מה ננסה להבין?

    צעד קדימה, צעד אחורה ו־trapezoid — דיוק מול יציבות.

    לשיעור
  5. 3.5
    יחידת לימוד70 דקות

    דיוק גבוה עם Runge–Kutta

    שאלה 5: מה ננסה להבין?

    דוגמים כמה שיפועים בכל צעד כדי לקבל דיוק גבוה בלי נגזרות נוספות.

    לשיעור

ביד, שלב אחר שלב

משיפוע מקומי לקירוב מבוקר

קרבו את y(1) עבור y′=y,‏ y(0)=1, בצעד h=0.25, והשוו בין אוילר קדמי, RK4 והפתרון המדויק.

  1. 1

    שדה השיפועים נותן בכל נקודה את השיפוע f(t,y)=y; מן המצב ההתחלתי השיפוע הראשון הוא 1.

  2. 2

    אוילר קדמי משתמש רק בשיפוע שבתחילת כל צעד: yₙ₊₁=(1+0.25)yₙ. לאחר ארבעה צעדים מתקבל 1.25⁴=2.441406.

  3. 3

    RK4 דוגם ארבעה שיפועים בכל צעד. באותה רשת ארבעת הצעדים נותנים y₄≈2.718210.

  4. 4

    הפתרון המדויק הוא e≈2.718282. לכן שגיאת אוילר היא כ־0.276876, ואילו שגיאת RK4 היא כ־0.000072.

תוצאהב־h=0.25: אוילר 2.441406,‏ RK4 2.718210,‏ מדויק 2.718282. דגימת שיפועים טובה יותר מצמצמת מאוד את השגיאה, אך אינה מבטלת את הצורך לבדוק צעד ויציבות.

ניבוי, ניסוי והסבר

מעבדת חקר: משדות ויציבות לצעדים נומריים מדויקים

התחילו מתחנה אחת, נבאו את התוצאה ורק אז שנו פרמטר. בכל תחנה תקבלו משוב וקישור לשיעור שעליו היא בנויה.

פרק 3 · ארבע תחנות חקר

משדה שיפועים לאלגוריתם יציב ומדויק

נבאו, בדקו והסבירו: שדות וקווי פתרון, דיוקני פאזה ולינאריזציה, יציבות שיטות אוילר וסדר ההתכנסות של Runge–Kutta.

המעבדה עוברת מן התמונה הגאומטרית אל האלגוריתם: קוראים שיפועים, מסווגים זרימה במישור, בודקים יציבות של צעד יחיד, ולבסוף מודדים סדר התכנסות. בכל תחנה מנבאים לפני שמשנים לכל היותר שלושה פרמטרים.

תחנה 1 מתוך 4

שדה שיפועים וקווי פתרון

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

ניבוי

אם −1<y₀<1 במשוואה y′=1−y², לאן ינוע הפתרון כש־t גדל?
שדה שיפועים, איזוקלינות וקווי פתרון למשוואה y'=1-y². מן הנקודה (0, -0.45) השיפוע הוא 0.797 ולכן הפתרון עולה. האיזוקלינה המסומנת עבור שיפוע 0 נמצאת ב־y=-1 וגם y=1. בקצה הימני שגיאת אוילר היא 0.03552.
  • פתרון מדויק
  • צעדי אוילר
  • איזוקלינה נבחרת
  • תנאי התחלה
מן הנקודה (0, -0.45) השיפוע הוא 0.797 ולכן הפתרון עולה. האיזוקלינה המסומנת עבור שיפוע 0 נמצאת ב־y=-1 וגם y=1. בקצה הימני שגיאת אוילר היא 0.03552.
-0.45
0.25
0
y′=1−y²,   y(t)=tanh(t+artanh(y₀))
שיפוע ב־t=0
0.797
כיוון
הפתרון עולה
איזוקלינה
y=-1 וגם y=1
שגיאת אוילר בקצה
0.03552

מן הנקודה (0, -0.45) השיפוע הוא 0.797 ולכן הפתרון עולה. האיזוקלינה המסומנת עבור שיפוע 0 נמצאת ב־y=-1 וגם y=1. בקצה הימני שגיאת אוילר היא 0.03552.

בדיקת הבנה

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

עכשיו בקוד

אותו רעיון, כאלגוריתם

הקוד קצר בכוונה: כל שורה מקבילה לצעד בחישוב הידני.

מהרעיון אל הקוד

מימוש חישובי

function euler(f, t0, y0, h, steps) {
  let t = t0, y = y0;
  for (let i = 0; i < steps; i++) {
    y += h * f(t, y);
    t += h;
  }
  return y;
}

function rk4Step(f, t, y, h) {
  const k1 = f(t, y);
  const k2 = f(t + h/2, y + h*k1/2);
  const k3 = f(t + h/2, y + h*k2/2);
  const k4 = f(t + h, y + h*k3);
  return y + h*(k1 + 2*k2 + 2*k3 + k4)/6;
}

function rk4(f, t0, y0, h, steps) {
  let t = t0, y = y0;
  for (let i = 0; i < steps; i++) {
    y = rk4Step(f, t, y, h);
    t += h;
  }
  return y;
}

const f = (_t, y) => y;
const exact = Math.E;
console.table([0.5, 0.25, 0.125].map((h) => {
  const steps = Math.round(1/h);
  const eulerValue = euler(f, 0, 1, h, steps);
  const rk4Value = rk4(f, 0, 1, h, steps);
  return {
    h,
    euler: eulerValue,
    eulerError: Math.abs(eulerValue - exact),
    rk4: rk4Value,
    rk4Error: Math.abs(rk4Value - exact),
  };
}));

בדיקת שליטה מצטברת

האם כל פרק 3 יושב במקום?

חמש שאלות קצרות בודקות את כל רצף הפרק — מקריאת שדה שיפועים ויציבות מקומית ועד בחירת צעד ושיטת אינטגרציה. לאחר הבדיקה תקבלו הסבר וקישור מדויק לשיעור שכדאי לחזור אליו.

0 מתוך 5 נענו0/5
  1. אם f רציפה וליפשיצית מקומית ביחס ל־y, מה נובע עבור שני פתרונות העוברים באותה נקודה (t₀,y₀)?
  2. למערכת v′=Av מתקבל det(A)<0. כיצד מסווגים את שיווי המשקל בראשית?
  3. מה מותר להסיק כאשר ליעקובי בשיווי משקל לא־לינארי יש ערכים עצמיים ±i?
  4. עבור y′=−10y ואוילר קדמי עם h=0.25, מהו גורם ההגברה בכל צעד ומה משמעותו?
  5. RK4 היא שיטה מסדר גלובלי ארבע. בקירוב האסימפטוטי, פי כמה תקטן השגיאה אם נחצה את h?

יש לענות על כל השאלות לפני הבדיקה.

מקורות להעמקה בלבד — הפרק באתר עומד בפני עצמו

מדריך המרצים: עמ׳ 81–98. הפניות מדויקות לספר מופיעות בתחתית כל שיעור.