前言
本系列涉及线性与非线性规划中的几种规划算法
1.本节介绍牛顿法,是对一维搜索中的牛顿法的推广,求解一般无约束问题的牛顿法。
2.参考:陈宝林-最优化理论与算法
3.采用python编程实现,已测试,代码可行
一、牛顿法
关于一维牛顿和一般的牛顿方法的推导,参见陈宝林的牛顿法一节。下面直接给出代码实现。
二、代码示例
1.代码
代码如下(示例):
#牛顿法,输入符号变量,和目标函数的系数,得到目标函数
from sympy import *
import numpy as np
class New_ton:
def __init__(self,Xi,X0):
self.Xi = Xi
self.i = len(X0)#符号变量Xi是没有长度的
def dict(self,X):
dict = {
}
for index,item in enumerate(self.Xi):#存储初始值
dict[item] = X[index]
Xk = dict
return Xk
def d_function(self,f):#如何直接求解出矩阵排列的形式
df = []
for i in self.Xi:
df.append(diff(f,i))
df = np