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 berechnen

    int 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]
    




  • 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 kann

    so wird es doch in dem link den ich dir gepostet habe gemacht...



  • oh das hab ich übersheen ,danke


Anmelden zum Antworten