python3凸优化
目录
简介
全局最优化
局部优化
有约束优化问题
代码实现
简介
凸优化,或叫做凸最优化,凸最小化,是数学最优化的一个子领域,研究定义于凸集中的凸函数最小化的问题。
在金融学和经济学中,凸优化起着重要作用,这方面的例子包括市场数据校准和期权定价模型,或者效用函数的优化。
我们对下列函数fm进行这种优化
#coding:UTF-8
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib as mpl
import scipy.optimize as spodef fm(*args):return (np.sin(args[0])+0.05*args[0]**2+np.sin(args[1])+0.05*args[1]**2)x = np.linspace(-10,10,50)
y = np.linspace(-10,10,50)
x,y = np.meshgrid(x,y)
z = fm(x,y)fig = plt.figure(figsize=(9,6))
ax = fig.gca(projection='3d')
surf = ax.plot_surface(x,y,z,rstride=2,cstride=2,cmap=mpl.cm.coolwarm,linewidth=0.5,antialiased=True)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('f(x,y)')
fig.colorbar(surf,shrink=0.5,aspect=5)
plt.show()
全局最优化
def fo(*args):x = args[0][0]y = args[0][1]z = np.sin(x) + 0.05*x**2 + np.sin(y) + 0.05*y**2#print(x,y,z)return z
opt = spo.brute(fo,((-10,10,0.1),(-10,10,0.1)),finish=None)
print(opt)
print(fm(opt[0],opt[1]))
[-1.4 -1.4]
-1.7748994599769203Process finished with exit code 0
最优化参数现在是x=y=-1.4,全局最小化的最小函数大约-1.7749
局部优化
opt2 = spo.fmin(fo,(2.0,2.0),maxiter=250)
print(opt2)
print(fm(opt2[0],opt2[1]))
Optimization terminated successfully.Current function value: 0.015826Iterations: 46Function evaluations: 86
[4.2710728 4.27106945]
0.0158257532746805Process finished with exit code 0
有约束优化问题
现实中的问题往往是有约束条件的,在条件允许内,制定最优的解决方案,从而获得最好的结果。
例如如下情景:你可以选择投资两种证券,如何分配才能取得最大化收益呢?
已知假设如下,两种证券现价格为 = = 10,收益受到u,d两种状态影响,一年后,u状态下的收益分别为15和5,而d下则为5和12,假设两种状态出现的概率相同,用= = 0.5表示,而他们的收益则用,表示
你的预算为 = 100,
未知假设:未来财富率的效用函数如下如下 = ,a,b是投资者购买的证券数量,则如下公式成立
- 总收益公式
- 总投资收到预算的约束
- 每种证券的投资数量收到非负数约束
现在我们将数值带入,反向求解
- 函数1
- 条件1
- 条件2
代码实现
import scipy.optimize as spo
from math import sqrt
def Eu(*args): #函数一a = args[0][0]b = args[0][1]return -(0.5*sqrt(a*15+b*5)+0.5*sqrt(a*5+b*12))cons = ({'type':'ineq','fun':lambda a: 100-a[0]*10-a[1]*10 }) #条件一
bnds = ((0,1000),(0,1000)) #条件二
result = spo.minimize(Eu,[5,5],method='SLSQP',bounds=bnds,constraints=cons)
print(result)
fun: -9.700883611487832jac: array([-0.48508096, -0.48489535])message: 'Optimization terminated successfully.'nfev: 21nit: 5njev: 5status: 0success: Truex: array([8.02547122, 1.97452878])Process finished with exit code 0
结果如上,你要购买8个a证券和2个b证券。
python3凸优化相关推荐
- 【BZOJ5311/CF321E】贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性)
[BZOJ5311/CF321E]贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性) 题面 BZOJ CF 洛谷 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!!!!! ...
- 详解GCN、GAT、凸优化、贝叶斯、MCMC、LDA
如果你准备发AI方向的论文,或准备从事科研工作或已在企业中担任AI算法岗的工作.那么我真诚的向大家推荐,贪心学院<高阶机器学习研修班>,目前全网上应该找不到类似体系化的课程.课程精选了四大 ...
- 机器学习数学基础系列|凸优化——开启新世界的大门(上)
在机器学习中,要做的核心工作之一就是根据实际问题,定义出一个目标函数,接着找到这个目标函数的最优解.在找这个最优解的过程中,你可能会生不如死~ 但是,上帝关上了你的门,总会给你打开一扇窗~ 有一类问题 ...
- 机器学习+优化问题的种类、如何优化、凸优化、非凸优化、对偶问题、KKT条件
机器学习+优化问题的种类.如何优化.凸优化.非凸优化.对偶问题.KKT条件 目录
- 干货丨从基础知识到实际应用,一文了解「机器学习非凸优化技术」
文章来源:机器之心 优化作为一种研究领域在科技中有很多应用.随着数字计算机的发展和算力的大幅增长,优化对生活的影响也越来越大.今天,小到航班表大到医疗.物理.人工智能的发展,都依赖优化技术的进步. 在 ...
- dp凸优化/wqs二分学习笔记(洛谷4383 [八省联考2018]林克卡特树lct)
qwq 安利一个凸优化讲的比较好的博客 https://www.cnblogs.com/Gloid/p/9433783.html 但是他的暴力部分略微有点问题 qwq 我还是详细的讲一下这个题+这个知 ...
- 凸优化 [Convex Optimization] — [美] 鲍德(Stephen Boyd),Lieven Vandenberghe 著,王书宁,许鋆,黄晓霖 译
<信息技术和电气工程学科国际知名教材中译本系列:凸优化>从理论.应用和算法三个方面系统地介绍凸优化内容. 凸优化在数学规划领域具有非常重要的地位.从应用角度看,现有算法和常规计算能力已足以 ...
- UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介
UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介 Stochastic Gradient Descent的思想 Varian ...
- UA MATH567 高维统计专题3 含L1-norm的凸优化4 Nesterov方法与Accelerate Proximal Gradient
UA MATH567 高维统计专题3 含L1-norm的凸优化4 一阶方法的加速 Nesterov方法 Accelerate Proximal Gradient (APG) 梯度下降与Proximal ...
最新文章
- Java™ 教程(字符流)
- linux之创建临时文件的方法
- IP管理提高业务网络安全性的3种方式——Vecloud
- RabbitMQ消息轮询重发消息(消息补偿)
- 35. 搜索插入位置-LeetCode
- 和我一起读Java8 LinkedList源码
- RAC环境创建本地数据文件的解决方法
- python很有用吗_Python之父:为什么操作符很有用?
- Improvements of Job Scheduler and Query Execution on Flink OLAP
- 前端工程师最常用的字体图标库
- Android Studio在线自动升级版本
- Android webview数据获取 webview抓取
- 酷我音乐android2.0,酷我音乐2012 2.0.0(For iphone)享受听歌“零“消费
- 20中氨基酸名称、简写及化学式
- 接触式光电位移传感器的原理是
- 在线教育的优势强调实时直播、实时互动
- sCrypt 合约中的椭圆曲线算法:第二部分
- Web漏洞-Xss跨站
- 小程序完整demo推荐:东航旅行;预订酒店,机票(适用1221)
- leetcode(力扣) 39. 组合总和(回溯 剪枝)
热门文章
- 2019spring exam 7-5 校庆
- 【转】《DOTA系列》蛰伏恐惧之路——复仇之魂攻略
- 清理软件CClearner
- c51语言1秒延时程序,KeilC51程序设计中几种精确延时方法
- STM32通用定时器输出带死区互补PWM/任意移相PWM
- python turtle方向_Python turtle.left()用法及代码示例
- Yii实战开发大型商城项目视频教程
- JavaScript的数组练习
- 大连美女仿生机器人火了,网友:人形电脑东北银
- flink1.12.0学习笔记第2篇-流批一体API