3.4.2 Der Backslash-Operator in MATLAB

Der Befehl

x = A\b
berechnet die LU-Faktorisierung mit Spaltenpivotierung (partielle Pivotierung) und löst das System durch Vorwärts- und Rückwärtseinsetzen.
     >> A

     A =

          1     2     4
          3     5     4
          4     6     9

     >> b

     b =

          1
          1
          1

     >> x=A\b

     x =

        -1.6667
         1.1111
         0.1111

     >> norm(b-A*x)

     ans =

        2.2204e-16

     >> y=U\L\P'*b

     y =

        19.0000
       -16.5000
        16.2500

     >> y=U\(L\(P'*b))

     y =

        -1.6667
         1.1111
         0.1111
Man kann auch Gleichungssysteme mit mehreren rechten Seiten lösen.
     >> b=[1 1;1 2;1 3]

     b =

          1     1
          1     2
          1     3

     >> x=A\b

     x =

        -1.6667    0.3333
         1.1111    0.1111
         0.1111    0.1111

     >> norm(b-A*x)

     ans =

        3.1402e-16

Wenn man in MATLAB den Backslash-Operator braucht, wird zwar die LU-Zerlegung der involvierten Matrix berechnet. Diese Zerlegung geht aber nach der Operation verloren. Deshalb kann es sinvoll sein die Faktorisierung explizit abzuspeichern, insbesondere wenn die Gleichungssysteme hintereinander gelöst werden müssen.



Peter Arbenz 2008-09-24