게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
매트랩 소스입니다. 그래프는 어떻게 그리는건가요?/
게시물ID : programmer_16623짧은주소 복사하기
작성자 : 러블리MC민지
추천 : 0
조회수 : 961회
댓글수 : 2개
등록시간 : 2016/04/09 16:53:09
옵션
  • 본인삭제금지
황금분할법으로 문제푸는데, 그래프를 그려야 하는 일이 생겼어요

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)

이렇게 입력해서 대충 값은 나왔는데, 이걸 어떻게 해야 그릴 수가 있는건가요??

으어.. 좀 도와주세요

꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호