matlab 多变量最小值,【求助】用fmincon求含有多组变量的目标函数的最小值问题...
各位大神,求教。目标函数中包含6个变量:x,y,z,w,g,h。于此同时,这6个变量都是关于时间变化的,即T=1:24. 相当于,确定6*24组变量的值,来使最终的目标函数f最小。
难点在于:目标函数f(t),和约束条件中,不仅包含x(t),还包含x(t-1)。
具体描述如下:
function f=objfun(x,y,z,w,g,h)
for t=1:24
if (x(t)~=0&&x(t-1)~=0)||(x(t)==0&&x(t-1)==0)
output=0
elseif (x(t)~=0&&x(t-1)==0)
a=2
else
b=3
end
if (y(t)~=0&&y(t-1)~=0)||(y(t)==0&&y(t-1)==0)
output=0
elseif (y(t)~=0&&y(t-1)==0)
c=2
else
d=3
end
if (z(t)~=0&&x(t-1)~=0)||(z(t)==0&&x(t-1)==0)
output=0
elseif (z(t)~=0&&x(t-1)==0)
e=2
else
f=3
end
f=2.03*(1/9.7)*x(t)/((0.0753*(x(t)/65)^3)-0.3095*(x(t)/65)^2+0.4174*(x(t)/65)+0.1068)...%微型燃气轮机燃料成本
+(2.03*(1/9.7)*y(t)/(-0.0023*y(t)+0.6735))...
+(z(t)^2+2*z(t)+3)...
+0.165179*x(t)...
+0.103616*y(t)...
+2.5*w(t)...
+0.68*g(t)...%
+5*(a+c+e)...
+4*(b+d+f) %调用上边的函数。
end
end
function [c,ceq]=confun(x,y,z,w,g,h)
c=[x(t)-x(t-1)-3;x(t-1)-x(t)-3;y(t)-y(t-1)-3;y(t-1)-y(t)-3;z(t)-z(t-1)-3;z(t-1)-z(t)-3]
ceq=[x(t)+y(t)+z(t)+w(t)+g(t)+h(t)-19]
end
clear
x0=[0,0,0,0,0,0,0,0,0,5,30,30,30,30,30,30,0,5,15,15,17,15,5,4];%24
y0=[0,0,0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]
z0=[0,0,0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]
w0=[27,23,28,30,23,12,20,0,11,5,-25,-27,-21,-30,-27,-25,15,30,30,30,30,30,30]
g0=[0,0,0,0,0,0,0,0,0,0,0,9,12,13,15,9,8,4,4,3,3,0,0,0]
h0=[0,0,0,0,0,0,0,0,0,0,0,-10,-5,-8,-5,0,10,10,0,-8,-10,-2,0,0]
%上下限约束的值不一定是这些,暂时这样
xM=[12,13,13,5,12,13,13,5,15,12,13,13,5,15,12,13,13,5,12,13,13,5,5,5]
xm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
yM=[12,13,13,5,12,13,13,5,15,12,13,13,5,15,12,13,13,5,12,13,13,5,5,5]
ym=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
zM=[12,13,13,5,12,13,13,5,15,12,13,13,5,15,12,13,13,5,12,13,13,5,5,5]
zm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
wM=[12,13,13,5,12,13,13,5,15,12,13,13,5,15,12,13,13,5,12,13,13,5,5,5]
wm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
gM=[12,13,13,5,12,13,13,5,15,12,13,13,5,15,12,13,13,5,12,13,13,5,5,5]
gm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
hM=[12,13,13,5,12,13,13,5,15,12,13,13,5,15,12,13,13,5,12,13,13,5,5,5]
hm=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
options=optimset('largescale','off','display','iter');
[x,y,z,w,g,h,fval,exitflag,output]=fmincon(@objfun,x0,y0,z0,w0,g0,h0,[],[],[],[],xM,xm,yM,ym,zM,zm,wM,wm,gM,gm,hM,hm @confun,options)
完全运行不出来,错误:
??? 'confun' is not a valid base class.
求各位大神解答,应该错误挺多的。多谢,多谢!
matlab 多变量最小值,【求助】用fmincon求含有多组变量的目标函数的最小值问题...相关推荐
- matlab optimization terminated,求助Optimization terminated. 的问题
小弟按照课本写了的一个这样的程序 %利用分支定界法实现整数线性规划 %调用格式为[intx,intf]=Intprog(f,A,b,Aeq,beq,lb,up) %f,A,b,Aeq,lb,up与li ...
- Matlab之代数方程求解:方程组求根
Matlab之代数方程求解:方程组求根 目录 方程组求根 1.solve( )求方程组的解 2.求解指数方程和对数函数方程 方程组求根 1.solve( )求方程组的解 (1)如求 eq1 = 'w ...
- [MATLAB学习笔记]采用快速傅里叶变换求时间序列的周期项
[MATLAB学习笔记]采用快速傅里叶变换求时间序列的周期项 1. 背景 现有长度为11年的5个时间序列,为某拟研究对象的5个参数.现计划先通过快速傅里叶变换求每个系数序列的显著周期项,再分别按照傅里 ...
- matlab(simulink)里怎么求一个波形的动态平均值
matlab(simulink)里怎么求一个波形的动态平均值 搭建一个简单的模型 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔 ...
- Java实现比赛打分,去掉最小值及最大值,求平均值
在比赛中,有六位评委,去掉评分最大值及最小值,之后再求出平均值即为最后结果 解题思路如下: 循环遍历数组,将每个值进行累计进行 求和 sum 分别定义两个方法,通过 for 循环求 最小值 min 和 ...
- matlab的多变量dmc源程序,基于MATLAB多变量DMC算法的仿真技术研究
基于MATLAB多变量DMC算法的仿真技术研究 基于MATLAB多变量DMC算法的仿真技术研究 作者:李凤霞 于佐军 来源:<科技创新导报>2011年第17期 摘 要:利用MATLAB开发 ...
- matlab的多变量dmc源程序,基于MATLAB多变量DMC算法仿真技术研究
基于MATLAB多变量DMC算法的仿真技术研究 摘要:利用matlab开发系统的仿真程序,以试验室的cstr模型为研究对象,用动态矩阵控制算法建立仿真模型,实现多输入多输出系统的控制,绘制出调节曲线, ...
- matlab premnmx归一化函数的使用 1、premnmx 预处理数据使数据的最小值和最大值分别为-1和1. [PN,minp,maxp,TN,mint,maxt] = premnmx(P,T)
matlab premnmx归一化函数的使用 1.premnmx 预处理数据使数据的最小值和最大值分别为-1和1. [PN,minp,maxp,TN,mint,maxt] = premnmx(P,T) ...
- 【老生谈算法】matlab实现Kruskal避圈算法求最小生成树——Kruskal避圈算法
基于MATLAB的Kruskal避圈算法求最小生成树 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]基于MATLAB的Kruskal避 ...
- 如何用matlab算导数曲线,excel 曲线求导_excel怎样对表格中数据进行求导
怎样在两个EXCEL表中导数值 用VLOOKUP函数. 举例:看图片上的例子 =VLOOKUP(E2,A:B,2,0) 这个公式的含义是,E2就是你说的表1上的名称这个单元格,A:B就是2表中的两列, ...
最新文章
- python 图像频谱
- unity快速接入第三方sdk_直播美颜SDK实现需要具备哪些条件
- Unity: .NET下的依赖注入容器
- 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-7底层驱动之滴嗒定时器
- java resultset close_java代码ResultSet is closed
- 《我们应当怎样做需求分析》阅读笔记
- python-os库函数一些用法记录
- JS实现联欢会抽奖滚动数字效果
- OC, OD门和线与逻辑
- Typora 下载及使用简介
- 餐厅点餐系统设计思路
- centos7时间校准
- 生活中很多“被我们忽视的东西”存在价值
- 一行JS代码实现ie浏览器升级弹窗
- windows gvim下载dejavu sans mono字体并更换
- 利用easyX图形库画迷宫问题的路径
- 用python整个活(6)——完全数
- 基于Web SCADA平台构建实时数字化产线 - 初篇
- Git 学习进展 (补发)
- java excel 列_Java 删除Excel中的行和列
热门文章
- EXCEL快速合并同类项
- java set 添加_Java Set add()用法及代码示例
- 整洁面向对象分层架构 (Clean Object-Oriented and Layered Architecture)
- 小水智能-智能楼宇智慧建筑3D可视化系统,实现对实时数据的整合处理
- 首发|罗振宇2018“时间的朋友”跨年演讲未删减全文
- 池建强 博客 Mac使用技巧 第一季
- 抖音实时弹幕和礼物信息数据接口采集,/douyin/liveroom/audience
- DOS批处理下格式化日期字符串
- Java--中文转换拼音,jpinyin-1.0.jar
- deamon守护线程