Zahlenwerte in einen Vektor bzw Matrix schreiben



  • #include <stdio.h> 
    
    #define IDX 5
    
    int main() 
    { 
            int k; 
            double b[IDX]; 
            double x[IDX]; 
    
            for(k=0; k<5; k++) 
                { 
                    b[k] = 0; 
                    x[k] = 0; 
                    printf("\n %lf   %lf\n",b[k],x[k]); 
                } 
    }
    

    😉



  • so läuft das also ....

    vielen dank 🙂



  • Hallo nochmal von mir,

    also ich versuch jetzt schon geraume Zeit, diese Gleichung hier zu Programmieren

    x[k] = b[k] – mat[k][0] * x[0] – . . . – mat[k][k-1] * x[k-1])

    mein Problem ist, dass ich nicht weiss wie ich die ganzen Eregbnisse aus den vorherigen k's ins aktuelle bekomme.

    wär super wenn ihr mir helfen könntet, is das letzte Problem, dass mich noch davon trennt, meine Prüfungszulassung zu bekommen.

    Danke



  • Was du brauchst, nennt sich Schleife:

    double res=b[k];
    for(int i=0;i<k;++i)
      res-=mat[k][i]*x[i];
    


  • sorry, versteh nich wie du das meinst

    also was ich habe sieht so aus

    int main(void)
    {
    		int k;
    		double b[IDX];
    		double x[IDX];
    		double x2[IDX];
    		double test=0;
    
    		fill_matrix ();
    
    		for(k=0; k<5; k++)
                {
                    b[k] = 0;
                    x[k] = 0;
                    printf("\n %lf   %lf\n",b[k],x[k]);
                }
    
    		for(i=0; i<spalte; i++)
    			{
    
    				for(j=0; j<spalte; j++)
    					{
    						printf(" %lf", matrix[i][j]);
    					}
    			printf ("\n");
    			}
    
    		for (k=0;k<=4;k++)
    			{
    				printf ("\n");
    				b[k] = ((k+1)*(k+2))/2;
    				printf(" %lf", b[k]);
    			}
    
    		for (k=0;k<=4;k++)
    			{
    				x[k] = b[k] - matrix[k][k-1]*x[k-1];
    				printf ("\n%lf %lf %lf", matrix[k][k-1], b[k], x[k]);
    			}
    }
    

    bei der letzten schleife, werden die ersten 2 werte noch richtig ausgegeben, ab dem 3. aber nicht mehr weil die ergebnisse der vorherigen matrix[k][k-1]'s nicht zusätzlich subtrahiert werden.
    so hab ichs zumindest verstanden 😕



  • < Error Detected >
    x[k] = b[k] - matrix[k]**[k-1]***x[k-1];// !!! k-1 < 0 !!!
    < Detection Completed at 19:18:37 21.06.2007 >



  • ja dachte mir auch, dass das nicht geht. aber scheinbar ist bei mir k-1 für k=0 null, ebenso bei der matrix.

    das könnte man ja lösen indem man, vorher den wert für x[0] ausechnet, dieser ist nämlich 1 bei meiner aufgabe.



  • jebus schrieb:

    das könnte man ja lösen indem man, vorher den wert für x[0] ausechnet, dieser ist nämlich 1 bei meiner aufgabe.

    👍 Machen Sie es so ! 👍



  • ja gut aber wenn ich das so mache, dann is mein problem doch noch immer nich gelöst ?



  • habs jetzt selber hinbekommen,

    x[0] = 1.0;
    		printf ("\n\n%lf", x[0]);
    		for (k=1;k<=4;k++)
    			{
    				for (m=1;m<=k;m++)
    					{
    						res = matrix[k][k-m]*x[k-m];
    						neures = res + neures;
    					}
    				x[k] = b[k] - neures;
    				neures = 0;
    				printf ("\n%lf %lf %lf", matrix[k][k-1], b[k], x[k]);
    			}
    

    vielen dank trotzdem an die leute die sich gedanken darum gemacht haben 🙂


Anmelden zum Antworten