线性与非线性规划:二次拟合法


前言

本系列涉及线性与非线性规划中的几种规划算法
1.本节介绍二次拟合方法
2.参考:陈宝林-最优化理论与算法
3.采用python编程实现,已测试,代码可行


一、二次拟合方法(抛物线法)

二次拟合法(抛物线法):抛物线法的基本思想是,在极小点附近,用二次三项式来逼近目标函数。
具体的方法可以参见陈宝林的抛物线这一小节。

二、代码实现

1.代码

需要注意的是,采用二次拟合要确定三个合适的初始点,本程序的三个初始点要自己找好,也可以采用进退法来找。

#参考资料,陈宝林
#实现二次拟合,求解一维搜索的无约束问题,初始的三个点需要自己给出来。之后再完善采用进退法得到三个初始可行点
from sympy import *
import numpy as np
import math
class Ercinihe_Function:
    def __init__(self,F,Xi):
        self.Xi = Xi
        self.f = F
    ######################################################
    def iteration_x(self,X0,acc1):
        k=0
        while True:
            fk=[]
            xk=X0
            print(f'第{k}次的点为{X0}')
            for index,item in enumerate(X0):
                f1_3 = self.f.evalf(subs={
   self.Xi:item})
                fk.append(f1_3)
            print(f'第{k}次的值为{fk}')
            B1=
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值