황금분할법으로 문제푸는데, 그래프를 그려야 하는 일이 생겼어요
function [x,fx,ea,iter]=goldmax(f,xl,xu,es,maxit,varargin)
if nargin<3,error('at least 3 input arguments required'),end
if nargin<4 || isempty(es), es=0.0001;end
if nargin<5 || isempty(maxit), maxit=50;end
phi=(1+sqrt(5))/2;
iter=0;
while(1)
d = (phi-1)*(xu - xl);
x1 = xl + d;
x2 = xu - d;
if f(x1,varargin{:}) > f(x2,varargin{:})
xopt = x1;
xl = x2;
else
xopt = x2;
xu = x1;
end
iter=iter+1;
if xopt~=0, ea = (2 - phi) * abs((xu - xl) / xopt) * 100;end
if ea <= es || iter >= maxit,break,end
end
x=xopt;fx=f(xopt,varargin{:});
이렇게 되어있고 명령창에는
f=@(x) (-1.5*x.^6-2*x.^4+12*x);
[xopt, fmax, ea, iter]=goldmax(f,0,2,0.0001,3)
이렇게 입력해서 대충 값은 나왔는데, 이걸 어떻게 해야 그릴 수가 있는건가요??
으어.. 좀 도와주세요