내가 배운 책들

학부 + 대학원때 들었던 과목과 그 교재들.

수리물리학 : Tai L. Chow : Methematical methods for physicists

고전역학 : Marion and Thornton : Classical dynamics of particles and systems / Fetter and Walecka

전자기학 : Reitz, Milford, and Christy : Foundations of Electromagnetic theory / J. D. Jackson

현대물리학 : Serway : Modern Physics

전자물리 : Streetman and Bannerzee

열 및 통계역학 : F. Reif : Fundamentals of Statistical and Thermal Physics / Huang

핵물리학 : Krane : Introductory Nuclear PHysics / Leo

천체 핵물리학 : 논문 스터디

전산물리학 : Tao Pang :

양자장론 : Peskin and Shroeder : An Introduction to Quantum Field Theory / J. J. Sakurai : Advanced Quantum Mechanics

플라즈마물리학 : Chen : Introduction to Plasma Physics

입자물리학 : Halzen and Martin : Quarks and Leptons

양자역학 : Stephen Gasiorowicz / J. J. Sakurai : Modern Quantum Mechanics

일반물리학 : 정재국 외

비선형광학: Boyd


함수해석학 : W. Rudin

선형대수학 : Anton and Rorres : Elementary Linear Algebra 8e / Kwak and Hong

기하학개론 : Jennings : Modern Geometry with Applications

현대대수학 : J. B. Fraleigh : A First course in Abstract Algebra

정수론 : 임근빈

미분기하학 : O’Neil : Elementary Differential Geometry

미분방정식 : Zill and Cullen : Differential Equations with Boundary Value Problems

복소해석학 : Silverman : Complex Variables

실해석학 : E. M. Stein and Rami Shakarchi (Fourier Analysis) / Wendell Fleming (Functions of Several Variables)

해석학 : Kenneth Ross : Elementary Ananlysis

편미분방정식 : H. E. Weinberger

미적분학 : 고형주 & 신해용

일반생물학 : Wallace (일명 호랑이 책)

일반화학 : …기억 안남.

음…

…뭐, 대략. 저자 이름만 알아도 찾아볼 수는 있으니, 관심 있는 사람은 저자 이름으로 검색하면 될 것이다.

이후 컴퓨터 전공이랑 영문학을 전공했는데, 이건 다 방송대 교재로 공부했기 때문에 관심있는 사람은 방송대 가서 알아보면 된다.

네이버 vs. 구글

구글은 검색된 정보다. 네이버는 가공된 정보다.

네이버에서 날짜를 보려면 아래의 위젯에서 한번 클릭을 해야 한다. 그럼 달력이 뜬다.

사용자 삽입 이미지

그러나 구글은 검색하면 된다.

사용자 삽입 이미지

첫페이지에 뜬다.

물론 이 서비스는 아무리 봐도 한국에 특화된 서비스인데, 한국어 구글에서만 뜬다. 영어로 today를 검색하면 그냥 일반 검색 결과가 나온다.

아무튼, 이건 그냥 서론이고, 계산기를 보자.

사용자 삽입 이미지

간단한 계산기가 뜬다. 혹시나 해서 검색을 해봤다.

사용자 삽입 이미지

나온다. 특수함수는 역수 계산이랑 제곱근 계산이 전부다. 저건 윈도우나 리눅스 기본 제공 프로그램 수준이다. 구글은 그냥 검색하면 된다.

사용자 삽입 이미지

물론 네이버도 검색하면 되긴 된다.

사용자 삽입 이미지

그러나 이건 안된다.

사용자 삽입 이미지

물론 구글은 되니까 썼겠지.

사용자 삽입 이미지

그리고 구글은 이런것도 된다.

사용자 삽입 이미지

무려 복소수로 뜬다.

대칭성은 어째서 아름다운가

대칭적인 것이 어째서 아름다운지 간단하게 알아볼 수 있다.

일단 당신 얼굴을 거울에 비춰봐라. 잘생기거나 예쁠 것이다. 아님 말고.

그 상태에서, 입꼬리를 한쪽만 올려봐라. 왼쪽이든 오른쪽이든 한쪽만. ->

