#include <iostream>
#include <cmath>
// Функція, для якої шукаємо корінь
double function(double x) {
// Приклад: x^2 - 4
return x * x - 4;
}
// Похідна функції
double derivative(double x) {
// Похідна від x^2 - 4
return 2 * x;
// Функція методу дотичних (Ньютона)
double newtonMethod(double a, double b, double epsilon) {
double x = (a + b) / 2; // Початкове наближення
int iterations = 0; // Кількість ітерацій
while (std::abs(function(x)) > epsilon) {
x = x - function(x) / derivative(x);
iterations++;
std::cout << "Кількість ітерацій: " << iterations << std::endl;
return x;
int main() {
double a, b, epsilon;
std::cout << "Введіть початок відрізка (a): ";
std::cin >> a;
std::cout << "Введіть кінець відрізка (b): ";
std::cin >> b;
std::cout << "Введіть точність похибки (epsilon): ";
std::cin >> epsilon;
double root = newtonMethod(a, b, epsilon);
std::cout << "Знайдений корінь: " << root << std::endl;
return 0;
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
#include <iostream>
#include <cmath>
// Функція, для якої шукаємо корінь
double function(double x) {
// Приклад: x^2 - 4
return x * x - 4;
}
// Похідна функції
double derivative(double x) {
// Похідна від x^2 - 4
return 2 * x;
}
// Функція методу дотичних (Ньютона)
double newtonMethod(double a, double b, double epsilon) {
double x = (a + b) / 2; // Початкове наближення
int iterations = 0; // Кількість ітерацій
while (std::abs(function(x)) > epsilon) {
x = x - function(x) / derivative(x);
iterations++;
}
std::cout << "Кількість ітерацій: " << iterations << std::endl;
return x;
}
int main() {
double a, b, epsilon;
std::cout << "Введіть початок відрізка (a): ";
std::cin >> a;
std::cout << "Введіть кінець відрізка (b): ";
std::cin >> b;
std::cout << "Введіть точність похибки (epsilon): ";
std::cin >> epsilon;
double root = newtonMethod(a, b, epsilon);
std::cout << "Знайдений корінь: " << root << std::endl;
return 0;
}