5.4

מרחבים ותתי־מרחבים

אי־תלות, בסיס וממד

Independence, Basis and Dimension

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

יחידת לימוד עצמאיתשיעור 4 מתוך 6כ־65 דקות כולל תרגול4 מטרות למידה
  1. 1
    נקודת פתיחהמה כבר ידוע ומה השאלה?
  2. 2
    ניבוימה יקרה במקרה הפשוט?
  3. 3
    המחשהמה באמת משתנה בתמונה?
  4. 4
    ניסוח והצדקהשם, נוסחה ולמה היא נכונה
  5. 5
    בדיקהדוגמה, תרגול ומשוב
  6. 6
    העברהמקרה חדש והמשך המסלול

שאלה לפני נוסחה

מה אנחנו מנסים לראות?

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

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

לפני ההמחשה: קראו רק את הכותרת “שני כיוונים מספיקים; השלישי משוכפל”. מה לדעתכם ישתנה, מה יישאר קבוע, ואיזה סימן בתמונה יוכל להפריך את הניבוי?

לראות לפני שמחשבים · המקרה הפשוט ביותר

שני כיוונים מספיקים; השלישי משוכפל

שלושה וקטורים תלויים ועמודות ה־pivot שלהם פורשים אותו מישור, אך רק שניים הם בסיסיוצרים: a₁,a₂,a₃a₃=a₁+a₂ ⇒ וקטור מיותרבסיס: a₁,a₂אותו span · ייצוג יחידמספר וקטורי הבסיס קבוע: dim C(A)=rank(A)=2
עקבו מהצורה הראשונית אל התוצאה

משמאל מופיעים שלושה וקטורים, ובהם a₃=a₁+a₂; מימין נשארים רק שני וקטורי ה־pivot. שני הצדדים פורשים אותו מישור.

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

אחרי שראינו

בסוף השיעור תוכלו

  • לבדוק אם רשימת וקטורים בלתי תלויה באמצעות המשוואה Uc=0.
  • להכריע אם רשימה היא בסיס על ידי בדיקת span ואי־תלות יחד.
  • למצוא ממד ודרגה מתוך מספר ה־pivots ולחלץ בסיסים נכונים מ־A ומ־RREF(A).
  • לחשב קואורדינטות יחידות ביחס לבסיס ולהבדיל בין דרגה מדויקת לדרגה מספרית.

נותנים שמות למה שראינו

מושגים שנשתמש בהם

תלות לינארית
קיום מקדמים שאינם כולם אפס כך ש־c₁v₁+⋯+cₖvₖ=0.
אי־תלות לינארית
הצירוף היחיד ששווה לאפס הוא הצירוף הטריוויאלי שבו כל המקדמים אפס.
קבוצה פורשת
רשימת וקטורים שה־span שלה שווה למרחב הנדון.
בסיס
רשימה שגם פורשת את המרחב וגם בלתי תלויה.
ממד
מספר הווקטורים בכל בסיס של המרחב.
דרגה rank
מספר ה־pivots של A; שווה לממד מרחב העמודות ולממד מרחב השורות.
קואורדינטות ביחס לבסיס
המקדמים היחידים שמייצגים וקטור כצירוף של וקטורי הבסיס.
בסיס מרחב השורות
השורות הלא־אפסיות של RREF(A), המייצגות את כל הצירופים של שורות A.
דרגה מדויקת/מספרית
דרגה מדויקת נקבעת באפסים אלגבריים; דרגה מספרית מסווגת שאריות קטנות כאפס ביחס לסף.

מהמילים אל הסימנים

כותבים את הפעולה שכבר ראינו

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

להצגת נוסחת המפתחקראו כל סימן כפעולה, לא כמשהו שצריך לשנןdim C(A)=rank(A)=r; r+(n−r)=n

מרכיבים את הפעולות