썩소

된다.

양쪽 다 올려봐라.

-> 미소

가 된다.

대칭성이 아름답다고 생각하는데는 다 이유가 있는 법이다.

물론 이런 생각을 강요하겠다는 건 아니고…내 생각이다.

주어진 영역 내부의 점 골라내는 프로그램 만들기

굳이 만들어 보자.

목표 : (x, y)의 리스트로 주어진 점 들 중에서, 임의의 다각형 영역의 내부에 있는 점의 좌표를 골라내는 프로그램.

구현할 것 목록

  • 다각형 내부/외부 판정
  • 좌표로 주어진 다각형이 올바른지 판정 : 변 두개가 꼬였다거나 하는 등의 틀린 정보를 제거

일단 cui로 만들고 gui 구현은 나중에.

1.

다각형 내부/외부 판정에는 조르당의 곡선정리를 사용할 수 있을 것 같은데, 문제는 선분 두개가 몇번 만나는지 세어야 한다는 것. 따라서 다각형의 모든 변을 특정하는 것이 필요함.

2.

모든 다각형은 여러개의 삼각형으로 쪼개지므로, 삼각형 내부/외부 판정만 성공하면 나머지는 가능함. 대신, 주어진 다각형을 삼각형 여러개로 쪼개는 것이 필요함.

공유기 문제

KT에서 공유기 사용자들에게 제제를 한다고 한다.

근데 난 이게 왜 문제가 되는지 모르겠다.

트래픽의 대부분을 악성 공유기 이용자들이 만들어내고 있다고 하는데, 논리적으로 살펴보자.

1. 인터넷 속도는 집에서 전화국까지의 설비에 좌우된다. 즉, 애초에 속도를 전화국에서 상한선을 제한하고 있다면 그 이상은 절대 나올 수 없다.

2. “초고속” 인터넷 회선이라고 자랑할 때는 이미 그 “초고속”이라는 회선을 24시간 연중 무휴로 사용할 수 있음을 내포하고 있다. 즉, 사용료는 항상 인터넷을 최대속도로 사용할 수 있을 것이 기대되기 때문에 내는 것이다. 물론 대부분의 인터넷 서비스는 최대속도의 20%정도 속도에서 대충 마무리 지어진다. 운이 좋아서 전화국 옆집이면 모를까.

3. 전화국에서 내 컴퓨터 사이에 공유기가 있다면, 전화국에서 알아보는 것은 “공유기” 한대 만 보인다. 나머지 내부 네트워크는 차단되어서 보이지 않아야만 한다.

4. 즉, 전화국에서 최대속도를 제한한다면 전화국이 공유기와 통신하는 속도만 제한하면 끝이라는 것이다. 이건 전적으로 전화국에서 세팅하면 끝나는 문제다. 통신 속도는 항상 느린쪽에 맞춰지므로 공유기 속도가 빨라봐야 소용 없다는 것이다.

5. KT의 얘기는 마치 공유기를 사용하면 “초고속”이 보장하는 것보다 더 큰 트래픽을 유발할 수 있다는 것처럼 보인다. 이것은 1. 공유기를 이용해서 여러대의 컴퓨터가 한 회선을 이용하는 경우 초고속보다 더 빠른 속도가 나오거나 2. 속도는 같지만 트래픽이 더 많거나이다. 물론 2번은 불가능하다. 트래픽은 통신회선을 오가는 전체 정보량을 이야기하기 때문이다.

6. 쉽게 설명하면, 가령 통신 속도를 1초에 10글자를 보내는 것으로 제한했는데, 공유기를 써서 2대의 컴퓨터가 접속하면 1초에 20글자를 보내는 것이 되어야 한다는 것이다. 만약 이게 가능하다면 KT의 설비는 회선 속도 제한에 실패한 것이며, 이런 경우는 KT의 잘못이다. 가령 공유기를 써서 2대의 컴퓨터가 접속하면 1초에 5글자씩 보내서 두대 합쳐 10글자씩이라면, 사용자는 계약 내용대로 최대속도를 이용한 것이므로 사용자 잘못은 없다.

