Browse Source

g,mnnbjkb

master
maasp 5 years ago
parent
commit
9ed6d8bddb
1 changed files with 6 additions and 6 deletions
  1. 12
      Hausaufgaben/ComputerphysikAbgabe/src/ComputerphysikAbgabe.c

12
Hausaufgaben/ComputerphysikAbgabe/src/ComputerphysikAbgabe.c

@ -26,7 +26,7 @@ double trapez(int n, double a, double z, double (*func)(double, double, double),
}
double IntRomb(double x1, double x2, int n, double a, double z,
double (*func)(double, double, double), int eps) {
double (*func)(double, double, double), double eps) {
int i, k; //Variablen für Schleifen
double ergebnis; //zum speichern des Ergebnis
double **T; //Trapezsummen (später als 2-dim Array)
@ -53,7 +53,7 @@ double IntRomb(double x1, double x2, int n, double a, double z,
+ (h[i] * h[i] / (h[i] * h[i] - h[i - k] * h[i - k])
* T[i - 1][k - 1]);
}
if (abs(T[i][i] - T[i - 1][i - 1]) <= eps) { //Abschätzen ob das Ergebnis genau genug ist wenn ja aus Schleife raus
if (T[i-1][i-1] / T[i][i] > (1 - eps) || T[i-1][i-1] / T[i][i] < (1 + eps)) { //Abschätzen ob das Ergebnis genau genug ist wenn ja aus Schleife raus
ergebnis = T[i][i];
break;
@ -127,12 +127,12 @@ double ges_efeld(int n, double a1, double a2, double z, double Q1, double Q2,
double d, double *df1, double *df2,
double (*func)(double, double, double), double eps) { //verwendet numerisch berechnetes E-Feld
efeld(a1, z, n, Q1, eps, df1, func); //Berechnung E-Feld des 1. Drahtes
efeld(a2, d - z, n, Q2, eps, df2, func); //Berechnung E-Feld des 2. Drahtes
efeld(a2, z-d, n, Q2, eps, df2, func); //Berechnung E-Feld des 2. Drahtes
double E_ges = *df1 + *df2; //Superposition der E-Felder der einzelnen Drähte
return E_ges;
}
double secant_pauline(int n, double a1, double a2, double Q1, double Q2,
double secant_pauline(int n,double a1, double a2, double Q1, double Q2,
double d, double *df1, double *df2,
double (*func)(double, double, double), double eps) {
@ -162,7 +162,7 @@ double secant_pauline(int n, double a1, double a2, double Q1, double Q2,
int main(void) {
double z, a1, a2;
int n = 30;
int n = 10;
const double eps = 1e-8; //genauigkeit epsilon
const double eps2 = 1e-4;
double d = 12; //Abstand 2.Draht zum 1.
@ -199,6 +199,6 @@ int main(void) {
printf("Nullstelle %f\n",
secant_pauline(n, a1, a2, Q1, Q2, d, &df1, &df2, f1, eps2));
z = 0.1;
}
Loading…
Cancel
Save