MATLAB中如何使用fminsearch

f(x)=x1.^2+x2.^2
1.利用fminsearch函数求得该函数的极小值点
2.利用最速下降法求得该函数的最小值(初始点为(1,1)T,允许误差为
请尽快啊,谢谢谢谢,允许误差为0.1

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 退出信息
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-09-03
[3333]是初值
fminsearch的用法
[最小值点,最小值]=fminsearch(函数,初值)
fminsearch是不能设定约束范围的
以下令x=[x1x2y1y2]
wa=[0,1;1,5;,2,4;3,4];
wb=[4,1;5,2];
p=[10,11,8,15];
p1=[8,22];
f=@(x)(sqrt(abs(x(1)-wa(1,1))^2+abs(x(3)-wa(1,2))^2)*p(1)+sqrt(abs(x(1)-wa(2,1))^2+abs(x(3)-wa(2,2))^2)*p(2)+sqrt(abs(x(1)-wa(3,1))^2+abs(x(3)-wa(3,2))^2)*p(3)+sqrt(abs(x(1)-wa(4,1))^2+abs(x(3)-wa(4,2))^2)*p(4)+sqrt(abs(x(2)-wb(1,1))^2+abs(x(4)-wb(1,2))^2)*p1(1)+sqrt(abs(x(2)-wb(2,1))^2+abs(x(4)-wb(2,2))^2)*p1(2));
[x,y]=fminsearch(f,[3,3,3,3])
得到的结果:
x=
2.00005.00004.00002.0000
y=
77.9259
即x1=2x2=5y1=4y2=2最小值为77.9259
第2个回答  2010-06-19
结果
f =
Inline function:
f(x) = x(:,1).^2+x(:,2).^2
x =
1.0e-004 *
-0.2102 0.2548
fval =
1.0915e-009
exitflag =
1
程序
f=inline('x(:,1).^2+x(:,2).^2')
[x fval exitflag]=fminsearch(f,[1 1])本回答被网友采纳
相似回答