请问一下,我需要求一个函数的最小值,matlab程序跑不出来,实在不知道怎么解决了,十分感谢!

题目如图片所示,程序如下:T=[7777555566];[m,fval]=fminbnd('0.5*(m*16-symsum(T(m),m,1,10))/(m*16)+0... 题目如图片所示,程序如下:T=[7 7 7 7 5 5 5 5 6 6];[m,fval] = fminbnd('0.5*(m*16-symsum(T(m),m,1,10))/(m*16)+0.5*sqrt(symsum((16-T(m))^2,m,1,10))/m',1,10) fval 展开
 我来答
lhmhz
高粉答主

2020-05-13 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16991

向TA提问 私信TA
展开全部

用matlab程序跑不出来?其问题在于题主的自定义函数有问题。应该这样来写:

function f=func(x)

T=[7 7 7 7 5 5 5 5 6 6];

m=ceil(x);

C=T(1:m);

f=0.5*(m*16-sum(C))./(m*16)+0.5*sqrt(sum((16-C).^2))/m;

然后,执行下列命令

x1=1;x2=10;

[x,fval,exitflag] = fminbnd(@func,x1,x2);

m=ceil(x)

f=func(m)

执行结果

更多追问追答
追问

亲测有效,谢谢您的回答!

另外,我还想请教一下,直接用您的程序然后用遗传算法工具箱求解,出现“索引超出矩阵维度”,您知道是什么原因吗?谢谢!

追答
函数表达式中加点运算符,试一下看
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式