מדריך מקוצר לחשיבה ב-n מימדים
דוק בראון אומר למרטי “לחשוב במימד הרביעי”. פיזיקאים מתעסקים בעולמות עם 26 מימדים, או 11, או 10. גם אנשי העידן החדש קופצים על מושגי המימדים הללו כמוצאי שלל רב וטוענים שמגוון חייזרים חיים בהם. אבל מה זה בעצם מימד, מבחינה מתמטית? יש הגדרות שונות לאותו מושג אינטואיטיבי, שמנסות להשיג מטרות שונות; בפוסט הזה אדבר על ההגדרה הפשוטה והבסיסית ביותר, שנלמדת על ידי סטודנטים למתמטיקה כבר בסמסטר הראשון, במסגרת הקורס שעוסק באלגברה לינארית.
באופן אינטואיטיבי, מימד מייצג חופש תנועה מסויים. בכל מימד ניתן “לנוע” באופן בלתי תלוי באחרים. הדרך לתאר מיקום של אובייקט היא באמצעות תיאור המיקום שלו בכל אחד מהמימדים האחרים. אחת מהדרכים האהובות עלי לאפיין ממדים היא באמצעות משחקי מחשב ורמת השליטה שיש לך בדמות שאותה אתה משחק. במשחק דוגמת Space Invaders, שבו אתה מייצג תותח שיורה בחייזרים פולשים, התנועה שלך מוגבלת לימינה-שמאלה בלבד - אתה נע רק במימד אחד. לעומת זאת, במשחקי פלטפורמות עם “מבט מהצד” כדוגמת Prince of Persia, יש לדמות שלך יכולת לנוע ימינה ושמאלה, אך גם למעלה ולמטה. השינוי מורגש לא רק בצורה שבה הדמות נעה במשחק, אלא גם בכמות המקשים שצריך כדי לשלוט בה - כדי לשלוט בתותח של Space Invaders צריך רק שני מקשי חצים, ואילו כדי לשלוט בנסיך יש צורך בארבעה (כדי לומר לו אם ללכת ימינה או שמאלה, או שדווקא ינסה לעלות או לרדת). יש משחקים דו ממדיים אחרים, שבהם נקודת המבט איננה מהצד, אלא מלמעלה, למשל Diablo: הדמות מסוגלת לזוז ימינה, שמאלה, קדימה ואחורה (בעזרת העכבר, אבל אם היו משתמשים במקשים - שוב, היה צורך בארבעה).
נעבור למשחק תלת ממדי דוגמת Portal. בפורטל אפשר לזוז ימינה, שמאלה, קדימה ואחורה, אבל גם לקפוץ למעלה וליפול למטה (אין מקש מיוחד עבור “למטה” כי נפילה למטה מתרחשת באופן טבעי; אבל במשחקים שבהם אתה חללית ורוצים לאפשר לך תנועה מלאה דווקא כן יש במקש כזה צורך). זוהי דוגמה “קלאסית” למשחק בשלושה ממדים שבו נקודת המבט של השחקן היא מבעד לעיני הדמות. עם זאת, לפעמים שלושה ממדים יכולים לבוא לידי ביטוי בצורה שונה לחלוטין, ואפילו במשחק פלטפורמה “שטוח” לחלוטין. במשחק כרונוטרון שבו ניתן לנוע ימינה/שמאלה ולמעלה/למטה, המימד השלישי הוא בכלל מימד הזמן - אפשר לנוע אחורה בזמן, ויש חשיבות רבה לשאלה מתי אתה נמצא במיקום מסויים, ביחס לזמנים שבהם אתה נמצא במיקומים אחרים. לא שבמשחקי פלטפורמות רגילים אין את זה; אבל בכרונוטרון זה מורגש ומודגש הרבה יותר.
כעת בואו ונחשוב על המשחקים הללו מנקודת המבט של המתכנת. כשהוא בא לייצג את הדמות של השחקן, הוא יצטרך להקצות משתנים כדי שישמרו את המיקום שלה. כמה משתנים צריך במקרה של משחק חד-ממדי כמו Space Invaders? רק אחד, עבור המיקום של התותח בציר האופקי (ציר x). לעומת זאת ב-Prince צריך שניים - אחד לגובה הנוכחי (ציר y), ואחד לציר x. ב-Portal יש את ציר x ו-y וציר נוסף, z, עבור “קדימה/אחורה” (שימו לב שאלו מילים מטעות, כי הדמות של השחקן יכולה להסתובב ואז המשמעות של “קדימה/אחורה” בשבילה תשתנה) ולכן צריך שלושה משתנים. בכרונוטרון אין צורך בציר z, אלא בציר “זמן” t - שוב, שלושה משתנים. באופן אינטואיטיבי אפשר להגיד שהמימד של המשחק בא לידי ביטוי במספר המשתנים הזה.
כעת נעבור למתמטיקה. אפשר לחשוב על ציר המספרים הממשיים \( \mathbb{R} \) כעל קו ישר אינסופי, כך ש”מיקום” על הקו מתואר על ידי מספר ממשי בודד. באופן דומה אפשר לחשוב על ייצוג מקום במישור האוקלידי באמצעות זוג של מספרים ממשיים, \( (x,y) \). על מקומות במרחב האוקלידי אפשר לחשוב באמצעות שלשות של מספרים, \( (x,y,z) \) ואם רוצים להגיד “החללית הייתה בנקודה הזו והזו בזמן t” אפשר להכניס גם משתנה ממשי רביעי, של זמן, ולקבל רביעייה \( (x,y,z,t) \). בהכללה, המתמטיקאים מדברים על n-יה (על משקל “שליש-יה, רביעי-יה וכו’) - ובאנגלית tuple - של \( n \) מספרים ממשיים. על היצורים הללו ניתן להגדיר פעולת חיבור (\( (x,y)+(a,b)=(x+a,y+b \) - חיבור “רכיב רכיב”), ופעולה של כפל במספר ממשי (\( \lambda\cdot(x,y)=(\lambda x,\lambda y) \)). הקבוצה שמתקבלת מההגדרות הללו היא הדוגמה הארכיטיפית למושג המתמטי המרכזי והחשוב של מרחב וקטורי. בפשטות, מרחב וקטורי הוא אוסף איברים שיש עליהם פעולת חיבור בעלת תכונות מסויימות (פורמלית, היא חבורה חיבורית אבלית), שמגדירים עליהם פעולה של כפל באיבר מתוך שדה (כפי שהגדרנו שדה בפוסט הקודם) שגם היא מקיימת תכונות מסויימות שלא ניכנס אליהן כרגע, ומכונה “כפל בסקלר” (“סקלר” כאן פירושו “איבר מהשדה שמעליו מוגדר המרחב הוקטורי). שימו לב שאברי המרחב הוקטורי לא צריכים להיות איברים בשדה; ה-n-יות אינן מספרים ממשיים, למרות שהן נבנות “מתוך” המספרים הממשיים.
מרחבים וקטוריים מסוגלים לתאר אובייקטים רבים ושונים. בדרך כלל מתחילים את לימודי האלגברה הלינארית בעיסוק במערכות של משוואות לינאריות (משוואות ממעלה ראשונה), שכן ניתן לחשוב על אוסף הפתרונות שלהן כעל מרחב וקטורי, וגם על המשוואות עצמן ניתן לחשוב כעל איברים במרחב וקטורי (משוואה ב-n נעלמים ללא איבר חופשי ניתנת לייצוג בעזרת n-יה של מקדמים). עוד אובייקטים טיפוסיים הם נקודות במרחב (כמו אלו שעליהן דיברתי במבוא), פונקציות, מטריצות, וגם שדות הרחבה מהסוג שהזכרתי בפוסט הקודם. בכל המקרים הללו צריך רק מושג של “חיבור” ושל “כפל בסקלר”. היופי כאן (ובכלל במתמטיקה) הוא שהתיאוריה של המרחבים הוקטוריים תקפה לכל המקרים הללו באותו האופן.
כבר כאשר עוסקים בפתרון משוואות לינאריות, מתגלה מהר מאוד שנוח לייצר איברים חדשים מתוך איברים קיימים על ידי כך שכופלים את האיברים הקיימים בסקלר מסויים, ומחברים אותם. מהתוצאה שמתקבלת אפשר ללמוד משהו על המרחב עצמו. כך למשל אם יש לנו מערכת משוואות לינאריות, בעזרת הכפלה שלהם וחיבור שלהם אפשר לקבל משוואות נוספות, אולי פשוטות יותר, שיש להן בדיוק את אותם פתרונות; בצורה הזו אפשר להגיע ממערכת מסובכת למערכת פשוטה שאפשר לפתור מיידית. לכן הפעולה הזו של “הכפלה בסקלר וחיבור” זכתה לשם משל עצמה - “צירוף לינארי”. אם \( v_1,\dots,v_n \) הם איברים של מרחב וקטורי ו-\( \lambda_1,\dots,\lambda_n \) הם סקלרים מתוך השדה, אז האיבר \( \lambda_1v_1+\dots+\lambda_nv_n \) הוא צירוף לינארי של הוקטורים הללו. שימו לב שיש לי כאן מספר סופי של מחוברים - באופן כללי, מסיבות טכניות (כלומר, בלי זה רוב המשפטים פשוט לא עובדים) נהוג לעסוק באלגברה לינארית רק בצירופים לינאריים של מספר סופי של איברים, או של מספר אינסופי של איברים כך שתמיד המקדמים של כולם פרט למספר סופי מתוכם הוא 0. האנליזה הפונקציונלית, שמרחיבה את האלגברה הלינארית באמצעות רעיונות מהחשבון האינפיניטסימלי, מציעה אפשרות לעבוד גם עם סכומים אינסופיים, אבל זה נושא נרחב בפני עצמו ולא אכנס אליו כעת.
הנה דוגמה פשוטה. נתבונן במערכת המשוואות הלינארית הבאה:
\( x+y=0 \)
\( x-y=0 \)
אפשר לייצג את המשוואות בעזרת הוקטורים \( (1,1),(1,-1) \). חיבור הוקטורים הללו יניב את הוקטור \( (2,0) \) שמייצג את המשוואה \( 2x=0 \). אם רוצים לקבל תוצאה “יפה” יותר אפשר גם לכפול כל אחד מהוקטורים בסקלר \( \frac{1}{2} \) לפני שסוכמים אותם, ואז נקבל את הוקטור \( (1,0) \) כצירוף לינארי של שניהם, כלומר את המשוואה \( x=0 \) שנותנת לנו מיידית חצי מהפתרון למערכת; על ידי כפל בחצי וחיסור שני הוקטורים (או אם תרצו, חיבור שני הוקטורים לאחר שגם כפלנו את השני במינוס 1) נקבל את הוקטור \( (0,1) \) שמייצג את המשוואה \( y=0 \). בסופו של דבר קיבלנו שהפתרון היחיד למערכת המשוואות הוא הפתרון ה”טריוויאלי”, \( x=y=0 \). הטכניקה שהצגתי כאן נראית אד-הוקית משהו, אבל יש אלגוריתם מדוייק ויעיל שעוסק בפתרון משוואות בדרך דומה, ונלמד כבר בקורס הבסיסי באלגברה לינארית - לא אציג אותו כעת.
עד כאן טוב ויפה, אבל אפשר לקבל אינטואיציה עוד יותר טובה למה שהלך כאן. אם אני יכול לבנות את \( (1,0) \) ואת \( (0,1) \) אני אוכל לבנות גם כל צירוף לינארי שלהם (איך?) ולכן אוכל לקבל כל וקטור \( (a,b) \) כצירוף לינארי של שני הוקטורים המקוריים (איך?) ולכן בעצם מה שאני אומר כאן הוא “כל פתרון למערכת המשוואות המקורית פותר גם את המשוואה \( ax+by=0 \), לכל \( a,b \)”. אינטואיטיבית קל להבין למה זה מכריח את הפתרון להיות הטריוויאלי - מה עוד יוכל לפתור כל משוואה לינארית אחרת?
על קבוצת וקטורים בעלת התכונה המיוחדת שאפשר לקבל כל וקטור במרחב הוקטורי כצירוף לינארי שלהם אומרים שהיא פורשת את המרחב. בוודאי שלכל מרחב אפשר למצוא קבוצה שפורשת אותו - קבוצת כל הוקטורים במרחב, למשל (כל וקטור ניתן להצגה כצירוף לינארי שבו המקדם שלו הוא 1 והמקדם של כל שאר האיברים הוא 0). עם זאת, ככל שיש יותר איברים בקבוצה הפורשת שלנו, כך פחות נוח לעבוד איתה. לכן שואפים תמיד למצוא למרחב קבוצה פורשת מינימלית.
איך אפשר למצוא קבוצה פורשת מינימלית? באופן לא פורמלי, אפשר לחשוב על זה כך: נתחיל עם קבוצה גדולה של איברים שפורשת את המרחב. כעת נתחיל לסלק מתוכה וקטורים “מיותרים”. מהו וקטור מיותר? וקטור שגם אם מעיפים אותו מהקבוצה, עדיין אפשר לבנות אותו כצירוף לינארי של מי שנשאר (ולכן אפשר להחליף כל מקום שבו הוא מופיע בבנייה של איברים אחרים בצירוף הלינארי שנותן אותו). וקטורים מיותרים בקבוצה שלנו פירושם לא רק שהקבוצה גדולה מדי, אלא גם שיש איברים במרחב הוקטורי שניתן לייצג בכמה דרכים שונות כצירוף של איברים מהקבוצה - ולעתים קרובות, אנחנו רוצים דווקא שהייצוג יהיה יחיד (יותר קל להוכיח כל מני דברים על איברים כאשר הייצוג שלהם הוא יחיד). מסתבר שיש קריטריון יפה להכרעה מתי יש בקבוצה וקטורים מיותרים שכאלו - אם אפשר לקבל את אפס כצירוף לינארי לא טריוויאלי של אברי הקבוצה, כלומר צירוף לינארי שלא כל מקדמיו הם אפס (אינטואיטבית קל להבין למה זה קורה - אם אני יכול לייצג איבר כלשהו בשתי דרכים שונות כצירוף לינארי, אז נחסר את שני הצירופים הללו זה מזה ונקבל אפס, אבל מכיוון ששני הצירופים היו לפחות עם מקדם שונה אחד, נקבל צירוף לינארי לא טריוויאלי).
למשל, בקבוצה \( (1,0),(0,1) \) אין וקטור מיותר. אם נכתוב צירוף לינארי “כללי” של שני האיברים הללו נקבל את האיבר \( (\lambda_1,\lambda_2) \). הדרך היחידה שבה האיבר הזה יהיה אפס הוא ששני הסקלרים יהיו אפס, כלומר שהצירוף הלינארי יהיה טריוויאלי. לעומת זאת אם נוסיף לקבוצה את האיבר \( (2,0) \) הרי שעכשיו צירוף לינארי “כללי” של אברי הקבוצה יתן לנו את האיבר \( (\lambda_1+2\lambda_3,\lambda_2) \), וכאן בבירור יש אפשרות לקבל את אפס בדרך נוספת: אם נבחר \( \lambda_1=2,\lambda_2=0,\lambda_3=-1 \), למשל.
לקבוצת וקטורים כזו, שיש בה צירוף לינארי לא טריוויאלי שנותן את אפס, קוראים קבוצה תלויה לינארית. ה”תלות” מתבטאת בדיוק בכך שאפשר לקבל וקטור כלשהו מהקבוצה הזו כצירוף לינארי של היתר. כעת אפשר להגדיר במדוייק מה הכוונה בקבוצה פורשת “מינימלית” - קבוצה פורשת שהיא גם בלתי תלויה לינארית (שימו לב שקבוצה שכזו היא גם קבוצה בלתי תלויה מקסימלית - מדוע?). וכאן מגיעה אחת מהתוצאות היפות במתמטיקה, לדעתי: ראשית, לכל מרחב וקטורי באשר הוא קיימת קבוצה שכזו (הוכחתי זאת בפוסט קודם), ולמעשה - בהינתן כל קבוצה בלתי תלויה של וקטורים, ניתן להרחיב אותה לקבוצה פורשת בלתי תלויה; ושנית, כל הקבוצות הפורשות המינימליות הן מאותו הגודל, כלומר מכילות בדיוק אותה כמות של וקטורים. נסו לחשוב רגע על ההגדרות שנתתי כדי לקבל תחושה מדוע זה לא מובן מאליו שהן יהיו מאותו הגודל - אולי יש וקטור ש”פורש הרבה מאוד את המרחב”, כך שאם הוא נמצא בקבוצה פורשת, צריך עוד מעט מאוד וקטורים אחרים, ואילו אם לוקחים קבוצה אחרת שבה כל וקטור “פורש מעט את המרחב” נצטרך יותר וקטורים? מה שהמשפט שציטטתי מראה הוא שהסיטואציה איננה כזו.
לקבוצה פורשת ובלתי תלויה קוראים בסיס של המרחב. החשיבות של בסיסים היא עצומה - אם יש לנו בסיס, יש לנו תיאור קומפקטי של המרחב כולו. כדי לחקור איך פונקציות שמשמרות את הלינאריות של המרחב (“טרנספורמציות לינאריות”) פועלות על המרחב כולו, מספיק לדעת כיצד הן פועלות על בסיס. אי אפשר להפריז בחשיבות של התוצאה הזו.
וכעת הגענו חזרה לנושא השרשור - לגודל של בסיס (שכזכור, הוא זהה לכל הבסיסים) קוראים המימד של המרחב. השם אינו מקרי, אלא מתאים בדיוק לתיאור האינטואיטיבי שנתתי קודם, של “דרגות חופש” - במרחב ממימד \( n \) אפשר לתאר כל איבר במרחב באופן יחיד באמצעות צירוף לינארי של \( n \) וקטורי בסיס, כלומר אפשר לחשוב עליו כאילו הוא מתואר על ידי \( n \) סקלרים, ששינוי בכל אחד מהם ישנה את האיבר המתקבל. אם כן, המרחב הארבע-ממדי שדיברתי עליו בהתחלה מיוצג באמצעות וקטורי בסיס של “ציר x”, “ציר y”, “ציר z” ו”ציר t”, למשל.
הכנסתי כאן די הרבה חומר שהעיכול שלו אינו מיידי; למי שלא הצליח לעקוב אחרי הפוסט אני ממליץ על קריאת כל ספר באלגברה לינארית (ספר סטנדרטי הוא זה של Hoffman ו-Kunze) - מכיוון שזה נושא שנמצא בבסיס המתמטיקה המודרנית, לרוב אין צורך כמעט בשום ידע מוקדם עבורו (רק ידע בית ספרי).
בפוסט הבא נחזור לעסוק בהרחבת שדות ונראה איך המימד ומושג הבסיס באים לידי ביטוי גם שם - מסתבר שיש להם תפקיד חשוב ביותר.
נהניתם? התעניינתם? אם תרצו, אתם מוזמנים לתת טיפ: