מתמטיקה שימושית ו־AᵀA
משוואת לפלס על רשת
Laplace’s Equation and AᵀA
המשוואה uₓₓ+uᵧᵧ=0 הופכת לכלל ממוצע: כל צומת פנימי שווה לממוצע ארבעת שכניו. ערכי השפה הם שמניעים פתרון לא־קבוע.
- 1נקודת פתיחהמה כבר ידוע ומה השאלה?
- 2ניבוימה יקרה במקרה הפשוט?
- 3המחשהמה באמת משתנה בתמונה?
- 4ניסוח והצדקהשם, נוסחה ולמה היא נכונה
- 5בדיקהדוגמה, תרגול ומשוב
- 6העברהמקרה חדש והמשך המסלול
שאלה לפני נוסחה
מה אנחנו מנסים לראות?
לעבור ממשוואת לפלס הרציפה לכלל הממוצע הדיסקרטי, לבנות את K₂D, ולפרש את הפתרון גם כמצב שיווי משקל וגם כמינימום אנרגיה.
דמיינו לוח דק ששפתו מוחזקת בטמפרטורות קבועות. לאחר זמן רב אין הצטברות חום בשום נקודה פנימית: ערך גבוה משכניו יתקרר ונמוך מהם יתחמם. לכן בשיווי משקל כל נקודה היא ממוצע שכנותיה.
לפני ההמחשה: קראו רק את הכותרת “השפה החמה מחלחלת פנימה”. מה לדעתכם ישתנה, מה יישאר קבוע, ואיזה סימן בתמונה יוכל להפריך את הניבוי?
לראות לפני שמחשבים · המקרה הפשוט ביותר
השפה החמה מחלחלת פנימה
האיור מציג רשת שערכה העליון קבוע וחם ושלוש שפות אחרות קרות, עם ערכי הפתרון בכל צומת.
מה כדאי לגלות: אף ערך פנימי אינו עובר את ערכי השפה. כל תא פנימי מתאים בדיוק לממוצע ארבעת שכניו.
אחרי שראינו
בסוף השיעור תוכלו
- להסביר מדוע פונקציה הרמונית מקיימת תכונת ממוצע ולמה ערכי הקיצון נמצאים על השפה.
- לבנות משוואת חמש נקודות ומטריצה לבעיה דו־ממדית קטנה.
- לפתור רשת עם ערכי שפה ולבדוק את ממוצע השכנים בכל צומת פנימי.
נותנים שמות למה שראינו
מושגים שנשתמש בהם
- משוואת לפלס
- המשוואה Δu=uₓₓ+uᵧᵧ=0 המתארת שיווי משקל ללא מקור פנימי.
- פונקציה הרמונית
- פונקציה שמקיימת את משוואת לפלס בתחום.
- סטנסיל חמש נקודות
- הנקודה המרכזית וארבע שכנותיה המשמשות לקירוב Δu.
- תכונת הממוצע
- ערך הרמוני פנימי שווה לממוצע שכניו בדיסקרטיזציה.
- עקרון המקסימום
- ללא מקור, מקסימום ומינימום לא־קבועים נקבעים על השפה.
- אנרגיית דיריכלה
- סכום ריבועי הפרשי שכנים; הפתרון ההרמוני ממזער אותו תחת ערכי השפה.
מהמילים אל הסימנים
כותבים את הפעולה שכבר ראינו
פתחו את הנוסחה רק אחרי שאתם יכולים לומר במילים מה כל פעולה אמורה לעשות. בשלב הבא נצדיק אותה צעד אחר צעד.
להצגת נוסחת המפתח
קראו כל סימן כפעולה, לא כמשהו שצריך לשנןΔu=0 ב־Ω, u=g על ∂Ω; 4Uᵢⱼ−Uᵢ₋₁,ⱼ−Uᵢ₊₁,ⱼ−Uᵢ,ⱼ₋₁−Uᵢ,ⱼ₊₁=0מרכיבים את הפעולות
מהתמונה אל הנוסחה — הגזירה, בלי לדלג על הצעדים
מתחילים משתי נגזרות שניות
משוואת לפלס דורשת שהעקמומיות בכיוון אחד תבטל את העקמומיות בכיוון האחר.
uₓₓ+uᵧᵧ=0מחליפים כל נגזרת בהפרש
באותו h בשני הכיוונים, כל נגזרת שנייה תורמת שני שכנים ו־−2Uᵢⱼ. לאחר כפל ב־−h² מתקבל מרכז 4 ושכנים −1.
4Uᵢⱼ−Uᵢ₋₁,ⱼ−Uᵢ₊₁,ⱼ−Uᵢ,ⱼ₋₁−Uᵢ,ⱼ₊₁=0קוראים את כלל הממוצע
העברת ארבעת השכנים לצד ימין וחלוקה ב־4 מראה שהמשוואה היא חוק איזון מקומי.
Uᵢⱼ=(Uleft+Uright+Uup+Udown)/4מכניסים את השפה
שכן פנימי נשאר במטריצה עם −1; שכן על השפה ידוע ולכן ערכו עובר לצד ימין. פינות שאינן שכנות ישירות לצומת פנימי אינן נכנסות.
K₂D U=b_boundaryמפרשים אנרגיה
כל קשת קטנה ברשת תורמת (Uᵢ−Uⱼ)². גזירת האנרגיה לפי Uᵢ נותנת סכום הפרשים, כלומר משוואת לפלס בצומת.
E(U)=½Σedges(Uᵢ−Uⱼ)²; ∇E=LUמסיקים עקרון מקסימום
ממוצע של שכנים אינו יכול להיות גדול מכולם. אם צומת פנימי משיג מקסימום ממשי, גם שכניו חייבים לקבל אותו ערך, והטיעון מתפשט עד השפה.
min(boundary)≤Uinterior≤max(boundary)
עכשיו רואים את השיטה בפעולה
דוגמאות פתורות, צעד אחר צעד
רשת פנים 2×2
השפה העליונה היא 4 ושלוש השפות האחרות 0. מצאו את ארבעת ערכי הפנים.
מסימטריה נסמן את שני הערכים העליונים a ואת שני התחתונים b.
לצומת עליון: ארבע פעמים a פחות השכן העליון 4, השכן האופקי a והשכן התחתון b שווה 0. לכן 3a−b=4.
לצומת תחתון: השפה התחתונה 0, והשכנים הפנימיים הם b אופקי ו־a מעל. לכן 3b−a=0.
מ־a=3b ומ־3a−b=4 מקבלים b=1/2 ו־a=3/2.
בדיקה: 1.5 הוא ממוצע 4,0.5,1.5,0; ו־0.5 הוא ממוצע 1.5,0.5,0,0.
שורת הפנים העליונה (1.5,1.5), והתחתונה (0.5,0.5).
פולינום הרמוני
בדקו ש־u(x,y)=x²−y² פותר את משוואת לפלס.
נגזרת שנייה ב־x היא uₓₓ=2.
נגזרת שנייה ב־y היא uᵧᵧ=−2.
הסכום הוא 0 בכל נקודה, ולכן u הרמונית.
הפונקציה אינה קבועה: עקמומיות חיובית בכיוון x מתבטלת בעקמומיות שלילית בכיוון y.
Δu=2−2=0.
איפה זה פוגש את העולם
יישום
פוטנציאל חשמלי, זרימה בלתי דחיסה וטמפרטורת שיווי משקל מצייתים למשוואת לפלס. דיסקרטיזציה הופכת בעיה רציפה גדולה למערכת sparse שבה כל שורה מחברת צומת רק לשכניו.
מלכודת נפוצה
מה כדאי לבדוק
להכניס ערכי פינות ישירות למשוואת צומת שאינו שכן להן. סטנסיל חמש הנקודות כולל רק שמאל, ימין, מעלה ומטה; פינה אלכסונית אינה מופיעה.
בודקים שהרעיון יושב
תרגול ומשוב
בדיקת הבנה
בחרו תשובה ורק אז בדקו את עצמכם
בחרו אחת מהאפשרויות כדי להמשיך.
עכשיו אתם
אתגר קצר
ברשת פנים 1×1, ערכי ארבעת שכני השפה הם 2,4,6,8. מצאו את הערך הפנימי והסבירו גם דרך אנרגיה.
רמז ראשון
יש רק משוואה אחת: 4U פחות סכום ארבעת ערכי השפה שווה אפס.
הצגת דרך הפתרון
- 4U=2+4+6+8=20, ולכן U=5.
- זהו ממוצע ארבעת השכנים ונמצא בין 2 ל־8.
- האנרגיה היא ½[(U−2)²+(U−4)²+(U−6)²+(U−8)²].
- גזירת האנרגיה נותנת 4U−20=0, אותה משוואת לפלס.
מימוש הנושא
קוד שאפשר לקחת לניסוי
הקוד מיישם את אותו רעיון מתמטי. ב־JavaScript אפשר להריץ אותו כאן; גרסת Python זמינה להשוואה ולהעתקה.
הקוד בונה K₂D לכל רשת פנים, מעביר את השפה העליונה לצד ימין ופותר את המערכת באלימינציה.
ברשת 2×2 עם שפה עליונה 4 יתקבלו 1.5,1.5 בשורה העליונה ו־0.5,0.5 בתחתונה; שגיאת הממוצע תהיה כמעט אפס.
הגדילו את הרשת ל־4×4 ושנו את השפה החמה מ־4 ל־8. האם כל ערכי הפנים מוכפלים בדיוק פי 2? מדוע?
מהרעיון אל הקוד
מימוש חישובי
function solve(A,b) {
const M=A.map((row,i)=>[...row,b[i]]), n=A.length;
for(let c=0;c<n;c++) { let p=c; for(let r=c+1;r<n;r++) if(Math.abs(M[r][c])>Math.abs(M[p][c])) p=r;
[M[c],M[p]]=[M[p],M[c]]; const d=M[c][c]; for(let j=c;j<=n;j++) M[c][j]/=d;
for(let r=0;r<n;r++) if(r!==c) { const f=M[r][c]; for(let j=c;j<=n;j++) M[r][j]-=f*M[c][j]; } }
return M.map(row=>row[n]);
}
function laplaceGrid(n,top) {
const count=n*n, K=Array.from({length:count},()=>Array(count).fill(0)), b=Array(count).fill(0);
const index=(r,c)=>r*n+c;
for(let r=0;r<n;r++) for(let c=0;c<n;c++) { const k=index(r,c); K[k][k]=4;
for(const [dr,dc] of [[-1,0],[1,0],[0,-1],[0,1]]) { const rr=r+dr,cc=c+dc;
if(rr>=0&&rr<n&&cc>=0&&cc<n) K[k][index(rr,cc)]=-1; else if(rr<0) b[k]+=top; } }
return solve(K,b);
}
console.log(laplaceGrid(2,4));def solve(A,b):
M=[row[:] + [b[i]] for i,row in enumerate(A)]
n=len(A)
for c in range(n):
p=max(range(c,n),key=lambda r:abs(M[r][c]))
M[c],M[p]=M[p],M[c]
d=M[c][c]; M[c]=[value/d for value in M[c]]
for r in range(n):
if r!=c:
f=M[r][c]; M[r]=[M[r][j]-f*M[c][j] for j in range(n+1)]
return [row[n] for row in M]
def laplace_grid(n,top):
count=n*n
K=[[0]*count for _ in range(count)]
b=[0]*count
index=lambda r,c:r*n+c
for r in range(n):
for c in range(n):
k=index(r,c); K[k][k]=4
for dr,dc in [(-1,0),(1,0),(0,-1),(0,1)]:
rr,cc=r+dr,c+dc
if 0<=rr<n and 0<=cc<n: K[k][index(rr,cc)]=-1
elif rr<0: b[k]+=top
return solve(K,b)
print(laplace_grid(2,4))לפני שממשיכים
מה לוקחים מהשיעור
- משוואת לפלס הדיסקרטית היא כלל ממוצע מקומי.
- השפה אינה קישוט: היא יוצרת את צד ימין וקובעת את הפתרון היחיד.
- אותה מערכת מתקבלת גם מאיזון שטף וגם ממזעור סכום ריבועי הפרשים.
- עקרון המקסימום מספק בדיקת שפיות חזקה לכל פתרון מספרי.
משימת מעבדה לשיעור הזה
תחנה 3 — מן המוט אל לוח דו־ממדי
עברו למצב לפלס, שנו את גודל הרשת ואת ערך השפה, ובדקו שכל תא פנימי הוא ממוצע שכניו.
מקורות להעמקה בלבד — השיעור עומד בפני עצמו
מדריך המרצים: עמ׳ 207–209
ספר הלימוד: עמ׳ 416–422