1 import fi.jyu.mit.ohj2.*;
2
7 public class Integroi2 {
8
9 interface FunktioRR {
10 public double f(double x);
11 }
12
13 static class SinFun implements FunktioRR {
14 public double f(double x) { return Math.sin(x); }
15 }
16
17 static class ExpFun implements FunktioRR {
18 public double f(double x) { return Math.exp(x); }
19 }
20
21 static class OmaFun implements FunktioRR {
22 public double f(double x) { return 2*x- 5; }
23 }
24
25 public static double integroi(FunktioRR f, double x1, double x2, int tiheys) {
26 double x,dx,summa=0;
27
28 dx = (x2- x1)/tiheys;
29
30 for (x=x1+dx/2 ; x<x2; x+=dx)
31 summa += f.f(x)*dx;
32
33 return summa;
34 }
35
36
37 public static void main(String[] args) {
38 double ifx;
39 ifx = integroi(new OmaFun(),0,5,100);
40 System.out.println("Integraali omafun(x) väliltä [0,5] on noin "+
41 Mjonot.fmt(ifx,7,5));
42 ifx = integroi(new SinFun(),0,Math.PI,1000);
43 System.out.println("Integraali sin(x) väliltä [0,pi] on noin "+
44 Mjonot.fmt(ifx,7,5));
45 ifx = integroi(new ExpFun(),0,1,500);
46 System.out.println("Integraali exp(x) väliltä [0,1] on noin "+
47 Mjonot.fmt(ifx,7,5));
48 }
49 }
50