Vektornormen in C
Verfasst: So Jan 15, 2017 3:13 pm
Hallo,
ich soll ein C Programm schreiben, das die Vektornormen berechnet (mit n als Länge des Vektors und v als Feld von n Werten vom Typ double)
Die Vektoren der Länge 100 sollen mit Zufallszahlen aus 0 und 1 initialisiert und aufgerufen werden .
Ich habe allerdings keine Idee, wie ich die letzte Vektornorm für einen vinf= max |vi| umsetzen soll, der scheinbar den Betrag der Höchsten Komponente des Vektors wiedergeben soll...
Auch weiß ich nicht, warum in meiner Vorgabe steht ich soll enum{N=100} verwenden um den Vektor zu initialisieren, und trotzdem die Unterfunktionen mit int n bennen, also ich verstehe nicht wofür n da sein soll...
Das habe ich bisher
ich soll ein C Programm schreiben, das die Vektornormen berechnet (mit n als Länge des Vektors und v als Feld von n Werten vom Typ double)
Die Vektoren der Länge 100 sollen mit Zufallszahlen aus 0 und 1 initialisiert und aufgerufen werden .
Ich habe allerdings keine Idee, wie ich die letzte Vektornorm für einen vinf= max |vi| umsetzen soll, der scheinbar den Betrag der Höchsten Komponente des Vektors wiedergeben soll...
Auch weiß ich nicht, warum in meiner Vorgabe steht ich soll enum{N=100} verwenden um den Vektor zu initialisieren, und trotzdem die Unterfunktionen mit int n bennen, also ich verstehe nicht wofür n da sein soll...
Das habe ich bisher
Code: Alles auswählen
#include <stdlib.h>
#include <time.h>
#include <math.h>
enum { N = 100 };
double norm1(int n, double* v) //Namen der Unterfunktionen, sowie enum{N=100} sind vorgegeben, aber ich weiß nicht wofür sowohl N als auch n benötigt werden...
{
double v1;
v1=v1+*v
return v1;
}
double norm2(int n, double* v)
{
double v2;
v2=v2+(*v*2)
return v2;
}
double normInf(int n, double* v)
{
double vinf; //soll eigentlich besagter Vektor werden, dessen Betrag der höchsten Komponente ausgegeben wird
return vinf;
}
int main(void)
{
double v[N], v1, v2, vinf;
int n=100;
srand(time(NULL));
for (int i = 0; i < N; i++)
{
v[i] = (double)rand() / RAND_MAX; //Initialisiere v mit Zufallszahlen von 0 bis 1
norm1(&v[i], n);
norm2(&v[i], n);
normInf(&v[i], n);
}
v2=sqwrt(v2);
printf("Die Vektornormen betragen:\nV1=%lf\nV2=%lf\nVInf=%lf\n", v1, v2, vinf);
return 0;
}