Формула Тейлора
Сначала посмотрите на формулу Тейлора.Для функции, если функция гладкая и в определенной точке есть производные различных порядков, полином можно использовать для описания аппроксимации окрестности точки. Формула выглядит следующим образом:
метод Ньютона
Метод Ньютона обычно используется для решения корней уравнений и решения экстремальных значений.
Помимо метода градиентного спуска одним из наиболее часто используемых алгоритмов численной оптимизации является метод Ньютона. Для нелинейных уравнений его можно решить методом итераций Ньютона, который быстро сходится.
Основная идея состоит в том, что для нелинейной функции f(x) многочлен, разложенный на некоторую точку $x_{k}$ вблизи x, можно использовать для аппроксимации значения функции f(x) по формуле Тейлора, а функцией, соответствующей многочлену, является F(x), получаем минимальное значение F(x) в качестве новой точки итерации, а затем продолжаем расширять формулу Тейлора в новой точке итерации до тех пор, пока полученное минимальное значение не будет удовлетворять определенной точности.
принцип
Предполагая, что функция f(x) квадратично дифференцируема, квадратичное разложение Тейлора,
Полином g(x) является аппроксимацией f(x), а экстремум функции f(x) может быть преобразован в производную функцию от 0, а производная g(x) установлена равной 0,
получить,
То есть получается итерационная формула,
Новая точка $x_{k+1}$ продолжает приближаться к экстремальному значению до тех пор, пока первая производная не станет меньше некоторой ошибки.
итерационные шаги
код реализации
def h(x):
return x*x*x + 2*x*x +3*x + 4
def h1(x):
return 3*x*x + 4*x + 3
def h2(x):
return 6*x + 4
xk = 0
k = 1
y = 0
e = 0.0001
times = 10000
while k < times:
y = h(xk)
a = h1(xk)
if abs(a) <= e:
break
b = h2(xk)
xk -= a/b
k += +1
print("k = ", k)
print("x = ", xk)
print("y = ", y)
Ниже приведенырекламировать
========Время рекламы========
Моя новая книга «Анализ дизайна ядра Tomcat» продана на Jingdong, нуждающиеся друзья могут перейти кitem.JD.com/12185360.Контракт…Зарезервировать. Спасибо друзья.
Зачем писать «Анализ проектирования ядра Tomcat»
=========================
Добро пожаловать, чтобы следовать: