Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Uses crt, sysutils;
- Function calculateX(xFrom, i, step : real) : real;
- Begin
- calculateX := xFrom + i * step;
- End;
- Function yFormula(x : real) : real;
- Begin
- yFormula := exp(-(x - 2) * (x - 2));
- End;
- Function getQ(x0, h : real) : string;
- Begin
- getQ := '(x - ' + FloatToStrF(x0,ffgeneral,7,6) + ')/' + FloatToStrF(h,ffgeneral,7,6);
- End;
- Function calculateYDelta(xFrom, step : real; power, i : integer) : real;
- Begin
- If (power <= 1) Then
- calculateYDelta := yFormula(calculateX(xFrom, i, step))
- Else
- calculateYDelta := calculateYDelta(xFrom, step, power - 1, i) - calculateYDelta(xFrom, step, power - 1, i + 1);
- End;
- Procedure printNewton1(xFrom, step : real; n : integer; q : string);
- Var
- fact, yDelta : real;
- i, j : integer;
- Begin
- write('P(x) = ', calculateYDelta(xFrom, step, 0, 0):0:6);
- fact := 1;
- For i := 1 To n Do Begin
- fact *= i;
- yDelta := calculateYDelta(xFrom, step, i, 0);
- If (yDelta < 0) Then Begin
- yDelta *= -1;
- write(' - ');
- End
- Else
- write(' + ');
- write((yDelta / fact):0:6, '(' + q + ')');
- For j := 2 To i Do
- write('(' + q + ' - ', j - 1, ')');
- End;
- End;
- Procedure printNewton2(xFrom, step : real; n : integer; q : string);
- Var
- fact, yDelta : real;
- i, j : integer;
- Begin
- write('P(x) = ', calculateYDelta(xFrom, step, 0, n):0:6);
- fact := 1;
- For i := 1 To n Do Begin
- fact *= i;
- yDelta := calculateYDelta(xFrom, step, i, n - i);
- If (yDelta < 0) Then Begin
- yDelta *= -1;
- write(' - ');
- End
- Else
- write(' + ');
- write((yDelta / fact):0:6, '(' + q + ')');
- For j := 2 To i Do
- write('(' + q + ' + ', j - 1, ')');
- End;
- End;
- Var
- xFrom, xTo, step : real;
- n : integer;
- q : string;
- Begin
- xFrom := 2;
- xTo := 4;
- step := 0.2;
- n := Trunc((xTo - xFrom) / step);
- q := getQ(xFrom, step);
- printNewton1(xFrom, step, n, q);
- writeln;
- q := getQ(xTo, step);
- printNewton2(xFrom, step, n, q);
- End.
Advertisement
Add Comment
Please, Sign In to add comment