7. 만약 24시간 365일 연중 무휴로 1초에 10글자씩 보내는 속도로 사용하는 것이 잘못이라면, 초고속 인터넷 서비스에 “최고속도 보장”이라는 말을 빼라. 초고속이란 말도 빼야 한다.

내가 뭐를 잘못 알고 있기에 KT의 논리와 다른 것일까.

덧붙여서, 공유기 검출 방지 시스템이 있다고 해도 만약 이것이 윈도우 전용이면 사용자의 운영체제 선택권을 제한하는 것으로서 사용자 권리 침해이다.



[각주:

1

]



또한 사용자 컴퓨터로부터 정보를 가져간다는 것인데, KT에서 아무리 잘 만들었어도 이 프로그램이 해킹되어 사용자 컴퓨터가 남의 손에 통제될 가능성이 생긴다는 건 아무래도 불쾌한 일이다.

  1. 물론 이미 KT의 접속 프로그램은 윈도우 전용이고 리눅스에서 쓰려면 삽질좀 해야 하는 것으로 알고 있다.

    [본문으로]

그림 돌리기

TeX에 그림을 넣을 때 돌려서 넣고 싶을 때가 있다.

일단 그림을 넣으려면 TeX파일 앞에

\usepackage{graphicx}

을 넣자.

그림을 넣는 코드는 아래와 같다.

\begin{figure}

\includegraphics[width=]{filename.eps}\\

\caption{}\label{}

\end{figure}

{}사이에 파일 이름을 넣으면 된다. width는 폭을 결정하는 건데, 이거 대신에 angle=xx라고 적으면 된다. xx는 도(degree)단위로 적으면 된다.

시니컬 고딩의 탄생

원문 출처 : http://cassus.tistory.com/entry/%EC%8B%9C%EB%8B%88%EC%BB%AC-%EA%B3%A0%EB%94%A9%EC%9D%98-%ED%83%84%EC%83%9D

이 글은


묵시님의 블로그

에서 퍼왔습니다.


크리에이티브 커먼즈 라이센스




Creative Commons License




이 저작물은


크리에이티브 커먼즈 코리아 저작자표시-비영리 2.0 대한민국 라이센스


에 따라 이용하실 수 있습니다.

시니컬 고딩의 탄생

글록이란 친구에게 ‘시니컬 고딩’에 관한 이야기를 들었다. 시니컬(Cynical, 냉소적인) + 고등학생의 조합인 이 단어는 굳이 고등학생만을 대상으로 하는 것은 아닌 듯 하다. 글록의 의견에 따르면 시니컬 고딩이란 차가운 단어를 골라 말을 하고 한 분야에서 마치 전문가인양 정보를 나열하기도 하며 대중의 대세적 움직임에 반대한다. 하지만 시니컬 고딩의 진짜 문제는 실제로 아는 것은 아무것도 없는데도 불구하고 단편적인 지식들을 조각조각 모아 허세를 부린다는 것이다. 이 말을 들었을 때 나는 내 주위의 뛰어난 사람들을 돌아보게 된다.

철학이란 책을 보지 않아도 할 수 있다고 했던 A형의 말 : 그때는 겁이 없었어. 책을 보지 않아도 철학을 한다고? 차라리 숫자 6개만 찍으면 되는 로또대박을 노렸어야 했지.

면접관(교수)에게 주어진 문제에 대한 자신만의 이론을 주장했던 B형의 말 : 면접 당시에 내가 교수에게 했던 말들은 지금 생각해봐도 얼굴이 붉어진다. 그런 황당한 주장을 자신만만하게 소리치는 것을 교수가 보며 어이없어 하지 않았을까?

무척이나 뛰어나고 겸손한 두 형들도 단편적인 지식으로 잘난체 하던 시절이 있었다는 이야기다. 시니컬 고딩도 별반 다르지 않다고 본다. 유치한 이야기를 하는 대중들을 보며 무엇인가 다른 자신의 위대함에 빠질 수 있는 고등학생이라면 누구든지 시니컬 고딩이 될 위험성이 있다.

