一个简单的二次规划求最优的问题

sxlhs 2002-09-05 10:25:44
我现在在使用MATLAB编辑一个程序算法,可是最终的结果总是不对,寻得的最优解总是越界,我的二次规划问题包含一个等式约束和一个不等式约束,我无论如何都已经找不到错误了,各位谁有MATLAB解决二次规划问题的代码,最好也给出所求问题累加形式的表达式,提示一下,多谢!
...全文
251 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dcyu 2002-09-09
  • 打赏
  • 举报
回复
用constr('fun',x0,options)是可以的,
'fun'目标函数和约束方程:
比如:
function[f,g]=fun(x)
f=x(1)^2+x(2);
g(1)=x(1)+x(2)-1;%等式约束
g(2)=1.5+x(1)*x(2);%不等式约束
x0:初始值
option:选项
用option(13)=1;%表示有一个等式约束
你可以参考一下,我的机子版本只是5.0的.
sxlhs 2002-09-09
  • 打赏
  • 举报
回复
多谢呀,我去试一下
xzhuang 2002-09-08
  • 打赏
  • 举报
回复
sas比较好!!!
saint001 2002-09-08
  • 打赏
  • 举报
回复
sas是统计的
sxlhs 2002-09-07
  • 打赏
  • 举报
回复
以上是我的程序,这个程序在运行时,如果n小于4,那么可以寻到最优解,但是n值再大的情况下,就不能寻到最优解了,寻优过程就会不正常结束,从各方面来看,我都认为我的限制条件已经足够,应当能够寻到最优解的。各位帮我看看,谢谢!
sxlhs 2002-09-07
  • 打赏
  • 举报
回复
我的目标函数在这里写不下,留言版不支持公式的格式,
我的程序代码大概如下:
以下w是一个n*2的数组,y是一个1*n的数组,所求为向量a的最优解,a为n*1的向量
for(i=1:n)
for(j=1:n)
H(i,j)=y(i)*y(j)*w(i,:)*w(j,:)';
end
end
for(j=1:n)
c(j)=-1;
end
A=-eye(n,n);
b=zeros(n,1);
aeq=y;
beq=0;
a=quadprog(H,c',A,b,aeq,beq,zeros(n,1),[])
dcyu 2002-09-07
  • 打赏
  • 举报
回复
我最近也在使用Matlab,我记得有二次规划的函数的,能否把你的目标函数和约束条件贴一下,回去帮你看一下。
saint001 2002-09-06
  • 打赏
  • 举报
回复
我认为优化最好使用Lingo
www.helpwork.com有下载
比较专业,比matlab在这方面好

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