fminsearch,fminsearch函数

http://www.itjxue.com  2023-01-07 02:35  来源:未知  点击次数: 

有木有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

(责任编辑:IT教学网)

更多

推荐Flash动画制作教程文章