5.3

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

הפתרון השלם של Ax=b

The Complete Solution to Ax=b

בודקים תחילה אם b∈C(A); אם כן, מחברים פתרון פרטי אחד לכל מרחב האפס ומקבלים קבוצה אפינית של כל הפתרונות.

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

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

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

לחבר בין מרחב העמודות למרחב האפס: להכריע אם Ax=b עקבית, למצוא פתרון פרטי xₚ ולתאר את כל הפתרונות ורק אותם בצורה x=xₚ+xₙ.

אם שני וקטורים מגיעים לאותו b, ההפרש ביניהם בלתי נראה למטריצה ולכן נמצא במרחב האפס. כל הפתרונות הם הזזה של N(A): מתחילים בנקודה אחת שמגיעה אל b, וממנה נעים רק בכיוונים ש־A מוחקת.

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

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

נקודת עוגן ועוד כיווני חופש

כל פתרונות Ax שווה b הם הזזה של מרחב האפס דרך פתרון פרטי אחדמרחב הקלט ℝⁿ0N(A) · עובר בראשיתxₚx₁x₂xₚ+N(A) · כל פתרונות Ax=bAbAx₁=Axₚ=Ax₂b≠0 ⇒ הקבוצה אינה עוברת ב־0ולכן היא אפינית ולא תת־מרחב
עקבו מהצורה הראשונית אל התוצאה

ההמחשה מציגה חתך דו־ממדי: N(A) הוא הקו שעובר בראשית, והקו המקביל xₚ+N(A) מכיל את כל הפתרונות של Ax=b.

מה כדאי לגלות: עקבו אחר x₁,‏ xₚ ו־x₂ שעל הקו המוזז: שלושתם נשלחים לאותו b. הקו אינו עובר ב־0 כאשר b≠0, ולכן זו קבוצה אפינית ולא תת־מרחב.

אחרי שראינו

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

  • לזהות עקביות או סתירה מתוך RREF של [A|b] ומן התנאי b∈C(A).
  • לבנות פתרון פרטי אחד על ידי איפוס המשתנים החופשיים.
  • להוכיח שכל שני פתרונות נבדלים בווקטור מ־N(A).
  • לסווג מערכת ללא פתרון, עם פתרון יחיד או עם אינסוף פתרונות ולכתוב את כל קבוצת הפתרונות.

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

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

מערכת עקבית
מערכת Ax=b שיש לה לפחות פתרון אחד.
מטריצה מורחבת
[A|b], שבה פעולות השורה מופעלות יחד על המקדמים ועל אגף ימין.
שורת סתירה
שורה [0 ⋯ 0 | c] עם c≠0, המייצגת 0=c ומוכיחה שאין פתרון.
פתרון פרטי xₚ
פתרון מסוים אחד של Ax=b; הוא נקודת העוגן של קבוצת הפתרונות.
פתרון הומוגני xₙ
וקטור כלשהו ב־N(A), כלומר Axₙ=0.
קבוצה אפינית
הזזה של תת־מרחב: xₚ+N(A). היא אינה חייבת לעבור בראשית.
פתרון יחיד
מצב שבו המערכת עקבית ו־N(A)={0}, כלומר אין משתנים חופשיים.
דרגת המטריצה המורחבת
מספר ה־pivots ב־[A|b]; עקביות דורשת rank(A)=rank([A|b]).

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

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

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

