From fc907734642432c3d90d5b24aa7b544be2e103b3 Mon Sep 17 00:00:00 2001 From: maasp Date: Fri, 8 May 2020 12:48:36 +0200 Subject: [PATCH] nochmal --- .../src/ComputerphysikAbgabe.c | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Hausaufgaben/ComputerphysikAbgabe/src/ComputerphysikAbgabe.c b/Hausaufgaben/ComputerphysikAbgabe/src/ComputerphysikAbgabe.c index 7a7fa91..33b8a42 100644 --- a/Hausaufgaben/ComputerphysikAbgabe/src/ComputerphysikAbgabe.c +++ b/Hausaufgaben/ComputerphysikAbgabe/src/ComputerphysikAbgabe.c @@ -85,7 +85,7 @@ double potenzial(int n, double a, double z, } double InfInt(int n, double a, double z, double eps,double (*func)(double, double, double)) { double x1 = -1; //Grenzen definieren - double x2 = 1; + double x2 = 0; double R=IntRomb(x1,x2,n,a,z,func,eps); //Variable zum speichern des Ergebnis, Integral für erste Grenzen ausrechnen double lastR; //Vergleichsvariable definieren do { @@ -96,7 +96,7 @@ double InfInt(int n, double a, double z, double eps,double (*func)(double, doubl R = IntRomb(x1, x2, n, a, z, func, eps); //neues Ergebnis berechnen } while ((lastR/R<(1-eps)) || (lastR/R>(1+eps))); //Integralwerte vergleichen ,sodass deren Änderung kleiner als eps ist - return R; + return 2*R; } void efeld(double a, double z, int n, double eps, double *dfp,double (*func)(double, double, double)) { @@ -109,8 +109,8 @@ void efeld(double a, double z, int n, double eps, do { h=h/2; //h kleiner machen lastdf=*dfp; //Alte Ableitung auf neuer Variable speichern - f[0] = potenzial( n, a, z +(h), f1, eps); //f(z+h) berechnen - f[1] = potenzial(n, a, z - h, f1, eps); //f(z-h) berechnen + f[0] = potenzial( n, a, z +(h), func, eps); //f(z+h) berechnen + f[1] = potenzial(n, a, z - h, func, eps); //f(z-h) berechnen *dfp = -1* (f[0] - f[1]) / (2 * h); //Differenzenquotient @@ -142,5 +142,17 @@ int main(void) { printf("Das E-Feld an der Stelle %3.2lf ist:%f\n", z, potenzial(n,a,z,f2,eps)); double diff=fabs(df - potenzial(n,a,z,f2,eps)); printf("Differenz %1.10f", diff); + printf("Achtung schleife"); + for(int i=0; i<20; i++){ + efeld(a,z,n,eps,&df,f1); + printf("Das E-Feld an der Stelle %3.2lf ist:%f\n", z, df); + printf("Das E-Feld an der Stelle %3.2lf ist:%f\n", z, potenzial(n,a,z,f2,eps)); + double diff=fabs(df - potenzial(n,a,z,f2,eps)); + printf("ZZ %3.2lf\n", z); + printf("Differenz %1.10f \n", diff); + + z=z*2; + + } }