그러나 오만함 자체가 내실이 부족한 겉멋형 지식인을 만드는 것은 아니다. 차가운 이성에 대한 환상을 품고 있는 사람이라면 보통 그가 가지고 있는 지식을 가지는 것이 아닌 (공부하기 싫기 때문에) 그 분위기를 가지고 싶은 것이다. 천재가 보통 사람들과 다른 엉뚱한 구석을 가지고 있다고 해서 천재를 지향하는 한 바보가 천재들의 노력과 삶을 통찰하기는 커녕 필요없는 엉뚱한 행동을 모방하려고 애쓰는 것을 시니컬 고딩은 열성적으로 수행한다.

슬프게도 이런 시니컬 고딩이란 병에 쉽고 효과가 잘 드는 약은 없다. 그 중에서 가장 바람직한 방향은 자신보다 훨씬 뛰어난 사람을 만나 이야기 해보면서 자신의 세상이 얼마나 좁은 우물 위의 하늘에 불과했는지를 깨닫는 것이다. 충격요법은 환자 자신이 얼마나 초라했는지에 대한 우울증을 불러일으키기도 하고 그 우울증에서 깨어난 뒤에도 환자가 가벼운 머리로 가벼운 입을 여전히 놀리기도 하지만 시니컬 고딩이 진짜 대중과는 다른 뛰어남을 지니고 있다면 자신의 부족함을 깨닫고 우물 밖으로 나오기 위해 애쓸 것이다. 물론 자신의 우물 속에서 나와봐야 자신이 지금까지 있었던 곳과는 비교도 되지 않는 엄청난 인물들의 벽 속에서 좌절하겠지만 이제부터는 훨씬 쉽게 타고 넘을 수 있을 것이다. 겸손은 안가지면 그만이고 가지면 좋은 것이 반드시 지녀야만 벽을 넘을 수 있는 필수적인 도구이다.




직업, 진로, 진학

일하는데서 어느 학생이 문의하길래 상담해줬다.

안녕하세요,, 대구에 사는 중1 남자아이입니다.

제가 특목고 진학을 목표로 하고 있어서 그런데요,, 몇가지 질문을 드리겠습니다.

제 꿈은 아직 확실하게 정하지 못하겠습니다 .

저는 창의적인 일을 하고 싶고 재밌는 일을 하고 싶습니다.

예를 들어 치킨집 같이 제가 아이디어를 내서 새로운 치킨을 개발하여 소비자에게 팔아서 돈을 버는 일을 하고싶습니다. 꼭 음식에 관련된 일을 하고싶다는 말은 아니구요,

‘경제야놀자’를 보고 애널리스트, 펀드매니저 같은 직업도 괜찮을것 같습니다.

하지만 지금 애널리스트에 관한 글을 읽어보고 경제학을 읽어보면 잘 이해도 안되고 너무 어려워서 ㅠㅠ..

저희집이 그렇게 잘사는것이 아닌 중소득층이라서 의사같이 돈을 많이버는 직업도 하고싶고요 ,,

그래도 제 흥미에 맞는 직업이 가장 좋을것 같아서 고민하고 있습니다.

커리어넷에서 진로상담도 해보고 해도 딱 이거다 하고 필이 꽂히는 직업이 없네요 ㅠ

직업을 좀 추천해주세요,,

그리고 특목고 진학하고 싶은데요,,

제가 5학년 – 대구교육대학교 영재교육원 , 6학년 -대구경북대학교 영재교육원

지금 – 대구남부교육청 영재교육원을 다니고 있는데요,,

요즘들어 책을 많이 안읽고 나태해져서 노력도 많이 안하는 것 같아요,,

제가 외고를 갈려고 했었는데요,, 어떤분이 외고가면 언문계열의 직업을 선택할수 밖에 없다고 하시는데 맞나요?? 물론 언문계열이 싫은건 아니지만 어릴때부터 이때까지 읽어온 과학서적들로 쌓아둔 과학지식이 아까워서요 ..

물론 저는 과학올림피아드는 몇번씩 나가도 수상은 5학년때 한번밖에 못했습니다..

그것도 장려상요 ㅠㅠ.

