저 사다리의 길이를 최적화 기법 중 하나인 황금분할법으로 푸는게 목적이고
저 사다리에 대한 X 식은 fun = sqrt((16 * k*k) / ((k - 4)*(k - 4)) + k*k) 임.
황금 분할법이란게 , R = (sqrt(5.0) - 1) / 2 이라는 황금비로
d = R * (xu - xl)로 설정한 다음에, 이 d의 값을 이용해서
X1 = Xl + d , X2 = Xu - d 로 놓은 다음
F(x1) > F(x2) 일 경우와 그 반대 경우 각각 다른 조건을 대입해서 푸는건데
F(x1) > F(x2) 일 때에는
가장 최적점 Xopt = x1 이되고
Xl = X2 가 되는 것이고
F(x1) < F(x2) 일 떄에는
가장 최적점이 x2가 되고
Xu = x1이 되는 것으로
계속 반복시키는 방법이야
근데 왜 나는 안될까
원래대로 답을 구하게 되면 X는 8 F(x) = 11.1인가 나옴
ea = (1 - R)*fabs((xu - xl) / xopt) * 100
es = 0.0001
ea < es 일 때 반복 종료
잘나오는데
천천히 읽어보고 다시 해볼게 이제 술좀깸
11.313708 <-- 입력값 8 일 때 이렇게 나옴
ㅜㅜㅜ 난 그렇게 안뜨는데 ㅜㅜ
아얘 값이 다르게떠버리네
어케 떠버림 ?
올려줘보면 안돼 ?
너랑 똑같이뜸
이게 머라고 고생이지
되게 간단한 건데 사람 괴롭히네............
#include <math.h> <-- 혹시 잘 봐봐라... 기본 int 로 잡혀서 sqrt가 이상하게 나올 수 있다..