목차
1.Powell's Method
2.The Steepest Asced Method
3.소스코드
2.The Steepest Asced Method
3.소스코드
본문내용
pest Asced Method
3.소스코드
Do it. 2차원 이상의 임의의 함수 f(x1, x2, ..., xn)를 설정하고 다음 방법을 이용하여 최적값에 해당하는 X=(x1, x2, ..., xn)를 구하시오. 단, 설정한 함수가 n-차원 인 경우, Xn 까지만 구하시오. 초기값 Xo는 임의로 설정하시오. 단, 초기 벡터 Uo = I (단위행렬) 임.
1) Powell's method.
2) The steepest ascent (or descent) method
- 그림 1.1 함수 의 그래프 -
#7-1
▣ Powell's method.
접근 1. 함수 에 대하여 최적값 를 구해보자. (단 초기값 )
--
Powell's method은 한번에 한 변수 값만 변화하는 단변분 탐색법을 통해 만들어진 탐색점 1-3-5또는 2-4-6 의 패턴을 갖고 찾아내는 패턴탐색법 중 하나이다. 1-3-5 또는 2-4-6과 같은 점을 이은 선은 최적값을 향하는대 이를 공액방향이라 하고 공액방향에 기초한 대표적인 방법이 Powell's method 이다.
---------
,
을 구하자.
---
최적값 개념을 이용하여 을 구하여 을 구하자.
ⅰ)
ⅱ)
ⅲ) 을 알기위해 최적값을 가지는 을 찾는다.
ⅳ)
ⅴ)
ⅵ) 을 알기위해 최적값을 가지는 을 찾는다.
ⅶ)
ⅷ)
ⅸ)
ⅹ) 을 알기위해 최적값을 가지는 을 찾는다.
) 새로운 와 새로운 는
,
--------
,
을 구하자.
---
최적값 개념을 이용하여 을 구하여 을 구하자.
ⅰ)
ⅱ)
ⅲ) 을 알기위해 최적값을 가지는 을 찾는다.
ⅳ)
ⅴ)
ⅵ) 을 알기위해 최적값을 가지는 을 찾는다.
ⅶ)
ⅷ)
ⅸ)
ⅹ) 을 알기위해 최적값을 가지는 을 찾는다.
) 새로운 와 새로운 는
,
결론 a.
검증. , , , 검증값과 일치
#7-2
▣ The steepest ascent (or descent) method
접근 1. 함수 에 대하여 최적값 를 구해보자. (단 초기값 )
------------
,
최적값을 가지는 를 구한다.
------------
,
최적값을 가지는 를 구한다.
결론 a.
검증.
,
, 검증값과 일치하며
X=(0,0)으로 수렴함을 추측할 수 있다.
clear all % Powell's Method
clc
X0=[2 -1]; % 초기설정값 X0
p0=X0; % p0는 X0
U=[1 0;0 1] ; % 초기 U
r1=fminbnd('1*x^2+4*x+6',-10,10); % P1 에대한 최적값을 갖는 gamma1
u1=U(:,1)'; p1=X0+r1*u1; % u1지정과 최적값을 갖는 gamma1로 P1 계산
r2=fminbnd('x^2-2*x+1',-10,10); % P2 에대한 최적값을 갖는 gamma2
u2=U(:,2)'; p2=p1+r2*u2; % u2지정과 최적값을 갖는 gamma2로 P2 계산
u2=p2-p0; % 새로운 u2지정을 위한 u2 계산
U(:,1)=U(:,2); % 새로운 u1지정
U(:,2)=u2'; % 새로운 u2지정
U % 변경된 U 세미콜런을 생략하므로 출력시킴
u2=U(:,2)'; % X1을 구하기위해 u2값을 새로지정된 u2로 설정
r=fminbnd('6*x^2-12*x+6',-10,10); % X1 에 대한 최적값을 갖는 gamma
X1=p0+r*u2; % X1 계산
fprintf('X1=( %2.3f %2.3f )\n',X1(1,1),X1(1,2)) % X1 출력
p0=X1; % p0는 X1
r1=fminbnd('2*x^2',-10,10); % P1 에대한 최적값을 갖는 gamma1
u1=U(:,1)'; p1=p0+r1*u1; % u1지정과 최적값을 갖는 gamma1로 P1 계산
r2=fminbnd('6*x^2',-10,10); % P2 에대한 최적값을 갖는 gamma2
u2=U(:,2)'; p2=p1+r2*u2; % u2지정과 최적값을 갖는 gamma2로 P2 계산
u2=p2-p0; % 새로운 u2지정을 위한 u2 계산
U(:,1)=U(:,2); % 새로운 u1지정
U(:,2)=u2'; % 새로운 u2지정
U % 변경된 U 세미콜런을 생략하므로 출력시킴
u2=U(:,2)'; % X2을 구하기위해 u2값을 새로지정된 u2로 설정
X2=p0-r*u2; % X2 에 대한 최적값을 갖는 gamma
fprintf('X2=( %2.3f %2.3f )\n',X2(1,1),X2(1,2)) % X2 출력
clear all % The steepest ascent (or descent) method
clc
X0=[2;-1]; % 초기설정값 X0
dfx='2*x1' % 식을 x에관해 편미분
dfy='4*x2' % 식을 y에관해 편미분
x1=X0(1,1); a=eval(dfx); % x1은 X0의 x값만을 추출함, x에 관해 편미분 한식 계산
x2=X0(2,1); b=eval(dfy); % x2은 X0의 y값만을 추출함, y에 관해 편미분 한식 계산
C=[a;b]; % C는 각 편미분 한 식에 초기값을 대입한것이므로 계산한 a, b를 지정
C0=(1/sqrt(a^2+b^2))*C; % C0는 C를 그 크기로 나눈값이므로 계산식설정하여 C0값 도출
alpa1=fminbnd('1.5*x^2-5.6568542*x+6',-10,10) % X1 에대한 최적값을 갖는 alpa1 세미콜런을 생략하므로 출력시킴
X1=X0-alpa1*C0 % X1 출력
x1=X1(1,1); a=eval(dfx); % x1은 X1의 x값만을 추출함, x에 관해 편미분 한식 계산
x2=X1(2,1); b=eval(dfy); % x2은 X1의 y값만을 추출함, y에 관해 편미분 한식 계산
C=[a;b]; % C는 각 편미분 한 식에 초기값을 대입한것이므로 계산한 a, b를 지정
C1=(1/sqrt(a^2+b^2))*C; % C0는 C를 그 크기로 나눈값이므로 계산식설정하여 C0값 도출
alpa2=fminbnd('1.5*x^2-1.885618083*x+0.666666667',-10,10) % X2 에대한 최적값을 갖는 alpa2 세미콜런을 생략하므로 출력시킴
X2=X1-alpa2*C1 % X2 출력
3.소스코드
Do it. 2차원 이상의 임의의 함수 f(x1, x2, ..., xn)를 설정하고 다음 방법을 이용하여 최적값에 해당하는 X=(x1, x2, ..., xn)를 구하시오. 단, 설정한 함수가 n-차원 인 경우, Xn 까지만 구하시오. 초기값 Xo는 임의로 설정하시오. 단, 초기 벡터 Uo = I (단위행렬) 임.
1) Powell's method.
2) The steepest ascent (or descent) method
- 그림 1.1 함수 의 그래프 -
#7-1
▣ Powell's method.
접근 1. 함수 에 대하여 최적값 를 구해보자. (단 초기값 )
--
Powell's method은 한번에 한 변수 값만 변화하는 단변분 탐색법을 통해 만들어진 탐색점 1-3-5또는 2-4-6 의 패턴을 갖고 찾아내는 패턴탐색법 중 하나이다. 1-3-5 또는 2-4-6과 같은 점을 이은 선은 최적값을 향하는대 이를 공액방향이라 하고 공액방향에 기초한 대표적인 방법이 Powell's method 이다.
---------
,
을 구하자.
---
최적값 개념을 이용하여 을 구하여 을 구하자.
ⅰ)
ⅱ)
ⅲ) 을 알기위해 최적값을 가지는 을 찾는다.
ⅳ)
ⅴ)
ⅵ) 을 알기위해 최적값을 가지는 을 찾는다.
ⅶ)
ⅷ)
ⅸ)
ⅹ) 을 알기위해 최적값을 가지는 을 찾는다.
) 새로운 와 새로운 는
,
--------
,
을 구하자.
---
최적값 개념을 이용하여 을 구하여 을 구하자.
ⅰ)
ⅱ)
ⅲ) 을 알기위해 최적값을 가지는 을 찾는다.
ⅳ)
ⅴ)
ⅵ) 을 알기위해 최적값을 가지는 을 찾는다.
ⅶ)
ⅷ)
ⅸ)
ⅹ) 을 알기위해 최적값을 가지는 을 찾는다.
) 새로운 와 새로운 는
,
결론 a.
검증. , , , 검증값과 일치
#7-2
▣ The steepest ascent (or descent) method
접근 1. 함수 에 대하여 최적값 를 구해보자. (단 초기값 )
------------
,
최적값을 가지는 를 구한다.
------------
,
최적값을 가지는 를 구한다.
결론 a.
검증.
,
, 검증값과 일치하며
X=(0,0)으로 수렴함을 추측할 수 있다.
clear all % Powell's Method
clc
X0=[2 -1]; % 초기설정값 X0
p0=X0; % p0는 X0
U=[1 0;0 1] ; % 초기 U
r1=fminbnd('1*x^2+4*x+6',-10,10); % P1 에대한 최적값을 갖는 gamma1
u1=U(:,1)'; p1=X0+r1*u1; % u1지정과 최적값을 갖는 gamma1로 P1 계산
r2=fminbnd('x^2-2*x+1',-10,10); % P2 에대한 최적값을 갖는 gamma2
u2=U(:,2)'; p2=p1+r2*u2; % u2지정과 최적값을 갖는 gamma2로 P2 계산
u2=p2-p0; % 새로운 u2지정을 위한 u2 계산
U(:,1)=U(:,2); % 새로운 u1지정
U(:,2)=u2'; % 새로운 u2지정
U % 변경된 U 세미콜런을 생략하므로 출력시킴
u2=U(:,2)'; % X1을 구하기위해 u2값을 새로지정된 u2로 설정
r=fminbnd('6*x^2-12*x+6',-10,10); % X1 에 대한 최적값을 갖는 gamma
X1=p0+r*u2; % X1 계산
fprintf('X1=( %2.3f %2.3f )\n',X1(1,1),X1(1,2)) % X1 출력
p0=X1; % p0는 X1
r1=fminbnd('2*x^2',-10,10); % P1 에대한 최적값을 갖는 gamma1
u1=U(:,1)'; p1=p0+r1*u1; % u1지정과 최적값을 갖는 gamma1로 P1 계산
r2=fminbnd('6*x^2',-10,10); % P2 에대한 최적값을 갖는 gamma2
u2=U(:,2)'; p2=p1+r2*u2; % u2지정과 최적값을 갖는 gamma2로 P2 계산
u2=p2-p0; % 새로운 u2지정을 위한 u2 계산
U(:,1)=U(:,2); % 새로운 u1지정
U(:,2)=u2'; % 새로운 u2지정
U % 변경된 U 세미콜런을 생략하므로 출력시킴
u2=U(:,2)'; % X2을 구하기위해 u2값을 새로지정된 u2로 설정
X2=p0-r*u2; % X2 에 대한 최적값을 갖는 gamma
fprintf('X2=( %2.3f %2.3f )\n',X2(1,1),X2(1,2)) % X2 출력
clear all % The steepest ascent (or descent) method
clc
X0=[2;-1]; % 초기설정값 X0
dfx='2*x1' % 식을 x에관해 편미분
dfy='4*x2' % 식을 y에관해 편미분
x1=X0(1,1); a=eval(dfx); % x1은 X0의 x값만을 추출함, x에 관해 편미분 한식 계산
x2=X0(2,1); b=eval(dfy); % x2은 X0의 y값만을 추출함, y에 관해 편미분 한식 계산
C=[a;b]; % C는 각 편미분 한 식에 초기값을 대입한것이므로 계산한 a, b를 지정
C0=(1/sqrt(a^2+b^2))*C; % C0는 C를 그 크기로 나눈값이므로 계산식설정하여 C0값 도출
alpa1=fminbnd('1.5*x^2-5.6568542*x+6',-10,10) % X1 에대한 최적값을 갖는 alpa1 세미콜런을 생략하므로 출력시킴
X1=X0-alpa1*C0 % X1 출력
x1=X1(1,1); a=eval(dfx); % x1은 X1의 x값만을 추출함, x에 관해 편미분 한식 계산
x2=X1(2,1); b=eval(dfy); % x2은 X1의 y값만을 추출함, y에 관해 편미분 한식 계산
C=[a;b]; % C는 각 편미분 한 식에 초기값을 대입한것이므로 계산한 a, b를 지정
C1=(1/sqrt(a^2+b^2))*C; % C0는 C를 그 크기로 나눈값이므로 계산식설정하여 C0값 도출
alpa2=fminbnd('1.5*x^2-1.885618083*x+0.666666667',-10,10) % X2 에대한 최적값을 갖는 alpa2 세미콜런을 생략하므로 출력시킴
X2=X1-alpa2*C1 % X2 출력
소개글