//public delegate double HamMotBien(double x); public double TichPhan(double giaTriDau, double giaTriCuoi, double SoDoan, HamMotBien hamfx) { double h = (giaTriCuoi - giaTriDau) / SoDoan; double kq = (h / 2) * (hamfx(giaTriDau) + hamfx(giaTriCuoi)); for (int i = 1; i <= SoDoan - 1; i++) { kq = kq + h * (hamfx(giaTriDau + i * h)); } return(kq); }
//public delegate double HamMotBien(double x); public double TimNgiem(double GTDau, double GTCuoi, double saiso, HamMotBien hamfx) { double Trungdiem = 0; while (GTCuoi - GTDau > saiso) { Trungdiem = (GTDau + GTCuoi) / 2; double sign = hamfx(Trungdiem) * hamfx(GTCuoi); if (sign > 0) { GTCuoi = Trungdiem; } else if (sign < 0) { GTDau = Trungdiem; } else { return(Trungdiem); } } return(Trungdiem); }