python 提供了和matlab中fmincon类似的非线性规划函数,即scipy.optimize.minimize。
下面是一些参考:

https://blog.csdn.net/sinat_17697111/article/details/81534935

https://blog.csdn.net/weixin_45508265/article/details/112978943

https://www.jianshu.com/p/94817f7cc89b

下面是我使用到代码,目的是求一个矩阵里面的系数,使得一个函数表达式的值最小:

from process_data import process_data,BetPm,cal_accu
import sklearn
from sklearn import svm
from keras.utils.np_utils import to_categorical
import numpy as np
from scipy.optimize import minimize
..........
..........
def mapping(x,bba_val_2,i):matrix=np.array([[x[0],x[1],0,x[2],x[3]],[0,0,x[4],0,x[5]]])before_trans=np.array(bba_val_2[i])after_trans=np.dot(before_trans,matrix)return after_transdef fusion_this(m1,m2):'''m1:[t0,t1,t2]m2:[t0,t1,t2,[t0,t1],[t0,t1,t2]]'''m_fusion=[0,0,0]k=1-(m1[0]*m2[1]+m1[0]*m2[2]+m1[1]*m2[0]+m1[1]*m2[2]+m1[2]*m2[0]+m1[2]*m2[1]+m1[2]*m2[3])m_fusion[0]=(m1[0]*m2[0]+m1[0]*m2[3]+m1[0]*m2[4])/km_fusion[1]=(m1[1]*m2[1]+m1[1]*m2[3]+m1[1]*m2[4])/km_fusion[2]=(m1[2]*m2[2]+m1[2]*m2[4])/kreturn np.array(m_fusion)def fusion(x,bba_val_2,bba_val_1,i):after_trans=mapping(x,bba_val_2,i)after_fusion=fusion_this(bba_val_1[i],after_trans)return after_fusiondef con(arg=0):      #limits 100>x[i]>0# eq / ineq# eq=0 /ineq> 0  cons = ({'type': 'ineq', 'fun': lambda x: x[0]},\{'type': 'ineq', 'fun': lambda x: -x[0]+100},\{'type': 'ineq', 'fun': lambda x: x[1]},\{'type': 'ineq', 'fun': lambda x: -x[1]+100},\{'type': 'ineq', 'fun': lambda x: x[2]},\{'type': 'ineq', 'fun': lambda x: -x[2]+100},\{'type': 'ineq', 'fun': lambda x: x[3]},\{'type': 'ineq', 'fun': lambda x: -x[3]+100}, \{'type': 'ineq', 'fun': lambda x: x[4]},\{'type': 'ineq', 'fun': lambda x: -x[4]+100},\{'type': 'ineq', 'fun': lambda x: -x[5]+100},\{'type': 'ineq', 'fun': lambda x: x[5]})return conscons=con(1)
train_label1_onehot=to_categorical(train_label1.ravel(), 3)    #label  to one-hot encode
test_label1_onehot=to_categorical(test_label1.ravel(), 3) def fun(args):bba_val_2,bba_val_1=argsv = lambda x:sum([np.linalg.norm(fusion(x,bba_val_2,bba_val_1,i)-train_label1_onehot[i]) for i in range(105)])return vargs=(bba_val_2,bba_val_1)
x0=np.ones((6,1))
res = minimize(fun(args), x0,method='SLSQP',constraints=cons)
# res = minimize(fun(args), x0,method='SLSQP')# res = minimize(fun(args), x0)
print(np.round(res.fun,2))
print(res.success)
print(np.round(res.x,2))

