#include <iostream>
Підключає стандартну бібліотеку введення і виведення.
cout — вивід на екранcin — введення з клавіатуриendl — перехід на новий рядок#include <cmath>
Підключає математичну бібліотеку.
pow() — піднесення до степеняfabs() — модуль числаlog() — натуральний логарифмusing namespace std;
У C++ багато функцій знаходяться у просторі імен std.
Без цього рядка потрібно писати:
std::cout std::cin
Завдяки цьому рядку можна писати коротше:
cout cin
double ln_approx(double a, double eps)
Функція обчислює наближене значення логарифма.
double — тип даних (дійсне число)ln_approx — назва функціїa — число для обчислення ln(a)eps — точність обчисленняdouble x = a - 1;
Використовується формула:
ln(1 + x)
Щоб знайти ln(a):
x = a - 1
double term = x;
term — поточний член ряду.
Перший член ряду:
x
double sum = 0;
sum — змінна для накопичення суми ряду.
int n = 1;
Ряд має вигляд:
x − x²/2 + x³/3 − x⁴/4 + ...
n — номер члена ряду.
while (fabs(term) > eps)
Цикл працює поки модуль члена ряду більший за точність.
fabs() — модуль числаeps — точністьsum += term;
Це скорочений запис:
sum = sum + term;
n++; term = pow(-1, n + 1) * pow(x, n) / n;
Формула члена ряду:
(-1)^(n+1) * x^n / n
return sum;
Функція повертає суму ряду — наближене значення ln(a).
int main()
З цієї функції починається виконання програми.
double a, eps; cout << "Enter a (>0): "; cin >> a; cout << "Enter epsilon: "; cin >> eps;
double result = ln_approx(a, eps);
Функція обчислює ln(a) з заданою точністю.
cout << "Approx ln(" << a << ") = " << result << endl;
cout << "Actual ln(" << a << ") = " << log(a) << endl;
Програма виводить:
log()return 0;
Означає, що програма завершилась без помилок.