program odeiv1te; uses typ, ode; var ex, nv, i, term: ArbInt; a, b, d, ya, yb, ae: ArbFloat; function f(x, y: ArbFloat): ArbFloat; begin f := -10 * (y - sqr(x)); end; {f} function g(x, y: ArbFloat): ArbFloat; begin g := -100 * (y - sin(x)) + cos(x); end; {g} function h(x, y: ArbFloat): ArbFloat; begin h := 15 * y; end; {h} function phi(x: ArbFloat): ArbFloat; begin phi := -exp(-10 * x) * 0.02 + sqr(x) - x * 0.2 + 0.02; end; {phi} begin Write(' program results odeiv1te'); case sizeof(ArbFloat) of 4: writeln('(single)'); 6: writeln('(real)'); 8: writeln('(double)'); end; Read(nv); writeln('program results odeiv1te'); writeln; writeln(' number of examples: ', nv: 2); for ex := 1 to nv do begin writeln; writeln(' example number :', ex: 2); Read(a, b, ya, ae); d := b - a; writeln('a': 3, 'b': 5, 'yb': 12, 'phi(b)': 20, 'ae': 10, 'term': 9); for i := 1 to 5 do begin odeiv1(@f, a, ya, b, yb, ae, term); writeln(a: 5: 2, b: 5: 2, ' ', yb: numdig, ' ', phi(b): numdig, ae: 9, term: 3); a := b; ya := yb; b := b + d; end; {i} writeln(' -------------------------------------------------'); end; {ex} a := 0; ya := 1; b := 1; ae := 1e-6; odeiv1(@g, a, ya, b, yb, ae, term); writeln(a: 5: 2, b: 5: 2, ' ', yb - sin(1): numdig, ' ', ae: 9, term: 3); a := 0; ya := 1e-3; b := 1; ae := 1e-4; odeiv1(@h, a, ya, b, yb, ae, term); writeln(a: 5: 2, b: 5: 2, ' ', yb: numdig, ' ', 1e-3 * exp(15): numdig, ae: 9, term: 3); a := 0; ya := 1e-3; b := 1; ae := 1e-6; odeiv1(@h, a, ya, b, yb, ae, term); writeln(a: 5: 2, b: 5: 2, ' ', yb: numdig, ' ', 1e-3 * exp(15): numdig, ae: 9, term: 3); a := 0; ya := 1e-3; b := a; ae := 1e-6; odeiv1(@h, a, ya, b, yb, ae, term); writeln(a: 5: 2, b: 5: 2, ' ', yb: numdig, ' ', 1e-3 * exp(15): numdig, ae: 9, term: 3); a := 0; ya := 1e-3; b := a; ae := 0; odeiv1(@h, a, ya, b, yb, ae, term); writeln(a: 5: 2, b: 5: 2, ' ', yb: numdig, ' ', 1e-3 * exp(15): numdig, ae: 9, term: 3); Close(input); Close(output); end.