tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
431
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Viciousness of Pills Viciousness of Pills ist offline Grünschnabel
    Registriert seit
    Dec 2004
    Beiträge
    1
    Ja Hallo,

    Das ist mein erster Post in eurem Forum und ich habe schon eine Bitte...

    Ich habe ein Programm zur Eigenwertberechnung einer 2x2 Matrix geschrieben... Im großen und ganzen geht es darum eine 2x2 Matrix einzugeben und dann die Eigenwerte zu berechnen...

    Ich habe das über die Koeffizienten des charakteristischen Polynoms gemacht (Einfach ein quadratisches Polynom und die Nullstellen sind die Eigenwerte.. Koeffizienten bekommt man mittels Formel, bleiben also immer gleich).

    Ich habe zwei Funktionen zur Lösung der quadratischen Polynoms geschrieben.. zwei deshalb weil ich bei der großen Lösungsformel einmal ein x/- habe...

    der C Compiler schreibt mir aber noch zwei Warnungen hin...
    und zwar:

    call to function eigenwertuno with no prototype.
    call to function eigenwertduo with no prototype.

    das ist der Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    
    #include <stdlib.h>
    #include <stdio.h>
    #include <math.h>
     
    #define ROWS 2
    #define COLS 2
    #define n 3
     
    int eigentwertuno(int *vektor)       //Funktion zur Eigenwertberechung
    {
    return(-vektor[1] + sqrt(vektor[1]*vektor[1] + 4*vektor[0]*vektor[2])/2*vektor[0]);
    }
     
    int eigentwertduo(int *vektor)       //Funktion zur Eigenwertberechung
    {
    return(-vektor[1] - sqrt(vektor[1]*vektor[1] + 4*vektor[0]*vektor[2])/2*vektor[0]);
    }
     
    int main ()
    {
    int **matrix = malloc(ROWS * sizeof(int*)); //Definiere Dynamisches Array, erstmals nur Zeilen, z.B.:{{1},{3}}
     
    int col_count = 0;
    int row_count = ROWS;
    int eingabe = 0;
    int i = 0;
     
    while(row_count--)                                  //Erweitere und initialisiere Dynamisches Array durch mehrere Einträge in den Spalten, z.B.:{{1,2},{3,4}}
         matrix[row_count] = malloc(COLS * sizeof(int));
     
    for (row_count = 0; row_count < ROWS; row_count++)
        {
         for (col_count = 0; col_count < COLS; col_count++)
         printf("Geben sie das Element [%d][%d] der Matrix ein:\n",row_count,col_count); 
         scanf("%d",&eingabe);   //Eingabe jedes einzelnen Wertes der 2x2 - Matrix
        }
        {
        int *vektor = malloc(3*sizeof(int)); //Definiere und initialisiere einen Dynamischen Vektor mit den Koeffizienten des charakteristischen Polynoms
     
        vektor[0] = 1;
        vektor[1] = -matrix[0][0]-matrix[1][1];
        vektor[2] = matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0];
     
        for (i = 0; i < n; i++)
        printf("Die Vektorkomponenten sind: vektor[%d]\n",&i);
        printf("die Eigenwerte der eingegebenen 2x2 - Matrix sind: %d %d\n",eigenwertuno(*vektor),eigenwertduo(*vektor));//Hier sollten die Eigenwerte angezeigt werden die oben berechnet werden...
        free(vektor); //disallokiert den Speicher des dynamischen Vektors
        vektor = NULL;
        }
        while(row_count--)
         free(matrix[row_count]); //disallokiert den Speicher der Matrix
        free(matrix);
        matrix = NULL;
     
        return(0);
    }

    was könnte falsch bzw. noch zu ersetzen sein ?


    Danke im Voraus !

    - VoP
     

  2. #2
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Ich habe nur kurz drübergesehen, aber ich glaube, dass du da nur ein syntaktisches Problem hast.

    Code :
    1
    
    printf("die Eigenwerte der eingegebenen 2x2 - Matrix sind: %d %d\n",eigenwertuno(*vektor),eigenwertduo(*vektor));//Hier sollten die Eigenwerte angezeigt werden die oben berechnet werden...

    Lass mal den '*' vor dem vektor weg, dann müsste es eigentlich gehen. Bin jetzt zu müde, den Grund dafür zu erklären.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

Ähnliche Themen

  1. Der letzte Schliff
    Von chuvak im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 4
    Letzter Beitrag: 17.11.09, 13:05
  2. Antworten: 11
    Letzter Beitrag: 28.12.07, 15:26
  3. Fast fertiges Banner brauch den letzen Schliff!
    Von IR-Bastian im Forum Stellenangebote (unentgeltlich)
    Antworten: 9
    Letzter Beitrag: 24.09.07, 09:13
  4. Letzter Schliff einer Münze
    Von consigliere im Forum Photoshop
    Antworten: 1
    Letzter Beitrag: 13.06.07, 23:31
  5. MP3 Player letzter Schliff ....
    Von Rodpacker im Forum Flash Plattform
    Antworten: 8
    Letzter Beitrag: 04.08.04, 05:06