매트랩 관련 질문입니다.

매트랩 관련 질문입니다.

작성일 2023.11.13댓글 1건
    게시물 수정 , 삭제는 로그인 필요

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에서 오류가 발생한 것 같은데 잘 모르겠습니다.


#매트랩 관련 서적

profile_image 익명 작성일 -

출력 잘 됩니다. 다음과 같이 입력해서 실행시켜 보세요. 단 파일이름을 golden.m 으로 하시면 안됩니다.

golden('trig',1,3,10^-8,10^-8) function f=trig(x) f=cos(x)-sin(x) end 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) end

결과는

>> test1234 f = -1.1733 f = -1.4040 Golden Section Search _______________________________________________________ k a x1 x2 b f(x1) f(x2) _______________________________________________________ 0 1.0000000 1.7639320 2.2360680 3.0000000 -1.1733444 -1.4040220 f = -1.3934 1 1.7639320 2.2360680 2.5278640 3.0000000 -1.4040220 -1.3934259 f = -1.3509 2 1.7639320 2.0557281 2.2360680 2.5278640 -1.3508548 -1.4040220 f = -1.4142 3 2.0557281 2.2360680 2.3475242 2.5278640 -1.4040220 -1.4141604 f = -1.4117 4 2.2360680 2.3475242 2.4164079 2.5278640 -1.4141604 -1.4116506 f = -1.4124 5 2.2360680 2.3049517 2.3475242 2.4164079 -1.4123572 -1.4141604 f = -1.4140 6 2.3049517 2.3475242 2.3738354 2.4164079 -1.4141604 -1.4139935 f = -1.4138 7 2.3049517 2.3312629 2.3475242 2.3738354 -1.4137741 -1.4141604 f = -1.4142 8 2.3312629 2.3475242 2.3575742 2.3738354 -1.4141604 -1.4142122 f = -1.4142 9 2.3475242 2.3575742 2.3637854 2.3738354 -1.4142122 -1.4141728 f = -1.4142 10 2.3475242 2.3537354 2.3575742 2.3637854 -1.4142093 -1.4142122 f = -1.4142 11 2.3537354 2.3575742 2.3599466 2.3637854 -1.4142122 -1.4142036 f = -1.4142 12 2.3537354 2.3561079 2.3575742 2.3599466 -1.4142136 -1.4142122 f = -1.4142 13 2.3537354 2.3552017 2.3561079 2.3575742 -1.4142129 -1.4142136 f = -1.4142 14 2.3552017 2.3561079 2.3566679 2.3575742 -1.4142136 -1.4142134 f = -1.4142 15 2.3552017 2.3557617 2.3561079 2.3566679 -1.4142134 -1.4142136 f = -1.4142 16 2.3557617 2.3561079 2.3563218 2.3566679 -1.4142136 -1.4142136 f = -1.4142 17 2.3557617 2.3559757 2.3561079 2.3563218 -1.4142135 -1.4142136 f = -1.4142 18 2.3559757 2.3561079 2.3561896 2.3563218 -1.4142136 -1.4142136 f = -1.4142 19 2.3561079 2.3561896 2.3562401 2.3563218 -1.4142136 -1.4142136 f = -1.4142 20 2.3561079 2.3561584 2.3561896 2.3562401 -1.4142136 -1.4142136 f = -1.4142 21 2.3561584 2.3561896 2.3562089 2.3562401 -1.4142136 -1.4142136 f = -1.4142 22 2.3561584 2.3561777 2.3561896 2.3562089 -1.4142136 -1.4142136 f = -1.4142 23 2.3561777 2.3561896 2.3561970 2.3562089 -1.4142136 -1.4142136 f = -1.4142 24 2.3561896 2.3561970 2.3562015 2.3562089 -1.4142136 -1.4142136 f = -1.4142 25 2.3561896 2.3561941 2.3561970 2.3562015 -1.4142136 -1.4142136 f = -1.4142 26 2.3561896 2.3561924 2.3561941 2.3561970 -1.4142136 -1.4142136 f = -1.4142 27 2.3561924 2.3561941 2.3561952 2.3561970 -1.4142136 -1.4142136 f = -1.4142 28 2.3561924 2.3561935 2.3561941 2.3561952 -1.4142136 -1.4142136 f = -1.4142 29 2.3561935 2.3561941 2.3561946 2.3561952 -1.4142136 -1.4142136 f = -1.4142 30 2.3561941 2.3561946 2.3561948 2.3561952 -1.4142136 -1.4142136 f = -1.4142 31 2.3561941 2.3561944 2.3561946 2.3561948 -1.4142136 -1.4142136 f = -1.4142 32 2.3561944 2.3561946 2.3561947 2.3561948 -1.4142136 -1.4142136 f = -1.4142 33 2.3561944 2.3561945 2.3561946 2.3561947 -1.4142136 -1.4142136 f = -1.4142 34 2.3561944 2.3561945 2.3561945 2.3561946 -1.4142136 -1.4142136 f = -1.4142 35 2.3561945 2.3561945 2.3561945 2.3561946 -1.4142136 -1.4142136 f = -1.4142 36 2.3561945 2.3561945 2.3561945 2.3561945 -1.4142136 -1.4142136 f = -1.4142 37 2.3561945 2.3561945 2.3561945 2.3561945 -1.4142136 -1.4142136 f = -1.4142 38 2.3561945 2.3561945 2.3561945 2.3561945 -1.4142136 -1.4142136 f = -1.4142 39 2.3561945 2.3561945 2.3561945 2.3561945 -1.4142136 -1.4142136 f = -1.4142 minimum = -1.4142135624at x = 2.3561945147>>

매트랩 코드 관련 질문입니다

20개의 sin 함수를 더해서 이런 모양으로 만들어야 하는데 for문을 이용하여 만들면 어떻게 만들어야 할까요??? 비슷하게 해드릴테니 좀...

매트랩 관련 질문입니다.

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...

매트랩 관련 질문입니다.

... 매트랩을 사용해서 a b c 값을 알아 내야 해서요.... 부탁좀 드릴게요~~ ^^:: 매트랩에서 다음과 같은 스크립트를 작성하여 X를 구합니다. A...

매트랩 실행 관련 질문입니다

새로 산 갤럭시북 이온 노트북에 매트랩을 깔았는데 아무리 클릭해도 실행이... 까신 매트랩 버전 폴더 이름을 바꾸거나 지우고 매트랩 재실행 해보세요. 아예...

매트랩 관련 질문입니다.

매트랩 R2006B를 설치하여 사용 하려 하는데.. 한가지 문제에... 제가 매트랩에 대해서는 전혀 모르는 상태입니다.. 책에 있는대로 그대로...