Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program SeriesSum;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- function LnOneMinusX(X: Real; Eps: Real; var N: Integer): Real;
- var
- R: Real;
- Sum: Real;
- Numerator, Denominator: Real;
- begin
- N := 0;
- Sum := 0;
- R := 1;
- Numerator := 1;
- Denominator := 0;
- while Abs(R) > Eps do
- begin
- Numerator := Numerator * X;
- Denominator := Denominator + 1;
- R := Numerator / Denominator;
- Sum := Sum - Numerator / Denominator;
- Inc(N);
- end;
- Result := Sum;
- end;
- var
- Eps: Real;
- X: Real;
- N: Integer;
- EpsValue: Real;
- PreciseValue: Real;
- begin
- Write('Enter X (from 0 to 1), Eps: ');
- ReadLn(X, Eps);
- EpsValue := LnOneMinusX(X, Eps, N);
- PreciseValue := Ln(1 - X);
- WriteLn;
- WriteLn('Step count: ', N);
- WriteLn('Ln(1 - X) = ', EpsValue:14:11, ' (with Eps: ', Eps, ')');
- WriteLn('Ln(1 - X) = ', PreciseValue:14:11, ' (precise)');
- WriteLn('Absolute error: ', Abs(PreciseValue - EpsValue):14:11);
- WriteLn('Relative error: ', Abs((PreciseValue - EpsValue) / PreciseValue):14:11);
- Readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment