Autor Beitrag
Dang1001
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 15.05.10 14:08 
Hallo zusammen.

ich bin gerade dabei mich in C# einzuarbeiten. Und stehe nun vor einem größerem Problem.

Ich benötige eine Funktion die mir die Inverse einer Matrix ausgibt. Dabei kann bei jedem durchlauf die größe der Matrix sich verändern. Und es ist auch leider nicht so das es sich hier um kleiner Matrizen sich handelt, die man zu Fuß ausrechnen könnte sondern sie haben durchschnittlich eine größe von 20 x 20 Daten.

Am liebsten würde ich die Funktion aufrufen, die Matrix übergeben und dann einfach über return die Inverse dieser Matrix zurückerhalten.

Mir fehlt aus Gründen der Erfahrung überhaupt einmal eine Ansatz zur Lösung dieses Problems.

Vielleicht könnt ihr mir auch nur ein Stück weiterhelfen und ich komme dann allein weiter.

Schon mal vielen Dank
Pimpfson
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 18.05.10 20:08 
Hi,

ich hab selbst kaum Programmiererfahrung, aber hier www.mathdotnet.com/d...mCurrentRelease.ashx gibt es eine Bibliothek, die sich mit numerischer Mathematik beschäftigt. Laut Hilfe gibt es im Namensraum LinearAlgebra eine Matrix Klasse, die die Methode Solve implementiert zur Lösung von A*X=B.

Wenn B die Einheitsmatrix ist, ergibt X deine Inverse!

Nebenbei: Es sollte aus numerischen Gründen eigentlich darauf verzichtet werden, die Inverse zu berechnen. Versuche lieber jedes Mal ein Gleichungssystem zu lösen. D.h. wenn du A*X=B für mehrere B ausrechnen musst, solltest du trotzdem jedes Mal die Gleichung lösen, anstelle von einmaligem Invertieren und dann Multiplizieren mit der Inversen.