가족과 친척분들도 많이 기대하시고 계셔서 부담감도 생기구요,,

부산영재고, 대구과고, 대구외고 등으로 생각하고있어요..

민사고는 경제적 부담이 커서 ;;

물론 저런 학교에 갈수 있을지 모르겠지만 제가 하버드에 간 쌍둥이형제의 책을 읽고 자극이 되서 목표를 정하고 열심히 하고 싶어서요 ㅠㅠ

제가 1학기때 전교 7등 했는데요ㅠㅠ 수행평가때문에 많이 떨어졌어요.

그래도 수학은 415명중 5등, 과학은 415명중 1등 했어요,,

수학 중간고사 망해서 ㅠㅠ

이정도 성적으로 특목고 갈수있나요??

제가 특목고 갈려는 이유는 나중에 대학진학과 직업선택에도 유리할것 같기 때문이에요.

앞으로 꼭 노력할것입니다.

가정형편이 좋지 않아 ebs강의나 인터넷강의를 들으면서 고등학교 수학,과학 다 독학할 것이구요,, 질문에 성심껏 답해주시면 감사하겠습니다 ㅠㅠ 제 인생이 걸린 문제라서요,,

추가질문: 그리고 어떤 직업과 고등학교를 가르쳐주시고 그 고등학교와 직업을 갖는 방법을 설명해 주시면 감사하겠습니다.
일단 장래희망부터 정하고 고등학교나 대학교의 전공을 선택하는 것이 좋습니다. 그리고 지금 중1이면 14살정도일텐데, 꿈을 이룰때까지 한 15년에서 20년정도 걸릴 거라고 생각하고 길게 봐야 합니다.

일단 대학부터 좋은데 가고 보자는 심리는 대학 가서도 공부 안하게 되는 지름길이므로 지금 공부에 집중하면서 동시에 깊이있게 장래에 대해서 고민해 보시길 바랍니다. 목적이나 고민 없이 소득이나 사회적 지위만 바라보고 선택한 직업은 인생에 별 도움이 되지 않습니다. 특목고가 인생의 목적이 될 수 없고 명문대가 인생의 목표가 될 수 없습니다. 그것은 모두 수단이며 과정일 뿐, 중요한건 최종적으로 장래희망을 이루었느냐가 중요하겠죠. 그 장래희망에 도착하는데 특목고나 명문대가 반드시 필요하다면 노력해서 가면 됩니다. 또한, 노력했지만 못 가게 되더라도 그건 실패가 아니라 그냥 갈 길을 좀 멀리 돌아가는 겁니다.

창의적인 작업은 어떤 직업에서도 대부분 가능합니다. 그리고 세상은 그런 인재를 원하고 있죠. 지금은 학교 공부에 집중하면서 다양한 직업을 알아보고 고민해도 되는 시기입니다. 중고등학교때의 청소년기가 아니면 그런 고민을 할 여유가 없게 되죠. 대학교만 올라와도 취직의 압박이 1학년때부터 시작되며, 대학 졸업하면 백수입니다. 이때쯤 되면 직업이 뭐냐는 중요한게 아니라 어떤 회사든간에 아무튼 채용되느냐가 중요하게 됩니다. 이미 장래희망의 실현은 물 건너가는 거죠. 이때 와서 고민하는 것도 아주 늦는 건 아니지만, 이럴 바에는 어릴때부터 진지하게 고민하고 대학 와서는 본격적인 장래희망을 위한 공부를 시작하는 것이 좋습니다.

직업을 가졌을 때 수입이 얼마나 되느냐는 직업 선택에서 가장 중요한 문제중의 하나인데, 사실상 현재의 인기 직종이 10년~20년 뒤에도 인기있고 돈 잘버는 직종일지는 잘 모르는 문제입니다. 공무원이 지금처럼 최고 인기직업이 될 줄이야 20년전에 어떻게 알았겠습니까. 그러므로 수입과 관련된 문제는 당장 고민하기보다는, 현재 자신의 적성이 어떤지를 정확히 파악하고 직업을 알아보시길 바랍니다.

직업 선택과 관련한 한가지 조언은, 직업은 결코 취미가 아니라는 겁니다. 가령 어릴때 피아노를 좀 잘 쳤다고 해서 직업을 피아니스트가 되기로 작정했다면, 그건 더이상 취미로 즐기는 수준이 아니게 됩니다. 아무리 재능이 있고 피아노치는 것을 즐기더라도 엄청난 노력을 해야 하죠. 그것도 최고가 되기 위해서는. 잘 알려진 예로는 스타크래프트 프로게이머들의 어마어마한 연습과 훈련을 참고해도 좋습니다. 재능도 있고 게임을 즐기는 사람들이지만 그뿐만이 아니라 최고가 되기 위해서 항상 노력하는 사람들이죠. 그것이 “직업”이라는 것의 의미입니다.

그건 그렇고 정자와 난자가 어떻게 만나느냐는 심도있는 질문에 어떻게 대답해야할지 난감하다.

gnuplot 4.2

gnuplot 4.2


http://www.gnuplot.info


gnuplot으로 하도 많은것을 해 보는 바람에 앞으로 써먹을 수도 있는 내용들이라 적어둔다.

리눅스, 윈도우, 맥에서 다 돌아가지만 윈도우용은 윈도우 자체가 커맨드라인 인터페이스가 많이 허접한 관계로 쓰라고 권하고 싶지 않다. 여기서는 리눅스 용을 예로 든다.

yum이 깔려 있으면 루트에서 yum install gnuplot 이라고 치기만 하면 설치할 수 있다. yum이 없으면, 위의 gnuplot 홈페이지 어딘가에 있는 gnuplot 저장소에서 rpm이나 deb을 찾아서 설치해 주면 된다. 소스 컴파일이나 그런 복잡한 건 나도 모르므로 건너 뛰도록 하겠다.

일단, 기초적인 세팅부터 해야 한다. 실행을 시켜보자. 그냥 gnuplot이라고 치기만 하면 된다.

G N U P L O T

Version 4.2 patchlevel 0

last modified March 2007

System: Linux 2.6.20-1.2952.fc6

Copyright (C) 1986 – 1993, 1998, 2004, 2007

Thomas Williams, Colin Kelley and many others

Type `help` to access the on-line reference manual.

The gnuplot FAQ is available from

http://www.gnuplot.info/faq/

Send comments and help requests to

Send bug reports and suggestions to

Terminal type set to ‘unknown’

gnuplot>

저기 보이는 “gnuplot>”은 프롬프트인데, 그 바로 위에 terminal이 unknown으로 설정되었다는 말이 있다. 터미널은 gnuplot이 그린 그림을 어디서 볼 것인지 결정하는 건데, 그게 unknown이라는 것은 보여줄 것이 없다는 뜻이다. 4.0에서는 기본적으로 x11을 지원하는데, 4.2에서는 local x-server에서만 x11을 지원하는 것 같다.

아무튼, 모른다고 하니까 터미널을가르쳐 주자.

set terminal postscript enhanced color

postscript는 ps파일로 출력할 때 사용하는데, ps파일은 나중에 pdf파일로 변환하거나 논문에 넣을 때 유용하다. 어떤 터미널을 쓸 수 있는지 알고 싶으면 set terminal만 치면 쭉 나온다.

enhanced는 그리스문자 등 확장된 형태의 label을 붙이고 싶을 때 사용한다. 저걸 적지 않으면 뒤에 나오는 {/Symbol }명령어가 처리되지 않고 명령어 그대로 출력된다.

color를 안붙이면 저절로 그레이 스케일로 출력되므로 흑백으로만 인쇄할거면 안붙여도 된다. 물론 color를 붙여도 흑백 프린터에서는 흑백으로 나온다.

set output “test.ps”

x11을 쓰는 경우는 기본적으로 모니터 화면으로 출력되므로 출력 화일을 정해줄 필요가 없지만 ps로 출력하게 되면 파일에 저장하겠다는 뜻이므로 위와 같이 파일 이름을 적어줘야 한다.

참고로, 모든 경우에 set 명령을 취소하고 싶으면 set 대신에 unset을 그 자리에 적어서 명령하면 된다.

