Метод Ньютона в С++

Метод Ньютона, алгоритм Ньютона (также известный как метод касательных) — это итерационный численный метод нахождения корня (нуля) заданной функции. Метод был впервые предложен английским физиком, математиком и астрономом Исааком Ньютоном (1643—1727). Поиск решения осуществляется путём построения последовательных приближений и основан на принципах простой итерации. Метод обладает квадратичной сходимостью. Улучшением метода является метод хорд и касательных. Также метод Ньютона может быть использован для решения задач оптимизации, в которых требуется определить нуль первой производной либо градиента в случае многомерного пространства. Подробнее о методе можно почитать тут. Здесь же приведем код для решения уравнения: \(x^{2}-9x+14=0\) или любого аналогичного. Чтобы решить ваше уравнение перепишите строчку в коде в с уравнением.
#include 
using namespace std;
const int N=20;
//Функция для полинома:
double F(double x){
return x*x-9*x+14;}
//Функция поиска корня:
double FindRoot(double (*f)(double),double x0,int n){
double x=x0,df,h=0.00001;
df=(f(x+h)-f(x))/h;
for(int i=1;i<=n;i++)
 x=x-f(x)/df;
return x;}
int main(){
//Начальное приближение и корень:
double x0,x;
cout << "initial x0 = ";
cin >> x0;
//Поиск решения:
x=FindRoot(F,x0,N);
cout << "x = " << x << endl;
return 0;}
Онлайн всего: 28
Гостей: 28
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте