实用优化算法
镇长1998
菜鸟升级。
展开
-
Matlab axes中图像的插入和获取
1. 图片的插入axes(handles.axes2); % 绑定axesimshow(img)2. 图片的获取pix=getframe(handles.axes3); % axes3 是我的界面中的一个axes的tag,注意修改imshow(pix.cdata)原创 2020-05-28 18:43:45 · 3118 阅读 · 6 评论 -
实用优化算法.helper 文件
我在写这门课的实验代码的时候,发现算法有一些公用的函数,我把这些公用的函数放到了一个helper文件中,减少了代码的重复性,和编写的难度。import numpy as npfrom sympy import *import mathfrom scipy.optimize import fmin_bfgsx1,a,b,x2,x3 = symbols('x1,a,b,x2,...原创 2019-11-24 15:57:14 · 494 阅读 · 0 评论 -
等式约束的外罚函数
import mpl_toolkits.axisartist as axisartistimport matplotlib.pyplot as pltfrom 实用优化算法.helper import* # 单独博客介绍from mpl_toolkits.mplot3d import Axes3Dx1,x2,x3 = symbols('x1,x2,x3')def get_f...原创 2019-11-24 15:58:09 · 435 阅读 · 0 评论 -
PRP 共轭梯度法
PRP共轭梯度法对于正定的二次函数而言和FR共轭梯度法效果是近似的,而对于一般的函数来说的话,PRP算法一般由于FR算法from 实用优化算法.helper import* # 单独博客介绍import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dx1,x2,a = symbols('x1...原创 2019-11-24 15:55:03 · 3855 阅读 · 0 评论 -
黄金分割法 ( 三分法 )
适用函数: 至少在搜索的初始区间内要是一个单峰函数from sympy import *import numpy as npimport mathimport matplotlib.pyplot as pltx,a,b,x1,x2 = symbols('x,a,b,x1,x2')f1 = sin(x)f2 = tan(1 - x)# f = -sin(x)**6 ...原创 2019-11-24 15:52:57 · 1452 阅读 · 0 评论 -
DFP 算法
DFP算法是一种拟牛顿算法,它的好处是在于 继承了牛顿法的快速,又克服了牛顿法中每次求取G的逆矩阵的困难,且保证了Hk的正定,也就克服了牛顿法的G可能正定的缺点。from 实用优化算法.helper import* # 单独博客介绍import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dx...原创 2019-11-24 15:49:13 · 2659 阅读 · 0 评论 -
重开始的FR共轭梯度法
共轭梯度法是共轭方向法的一种。 共轭方向法是在牛顿法和最速下降法之间取了一个折中。每次计算没有牛顿法计算量那么大,收敛的速度又快于最速下降法。至于为什么重新开始 是因为在靠近解空间的时候,目标函数近似一个正定的二次函数,这时如果不取负梯度方向,即便对于正定二次函数往往也不能产生n个共轭梯度方向,说变量就是为了在靠近解时加速以下,提高算法的效率。代码实现:from 实用优化算法.hel...原创 2019-11-24 15:46:02 · 1653 阅读 · 0 评论 -
最速下降法
最速下降法 优点: 1. 简单、易于掌握 2. 整体收敛性好 缺点: 1. 下降速度一阶线性收敛 2. 搜索路径存在锯齿现象,越靠近解,收敛速度越慢。from 实用优化算法.helper import * # 单独写一篇博客分享from sympy import *import matplo...原创 2019-11-24 15:33:22 · 471 阅读 · 0 评论 -
sympy 模块中的solve() 函数求解方程根出现复数根
自己利用sympy 模块中的solve() 函数来求解线性方程的根的时候出现了复数根的情况,自己想去除复数根保留实数根。百度了一圈之后也没发现什么有用的东西。<class 'sympy.core.add.Add'>本来是想着用 if isinstance(i,complex) 来去除复数的但是发现这个东西在sympy中还不是complex。前提 from sym...原创 2019-10-01 00:08:33 · 6710 阅读 · 13 评论