Метод Ньютона в С++
Метод Ньютона, алгоритм Ньютона (также известный как метод касательных) — это итерационный численный метод нахождения корня (нуля) заданной функции. Метод был впервые предложен английским физиком, математиком и астрономом Исааком Ньютоном (1643—1727). Поиск решения осуществляется путём построения последовательных приближений и основан на принципах простой итерации. Метод обладает квадратичной сходимостью. Улучшением метода является метод хорд и касательных. Также метод Ньютона может быть использован для решения задач оптимизации, в которых требуется определить нуль первой производной либо градиента в случае многомерного пространства. Подробнее о методе можно почитать тут. Здесь же приведем код для решения уравнения: \(x^{2}-9x+14=0\) или любого аналогичного. Чтобы решить ваше уравнение перепишите строчку в коде в с уравнением.
#includeusing 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;}