fminsearch,fminsearch函数
有木有MATLAB大神求指点:fminsearch如何设置未知参数以1为步调来找目标函数最小值?
可以用循环语句,来找目标函数最小值。如
myfun.m
function f=myfun(a,b)?
while a=b
fun=inline('x*sin(x^2-x-1)','x');
[x,fval,exitflag]=fminsearch(fun,a)
a=a+1;
if exitflag==0exitflag==-1
? return
end
end
然后在指令窗口或执行文件中调用
myfun(-10,10)
MATLAB中如何使用fminsearch
MATLAB-fminsearch函数的使用
fminsearch函数用来求解多维无约束的线性优化问题
用derivative-free的方法找到多变量无约束函数的最小值
语法
x = fminsearch(fun,x0)
x = fminsearch(fun,x0,options)
[x,fval] = fminsearch(...)
[x,fval,exitflag] = fminsearch(...)
[x,fval,exitflag,output] = fminsearch(...)
解释
fminsearch能够从一个初始值开始,找到一个标量函数的最小值。通常被称为无约束非线性优化
x = fminsearch(fun,x0) 从x0开始,找到函数fun中的局部最小值x,x0可以是标量,向量,矩阵。fun是一个函数句柄
x = fminsearch(fun,x0,options) 以优化参数指定的结构最小化函数,可以用optimset函数定义这些参数。(见matlab help)
[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 退出信息
关于matlab中的fminsearch函数的使用
从你的初始值看k和G都是变量,若是,则将两个变量处理成一个向量来给fminsearch。
xout
=
fminsearch(@(x)StdMonochrome(x(1),x(2)),[-1,-1]);
xout(1)为搜索的k,xout(2)为搜索的G,k,G的初始值均为-1
但从你调用fminsearch的语句来看只有k是变量,若是,可以写成kout=fminsearch(@(k)StdMonochrome(k,G),-1),-1是k的初始值,G为常量,kout为搜索的k