Aitken-Verfahren, C-Programm |
22.11.2017, 18:23 | Auf diesen Beitrag antworten » |
bambi | Aitken-Verfahren, C-Programm Meine Frage: Guten Tag, Und zwar soll ich das Aitken-Verfahren (zur Konverenzbeschleunigung von Folgen) programmieren. DAs Programm schreibt mir für einen Vektor x (mit Länge n>=3) den Vektor y berechnen. Dabei definiert man y_n: = x_n - (x_(n+1) - x_n)² / x_(n+2) - 2x_(n+1) + x_n Für die Folge x_n gilt dan lim y_n -x / x_n - x = 0 Eine weiter Frage war was passiert mit der Folge x_n = q^n mit 0<q<1. Ok hab jetzt das Programm geschrieben und es kompiliert, jedoch gibt es mir -inf -inf -inf aus also passt da was nicht.... Meine Ideen: Hier mal der Code: #include <stdio.h> #include <stdlib.h> #include <assert.h> double square(double x){ return x*x; } void printVektor(double x[], int n){ int j=0; for(j=0;j<n;j++){ printf("%f\n",x[j]); } } void scanVektor(double x[], int n){ int j=0; printf("Vektor: \n"); for(j=0;j<n;j++){ printf("\nx[%d]=",j); scanf("%lf",&x[j]); } } double* aitken(double* x, int n){ assert(n>=3); int j=0; double* y=NULL; y=malloc((n-2)*sizeof(double)); for(j=0;j<(n-2);j++){ y[j]=x[j]-(square(x[j+1]-x[j])/(x[j+2]-2.*x[j+1]+x[j])); } assert(y!=NULL); return y; } |
|
|