前言
本系列涉及线性与非线性规划中的几种规划算法:
1.本节介绍三次拟合方法
2.参考:陈宝林-最优化理论与算法
3.采用python编程实现,已测试,代码可行。
一、三次拟合方法
三次拟合方法(三次插值方法),具体方法参考陈宝林的三次插值法这一小节。
需要自行给定可行的初始点,并计算目标函数值。
二、代码实现
1.代码
代码如下(示例):
#参考资料,陈宝林
#实现三次拟合,求解一维搜索的无约束问题,初始的两个点需要自己给出来。
from sympy import *
import numpy as np
import math
class Sancinihe_Function:
def __init__(self,F,Xi):
self.Xi = Xi
self.f = F
def d_function(self,df,X0):
#导数df已知,计算值
dfk=[]
for index, item in enumerate(X0):
df1_2 = df.evalf(subs={
self.Xi: item})
dfk.append(df1_2)
return dfk
##################################################acc1停止计算,acc2判断是否为极点
def iteration_x(self,X0,acc1,acc2):
k=