查看: 150|回复: 6|关注: 0

[已解决] 在fmincon中出现Supplied objective function must return a scalar value.

[复制链接]

新手

7 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
完整程序:
  1. clear all;
  2. close all;
  3. clc;
  4. x0=[480;100;120];
  5. lb=[300;60;90];
  6. ub=[650;140;150];
  7. [x,fval]=fmincon('fun',x0,[],[],[],[],lb,ub,'con1');

复制代码
出错语句:
  1. 错误使用 fmincon (line 619)
  2. Supplied objective function must return a scalar value.

  3. 出错 Untitled (line 7)
  4. [x,fval]=fmincon('fun',x0,[],[],[],[],lb,ub,'con1');
复制代码
感觉格式是对的,希望大神指点迷津
回复主题 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
 楼主| 发表于 2020-11-17 15:27:57 | 显示全部楼层
function f=fun(x)
f(x)=0.25*pi*7.8*10^(-6)*(x(1)+x(3))*(x(2)^2-30^2);

function [c,ceq]=con1(x)
c=(64*15000*x(3)^2*(x(1)+x(3))/(3*pi*2.1*10^5*x(2)^4-30^4)-0.05);
ceq=[];
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

10

主题

1698

帖子

370

最佳答案
  • 关注者: 84
发表于 2020-11-17 15:45:49 | 显示全部楼层 |此回复为最佳答案
仅供参考
  1. clear all;
  2. close all;
  3. clc;
  4. x0=[480;100;120];
  5. lb=[300;60;90];
  6. ub=[650;140;150];
  7. [x,fval]=fmincon(@fun,x0,[],[],[],[],lb,ub,@con1);
  8. function f=fun(x)
  9. f=0.25*pi*7.8*10^(-6)*(x(1)+x(3))*(x(2)^2-30^2);
  10. end
  11. function [c,ceq]=con1(x)
  12. c=(64*15000*x(3)^2*(x(1)+x(3))/(3*pi*2.1*10^5*x(2)^4-30^4)-0.05);
  13. ceq=[];
  14. end
复制代码
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
 楼主| 发表于 2020-11-17 15:47:34 | 显示全部楼层
那个,请问哪里错了
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
 楼主| 发表于 2020-11-17 15:53:57 | 显示全部楼层
感谢大神,我怎么觉得和我发的代码是一样的呀,为什么我的就报错呀,求指教
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

5

帖子

0

最佳答案
 楼主| 发表于 2020-11-17 16:00:38 | 显示全部楼层
emmmm,我好像忘记加end了:L
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

10

主题

1698

帖子

370

最佳答案
  • 关注者: 84
发表于 2020-11-17 19:33:18 | 显示全部楼层
代码
  1. f=0.25*pi*7.8*10^(-6)*(x(1)+x(3))*(x(2)^2-30^2);
复制代码
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /5 下一条

快速回复 返回顶部 返回列表