set grid

그림에 격자를 넣을 수 있다. 격자 간격은 gnuplot이 알아서 멋있게 조절해 준다. 물론 가로줄, 세로줄을 넣거나 없앨 수 있고 간격도 조절할 수 있으며 굵기와 색깔과 점선 종류도 정해줄 수 있다. 그리고 격자를 다른 그림들보다 앞에 보이게 할지(격자가 그림을 가리는 것) 뒤에 보이게 할지(그림이 격자를 가리는 것) 정할 수도 있다. 이 모든 것은

http://www.gnuplot.info/docs/node188.html

을 참고하시기 바란다.

set xlabel “{/Symbol d}”

set ylabel “{/Symbol q_{13}}”

위의 두 명령어는 x축과 y축이 무슨 숫자를 표시하는지 알려줄 때 사용하는 레이블을 설정한다. {/Symbol d}라고 쓴 것은 그리스문자 $\delta$를 출력시키기 위해서이다. 물론 {/Symbol q_{13}}이라고 쓰면 $\theta_{13}$ 처럼 밑첨자도 출력할 수 있다.

set label “{/Symbol Q}_L^2 – {/Symbol Q}_Q^2 = ({/Symbol p}/4)^2” front at 0.5, 0.16

이렇게 하면 그림에 설정된 좌표상 (0.5, 0.16) 위치에 따옴표 안에 있는 글자들을 넣을 수 있다. 물론 좌표는 at 다음에 넣은 숫자이다.

front는 label이 다른 그림들보다 앞에 있는(즉, 글자가 그림을 가리는) 것으로 출력된다. 적지 않으면 label은 그림에 가려지게 되어 안보일 수도 있다.

set xrange [0:3.14159]

set yrange [0.0:0.23]

x축과 y축 좌표계의 범위를 설정해준다. [와 ]로 묶은 괄호 안에 :를 하나 넣어서 구별하는데, 만약 어느 한쪽을 적지 않으면 그쪽은 gnuplot이 알아서 대충 설정해준다.

set object 1 rectangle from 0.0,0.0 to 1.5707, 1.5707 behind fc rgb “gray” fs solid 0.4 noborder

이게 4.2에서 추가된 대박 기능이다. 임의의 직사각형을 from부터 to의 두 꼭지점을 지정하여 그릴 수 있다.

behind는 앞서의 front와는 반대로 이것을 뒤로 집어넣을 수 있는 것이다.

fc는 fontcolor라고 대신 써도 되고, 줄여서 fc라고 써도 된다. 원래는 저기에 정수를 넣는데, 저런식으로 rgb라고 써놓고 “…”안에 이름을 써도 된다. 어떤 색 이름들이 지정되어 있는지는 show palette colornames 라고 명령을 치면 알 수 있다.

fs는 filledstyle인데, 채우는 방식을 알려준다.

solid는 앞서 얘기한 색으로 잘 칠하는 건데, 0부터 1사이의 값을 이용해서 얼마나 새카맣게 칠할지 가르쳐 줄 수 있다. 저거 말고 pattern으로 채울 수도 있고, 그냥 fs를 안 적거나 empty라고 하면 빈칸으로 놔두게 된다.

noborder는 직사각형의 가장자리를 그리지 말라는 옵션이다. 물론 가장자리를 그릴 수도 있으며, 가장자리를 그리는 경우에는 가장자리 선의 색, 점선 종류, 굵기 등을 조절할 수 있다.

set y2tics (“1{/Symbol s}” 0.091, “3{/Symbol s}” 0.2)

tics는 눈금을 뜻한다. xtics, ytics, x2tics, y2tics등을 설정할 수 있다. 2가 없는 tics는 각각 아래쪽과 왼쪽의 x, y좌표축을 뜻하고 2가 붙은 것들은 오른쪽과 위쪽의 좌표축이다. 그냥 아무것도 없으면 gnuplot이 알아서 눈금을 붙여주고, 괄호 안에 쉼표로 구별해서 “…”는 눈금 이름, 그리고 그 옆에 숫자는 눈금의 좌표를 뜻한다.

set parametric

gnuplot은 기본적으로 f(x)형태의 함수를 출력한다. parametric을 설정하면 변수 x대신 변수 y를 써서 x(t), y(t)형태로 그림을 그리게 된다. 3차원 그림을 그릴 때는 u,v를 매개변수로 사용하게 된다.

plot “data” using 4:3 with filledcurves x2 lt rgbcolor “gray70” title “”, t, 0.091 with lines title “”, t, 0.2 with lines title “”

plot은 드디어 그림을 그리라는 명령이다. 여러개를 그릴 때는 각각을 쉼표로 구별해서 여러개를 한 도표에 나타낼 수 있다. 여기서는 “data”라는 화일에 찍힌 숫자들을 그리라는 뜻이다. “data”라는 화일의 형식은 숫자 여러개를 배열한 형태다.

-2.673592 -0.038592 0.000000 0.000000 0.628319 0.892512

-2.673592 -0.037592 0.000000 0.000000 0.628319 0.892510

-2.673592 -0.036592 0.000000 0.000000 0.628319 0.892508

-2.673592 -0.035592 0.000000 0.000000 0.628319 0.892506

-2.673592 -0.034592 0.000000 0.000000 0.628319 0.892504

-2.673592 -0.033592 0.000000 0.000000 0.628319 0.892502

-2.673592 -0.032592 0.000000 0.000000 0.628319 0.892501

-2.673592 -0.031592 0.000000 0.000000 0.628319 0.892499

-2.673592 -0.030592 0.000000 0.000000 0.628319 0.892497

내가 쓴 파일들은 이런 형식이었다.

숫자들을 구별하는데는 탭, 빈칸, 쉼표 등이 사용될 수 있다. using은 n:m형식으로 사용되는데, x좌표와 y좌표에 사용할 숫자를 몇번째 열(세로줄)에서 고르냐는 것을 결정한다. 4:3이라고 썼으므로 4번째 열을 x좌표로 잡고 3번째 열을 y좌표로 잡아서 그림을 그리게 된다. 아무것도 지정하지 않으면 1:2를 준 것과 같다.

with는 그림을 뭘로 그릴지 정하는 건데, points, dots, lines, pointslines, boxes 등등등을 쓸 수 있다. points는 좀 큰 점이고 dots는 1픽셀짜리 점이다. filledcurves는 그림을 그린 내부를 색칠하라는 옵션이다. filledcurves다음의 x2는 내가 그린 그래프와 x2축(오른쪽 좌표축) 사이의 공간을 색칠하라는 뜻이다. lt는 linetype의 줄임으로 선 색깔인데, 회색을 위해서 rgbcolor로 gray70을 줬다. title은 그 그래프의 제목을 표시하는 부분인데 따옴표 안에 아무것도 넣지 않으면 출력을 안해준다. 그리고 쉼표는 다른 그래프를 겹쳐 그리기 위한 것이다.

t, 0.091은 아까 parameter로 설정했으므로 x좌표는 그냥 전 범위이고 y좌표가 0.091인 직선을 하나 그리게 된다. 물론 이 그래프는 x축에 평행한 직선이 된다.

!ps2pdf test.ps

느낌표는 gnuplot내부 명령어가 아니라 그 바깥의 명령어, 즉 쉘의 명령어를 실행하고 싶을 때 사용한다. 저렇게 적으면 ps파일을 pdf파일로 바꿔주게 된다.

이 모든것을 gnuplot은 하나하나 할 필요 없이 스크립트로 만들어서 단숨에 처리할 수 있는데, 실행시키고 싶은 모든 명령어를 다 넣은 텍스트 파일을 하나 저장하자. 가령, 그 이름을 theta.gplt라고 한다면 쉘에서 이렇게 치면 된다.

gnuplot theta.gplt

그럼 theta.gplt에 있는 모든 명령어가 실행되고 끝난다. 따라서 이 명령어는 쉘 스크립트에서 응용할 수 있다. 아무튼, 위의 명령어를 사용한 내 그림 예제가 아래와 같다.

사용자 삽입 이미지

gnuplot example

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