有时,数值优化器无论出于何种原因都不起作用.我们可以将问题的参数化略有不同,它只会起作用. (并且可能更快)

例如,对于(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)相关推荐

  1. python读取枚举_在python中枚举(enumerate in python)

    在python中枚举(enumerate in python) 说, term='asdf'; InvertedIndex = {}; InvertedIndex[term] = [1,2,2,2,4 ...

  2. python中八进制_在Python中以八进制格式输入数字

    python中八进制 Syntax to convert octal value to an integer (decimal format), 将八进制值转换为整数(十进制格式)的语法, int(o ...

  3. python 中^是什么意思,python 中%是什么意思

    python中^是什么意思 在Python" // "表示整数除法.Python其它表达式:Python的表达式写法与C/C++类似.只是在某些写法有所差别.主要的算术运算符与C/ ...

  4. python中readlines函数用法,python中read() readline()以及readlines()用法

    我们谈到"文本处理"时,我们通常是指处理的内容.Python 将文本文件的内容读入可以操作的字符串变量非常容易.文件对象提供了三个"读"方法: .read(). ...

  5. python计算余弦距离_在Python中计算余弦距离的优化方法

    如果可以使用SciPy,可以使用spatial.distance中的余弦值: 如果您不能使用SciPy,您可以尝试通过重写Python来获得一个小的加速(编辑:但是没有像我以前想像的那样工作,见下文) ...

  6. python中curve fit_在python中拟合多变量curve_fit

    我试图将一个简单的函数适用于 python中两个独立数据的数组.我明白,我需要将自变量的数据绑定到一个数组中,但是当我尝试做合适时,我传递变量的方式似乎还有一些错误. (有一些以前的帖子与这个相关,但 ...

  7. python中元组_理解python中的元组

    理解 python 中的元组 引言 在 Python 中元组是这样的: 元组是是这样一种数据结构:不变的或者不可改变的(简单来说不能重新赋值) .元素的有序序列.因为元组是 不变的,所以他的数值是不能 ...

  8. python中start用法_Start Python 学习笔记(琐碎知识,持续更新。。。)

    最近比较闲,想学习一门脚本语言,于是选择了python进行学习,之前对脚本语言不是很熟悉,所以不对python好坏做任何评价.希望通过学习python,能让自己对脚本语言有更深刻的认识吧. Pytho ...

  9. python语言中的多行注释符是_有没有一种方法可以在Python中创建多行注释? - python...

    我最近开始研究Python,但是找不到如何实现多行注释.大多数语言都有块注释符号,例如 /* */ 我在Python中尝试过此方法,但它引发了错误,因此这可能不是正确的方法. Python实际上是否具 ...

  10. python中继承是什么意思_如何理解Python中的继承?python入门

    如何理解Python中的继承?如今,python编程语言深受企业和个人的喜爱.python开发工程师是近年来互联网行业非常热门的职业岗位之一.学习python的人除了零基础的,还有一部分是在职运维.在 ...

最新文章

  1. Kingbase金仓查看表空间占用率
  2. 第一章 DevOps概述
  3. [jQuery] 针对jQuery性能的优化方法有哪些?
  4. 【zookeeper】Zookeeper:ZooInspector界面工具
  5. 巧用 Class Extension 隐藏属性
  6. Node.js:封装Node通用web容器
  7. 基于windows fiber的协程(coroutine)实现
  8. 使php爬虫能够长期运行的一点总结
  9. 英雄联盟服务器维修中启动游戏失败,电脑登录英雄联盟失败的八种解决方法
  10. Last-Modified和Etag
  11. 深度学习(图像处理): A neural algorithm of artistic style算法详解
  12. nginx配置多个域名转向80端口
  13. 手机开热点但是电脑一直连接不上_电脑连不上wifi,手机可以连上。手机开热点,电脑可以连上。这是怎么回事,电脑就一直循环连接那个w...
  14. datamodeler mysql_Navicat Data Modeler功能简介
  15. Oracle 12C -- in-database archiving
  16. APP Store下载一直等待中解决办法
  17. 微信小程序做图片压缩
  18. 2011各大知名IT公司校园招聘研发类薪资待遇概述
  19. mysql 计算近30天总金额_计算月嫂每天工资,应该用总工资除以30天还是26天?-免费法律咨询...
  20. 海康摄像头http抓图

热门文章

  1. spdlog linux编译出错,c++日志库spdlog
  2. 锐捷深入油田场景 助力胜利油田生产物联网通向“新胜利”之路
  3. CPU和Soc的区别
  4. matplotlib图片展示中文显示问题
  5. php网页分享时显示图片怎么设置,分享html页面 在微信分享中可以设置分享标题和描述和图片...
  6. length和size的区别
  7. 连ChatGPT都不懂的五一调休,到底怎么来的?
  8. 黑河学院计算机技术新生名单,2021年黑河学院有几个校区,大一新生在哪个校区...
  9. 微信小程序createSelectorQuery获取偶尔为null
  10. Centos6.5系统时间慢8小时解决方案