코드 보면 fun 가 사진에서 F(x)인데 내가 이 함수설정을 잘 못한건가 ?
내 눈에는 아무리 씻고 찾아봐도 잘못된 부분이 안보여서 ㅜㅜ
C언어 초보라 그런가봐 ㅜㅜ
실제 함수에 X1 , X2 넣으면 F(x)값이 저렇게 안나오는데 C로 돌리면 저리나와 ㅜㅜ
Float으로 바꺼봐
밑까지 쭉 보여주셈
저게문제가 아님
아까 올린 코드가 끝임
float이랑 상관잇나 ? double이 더 큰 실수아님?
ㅇㅇ float으로 바꿧는데도 똑같다 ㅜㅜ
%f - float, %lf - double, %Lf - long double
ㄴ 아냐 printf는 제대로 작동해 다만 그 안에 결과값만 다를뿐.
니가 생각한걸 코드로 이상하게 옮겼음 코드 자체는 이상할게 없는데
내가 보기엔 함수를 잘못설정한거같기도 하고..........아 왜이러지.......진짜미치겠다ㅜㅜ
조건문에서 x2 = xu -d ; 이런건 왜한거심 어차피 그 다음 루프돌때 똑같이 값 들어가는데
코드문제는 아닌게 확실한게, 그냥 printf("\n %f\t %f\t ", fun(x1), fun(x2)); 이걸로 확인을 해봤는데 그냥 Fx의 값 자체가 완전 이상하게 나와. 나머지는 그 fx값에 기준해서 제대로 진행되고
걍 문제를알려주셈 fun이 나타내는 의미가 뭐고
카톡 있음 ? 이걸로 글쓰기가 너무 힘들어
bognog 이거 내 카톡인데
야
니 지금보니까 황금비 역수로 적어놨다
졸라 어이없닼ㅋㅋ
? 어디 ?
켤레수니까 더하기1로 바꾸면 잘 나올듯
어디 말하는거임 ?
R값? 저게 왜 역수임 ?
저건 제대로 설정 되어있는데 ?
주석으로 golden ratio값 해둔곳
아니 ; 지금 F(x)값만 잘못나오고 있다니깐 왜 자꾸 다른곳에서 문제찾고 그러냐 ;
황금비 1더하기 루트5나누기 2임
당연하지 x1 x2가 잘못된 R의 문맥에 있는 d로부터 오염되고있는데
아 진짜 이새벽에 피곤한데 왜 너까지 피곤하게해 내가 황금비 저걸 헷갈려서 이새벽에 이러고 있겠냐 ?
니가 원래 원하는 값은 x1 x2의 대소가계속 바뀌는거 아님?
아니 저기 님아 golden method잖아요, 최적화 조건 찾는거잖아요. 근데 X1 X2의 대소가 계속 바뀌던 말던 그건 상관없는거죠 반복을 계속 진행하면서 대소가 바뀔때가 있고 안바뀔때가 있겠죠
근데 지금 내 질문 자체가 그게 아니잖아. 코드는 제대로 되어 잇다고. F(x)값에 대해서 대소비교 하고 Xu xl값 각각 iter값 증가할 때마다 조건에 맞게 변하는거 확인했다고
근데 그냥 초기 F(x)의 값 자체가 아예 이상하다니깐 그거가 아무리 수정해도 내가 설정한 fun 함수에 x1를 집어넣은 값이랑은 다르게 나온다고
아니 문제도 모르는사람한테 그렇게말하면 어케알음 여기선 아예 안바뀌고있는게 문젠데
걍 혼자해결해야겟다
그럼 x1도 찍고 f x1도 찍어보면 되지
함수가 이상한지 안이상한지 인풋 아웃풋 비교해보면 될거아님ㅈ그렇게 함수가 수상하면
아예 안바뀌는게 왜 안바뀌겟냐고...... iter = 1일때 F(x2)의 함수값이 이상하게 크게 나오니깐 아무리 X= 5~10사이 왓다갓다 거려도 그 F(x2)값을 못넘으니깐 안바뀌지...... 그니깐 나는 알고싶은게 저 함수값을 수정하는 법을 알고싶은거라니깐
X1 제대로 되어있고 F(x1)이 이상하다고 내가 지금 아까 글부터 4번정도 말한거같음. 다른거 다 괜찮고 함수 결과값만 이상하다고
걍 내가ㅈ컴켜봄
x1 = 8.090170 : 11.315817 x2 = 6.909830 : 11.746029 <-- 이렇게 나온다//
니 출력문을 보여줘..
내 출력문 저 위에 저건데 난 x1 x2 너랑 똑같은데 왜 Fx1 Fx2가 다르게 나오지 ;
위에 어떤거..
저 중간에 있는거 잇잖아
저긴 X1 X2 표시 안해놧는데 잠깐 다시 올려볼게
fun = sqrt( ( 16 * k * k ) / ( ( k - 4 ) * ( k - 4 ) ) + k * k ); <--- 다른 점이 있나 찾아봐..
다른점 없는데 ; 저거 넣고 밑에는 아까 내가 올린 코드 그대로 쭉 한거야 ?
와 미치겠네 진짜 ; 나는 왜 안되는거지 대체
1넣어보셈
어디다가 ?
ㅂㅁ // 그거 쭉 돌려보면 최종 X값 몇나와 ?
printf( "%lf : %lf", x_1, fun( x_1 ) ); <-- 참고로 이렇게 썼다..
뭘 돌려 걍 하나만 했어..
? 저게 뭐야 ㅜㅜ 나 C언어 초보라 잘 모름 ㅜㅜ 혹시 코드 짠거 보여줄수 있어 ?
나도 똑같이 나오는데
double R = ( sqrt( 5.0 ) - 1 ) / 2; double xl = 5; double xu = 10; double d = R * ( xu - xl ); double x_1 = xl + d; double x_2 = xu - d; <-- 이렇게 니가 한 대로 초기값 넣고 돌렸는데..
리빌드 해봐 샹..
let f = p => Math.sqrt(p * p + (16 * p * p / ((p - 4) * (p - 4)) ));
8.09017 11.315816906453565 6.90983 11.746029533112658
f(10)=sqrt(425)=20.615528 나오네 출력부분코드좀 올려봐
아니 f(5) 였나 할튼
이거 손으로 계산한거랑 비교해서 다른거자나
손으로 계산한거 값 첨에 몇개만 써줘
뭐야..자냐..?
함수는 문제없자나 그럼 니가 조건문 돌리는중에 뭔가 잘못한거겠지
뭘 최적화 하고 뭘 찾는거임
난 애초에 xu xl이 뭔지도 모르겠다 길이임?
입출력 값하고 니 출력문을 봐야 도와주든 말든 할 거 아니냐..
하 내가 조건문 돌리는 중에 뭔가 잘못한거같은데 잠깐 문제설명해줄게
원래 5랑 10넣으면 뭐임
전역용사// 거 러스트임?
실제 함수에 X1 , X2 넣으면 F(x)값이 저렇게 안나오는데 C로 돌리면 저리나와 ㅜㅜ
Float으로 바꺼봐
밑까지 쭉 보여주셈
저게문제가 아님
아까 올린 코드가 끝임
float이랑 상관잇나 ? double이 더 큰 실수아님?
ㅇㅇ float으로 바꿧는데도 똑같다 ㅜㅜ
%f - float, %lf - double, %Lf - long double
ㄴ 아냐 printf는 제대로 작동해 다만 그 안에 결과값만 다를뿐.
니가 생각한걸 코드로 이상하게 옮겼음 코드 자체는 이상할게 없는데
내가 보기엔 함수를 잘못설정한거같기도 하고..........아 왜이러지.......진짜미치겠다ㅜㅜ
조건문에서 x2 = xu -d ; 이런건 왜한거심 어차피 그 다음 루프돌때 똑같이 값 들어가는데
코드문제는 아닌게 확실한게, 그냥 printf("\n %f\t %f\t ", fun(x1), fun(x2)); 이걸로 확인을 해봤는데 그냥 Fx의 값 자체가 완전 이상하게 나와. 나머지는 그 fx값에 기준해서 제대로 진행되고
걍 문제를알려주셈 fun이 나타내는 의미가 뭐고
카톡 있음 ? 이걸로 글쓰기가 너무 힘들어
bognog 이거 내 카톡인데
야
니 지금보니까 황금비 역수로 적어놨다
졸라 어이없닼ㅋㅋ
? 어디 ?
켤레수니까 더하기1로 바꾸면 잘 나올듯
어디 말하는거임 ?
R값? 저게 왜 역수임 ?
저건 제대로 설정 되어있는데 ?
주석으로 golden ratio값 해둔곳
아니 ; 지금 F(x)값만 잘못나오고 있다니깐 왜 자꾸 다른곳에서 문제찾고 그러냐 ;
황금비 1더하기 루트5나누기 2임
당연하지 x1 x2가 잘못된 R의 문맥에 있는 d로부터 오염되고있는데
아 진짜 이새벽에 피곤한데 왜 너까지 피곤하게해 내가 황금비 저걸 헷갈려서 이새벽에 이러고 있겠냐 ?
니가 원래 원하는 값은 x1 x2의 대소가계속 바뀌는거 아님?
아니 저기 님아 golden method잖아요, 최적화 조건 찾는거잖아요. 근데 X1 X2의 대소가 계속 바뀌던 말던 그건 상관없는거죠 반복을 계속 진행하면서 대소가 바뀔때가 있고 안바뀔때가 있겠죠
근데 지금 내 질문 자체가 그게 아니잖아. 코드는 제대로 되어 잇다고. F(x)값에 대해서 대소비교 하고 Xu xl값 각각 iter값 증가할 때마다 조건에 맞게 변하는거 확인했다고
근데 그냥 초기 F(x)의 값 자체가 아예 이상하다니깐 그거가 아무리 수정해도 내가 설정한 fun 함수에 x1를 집어넣은 값이랑은 다르게 나온다고
아니 문제도 모르는사람한테 그렇게말하면 어케알음 여기선 아예 안바뀌고있는게 문젠데
걍 혼자해결해야겟다
그럼 x1도 찍고 f x1도 찍어보면 되지
함수가 이상한지 안이상한지 인풋 아웃풋 비교해보면 될거아님ㅈ그렇게 함수가 수상하면
아예 안바뀌는게 왜 안바뀌겟냐고...... iter = 1일때 F(x2)의 함수값이 이상하게 크게 나오니깐 아무리 X= 5~10사이 왓다갓다 거려도 그 F(x2)값을 못넘으니깐 안바뀌지...... 그니깐 나는 알고싶은게 저 함수값을 수정하는 법을 알고싶은거라니깐
X1 제대로 되어있고 F(x1)이 이상하다고 내가 지금 아까 글부터 4번정도 말한거같음. 다른거 다 괜찮고 함수 결과값만 이상하다고
걍 내가ㅈ컴켜봄
x1 = 8.090170 : 11.315817 x2 = 6.909830 : 11.746029 <-- 이렇게 나온다//
니 출력문을 보여줘..
내 출력문 저 위에 저건데 난 x1 x2 너랑 똑같은데 왜 Fx1 Fx2가 다르게 나오지 ;
위에 어떤거..
저 중간에 있는거 잇잖아
저긴 X1 X2 표시 안해놧는데 잠깐 다시 올려볼게
fun = sqrt( ( 16 * k * k ) / ( ( k - 4 ) * ( k - 4 ) ) + k * k ); <--- 다른 점이 있나 찾아봐..
다른점 없는데 ; 저거 넣고 밑에는 아까 내가 올린 코드 그대로 쭉 한거야 ?
와 미치겠네 진짜 ; 나는 왜 안되는거지 대체
1넣어보셈
어디다가 ?
ㅂㅁ // 그거 쭉 돌려보면 최종 X값 몇나와 ?
printf( "%lf : %lf", x_1, fun( x_1 ) ); <-- 참고로 이렇게 썼다..
뭘 돌려 걍 하나만 했어..
? 저게 뭐야 ㅜㅜ 나 C언어 초보라 잘 모름 ㅜㅜ 혹시 코드 짠거 보여줄수 있어 ?
나도 똑같이 나오는데
double R = ( sqrt( 5.0 ) - 1 ) / 2; double xl = 5; double xu = 10; double d = R * ( xu - xl ); double x_1 = xl + d; double x_2 = xu - d; <-- 이렇게 니가 한 대로 초기값 넣고 돌렸는데..
리빌드 해봐 샹..
let f = p => Math.sqrt(p * p + (16 * p * p / ((p - 4) * (p - 4)) ));
8.09017 11.315816906453565 6.90983 11.746029533112658
f(10)=sqrt(425)=20.615528 나오네 출력부분코드좀 올려봐
아니 f(5) 였나 할튼
이거 손으로 계산한거랑 비교해서 다른거자나
손으로 계산한거 값 첨에 몇개만 써줘
뭐야..자냐..?
함수는 문제없자나 그럼 니가 조건문 돌리는중에 뭔가 잘못한거겠지
뭘 최적화 하고 뭘 찾는거임
난 애초에 xu xl이 뭔지도 모르겠다 길이임?
입출력 값하고 니 출력문을 봐야 도와주든 말든 할 거 아니냐..
하 내가 조건문 돌리는 중에 뭔가 잘못한거같은데 잠깐 문제설명해줄게
원래 5랑 10넣으면 뭐임
전역용사// 거 러스트임?