matlab中使用fminsearch函数,如何限定自变量的取值范围?

f=@(K)(K(1)/2 + (4*K(5))/5 + (4*K(6))/5 - 36568701964855/34359738368)^2 + (K(4)/8 - 4053796115654203/281474976710656)^2 + (K(4)/8 - 210)^2 + (K(5)/5 - 650)^2 + (K(6)/5 - 275)^2 + (K(6)/5 - 6859982151351983/281474976710656)^2 + (K(5)/5 - 7332050830254413/35184372088832)^2 + (K(3)/8 + K(4)/8 + K(5)/20 - 379958236369475/549755813888)^2 + (K(2)/8 + K(4)/8 + K(6)/20 - 4850177850251011/17592186044416)^2;

[K,fval]=fminsearch(f,[1,1,1,1,1,1])

我想让K1—K6都是正数,没有金币了,好心人帮帮忙!感激不尽!

第1个回答  推荐于2016-01-22
f =@(x)(x(1)>0)*(100*(x(3)- 5/pi * atan(x(2)/x(1)))^2 + (sqrt(x(1)^2+x(2)^2) - 1)^2 + x(3)^2)+(x(1)<0

1024最新, 开放 注册 76.164.225.76/u/?id=qunyutu本回答被提问者采纳
相似回答