Написати код на с++ Знаходження кореня та кількості ітерацій рівняння методом дотичних(Ньютона)
Кінці відрізка та точність похибки ввести з клавіатури

wingluhova82 wingluhova82    2   30.05.2023 03:37    0

Ответы
NeonMax NeonMax  30.05.2023 06:00

#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;

}

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика