Browse Source

H1 und H2 a

master
maasp 5 years ago
parent
commit
c8ed5d0ed9
1 changed files with 27 additions and 9 deletions
  1. 36
      Hausaufgaben/ComputerphysikAbgabe/src/ComputerphysikAbgabe.c

36
Hausaufgaben/ComputerphysikAbgabe/src/ComputerphysikAbgabe.c

@ -35,7 +35,7 @@ double IntRomb(double x1, double x2, int n, double a, double z,
h[0] = (x2 - x1) / (n - 1); //Erste Schrittweite berechnen
T[0][0] = trapez(n, a, z, f1, x1, x2); //erstes Trapez berechnen
T[0][0] = trapez(n, a, z, func, x1, x2); //erstes Trapez berechnen
for (i = 1; i <= mmax; i++) {
n = n * 2; //Trapeze für k=0 berechnen, indem man n vergrößert
@ -65,21 +65,39 @@ double IntRomb(double x1, double x2, int n, double a, double z,
free(h);
return ergebnis;
}
double potenzial(double x1, double x2,int n,double a,double z,double (*func) (double, double, double),double eps){
double V;
double alpha=1;
double Q=1;
V=alpha*(Q/a)*IntRomb(x1,x2,n,a,z,f1,eps);
return V;
}
void ableitung(double x1, double x2, double a, double z, int n,double eps, double *dfp){
double f[2];
f[0]=potenzial(x1,x2,n,a,z+eps,f1, eps);
f[1]=potenzial(x1,x2,n,a,z-eps,f1, eps);
*dfp = -1*(f[0] - f[1]) / (2 * eps); //Differenzenquotient
}
int main(void) {
double z, a;
int n;
int eps = 1e-8; //genauigkeit epsilon
double eps = 1e-8; //genauigkeit epsilon
//Eingabe der Variablen
printf("Bitte geben Sie den Abstand der Punktladung von der x-Achse z ein \n");
scanf("%lf\n", &z);
printf("Bitte geben Sie n ein \n");
scanf("%d\n", &n);
double df;
printf("Bitte geben Sie den Abstand der Punktladung von der x-Achse z ein\n ");
scanf("%lf", &z);
printf("Bitte geben Sie n ein\n");
scanf("%d", &n);
printf("Bitte geben Sie a ein\n");
scanf("%lf\n ", &a);
scanf("%lf", &a);
double x1 = -5; //Integralgrenzen
double x2 = 5;
printf("Ende %f\n", IntRomb(x1, x2, 20, a, z, f1, eps)); //Ergebnis mit hilfe von IntRomb
printf("Das Integral ist %f\n", IntRomb(x1, x2, n, a, z, f1, eps)); //Ergebnis mit hilfe von IntRomb
printf("Das Potenzial ist %f", potenzial(x1,x2,n,a,z,f1,eps));
ableitung(x1,x2,a,z,n,eps,&df);
printf("Das E-Feld an der Stelle %lf ist:%f\n", z, df);
}
Loading…
Cancel
Save