매트랩 관련 질문입니다.
-
게시물 수정 , 삭제는 로그인 필요
function golden(f,a,b,tolx,toly)
r=(3-sqrt(5))/2;
c=1-r;
x1=a+r*(b-a);
x2=a+c*(b-a);
f1=feval(f,x1);
f2=feval(f,x2);
k=0;
fprintf('\n')
disp(' Golden Section Search ')
fprintf('\n')
disp('_______________________________________________________')
disp('k a x1 x2 b f(x1) f(x2)')
disp('_______________________________________________________')
fprintf('\n')
while (abs(b-a)>tolx)|(abs(f2-f1)>toly)
fprintf('%2.f %10.7f %10.7f %10.7f %10.7f %10.7f %10.7f\n',k,a,x1,x2,b,f1,f2)
if (f1<f2)
b=x2;
x2=x1;
x1=a+r*(b-a);
f2=f1;
f1=feval(f,x1);
else
a=x1;
x1=x2;
x2=a+c*(b-a);
f1=f2;
f2=feval(f,x2);
end
k=k+1;
end
fprintf('\n minimum = %14.10f',f1)
fprintf('at x = %14.10f',b)
function f=trig(x)
f=cos(x)-sin(x)
golden('f',1,3,10^-8,10^-8)을 구하고자 하는데
fprintf('%2.f %10.7f %10.7f %10.7f %10.7f %10.7f %10.7f\n',k,a,x1,x2,b,f1,f2) 여기서 sym에서 double로 변환할 수 없다는 오류가 뜹니다. k,a,x1,x2,b는 출력이 되고 f1,f2가 출력되지 않는 걸 보아 f1,f2에서 오류가 발생한 것 같은데 잘 모르겠습니다.
#매트랩 관련 서적