להצגת נוסחת המפתחקראו כל סימן כפעולה, לא כמשהו שצריך לשנןx=xₚ+xₙ, xₙ∈N(A), אם b∈C(A)

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

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

  1. בודקים קודם אם יש נקודת עוגן

    מבצעים אלימינציה על [A|b]. אם מתקבלת שורת סתירה, אין xₚ ולכן אין קבוצת פתרונות לבנות.

    [0 ⋯ 0 | c], c≠0 ⇒ no solution
  2. מחברים את בדיקת העקביות למרחב העמודות

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

    b∈C(A) ⇔ rank(A)=rank([A|b]) ⇔ Ax=b consistent
  3. בוחרים פתרון פרטי פשוט

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

    Axₚ=b

    עוצרים לחשוב: לפני שממשיכים, הכפילו ובדקו בפועל ש־Axₚ=b.

  4. פותרים את הבעיה ההומוגנית

    אותה A קובעת את N(A), בלי תלות ב־b. משתמשים ב־RREF כדי לבנות את הפתרונות המיוחדים n₁,…,nₖ.

    xₙ=t₁n₁+⋯+tₖnₖ, Axₙ=0
  5. מוכיחים שכל חיבור הוא פתרון

    החלק הפרטי מייצר b והחלק ההומוגני מייצר 0, ולכן סכומם מייצר שוב b.

    A(xₚ+xₙ)=Axₚ+Axₙ=b+0=b
  6. מוכיחים שלא החמצנו אף פתרון

    אם x הוא פתרון כלשהו, חיסור xₚ מבטל את b. לכן x−xₚ שייך בהכרח ל־N(A), וכל פתרון מופיע בתיאור.

    Ax=b ⇒ A(x−xₚ)=0 ⇒ x=xₚ+xₙ
  7. מסווגים את כל האפשרויות

    סתירה נותנת אפס פתרונות. אם r=n אין משתנים חופשיים ולכן לכל b יש לכל היותר פתרון אחד; אם r=m כל b עקבי ולכן יש לפחות פתרון אחד. כאשר r=m=n יש בדיוק פתרון אחד לכל b. אם r<n ומערכת מסוימת עקבית, יש לה אינסוף פתרונות; ואם r<m קיימים יעדים b שאינם פתירים.

    r=n ⇒ at most one; r=m ⇒ at least one for every b; r=m=n ⇒ exactly one

    עוצרים לחשוב: בכל מקרה עקבי solution set=xₚ+N(A). כאשר b≠0 זו קבוצה אפינית ולא תת־מרחב.

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

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

דוגמה 1

קו פתרונות כמערכת אפינית

פתרו את A=[[1,2,−1],[2,4,−2]],‏ b=(3,6).

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

  2. המשוואה היחידה היא x₁+2x₂−x₃=3. נציב x₂=x₃=0 ונקבל xₚ=(3,0,0).

  3. במערכת ההומוגנית x₁=−2s+t, ולכן N(A)=span{(−2,1,0),(1,0,1)}.

  4. כל הפתרונות הם (3,0,0)+s(−2,1,0)+t(1,0,1).

  5. כפל ב־A משאיר 3 ו־6 לכל s,t, כי שני כיווני החופש נשלחים לאפס.

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

קבוצת הפתרונות היא מישור אפיני ב־ℝ³ בעל שתי דרגות חופש.

x=xₚ+s n₁+t n₂
דוגמה 2

אותה A, אגף ימין בלתי אפשרי

מה קורה לאותה A כאשר c=(3,7)?

  1. מבצעים R₂←R₂−2R₁ במטריצה [A|c].

  2. בצד המקדמים מתקבלת שורת אפס, אך באגף ימין מתקבל 7−2·3=1.

  3. השורה החדשה היא [0,0,0|1], כלומר הטענה 0=1.

  4. לכן c∉C(A), אין פתרון פרטי ואי אפשר לכתוב xₚ+N(A).

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

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

rank([A|c])=2>rank(A)=1

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

יישום

בזרוע רובוטית עם יותר מנועים מדרגות חופש, vₚ משיג את תנועת הקצה המבוקשת. וקטורים ב־N(A) משנים את תנוחת המפרקים בלי להזיז את הקצה, ולכן אפשר לנצל אותם כדי להתרחק ממכשול.

מלכודת נפוצה

מה כדאי לבדוק

לכתוב שהפתרון הוא span של vₚ ושל וקטורי האפס. המקדם של vₚ חייב להיות 1. בנוסף r<n מבטיח כיווני אפס, אך אינסוף פתרונות מתקבלים רק לאחר שנבדקה עקביות.

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

תרגול ומשוב

בדיקת הבנה

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

ידוע ש־Ax=b עקבית וש־N(A)=span{n}. איזו קבוצה היא קבוצת כל הפתרונות?

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

עכשיו אתם

אתגר קצר