מהתמונה אל הנוסחה — הגזירה, בלי לדלג על הצעדים

  1. הופכים רשימת וקטורים למטריצה

    מסדרים את הווקטורים כעמודות U. אז כל צירוף שלהם הוא Uc, והשאלה אם הם פורשים יעד b היא בדיוק שאלת הפתירות Uc=b.

    U=[u₁ ⋯ uₖ], span{uᵢ}=C(U)
  2. בודקים אי־תלות דרך האפס

    אם Uc=0 מאפשר c≠0, אחד הווקטורים ניתן לביטוי באמצעות האחרים. אם c=0 הוא הפתרון היחיד, אין יתירות והרשימה בלתי תלויה.

    {uᵢ} independent ⇔ N(U)={0}

    עוצרים לחשוב: כל עמודה צריכה pivot; משתנה חופשי יוצר מיד יחס תלות.

  3. מחברים שני תנאים לבסיס

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

    basis = spanning + independent
  4. ממד סופר כיוונים חיוניים

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

    dim(V)=number of vectors in a basis of V
  5. ה־pivots נותנים את הדרגה

    כל pivot מסמן כיוון בלתי תלוי אחד. לכן r pivots נותנים dim C(A)=r וגם dim C(Aᵀ)=r; עם n עמודות מתקבל dim N(A)=n−r.

    rank(A)=dim C(A)=dim C(Aᵀ), nullity=n−r
  6. לוקחים כל בסיס מן המקום הנכון

    בסיס ל־C(A) מתקבל מעמודות A המקורית במיקומי ה־pivots. בסיס למרחב השורות מתקבל מן השורות הלא־אפסיות של RREF(A). פתרונות מיוחדים נותנים בסיס ל־N(A).

    C(A): original pivot columns; C(Aᵀ): nonzero RREF rows
  7. בסיס מבטיח קואורדינטות יחידות

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

    Bc=v=Bd ⇒ B(c−d)=0 ⇒ c=d
  8. מסמנים את אופי הדרגה

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

    numerical rank = #{directions above tolerance}

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

עכשיו רואים את השיטה בפעולה

דוגמאות פתורות, צעד אחר צעד

דוגמה 1

רשימה פורשת אך תלויה

נתונים u₁=(1,0,1),‏ u₂=(0,1,1),‏ u₃=(1,1,2). מצאו בסיס למרחב שהם פורשים.

  1. מבחינים ש־u₃=u₁+u₂, ולכן u₁+u₂−u₃=0 הוא יחס תלות לא־טריוויאלי.

  2. הסרת u₃ אינה משנה את ה־span, כי כל שימוש בו אפשר להחליף ב־u₁+u₂.

  3. u₁ ו־u₂ אינם כפולות זה של זה, ולכן הם בלתי תלויים.

  4. מכאן {u₁,u₂} גם פורשת את המישור וגם בלתי תלויה: זהו בסיס והממד 2.

התוצאה ומה היא אומרת

שלושה וקטורים יכולים לפרוש מישור, אך בסיס המישור מכיל שני כיוונים חיוניים בלבד.

B={u₁,u₂}, dim span{u₁,u₂,u₃}=2
דוגמה 2

קואורדינטות תלויות בבסיס

מצאו את קואורדינטות v=(4,2) ביחס לבסיס B=((1,1),(1,−1)).

  1. כותבים α(1,1)+β(1,−1)=(4,2).

  2. השוואת רכיבים נותנת α+β=4 ו־α−β=2.

  3. חיבור המשוואות נותן 2α=6 ולכן α=3; מכאן β=1.

  4. בדיקה: 3(1,1)+1(1,−1)=(4,2).

התוצאה ומה היא אומרת

הווקטור הגאומטרי לא השתנה, אך המספרים שמתארים אותו ביחס ל־B הם (3,1).

[v]ᴮ=(3,1)
דוגמה 3

וקטורים אינם חייבים להיות רשימות מספרים

