Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
전산물리학:전산물리의_소개 [2015/03/12 08:40] – [코드 작성과 실행] admin | 전산물리학:전산물리의_소개 [2016/04/25 17:32] (current) – 삭제 admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ======전산물리의 목적====== | ||
- | 2014년 고등과학원 주최로 열린 Pyeong-chang Summer Institute 중 전건상 교수님이 " | ||
- | Numerical Recipes에 언급된 Hamming의 모토, " | ||
- | |||
- | ======전산으로 계산하는 양====== | ||
- | 우리가 다루는 양을 길이, 무게, 시간 등의 물리량이라고 해석하지만 결국 컴퓨터 안에서는 무차원의 숫자이다. 따라서 우리가 다루는 방정식은 [[물리: | ||
- | |||
- | ======전산작업의 단계와 일반적 교훈들====== | ||
- | 이하의 내용은 전건상 교수님의 강의에 상당 부분 빚지고 있다. | ||
- | =====문제 설정===== | ||
- | -문제를 이해하고 진술 | ||
- | -필요한 변수들과 그것을 구하는 법을 발견 | ||
- | -그 방법을 컴퓨터가 이해할 수 있게 변환 | ||
- | =====코드 작성과 실행===== | ||
- | -전체 구조를 설계한다 | ||
- | -코드를 작성한다 | ||
- | *권장사항 | ||
- | -의사코드 작성 | ||
- | -검증된 기존 코드를 사용 | ||
- | -논리를 잘 분리해서 정리 | ||
- | -주석을 작성 | ||
- | *피할 것 | ||
- | -복잡한 논리 | ||
- | -교묘한 테크닉 | ||
- | -컴퓨터 하드웨어 사양에 의존하는 언어 | ||
- | *코드에 큰 수정을 가하기 전 백업을 남길 것 | ||
- | -테스트와 디버깅 | ||
- | *오류의 종류 | ||
- | -문법 오류: 컴파일러 수준에서 발견 가능 | ||
- | -결과 없음: 무한 루프, 메모리 접근 오류 등 | ||
- | -결과가 나오지만 틀렸음: 가장 골치아픈 경우 | ||
- | *어떻게 디버깅할 것인가 | ||
- | -[[http:// | ||
- | -전체 논리를 점검 | ||
- | -부분부분 프로그램을 머리로 따라가며 논리를 점검 | ||
- | -매 줄마다 변수의 값들을 출력 | ||
- | *어떻게 테스트할 것인가 | ||
- | -알려져 있는 특별한 경우와 비교 | ||
- | -예전 결과를 재현하는지 점검 | ||
- | -물리적으로 말이 되는지 점검 | ||
- | =====분석과 시각화===== | ||
- | *분석을 통해 결과에 물리적 의미를 주게 된다 | ||
- | *결과의 중요성은 계산이 얼마나 복잡하느냐가 아니라 물리적 의미에 따라 주어진다 | ||
- | *시각화는 결과 이해를 돕는다 | ||
- | *시각화는 결과의 중요성을 강조해준다 | ||
- | =====일반적 교훈===== | ||
- | *컴퓨터가 일하는 방식대로 생각해보라 | ||
- | *컴퓨터는 매우 빠르게 계산을 수행할 수 있다 | ||
- | *컴퓨터는 물리를 모르고 상식도 모른다 | ||
- | *컴퓨터가 어떤 일을 잘 하고 어떤 일에 약한지 파악하라 | ||
- | *컴퓨터는 잘 부서지지 않으니까 이것저것 시도해보자 | ||
- | |||
- | |||