Initial commit.
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* Copyright (c) 2016 Nicolás A. Ortega
|
||||
* License: GNU GPLv3
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
|
||||
inline double func(double x);
|
||||
|
||||
int main(void) {
|
||||
double a, b;
|
||||
printf("Enter \"min, max\": ");
|
||||
scanf("%lf, %lf", &a, &b);
|
||||
|
||||
unsigned int parts;
|
||||
printf("Number of parts: ");
|
||||
scanf("%u", &parts);
|
||||
|
||||
double lRect, rRect, mRect, trap, simp;
|
||||
lRect = rRect = mRect = trap = simp = 0;
|
||||
for(unsigned int i = 0; i < parts; ++i) {
|
||||
double p0 = a + (i * (b - a) / parts);
|
||||
double p1 = p0 + ((b - a) / parts);
|
||||
lRect += func(p0) * (p1 - p0);
|
||||
rRect += func(p1) * (p1 - p0);
|
||||
mRect += func((p0 + p1) / 2) * (p1 - p0);
|
||||
trap += (func(p0) + func(p1)) / 2 * (p1 - p0);
|
||||
simp += (p1 - p0) / 6 * (func(p0) + func(p1) + 4 * func((p0 + p1) / 2));
|
||||
}
|
||||
|
||||
printf("Left Rectangle: %lf\n", lRect);
|
||||
printf("Right rectangle: %lf\n", rRect);
|
||||
printf("Middle Point Rectangle: %lf\n", mRect);
|
||||
printf("Trapezoidal: %lf\n", trap);
|
||||
printf("Simpson: %lf\n", simp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
double func(double x) {
|
||||
return pow(x, 3.0) + 4.0 * x - 2.0;
|
||||
}
|
||||
Reference in New Issue
Block a user