python 非线性规划相关推荐

  1. python非线性规划求解_Python之建模规划篇--非线性规划

    Python之建模规划篇--非线性规划 基本介绍 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问 题.一般说来,解非线性规划要比解线性规划问题困难得多.而且,也不象线性规划有 ...

  2. python非线性规划scipy.optimize.minimize介绍

    目录 0. 官方说明 1. Parameters 2. Returns 3. 案例 1)无约束求极值 2)有约束求极值 参考资料 0. 官方说明 在 python 里用非线性规划求极值,最常用的就是 ...

  3. python 非线性规划_自动驾驶运动规划-Hybird A*算法(续)

    Hybird A*算法保证生成的路径是车辆可实际行驶的,但它仍然包含很多不必要的车辆转向操作,我们可以对其进行进一步的平滑和优化. Objective Function 对于Hybird A*生成的车 ...

  4. python 非线性规划_支持向量机:Stata 和 Python 实现

    田原 (北京交通大学) godfreytian@163.com ? 连享会主页:lianxh.cn 扫码查看最新推文和分享 NEW!连享会·推文专辑: Stata资源 | 数据处理 | Stata绘图 ...

  5. python非线性规划问题_python玄学建模(2):非线性规划

    文档url:https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.optimize.minimize.html 本文还是对 ...

  6. 非线性规划(scipy.optimize.minimize)

    1.minimize() 函数介绍 在 python 里用非线性规划求极值,最常用的就是 scipy.optimize.minimize(). [官方介绍点这里](Constrained minimi ...

  7. 「需求广场」需求词更新明细(七)

    进入需求广场​​​​​​​,选取你擅长的领域开始上传资源.获取流量吧! 2022.6.7上线需求词: No. 需求词 No. 需求词 No. 需求词 1 facebook注册 201 eclipse创 ...

  8. 数学建模之优化问题中的规划问题

    前言:规划问题分为线性规划和非线性规划两大类,其中线性规划采用cvxpy库就可以解决:非线性规划分为凸规划和非凸规划,做题时应先判断是否是凸规划.对于凸规划采用cvxpy可以解决,非凸规划采用scip ...

  9. Scipy优化scipy.optimize.minimize

    如果喜欢请点赞,收藏,谢谢! 要解决一个优化问题 m i n i m i z e x [ 0 ] , x [ 1 ] \mathrm{minimize}_{x[0],x[1]} minimizex[0 ...

最新文章

  1. Maven+mybatis教程
  2. UI设计培训分享:设计当中的颜色运用
  3. Lync 小技巧-34-通过Lync Server 2013的URI批量启用UM
  4. 借组磁带机求第K小元素
  5. 2.1.6 编码与调制(2)
  6. 电脑卡顿不流畅怎么解决_电脑卡顿是什么原因,电脑卡顿严重解决方法【详解】...
  7. SAP UI5 应用开发教程之十四 - 嵌入视图的使用方式
  8. MySQL数据库开发 (视频)
  9. 3d激光雷达开发(基于参数模型的滤波)
  10. LeetCode 279. 完全平方数(动态规划)
  11. 何凯明 Single Image Haze Removal Using Dark Channel Prior
  12. html设置背景图片自动适应屏幕大小,css适应屏幕 CSS背景图片自适应屏幕大小
  13. C++派生类与继承(超详细)
  14. Python——轮盘抽奖游戏
  15. OpenCV如何去除图片中的阴影
  16. linux报错Error: /proc must be mounted
  17. 分布式一致性协议Raft,以及难搞的Paxos
  18. 阿里云IoTStudio中的“移动可视化开发” 重新登场了--让开发APP不再难
  19. BI 是如何数据分析的?
  20. 贝叶斯优化 Bayesian Optimization

热门文章

  1. Eclipes安装反编译插件
  2. 超级计算机怎么收费,近距离看中国天河2号内部细节及收费标准
  3. 已知三角形的三个顶点的坐标,求三角形的面积
  4. 基于Matlab深度学习目标检测算法系统GUI,单目标、多目标检测
  5. matlab精品课程视频,MATLAB 在线课程与学习资源 (2019版)
  6. shell脚本:一键部署网站含内容管理器
  7. linux打开开发者权限,在UOS系统中关闭开发者模式和在UOS个人版中打开开发者模式...
  8. 使用第三方FTP软件进行文件传输的教程
  9. 3.8关于向WorldWind地球模型添加图层
  10. ArcGIS 已知某点经纬度,如何制以该点为中心的10km的矢量shp文件