מצאו בסיס למרחב D של מטריצות אלכסוניות 2×2, והשוו למרחב F=span{cos x,cos 2x} של פונקציות.

  1. כל מטריצה ב־D היא [[a,0],[0,b]]=aE₁₁+bE₂₂.

  2. אם aE₁₁+bE₂₂=0, השוואת שני איברי האלכסון נותנת a=b=0; לכן {E₁₁,E₂₂} בלתי תלויה ופורשת את D.

  3. ב־F כל פונקציה היא αcos x+βcos 2x לפי ההגדרה, ולכן שתי הפונקציות פורשות את F.

  4. הן בלתי תלויות: אם αcos x+βcos 2x היא פונציית האפס, הצבה ב־x=0 וב־x=π/2 נותנת α+β=0 ו־−β=0, ולכן α=β=0.

התוצאה ומה היא אומרת

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

dim D=2, dim F=2

איפה זה פוגש את העולם

יישום

במערכת חיישנים, עמודות pivot מזהות חיישנים שמוסיפים מידע חדש. אפשר להסיר עמודות תלויות בלי לשנות את מרחב האותות האפשריים, וכך לדחוס נתונים תוך שמירת כל הכיוונים הנמדדים.

מלכודת נפוצה

מה כדאי לבדוק

לקחת את עמודות ה־pivot מתוך RREF(A) כבסיס ל־C(A). פעולות שורה שומרות את יחסי התלות ואת מיקומי ה־pivots, אך משנות את מרחב העמודות עצמו.

בודקים שהרעיון יושב

תרגול ומשוב

בדיקת הבנה

בחרו תשובה ורק אז בדקו את עצמכם

שלושה וקטורים בלתי תלויים נמצאים בתת־מרחב V שממדו 3. מה נכון?

בחרו אחת מהאפשרויות כדי להמשיך.

עכשיו אתם

אתגר קצר

חזרו למטריצת העוגן A=[[2,4,6,4],[2,5,7,6],[2,3,5,2]]. מצאו rank(A), בסיס ל־C(A), בסיס למרחב השורות ובסיס ל־N(A), ובטאו את העמודות 3 ו־4 באמצעות בסיס העמודות.

רמז ראשון

השתמשו ב־RREF(A)=[[1,0,1,−2],[0,1,1,2],[0,0,0,0]]. זכרו: בסיס העמודות נלקח מ־A, בסיס השורות נלקח מ־RREF.

הצגת דרך הפתרון
  1. יש שני pivots ולכן rank(A)=2. בסיס ל־C(A) הוא שתי עמודות ה־pivot המקוריות: {(2,2,2),(4,5,3)}.
  2. בסיס למרחב השורות הוא {(1,0,1,−2),(0,1,1,2)}, שתי השורות הלא־אפסיות של RREF.
  3. מן המשתנים החופשיים x₃,x₄ מתקבל בסיס ל־N(A): {(−1,−1,1,0),(2,−2,0,1)}.
  4. עמודה 3 מקיימת a₃=a₁+a₂, כפי שמראה עמודת RREF (1,1,0). עמודה 4 מקיימת a₄=−2a₁+2a₂.
  5. ממדי מרחב העמודות והשורות הם 2, וממד N(A) הוא 4−2=2; כל הספירות עקביות.

מימוש הנושא

קוד שאפשר לקחת לניסוי

הקוד מיישם את אותו רעיון מתמטי. ב־JavaScript אפשר להריץ אותו כאן; גרסת Python זמינה להשוואה ולהעתקה.

הקשר למתמטיקה

analyzeBasis מרכז את מיקומי ה־pivots, בסיס העמודות המקורי, בסיס השורות המצומצם ובסיס מרחב האפס, ומדווח גם אם העמודות בלתי תלויות או פורשות את מרחב היעד.

פלט צפוי

