Viciousness of Pills
Grünschnabel
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:
was könnte falsch bzw. noch zu ersetzen sein ?
Danke im Voraus !
- VoP
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:
#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