python中scipy.optimize_使用Python优化(scipy.optimize)
有时,数值优化器无论出于何种原因都不起作用.我们可以将问题的参数化略有不同,它只会起作用. (并且可能更快)
例如,对于(0,1)的边界,我们可以有一个变换函数,使得(-inf,inf)中的值在被转换后最终会在(0,1)中结束.
我们可以用等式约束做类似的技巧.例如,我们可以将维度从3减少到2,因为x中的最后一个元素必须是1-sum(x).
如果它仍然不起作用,我们可以切换到不需要衍生信息的优化器,例如Nelder Mead.
In [111]:
def trans_x(x):
x1 = x**2/(1+x**2)
z = np.hstack((x1, 1-sum(x1)))
return z
def F(x, y, gamma = 0.2):
z = trans_x(x)
return -(((z/y)**gamma).sum())**(1./gamma)
In [112]:
opt = minimize(F, np.array([0., 1.]), args=(np.array(y),),
method='Nelder-Mead')
opt
Out[112]:
status: 0
nfev: 96
success: True
fun: -265.27701747828007
x: array([ 0.6463264, 0.7094782])
message: 'Optimization terminated successfully.'
nit: 52
结果是:
In [113]:
trans_x(opt.x)
Out[113]:
array([ 0.29465097, 0.33482303, 0.37052601])
我们可以通过以下方式对其进行可视化:
In [114]:
x1 = np.linspace(0,1)
y1 = np.linspace(0,1)
X,Y = np.meshgrid(x1,y1)
Z = np.array([F(item, y) for item
in np.vstack((X.ravel(), Y.ravel())).T]).reshape((len(x1), -1), order='F')
Z = np.fliplr(Z)
Z = np.flipud(Z)
plt.contourf(X, Y, Z, 50)
plt.colorbar()
python中scipy.optimize_使用Python优化(scipy.optimize)相关推荐
- python读取枚举_在python中枚举(enumerate in python)
在python中枚举(enumerate in python) 说, term='asdf'; InvertedIndex = {}; InvertedIndex[term] = [1,2,2,2,4 ...
- python中八进制_在Python中以八进制格式输入数字
python中八进制 Syntax to convert octal value to an integer (decimal format), 将八进制值转换为整数(十进制格式)的语法, int(o ...
- python 中^是什么意思,python 中%是什么意思
python中^是什么意思 在Python" // "表示整数除法.Python其它表达式:Python的表达式写法与C/C++类似.只是在某些写法有所差别.主要的算术运算符与C/ ...
- python中readlines函数用法,python中read() readline()以及readlines()用法
我们谈到"文本处理"时,我们通常是指处理的内容.Python 将文本文件的内容读入可以操作的字符串变量非常容易.文件对象提供了三个"读"方法: .read(). ...
- python计算余弦距离_在Python中计算余弦距离的优化方法
如果可以使用SciPy,可以使用spatial.distance中的余弦值: 如果您不能使用SciPy,您可以尝试通过重写Python来获得一个小的加速(编辑:但是没有像我以前想像的那样工作,见下文) ...
- python中curve fit_在python中拟合多变量curve_fit
我试图将一个简单的函数适用于 python中两个独立数据的数组.我明白,我需要将自变量的数据绑定到一个数组中,但是当我尝试做合适时,我传递变量的方式似乎还有一些错误. (有一些以前的帖子与这个相关,但 ...
- python中元组_理解python中的元组
理解 python 中的元组 引言 在 Python 中元组是这样的: 元组是是这样一种数据结构:不变的或者不可改变的(简单来说不能重新赋值) .元素的有序序列.因为元组是 不变的,所以他的数值是不能 ...
- python中start用法_Start Python 学习笔记(琐碎知识,持续更新。。。)
最近比较闲,想学习一门脚本语言,于是选择了python进行学习,之前对脚本语言不是很熟悉,所以不对python好坏做任何评价.希望通过学习python,能让自己对脚本语言有更深刻的认识吧. Pytho ...
- python语言中的多行注释符是_有没有一种方法可以在Python中创建多行注释? - python...
我最近开始研究Python,但是找不到如何实现多行注释.大多数语言都有块注释符号,例如 /* */ 我在Python中尝试过此方法,但它引发了错误,因此这可能不是正确的方法. Python实际上是否具 ...
- python中继承是什么意思_如何理解Python中的继承?python入门
如何理解Python中的继承?如今,python编程语言深受企业和个人的喜爱.python开发工程师是近年来互联网行业非常热门的职业岗位之一.学习python的人除了零基础的,还有一部分是在职运维.在 ...
最新文章
- Kingbase金仓查看表空间占用率
- 第一章 DevOps概述
- [jQuery] 针对jQuery性能的优化方法有哪些?
- 【zookeeper】Zookeeper:ZooInspector界面工具
- 巧用 Class Extension 隐藏属性
- Node.js:封装Node通用web容器
- 基于windows fiber的协程(coroutine)实现
- 使php爬虫能够长期运行的一点总结
- 英雄联盟服务器维修中启动游戏失败,电脑登录英雄联盟失败的八种解决方法
- Last-Modified和Etag
- 深度学习(图像处理): A neural algorithm of artistic style算法详解
- nginx配置多个域名转向80端口
- 手机开热点但是电脑一直连接不上_电脑连不上wifi,手机可以连上。手机开热点,电脑可以连上。这是怎么回事,电脑就一直循环连接那个w...
- datamodeler mysql_Navicat Data Modeler功能简介
- Oracle 12C -- in-database archiving
- APP Store下载一直等待中解决办法
- 微信小程序做图片压缩
- 2011各大知名IT公司校园招聘研发类薪资待遇概述
- mysql 计算近30天总金额_计算月嫂每天工资,应该用总工资除以30天还是26天?-免费法律咨询...
- 海康摄像头http抓图
热门文章
- spdlog linux编译出错,c++日志库spdlog
- 锐捷深入油田场景 助力胜利油田生产物联网通向“新胜利”之路
- CPU和Soc的区别
- matplotlib图片展示中文显示问题
- php网页分享时显示图片怎么设置,分享html页面 在微信分享中可以设置分享标题和描述和图片...
- length和size的区别
- 连ChatGPT都不懂的五一调休,到底怎么来的?
- 黑河学院计算机技术新生名单,2021年黑河学院有几个校区,大一新生在哪个校区...
- 微信小程序createSelectorQuery获取偶尔为null
- Centos6.5系统时间慢8小时解决方案