aboutsummaryrefslogtreecommitdiff
path: root/integral.c
diff options
context:
space:
mode:
Diffstat (limited to 'integral.c')
-rw-r--r--integral.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/integral.c b/integral.c
new file mode 100644
index 0000000..9509624
--- /dev/null
+++ b/integral.c
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include <math.h>
+
+#define PI 3.14159
+
+
+const float range_bottom = PI / 2;
+const float range_top = 2 * PI / 3;
+const float intervals = 100000;
+
+float f(float x)
+{
+ return (1 / sin(x));
+}
+
+int main(void)
+{
+ float oversum, undersum, average, steps;
+ steps = (range_top - range_bottom) / intervals;
+
+ for(float i = range_bottom; i <= range_top; i += steps)
+ {
+ oversum += steps * f(i);
+ undersum += steps * f(i - steps);
+ }
+
+ average = (oversum + undersum) / 2;
+
+ printf("Area under f(x) between %f and %f:\n", range_bottom, range_top);
+ printf("%f\n", average);
+ printf("Interval: %f\n", steps);
+}