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

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

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

试下附件中的fminsearchbnd函数,请把fminsearchbnd.m文件放在你的工作路径中。

fminsearchbnd(@(x)f(x(1),x(2),x(3)), [000], [000], [30302])

ans =

   15.0848

   20.5081

    0.5452

此文件下载自File exchange,作者:John D'Errico

这个[2,3]表示的不是区间,而是一个初始值。fminsearch函数的基本调用方式:X = FMINSEARCH(FUN,X0) ,第一个参数表示需要求解的函数,第二个参数表示初始值。

从你那一行代码可知自变量有两个,fminsearch在求极小值时需要给定一个猜想的初始值,即x(1)=2,x(2)=3,当然你也可以换其他初始值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11746148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存