scipy minimize当目标函数需要参数、当约束条件特别特别多时

本文主要是介绍scipy minimize当目标函数需要参数、当约束条件特别特别多时,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

from scipy.optimize import minimize

求解



官方说明文档

简单开一下开头

 官方下面有例子会让人容易明白

注意我们的目的是:为了求出让fun函数最小的最优解x

当遇见目标函数fun带了很多外来参数的时候

以及约束很多很多假设有100个的时候,怎么实现呢

1、优化函数带参数

但是当fun函数是带参数的时候怎么办呢,参数当然可以是一个数,也可能是数组矩阵等。

比如说我们可以随便定义一个目标函数:

def fun(x, funarg1, funarg2):loss1 = funarg1.dot(x)loss2 = (x[0] - max(funarg2))**2 + (x[1] - 2.5)**2return loss1 + loss2

2、当有很多很多约束,可以采用约束也带参数的方法

注意:eq表示 本约束函数目标等于0 ; ineq 表示 约束函数目标大于等于0

网上多数例子的约束都是不带参数的,只有x本身,约束函数也想要带参数该怎么写

相当于要构建很多个约束,总不能全都一个写吧

例如的实现方法

cons_temp = []for carg1, carg2, carg3 in arg_all:cons_temp.append({'type': 'ineq', 'fun': lambda x, carg1:  x[0] - 2 * x[1] + carg1, 'args': (carg1)},{'type': 'ineq', 'fun': lambda x, carg2, carg3: -x[0] - carg2 + carg3,  'args': (carg2, carg3)})cons = tuple(cons_temp)

3、求解上面目标函数及约束

res = minimize(fun, x0, args=(funarg1, funarg2), constraints=cons)

x0是x初始猜测值

res.x就是求解的结果

这篇关于scipy minimize当目标函数需要参数、当约束条件特别特别多时的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/949520

相关文章

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

Python Excel 通用筛选函数的实现

《PythonExcel通用筛选函数的实现》本文主要介绍了PythonExcel通用筛选函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录案例目的示例数据假定数据来源是字典优化:通用CSV数据处理函数使用说明使用示例注意事项案例目的第一

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty