MATLAB优化函数fmincon的简介

article/2025/8/17 7:04:12

1 需要解决的问题

能效优化问题:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
优化目标为找到最小化J对应的u、v。
时间为从零点开始的24小时,每隔20分钟取一次值,不同时间段的u、v不同,最后得到的u、v为72维的向量。

2 fmincon函数

fmincon解决的是形如下面问题的最优化问题:
在这里插入图片描述
在使用fmincon求解最优值的过程中,可以有以下所示的多种形式:

x = fmincon(fun,x0,A,b)
x = fmincon(fun,x0,A,b,Aeq,be)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

其中,fun为目标函数,x0为初始值,其他的都为约束条件
具体选择哪种形式,取决于问题的约束是什么类型的约束。
例如:如果约束只为一个线性不等式

在这里插入图片描述
min f(x)
x(1) + 2x(2) <= 1

将约束转化为矩阵表示,就为[1,2]*x <= 1
根据fmincon,令A=[1,2],b=1。

fun = @(x)100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
x0 = [-1,2];
A = [1,2];
b = 1;
x = fmincon(fun,x0,A,b)

题中的各个条件

u为72维向量,v为72维向量,变量x=[u;v]为144维向量。
在这里插入图片描述
为边界条件,可设置lb,ub

lb = zeros(144,1)
ub = [1800*ones(72,1);3*ones(72,1)]

在这里插入图片描述
线性不等书约束条件,可设置A,b

A = -ts*[ones(1,72),zeros(1,72)]
b = -10800

在这里插入图片描述
非线性约束,可设置

function [c,ceq] = nonfun(x)
x = x(1:72)
v = x(73:end)
c = [-u./(3.6*vu./(3.6*v-177]
ceq = []

最终选择一个初值x0调用

fun = @cost  %定义的J函数
nonlcon = @nonfun
x = fmincon(fun,x0,A,b,[],[],lb,ub,nonlcon)

http://chatgpt.dhexx.cn/article/81KXxLd1.shtml

相关文章

Matlab非线性规划之fmincon()函数

关于非线性规划 非线性规划问题是指目标函数或者约束条件中包含非线性函数的规划问题。 前面我们学到的线性规划更多的是理想状况或者说只有在习题中&#xff0c;为了便于我们理解&#xff0c;引导我们进入规划模型的一种情况。相比之下&#xff0c;非线性规划会更加贴近实际的…

OpenJDK各平台版本下载

开源清华大学镜像 https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/ https://share.weiyun.com/pggTSFlP

如何下载OpenJDK安装版本

进入OpenJDK 官网&#xff1a; 选择需要的版本即可下载。

OpenJDK windows下安装过程

Windows下安装OpenJDK&#xff0c;需要额外配置系统环境变量(这和n年以前安装OracleJDK一样。。。) 下载OpenJDK12&#xff0c;并解压至任意文件夹 地址&#xff1a;http://jdk.java.net/12/ 配置环境变量 1.设置JAVA_HOME&#xff0c;指向openJDK目录 2.新建系统变量CLASS…

windows下载openjdk1.8

下载页&#xff1a;http://jdk.java.net/ openjdk8下载地址&#xff1a;https://jdk.java.net/java-se-ri/8-MR3&#xff08;注意是32位的&#xff0c;官网64位没找到&#xff09; 如图&#xff1a; 然后&#xff0c;1.添加环境变量&#xff1a;JAVA_HOMEF:\java-se-8-ri\bin…

windows jdk安装;windows openjdk安装

因为最近重新装了系统&#xff0c;要安装jdk环境。以前都是安装的oracle jdk&#xff0c;所以今天尝试安装下open jdk安装。 1. 下载openjdk ,我这里选择jdk8&#xff1b;jdk常用的几个版本 8 &#xff1b;11&#xff1b;18&#xff1b;下载的文件为zip解压版&#xff1b; 下载…

openJDK源码下载及阅读

完全来源于&#xff1a;openJDK源码下载 1、打开openjdk网站 打开链接&#xff1a;http://hg.openjdk.java.net/ 2、点击想要下载的jdk的版本&#xff0c;如jdk8u 3、在新页面中找到jdk8u然后点击下面的jdk连接 4、然后出现了一个我们看不懂的页面&#xff0c;不要着急&…

windows下载openjdk8(附赠安装包)

openjdk下载地址&#xff1a;https://jdk.java.net/ &#xff08;文末已经为大家下好了&#xff0c;放在网盘里&#xff09; 进去后点8&#xff0c;win。 安装好后&#xff0c;使用java -version命令如下&#xff1a; 成功安装openjdk&#xff01; 为大家提供网盘&#xff08;…

openJDK下载教程

引用自&#xff1a;https://my.oschina.net/u/2518341/blog/1931088 直接从这个链接进http://hg.openjdk.java.net/ 附&#xff1a;下载链接https://adoptopenjdk.net/releases.html openJDK百度云链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1kPhgdhCRntkav…

openjdk1.8的下载与安装

需求场景&#xff1a; 之前使用的是jdk1.8,在对接企业微信开发中&#xff0c;对企业微信回传的好友信息进行解密校验的时候&#xff0c;显示如下异常&#xff1a;然后同样的分支在同事那边可以正常运行&#xff0c;排除一下后&#xff0c;确定是jdk版本的问题&#xff0c;换上了…

openJDK 源码下载

登录官网&#xff0c;找到openJDK的github地址&#xff1a; OpenJDK GitHubOpenJDK has 96 repositories available. Follow their code on GitHub.https://github.com/openjdk 进一步在tag页&#xff0c;查找需要的版本&#xff0c;比如这里下载 jdk8的最后一个版本&#xf…

Linux——安装JDK和OpenJDK【多种方法】

目录 一、Linux安装OpenJDK 1、查看系统是否有自带的版本 2、删除OpenJDK 3、本地下载OpenJDK 4、无法本地下载&#xff0c;也可以使用命令下载&#xff08;方法1&#xff09; 4、无法本地下载&#xff0c;也可以使用命令下载&#xff08;方法2&#xff09; 5、拓展 三…

openJDK 17.0.1 的下载与安装

openJDK 17.0.1 的下载与安装 下载安装 下载 我的安装环境为win10 下载地址&#xff1a;https://developers.redhat.com/products/openjdk/download 安装 下载好后&#xff0c;解压出来 可以进入bin目录中&#xff0c;测试是否完整&#xff0c;如图 然后配置好环境变量即…

openJDK 官方二进制下载

前言 由于Oracle的jdk收费license&#xff0c;JDK8 201~221开始不免费了&#xff0c;目前有最近的JDK17 LTS明确免费了&#xff0c;但是不确定什么时候会修改协议&#xff0c;而且升级jdk也不能从jdk8升级到jdk17吧&#xff0c;LTS版本有8/11/17&#xff0c;目前即使升级也先升…

OpenJDK各版本下载

开源清华大学镜像 清华大学开源软件镜像站 | Tsinghua Open Source Mirror清华大学开源软件镜像站&#xff0c;致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务&#xff0c;帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 协会负责运行维护。http…

OpenJDK源码下载

OpenJDK源码地址&#xff1a; https://openjdk.org/ 找到github地址 https://github.com/openjdk/ 点击JDK 选择你想下载的任何一个版本 选择版本 这里选择jdk最后更新的一个版本 git clone Download ZIP 我这里现在失败了&#xff0c;就Download ZIP吧

JDK 下载与安装

首先下载 jdk 最新版本。可以去 http://java.sun.com/j2se/1.4.2/download.html 版本一&#xff1a;适合 win7oracle 版本 java 下载最新的 jdk 版本&#xff0c; 打开界面后。选择 J2SE v 1.4.2_08 SDK 拦目下面的 Download J2SE SDK&#xff0c; 然后选择 Accept License…

Linux下OpenJDK的下载和安装

如果你使用的是Linux&#xff0c;可以通过系统自带的命令行工具下载&#xff0c;但我还是推荐到官网下载安装&#xff0c;因为命令行非常的慢&#xff0c;不知道是什么原因&#xff08;已经有代理和镜像了&#xff09;。 OpenJDK的官网是下面的网站。 https://openjdk.org/inst…

下载open jdk 和阿里Alibaba Dragonwell (开源open JDK)

由于JDK开始收费&#xff0c; Oracle JDK 8 u191 是 2019 年 1 月前发布的最新版本&#xff0c;所以只要一直使用 JDK 8 u191 以及更早的版本&#xff0c;就不需付费。在2019年4月16日当天,Oracle发布了Oracle JDK的8u211和8u212两个版本(属于JDK8系列),并从这两个版本开始将JD…

openJDK之如何下载各个版本的openJDK源码

如果我们需要阅读openJDK的源码&#xff0c;那么需要下载&#xff0c;那么该去哪下载呢?现在JDK已经发展到版本10了&#xff0c;11已经处于计划中&#xff0c;如果需要特定版本的openJDK&#xff0c;它们的下载链接在哪呢? 1.openJDK的项目 链接&#xff1a;http://hg.openjd…