עבור מטריצת העוגן A=[[2,4,6,4],[2,5,7,6],[2,3,5,2]], תארו את כל הפתרונות ל־b=(4,3,5), ובדקו מדוע c=(4,3,4) אינו נותן פתרון.

רמז ראשון

השתמשו ב־RREF(A) מן השיעורים הקודמים. בחרו x₃=x₄=0 לפתרון פרטי; לבדיקת c השתמשו ב־y=(−2,1,1).

הצגת דרך הפתרון
  1. הווקטור b מקיים −2b₁+b₂+b₃=−8+3+5=0, ולכן המערכת עקבית. עם x₃=x₄=0 מתקבל xₚ=(4,−1,0,0), ואכן Axₚ=4a₁−a₂=b.
  2. משיעור 5.2 ידוע N(A)=span{n₁,n₂}, כאשר n₁=(−1,−1,1,0) ו־n₂=(2,−2,0,1).
  3. לכן כל הפתרונות הם x=(4,−1,0,0)+s(−1,−1,1,0)+t(2,−2,0,1). זהו מישור אפיני ב־ℝ⁴.
  4. עבור c מתקבל (−2,1,1)ᵀc=−8+3+4=−1≠0. מאחר שהווקטור הזה מאונך לכל עמודות A,‏ c אינו במרחב העמודות ואין פתרון.

מימוש הנושא

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

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

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

completeSolution מצמצמת את [A|b], בודקת שורת סתירה, בונה xₚ עם פרמטרים מאופסים ומחלצת מאותה RREF את כיווני N(A).

פלט צפוי

עבור b יוחזר consistent=true,‏ particular=[4,−1,0,0] ושני כיווני האפס של העוגן. עבור c יוחזר consistent=false.

ניסוי המשך

החליפו את הפתרון הפרטי על ידי הוספת 5 פעמים כיוון האפס ובדקו שהתיאור המלא לא השתנה. אחר כך כִּפלו את A ואת b באותו גורם קטן.

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

מימוש חישובי

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

  for (let column = 0;
       column < columns && 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 completeSolution(A, b, relativeTolerance=1e-12) {
  const variables = A[0].length;
  const augmented = A.map((row, i) => [...row, b[i]]);
  const { matrix, pivots } = rref(
    augmented,
    relativeTolerance,
    variables,
  );
  const coefficientPivots = pivots.filter((column) => column < variables);
  const inconsistent = pivots.includes(variables);

  if (inconsistent) {
    return {
      consistent: false,
      rankA: coefficientPivots.length,
      rankAugmented: pivots.length,
      rref: matrix,
    };
  }

  const free = Array.from({ length: variables }, (_, j) => j)
    .filter((j) => !coefficientPivots.includes(j));
  const particular = Array(variables).fill(0);
  coefficientPivots.forEach((column, row) => {
    particular[column] = matrix[row][variables];
  });
  const nullspaceBasis = free.map((freeColumn) => {
    const vector = Array(variables).fill(0);
    vector[freeColumn] = 1;
    coefficientPivots.forEach((column, row) => {
      vector[column] = -matrix[row][freeColumn];
    });
    return vector;
  });

  return {
    consistent: true,
    rankA: coefficientPivots.length,
    rankAugmented: coefficientPivots.length,
    particular,
    nullspaceBasis,
    rref: matrix,
  };
}

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

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

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

  • בודקים עקביות לפני שמחפשים את כל הפתרונות.
  • פתרון פרטי אחד הוא נקודת עוגן; N(A) מספק את כל כיווני התנועה ממנה.
  • כל הפתרונות ורק הם נכתבים x=xₚ+xₙ.
  • מערכת עקבית היא יחידה כאשר N(A)={0}, ואינסופית כאשר יש לפחות משתנה חופשי.

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

תחנה 2 — בונים את כל משפחת הפתרונות

מצאו תחילה xₚ, אחר כך נעו לאורך כיווני N(A). בדקו בכל נקודה שהפלט נשאר b והבחינו בין קו אפיני, נקודה ומצב ללא פתרון.

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

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

ספר הלימוד: עמ׳ 273–284