Warum liefert A^(-1)*b keine Warnung aber A\b bzw. inv(A)*b schon wenn A singulär ist?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hallo,
Matrix A ist singulär.
Wie unterscheiden sich beim Berechnen der Inversen von A die Methode A^(-1)*b von den Methoden inv(A)*b und A\b ? Gibt es außerdem einen Unterschied zwischen Methode inv(A)*b und Methode A\b?
LisaB
A = [1 -1; 0 0]
b = [-0.5; -0.5]
x = A^(-1)*b % keine Warnung
x = A\b % Warnung
x = inv(A)*b % Warnung
0 Commenti
Risposta accettata
Harald
il 15 Mag 2025
Hallo,
laut Dokumentation: "X^(-1) is equivalent to inv(X)". Warum das eine eine Warnung wirft und das andere nicht, kann ich auch nicht beantworten.
Zwischen A\b und inv(A)*b ist der Unterschied, dass im ersten Fall die Inverse nicht explizit berechnet wird, sondern "nur" das Gleichungssystem A*x = b gelöst wird. Im Algorithms-Bereich der Doku siehst du, wie das wann gemacht wird:
A\b ist schneller (wird natürlich erst bei größeren Matrizen deutlich) und liefert tendenziell genauere Ergebnisse.
rng(0)
A = rand(10000);
b = rand(10000,1);
tic; x1 = A\b; toc
tic; x2 = inv(A)*b; toc
res1 = norm(A*x1 - b)
res2 = norm(A*x2 - b)
Viele Grüße,
Harald
0 Commenti
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!