matlab符号积分计算很慢,Matlab优化fmincon目标函数中符号积分为什么无法运行?

请教大侠,利用Matlab优化工具箱中的fmincon函数做优化时,程序不能通过目标函数的设置,错误信息和目标函数源程序分别如下,请指教救命,感激涕零!!

************************************************************************

错误信息:

??? Function 'gt' is not defined for values of class 'sym'.

Error in ==> optim\private\nlconst at 763

while  (MERIT2 > MATL2) && (MERIT > MATL) ...

Error in ==> fmincon at 512

[X,FVAL,lambda,EXITFLAG,OUTPUT,GRAD,HESSIAN]=...

Error in ==> run at 4

[ x, fval , exitflag, output, lambda, grad, hessian ]= fmincon (@ ( x) objfun ( x) , [ 3; 1 ] , [ ] , [ ] ,[ ] , [ ] , [ 3; 1 ] , [ 20; 20 ] , @ ( x) confun ( x),options )

**************************************************************************

目标函数程序:

function f=objfun(x)

hmax=8; n=2400; w=2*pi*n/60; aB=40; vg=0.2; [rmin]=4.5; r0=18;

p=2;q= 2*x(1);r=2*x(1)+2*x(2);s=2*x(1)+4*x(2);v=vg*aB/w;

C0=hmax;

Cp=((-C0)*q*r*s+v*(q*r+q*s+r*s-q-r-s+1))/(q-2)/(r-2)/(s-2);

Cq=((-C0)*p*r*s+v*(p*r+p*s+r*s-p-r-s+1))/(p-q)/(r-q)/(s-q);

Cr=((-C0)*p*q*s+v*(p*q+p*s+q*s-p-q-s+1))/(p-r)/(q-r)/(s-r);

Cs=((-C0)*p*q*r+v*(p*q+p*r+q*r-p-q-r+1))/(p-s)/(q-s)/(r-s);

E=1/C0*(C0+Cp/(1+p)+Cq/(1+q)+Cr/(1+r)+Cs/(1+s));

syms a;

B=1-(a+38.5)/40;

hother=(C0-2)+Cp*B.^p+Cq*B.^q+Cr*B.^r+Cs*B.^s;

k=int(hother,a,0,80);

Ehother=k/(2*aB*C0);

f =-E-Ehother;

微信扫码订阅
UP更新不错过~
关注
  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值