Einführung in Mathematica XVI

Lineare Gleichungssysteme

© Jürgen Schnack, 2012/06/12

Problem

Suchen die Lösung eines linearen Gleichungssystems:

m x = b

({{, LinearSolve[m,b]
finds an x which solves the matrix equation m.x==b. }, {, LinearSolve[m]
generates a LinearSolveFunction[…] which can be applied repeatedly to different b. }})

Beispiel 1

Koeff1={{a,b},{c,d}};
Sol1=LinearSolve[Koeff1,{x,y}]

Test=Simplify[Koeff1.Sol1]

Analytisch

Beispiel 2

Koeff2=(({{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}));
Sol2=LinearSolve[Koeff2,{10,11,12}]

Test=Simplify[Koeff2.Sol2]

Analytisch

Beispiel 3

Koeff3=(({{1, 2, 0}, {2, 5, 7}, {0, 7, 9}}));
RechteSeite3=(({{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}));
Sol3=LinearSolve[Koeff3,RechteSeite3]

Test=Simplify[Koeff3.Sol3]

Matrixinversion!

Beispiel 4

Koeff4=(({{1, 2, 0}, {2, 5, 7}, {0, 7, 9}}));
L4=LinearSolve[Koeff4]  (* ohne rechte Seite *)

Sol41=L4[{1,0,0}]

Sol41=L4[{0,1,0}]

Dekomposition kann mehrfach genutzt werden.

Schluss

Mathematica bietet effektive Lösungen für lineare Gleichungssysteme,
sowohl analytisch wie numerisch und approximativ.

Z.B.:

s=SparseArray[{{i_,i_}->-2.,{i_,j_}/;
Abs[i-j]==1->1.},{10^6,10^6}]

Timing[LinearSolve[s,RandomReal[1,10^6],Method->"Krylov"];]