各位大神,求教。目标函数中包含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求含有多组变量的目标函数的最小值问题...相关推荐

  1. matlab optimization terminated,求助Optimization terminated. 的问题

    小弟按照课本写了的一个这样的程序 %利用分支定界法实现整数线性规划 %调用格式为[intx,intf]=Intprog(f,A,b,Aeq,beq,lb,up) %f,A,b,Aeq,lb,up与li ...

  2. Matlab之代数方程求解:方程组求根

    Matlab之代数方程求解:方程组求根 目录 方程组求根 1.solve( )求方程组的解 2.求解指数方程和对数函数方程 方程组求根 1.solve( )求方程组的解 (1)如求 eq1 = 'w ...

  3. [MATLAB学习笔记]采用快速傅里叶变换求时间序列的周期项

    [MATLAB学习笔记]采用快速傅里叶变换求时间序列的周期项 1. 背景 现有长度为11年的5个时间序列,为某拟研究对象的5个参数.现计划先通过快速傅里叶变换求每个系数序列的显著周期项,再分别按照傅里 ...

  4. matlab(simulink)里怎么求一个波形的动态平均值

    matlab(simulink)里怎么求一个波形的动态平均值 搭建一个简单的模型 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑器, 可以仔 ...

  5. Java实现比赛打分,去掉最小值及最大值,求平均值

    在比赛中,有六位评委,去掉评分最大值及最小值,之后再求出平均值即为最后结果 解题思路如下: 循环遍历数组,将每个值进行累计进行 求和 sum 分别定义两个方法,通过 for 循环求 最小值 min 和 ...

  6. matlab的多变量dmc源程序,基于MATLAB多变量DMC算法的仿真技术研究

    基于MATLAB多变量DMC算法的仿真技术研究 基于MATLAB多变量DMC算法的仿真技术研究 作者:李凤霞 于佐军 来源:<科技创新导报>2011年第17期 摘 要:利用MATLAB开发 ...

  7. matlab的多变量dmc源程序,基于MATLAB多变量DMC算法仿真技术研究

    基于MATLAB多变量DMC算法的仿真技术研究 摘要:利用matlab开发系统的仿真程序,以试验室的cstr模型为研究对象,用动态矩阵控制算法建立仿真模型,实现多输入多输出系统的控制,绘制出调节曲线, ...

  8. 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) ...

  9. 【老生谈算法】matlab实现Kruskal避圈算法求最小生成树——Kruskal避圈算法

    基于MATLAB的Kruskal避圈算法求最小生成树 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]基于MATLAB的Kruskal避 ...

  10. 如何用matlab算导数曲线,excel 曲线求导_excel怎样对表格中数据进行求导

    怎样在两个EXCEL表中导数值 用VLOOKUP函数. 举例:看图片上的例子 =VLOOKUP(E2,A:B,2,0) 这个公式的含义是,E2就是你说的表1上的名称这个单元格,A:B就是2表中的两列, ...

最新文章

  1. python 图像频谱
  2. unity快速接入第三方sdk_直播美颜SDK实现需要具备哪些条件
  3. Unity: .NET下的依赖注入容器
  4. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-7底层驱动之滴嗒定时器
  5. java resultset close_java代码ResultSet is closed
  6. 《我们应当怎样做需求分析》阅读笔记
  7. python-os库函数一些用法记录
  8. JS实现联欢会抽奖滚动数字效果
  9. OC, OD门和线与逻辑
  10. Typora 下载及使用简介
  11. 餐厅点餐系统设计思路
  12. centos7时间校准
  13. 生活中很多“被我们忽视的东西”存在价值
  14. 一行JS代码实现ie浏览器升级弹窗
  15. windows gvim下载dejavu sans mono字体并更换
  16. 利用easyX图形库画迷宫问题的路径
  17. 用python整个活(6)——完全数
  18. 基于Web SCADA平台构建实时数字化产线 - 初篇
  19. Git 学习进展 (补发)
  20. java excel 列_Java 删除Excel中的行和列

热门文章

  1. EXCEL快速合并同类项
  2. java set 添加_Java Set add()用法及代码示例
  3. 整洁面向对象分层架构 (Clean Object-Oriented and Layered Architecture)
  4. 小水智能-智能楼宇智慧建筑3D可视化系统,实现对实时数据的整合处理
  5. 首发|罗振宇2018“时间的朋友”跨年演讲未删减全文
  6. 池建强 博客 Mac使用技巧 第一季
  7. 抖音实时弹幕和礼物信息数据接口采集,/douyin/liveroom/audience
  8. DOS批处理下格式化日期字符串
  9. Java--中文转换拼音,jpinyin-1.0.jar
  10. deamon守护线程