matlab fminsearch函数 求多元函数的最小值
(2014-06-01 17:48:21)
标签:
itmatlab函数fminsearch多元函数最小值 |
分类: matlab基础 |
[x,fval] = fminsearch(...)返回在结果x出的目标函数的函数值
[x,fval,exitflag] = fminsearch(...)
返回exitflag值来表示fminsearch退出的条件:
1--函数找到结果x
0--函数最大功能评价次数达到,或者是迭代次数达到
-1--算法由外部函数结束
[x,fval,exitflag,output] = fminsearch(...)
返回一个结构输出output,包含最优化函数的信息:output.algorithm 使用的优化算法
output.funcCount 函式计算次数
output.iterations 迭代次数
output.message 退出信息
如果fun是有参数的,那么可以定义个匿名函数去获得独立的参数,例如,若果需要估计的函数为
function f = myfun(x,a)
f = x(1)^2 + a*x(2)^2
因为myfun中有一个位置参数a,所以不能直接传给fminsearch中。所以需要最优化具体的a,例如a =
1.5
首先定义 a = 1.5;
然后x = fminsearch(@(x) myfun(x,a),[0,1])
示例:
>> a=@(x)sin(x(1))+cos(x(2))
a =
>> [x,fval,exitflag,output]=fminsearch(a,[-1,-1])
x =
fval =
exitflag =
output =

加载中…