이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
윤형석
가입: 2012년 9월 5일 올린 글: 26
|
올려짐: 2012년12월21일 16:54 주제: 프로젝트 2번 테스트데이터 및 조교님께 질문드립니다. |
|
|
테스트케이스입니다.
코드: |
let matrix_printer mat =
let (cs,rs) = Markov.size mat in
for j=0 to rs-1 do
for i=0 to cs-1 do
print_string "\t";
(print_float (Markov.ij mat i j))
done;
print_newline ()
done ;
print_newline ()
let _ = (*doc*)
let m2 =
Markov.add_column [0.0000001;0.;0.;0.9999999]
(Markov.add_column [1.;0.;0.;0.]
(Markov.add_column [0.;0.;1.;0.]
(Markov.column [0.;1.;0.;0.])) )
in
let minit = (Markov.column [1.;2.;3.;4.]) in
matrix_printer (Markov.markov_limit m2 minit)
|
답은
코드: |
3.33333333
3.33333333
3.33333333
0
|
정도 나오면 됩니다.
조교님께! 오차범위가 너무나도 좁은 것 같아 질문드립니다.
위와 같은 테스트케이스의 경우, 0.9999999가 수렴에 이르기까지의 곱셈의 회수가 약 2억번이 필요합니다.
한 번의 연산에 매우작은 오차(대충 2^-50정도라고 생각을 할게요)가 생기지만, 이 연산이 2억번 실행되면 오차가 눈에 띄는 정도로 커지게 됩니다.
조교님께서 제시한 0.00000001의 경우에는 저런 입력을 커버하기에 조금 작은 오차범위가 아닌가 싶습니다.
조금 널널하게 해주심이 어떨까요? |
|
위로 |
|
|
박준호
가입: 2012년 9월 15일 올린 글: 71
|
올려짐: 2012년12월21일 17:01 주제: 흠...장난아니네 |
|
|
지금 오차한계 0.000001일때는 저값 도달도 못하네.....
0.0000001로하나 늘렸더니 계속 돌고있다ㅋㅋㅋㅋㅋ |
|
위로 |
|
|
이대근
가입: 2012년 10월 26일 올린 글: 5
|
올려짐: 2012년12월21일 17:46 주제: 저는 |
|
|
저는 계산하는데 0.05초 정도 걸렸어요.
3.33333331959
3.33333331959
3.33333331959
1.14983554174e-11
|
|
위로 |
|
|
강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2012년12월21일 18:00 주제: |
|
|
글쎄요 사실 제대로 했다면 몇번만 곱해도 굉장히 극한값에 가까워질텐데요? |
|
위로 |
|
|
윤형석
가입: 2012년 9월 5일 올린 글: 26
|
올려짐: 2012년12월21일 18:15 주제: |
|
|
그렇다면 초기값의 범위를 제한시켜주셔야 할 것 같습니다..
아마 제가 올린 테스트케이스가 오차범위 안에서 잘 나오는 분들이 그렇게 많지 않을 듯 한데, 사실 초기값의 합을 1로 normalize 시키면 어느정도 개선이 될 것 같아서요
(위의 이대근 학우의 오차도 이 부분만 개선이 되면 허용범위 내인 것 같네요.) |
|
위로 |
|
|
최지헌
가입: 2012년 9월 6일 올린 글: 35
|
올려짐: 2012년12월21일 19:07 주제: |
|
|
저도 답은 나오는데 차이가 꽤 많이 나네요...ㅠㅠ
비교의 정확도를 0.0000001 까지 같은 걸로 치면
3.25637143502
3.25637142732
3.25637141962
0.230885704151
이 나오고, 대폭 정확도를 늘려서 0.0000000000001까지 같은걸로 치면
3.33333328433
3.33333328433
3.33333328433
4.9289726407e-10
이 나옵니다.
비교할때 허용하는 차이를 더 작게하면 될것같긴 한데 이렇게 하면 오히려 부동소수점 연산 오차같은거 때문에 무한루프에 빠질것 같아서 고민이네요..
허용 오차 범위를 0.0000001이라고 하셨는데 위 행렬에는 0.9999999처럼 1이랑 엄청 가까운 엔트리가 있어서 그런 것 같은데 저런 입력도 들어오나요? |
|
위로 |
|
|
강동옥
가입: 2009년 9월 18일 올린 글: 602
|
올려짐: 2012년12월21일 19:25 주제: |
|
|
너무 극단적인 케이스는 넣지않겠으니 걱정하지마세요
오차는 공지ㅘㄴ 수준보다는 약간 널럴한 수준에서 검사할 생각입이다. |
|
위로 |
|
|
|