123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- 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.
- 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.
|