determinante berechnen
-
hab das mal versucht und bin zu folgendem schluss gekommen : klappt nicht
ka wie ich das grade biegen kann ,vielleicht wisst ihr worans liegt
das programm soll einfach nur eine det. 3. ordnung berechnenint anzahl,dim,ordnung,i/*Zeile*/,j/*Spalte*/,l/*multiplikant*/,m/*Zeile*/,n/*Spalte*/; double determinante=0,hilfsmatrix[2][2]; for (l=0;l<3;l++) { for (j=0,n=0;j<3;j++,n++) { m=0;n=0; for (i=1,m=0;i<3;i++,m++) { if (l != j) { matrix[i][j] = matrix[0][l] * matrix[i][j]; hilfsmatrix[m][n] = matrix[i][j]; } } } if (l == 0 || l == 2 || l == 4 || l == 6 || l == 8)determinante = determinante + ( (hilfsmatrix[0][0] * hilfsmatrix[1][1]) - (hilfsmatrix[0][1] * hilfsmatrix[1][0]) ); if (l == 1 || l == 3 || l == 5 || l == 7 || l == 9)determinante = determinante - ( (hilfsmatrix[0][0] * hilfsmatrix[1][1]) - (hilfsmatrix[0][1] * hilfsmatrix[1][0]) ); } printf("\n Die Determinante betraegt: %.2lf",determinante);
ein problem ist auf jeden fall schon das in die "hilfsmatrix" nicht die richtigen werte reingeschriben werden ,in die erste spalte schreibt er was rein ,in die 2. aber nur nullen,kann mir nicht erklären wieso.
(und ja ich weiß das des m und n überflüssig ist)
-
du schreibst ueber arraygrenzen.
hilfsmatrix[3][3] muss es heissen, weil ein array[n] indices von 0 bis n-1 hat, nicht von 1 bis n.
*spekulative-hilfe* dein algorithmus ist mir absolut nicht klar. gib mal nen link auf eine mathematische erklaerung fuer deinen algo.
-
ne daran liegts nicht ...hab sie sogar zu groß gemacht ,in den array müssen nur 4 werte rein,die werden dann immer überschrieben
das is das stinknormale verfahren dazu ,link hab ich keinen
-
kann niemand helfen ?
-
beschreibe einen mathematischen algorithmus zum berechnen der determinante.
-
Ho
dreireihige Determinanten lassen sich mit der Regel von Sarus berechnen.
Ist die Matrix in einem a[3][3] abgelegt, berechnet sich die Determinante
wie folgt:det(A)=a[0][0]*a[1][1]*a[2][2]+a[0][1]*a[1][2]*a[2][0]+a[0][2]*a[1][0]*a[2][1]-a[2][0]*a[1][1]*a[0][2]-a[2][1]*a[1][2]*a[0][0]-a[2][2]*a[1][0]*a[0][1]
-
nicht schnell aber funzt...
-
Und wie berechnet man dann die Determinante zu ner Matrix[255][255].
Geht des net alles a weng kürzer???
Bitte helft mir,muss des programm in ner Woche hab...
Und wenns net zuviel Umstände macht, vielleicht könnt ihr mir auch noch sach, wie die Inversenbildung dieser Matrix mit [255][255] funktioniert( Math. Verfahren nach Jordan-Gauß-Algorithmus)Danke scho ma im voraus!
-
@ curry-king : ja bei der3. ordnung gehts auch so ,nur ich wollt das programm noch zu einer det. x.-ordnung umfrimeln
ich hätt das nur mit einer rekursiven funktion machen sollen hab ich gemerkt
so wie ichs oben gemacht hab isses mathematisch falsch,da erst die det. von den untermatrizen 2. ordnung berechnet werden müssen bevor die multiplikation ausgeführt werden kann
@ nullahnung:versuchs doch mal selber und poste deinen weg dann mal bitte hier
-
ich hätt das nur mit einer rekursiven funktion machen sollen hab ich gemerkt
so wie ichs oben gemacht hab isses mathematisch falsch,da erst die det. von den untermatrizen 2. ordnung berechnet werden müssen bevor die multiplikation ausgeführt werden kannso wird es doch in dem link den ich dir gepostet habe gemacht...
-
oh das hab ich übersheen ,danke