באתגר תתקבל דרגה 2, עמודות pivot 1 ו־2, בסיס העמודות המקורי, שתי שורות RREF ושני כיווני האפס של מטריצת העוגן.

ניסוי המשך

החליפו את העמודה הרביעית ב־c₄+ε(0,0,1). נסו ε=10⁻⁶ ואז 10⁻¹⁴ ושנו את tolerance כדי לראות את ההבדל בין תלות מדויקת לתלות כמעט־מספרית.

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

מימוש חישובי

function rref(input, relativeTolerance=1e-12) {
  const matrix = input.map((row) => row.map(Number));
  const rowScales = matrix.map((row) => Math.max(...row.map(Math.abs)));
  const pivots = [];
  let pivotRow = 0;

  for (let column = 0;
       column < matrix[0].length && pivotRow < matrix.length;
       column += 1) {
    let best = -1;
    let bestRatio = 0;
    for (let row = pivotRow; row < matrix.length; row += 1) {
      const ratio = rowScales[row] === 0
        ? 0
        : Math.abs(matrix[row][column])/rowScales[row];
      if (ratio > bestRatio) {
        bestRatio = ratio;
        best = row;
      }
    }
    if (best === -1 || bestRatio <= relativeTolerance) continue;
    [matrix[pivotRow], matrix[best]] = [matrix[best], matrix[pivotRow]];
    [rowScales[pivotRow], rowScales[best]] = [rowScales[best], rowScales[pivotRow]];
    const scale = matrix[pivotRow][column];
    matrix[pivotRow] = matrix[pivotRow].map((value) => value/scale);
    for (let row = 0; row < matrix.length; row += 1) {
      if (row === pivotRow) continue;
      const factor = matrix[row][column];
      matrix[row] = matrix[row].map(
        (value, j) => value - factor*matrix[pivotRow][j],
      );
    }
    pivots.push(column);
    pivotRow += 1;
  }

  return {
    matrix: matrix.map((row) =>
      row.map((value) => Math.abs(value) <= relativeTolerance ? 0 : value),
    ),
    pivots,
  };
}

function analyzeBasis(A, relativeTolerance=1e-12) {
  const { matrix, pivots } = rref(A, relativeTolerance);
  const columns = A[0].length;
  const free = Array.from({ length: columns }, (_, j) => j)
    .filter((j) => !pivots.includes(j));
  const nullspaceBasis = free.map((freeColumn) => {
    const vector = Array(columns).fill(0);
    vector[freeColumn] = 1;
    pivots.forEach((pivot, row) => {
      vector[pivot] = -matrix[row][freeColumn];
    });
    return vector;
  });

  return {
    rank: pivots.length,
    pivotColumns: pivots.map((index) => index + 1),
    columnBasis: pivots.map(
      (column) => A.map((row) => row[column]),
    ),
    rowBasis: matrix.slice(0, pivots.length),
    nullspaceBasis,
    independentColumns: pivots.length === columns,
    spansAmbientSpace: pivots.length === A.length,
  };
}

const A = [
  [2, 4, 6, 4],
  [2, 5, 7, 6],
  [2, 3, 5, 2],
];
console.log(analyzeBasis(A));

לפני שממשיכים

מה לוקחים מהשיעור

  • בסיס משלב פרישה ואי־תלות; כל אחד מן התנאים לבדו אינו מספיק.
  • הממד הוא מספר הכיוונים בבסיס, והדרגה היא מספר ה־pivots.
  • עמודות pivot מקוריות, שורות RREF לא־אפסיות ופתרונות מיוחדים מייצרים בסיסים למרחבים שונים.
  • קואורדינטות ביחס לבסיס הן יחידות; בחישוב מספרי יש לדווח כיצד הוערכה הדרגה.

משימת מעבדה לשיעור הזה

תחנה 3 — כמה כיוונים באמת דרושים?

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

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

מדריך המרצים: עמ׳ 148–155

ספר הלימוד: עמ׳ 285–299