Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- int main(void){
- double dx = 0, dy = 0, dAO = 0, dAU = 0, dAT = 0, dxmin = 0, dxmax = 0, dXAbst = 0, dxph = 0, dyxph = 0, dAres = 0; /*dx: x-wert, dy: zugehöriger y-wert, dAO: Fläche Obersumme, dAU: Fläche Untersumme, dxmin: Untere Grenze,*/
- int iSpAnz = 0, iGelesen = 0, i = 0; /*SpaltenAnzahl*/
- fprintf(stderr, "Numerische Integration\n\nf(x)=x^2+2x+3\n\n");
- fprintf(stderr, "Untere Grenze:\t", dxmin);
- scanf("%lf", &dxmin);
- fprintf(stderr, "Obere Grenze:\t", dxmax);
- scanf("%lf", &dxmax);
- fprintf(stderr, "Spaltenanzahl:\t", iSpAnz);
- scanf("%d", &iSpAnz);
- /*do {
- iGelesen = scanf("%lf;%lf;%d", &dxmin, &dxmax, &iSpAnz);
- while(getchar()!='\n');
- } while(iGelesen != 3);
- */
- dXAbst = (dxmax - dxmin) / iSpAnz;
- for (i = 1; i <= iSpAnz; i = i + 1){
- dx = dxmin + dXAbst * i;
- dy = fabs(dx*dx + 2*dx + 3);
- dAO = dAO + dy * dXAbst;}
- for (i = 0; i < iSpAnz; i = i + 1){
- dx = dxmin + dXAbst * i;
- dy = fabs(dx*dx + 2*dx + 3);
- dAU = dAU + dy * dXAbst;}
- for (i = 0; i < iSpAnz; i = i + 1){
- dx = dxmin + dXAbst * i;
- dxph = fabs(dxmin + dXAbst * (i + 1));
- dy = fabs(dx*dx + 2*dx + 3);
- dyxph = dxph*dxph + 2*dxph + 3;
- dAT = dAT + (0.5 * dXAbst * (dy + dyxph));}
- iSpAnz = 10000;
- for (i = 0; i < iSpAnz; i = i + 1){
- dx = dxmin + dXAbst * i;
- dxph = fabs(dxmin + dXAbst * (i + 1));
- dy = fabs(dx*dx + 2*dx + 3);
- dyxph = dxph*dxph + 2*dxph + 3;
- dAres = dAres + (0.5 * dXAbst * (dy + dyxph));}
- fprintf(stderr, "Obersumme: %.2f\nUntersumme: %.2f\nTrapezregel: %.2f\nGenaue Flaeche (n=10000): %.2f\n", dAO, dAU, dAT, dAres);
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement