www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/MinimizeWithExtraParametersExample.m

    %% Minimize with Extra Parameters
% Sometimes your objective function has extra parameters. These parameters
% are not variables to optimize, they are fixed values during the
% optimization. For example, suppose that you have a parameter |a| in the
% Rosenbrock-type function
%
% $$ f(x,a) = 100(x_2 - x_1^2)^2 + (a-x_1)^2.$$
%
% This function has a minimum value of 0 at $x_1 = a$, $x_2 = a^2$. If, for
% example, $a = 3$, you can include the parameter in your objective
% function by makng an anonymous function.
%
% Create the objective function with its extra parameters as extra
% arguments.
f = @(x,a)100*(x(2) - x(1)^2)^2 + (a-x(1))^2;
%%
% Put the parameter in your MATLAB(R) workspace.
a = 3;
%%
% Create an anonymous function of |x| alone that includes the workspace
% value of the parameter.
fun = @(x)f(x,a);
%%
% Solve the problem starting at |x0 = [-1,1.9]|.
x0 = [-1,1.9];
x = fminsearch(fun,x0)
%%
% For more information about using extra parameters in your objective
% function, see <docid:matlab_math.bsgprpq-5>.