어린이를 위한 미적분학이라는 포스팅을 아주 어쩌다 한번씩 비공개로 군데군데 쓰고있는데, 이것도 그 시리즈의 일부가 되겠다.
앞부분 글들이 완성이 안된 관계로 일단 글번호는 생략하고 나중에 앞부분 글들이 어느정도 잡히면, 그때 순서에 맞게 배치할 생각이다.

이 글은, 대략적으로, 기본적인 미분테크닉을 익힌 정도, 다음에 오면 될것같다.

이글은, 1변수 테일러급수만 간단히 설명한다.
2변수 테일러는, 다변수 미분을 정의하고, 그다음편에 쓰겠다.


멱급수 전개 (Power Series Expansion)

1, x, x^2 , x^3 , ... 이런식으로 차수가 증가 함에 따라,  그 기울기의 변화 정도는 이전의 것과 항상 다른 새로운 녀석이 되고, 그것은 점점더 격해진다. 이렇게 기울기의 변화가 모두 다른 녀석들을 잘 섞으면, 구불구불하게 생긴 이상한 함수를 만들어 낼수 있지 않을까?

이것은 달리 말하면,  임의의 함수 f(x) 를 ,  1 , x , x^2 , x^3 , .... 들의 조합으로 나타내보려는 것인데, 이러한 행위를  멱급수 전개 (Power Series Expansion) 이라고 한다. 

어떤 경우에는 유한개의 항만을 합쳐서 주어진 함수를 만들어 낼 수도 있겠지만, 상황에 따라서는 무한개의 항을 합쳐야지만 원하는 함수를 만들게 될수도 있을 것이다.  이것은 간단히 무한개의 항을 세팅하는것으로 모든상황을 포함시킬수 있다. 어차피 유한개의 항만 필요한 상황이라면 나머지 항의 계수를 모두 0 이라고 하면 되기 때문이다.


이제 1 , x , x^2 , x^3, x^4, ...  의 계수들을 an 이라고 하면, 어차피 베이시스(  1 , x , x^2 , x^3 , .... ) 는 고정되어 있으므로,
선형조합 계수들 an 만 모두 알면,  f(x) 를 아는것과 완전히 동일해진다.


따라서, 조합의 계수들을 구하는 것이 가장 큰 문제가 된다.

(1 + x ) ^ 3  를 예로 들어보자.



즉, (1+x)^3 이라는 함수를 기억하는 것과   수열 :  1,3,3,1, 0, 0 , 0 , 0 , ...   을 기억하는 것은 완전히 동일한 것이 된다. 즉, 중요한 것은 계수를 찾는 것이다.



테일러 급수 ( Taylor Series )

f(x) 의 멱급수 전개에 대해, f(x) 가 어떤 점 x = a 에서 무한번 미분가능할때 ( 미분값만 갖으면 되지, 값이 얼마인지는 상관이 없다. 주구장창 0 이어도 상관없다 ), 미분을 통해서, (x-a) 의 멱급수전개의 계수를 정할수 있는 일반적인 방법이 존재하는 데, 이를 a를 중심으로 테일러 전개를 한다라고 한다.

특히, x = 0 에서 무한번 미분가능하면, x 의 멱급수로 전개되고, 앞에서 언급한 예가 된다. 이럴때를 특히, 맥로린 급수라고 한다.
( 즉, 맥로린 급수는 0 을 중심으로 하는 테일러 급수 이다. )

우리도 심플함을 위해, x = 0 을 중심으로 전개한다고 하자.

이제 목표는, 무한번 미분가능이라는 무기를 가지고, 주어진 f(x) 에 대해, 어떻게 계수들을 모두 구하는 가이다.

멱급수 전개의 정의로 돌아가서, 양쪽이 완전히 같은 함수라는 말은,  이 식이 x 에 대한 항등식이라는 말과 같다.

x 에 0 을 때려넣어보면, 곧바로 a0 가 f(0) 라는 것을 알게 된다. 즉 주어진 함수에 0 값을 대입해서 나온 값이, 테일러 급수의 첫번째 계수가 된다.


이제, a1 부터 구해야 되는데, 어떻게 하면 다른계수들은 모두 죽어나가고, 원하는 계수만 죽지 않게 할 수 있을까?
그것은 바로, 한번 미분한뒤에 0 을 대입하는 것이다.

다항식의 경우 한번 미분하면 지수가 앞으로 내려오고 지수는 1씩 작아지는 것을 알고 있으므로, 한번 미분하면 다음과 같이 되고, x에 0 을 대입하면 a1을 제외한 모든 항이 날아간다. 따라서, 다음과 같이 a1 을 구할수 있다.


이쯤 되면 감이 와야 정상이다.  특정 an 만 남기고 다른 모든항을 날려버리느 방법은 n 번 미분하고 x 에 0 을 대입하는 것이다.

x의 차수가 n보다 작은 것들은, n번 미분했을때 모두  0 으로 날라가 버린다.
x의 차수가 n보다 큰 것들은 , n번 미분했을때 x의 차수가 1 이상이 되어, x=0 을 대입하면 모두 날아가버린다.

x의 차수가 n 인 항은 , n번 미분했을때 x의 차수가 0 이 되어 사라지며 남는것은 원래의 계수 an 와 미분때마다 하나씩 줄어들려 앞으로 내려온 n , n-1 , n-2 , ... , 1 들의 곱, 즉, n! 이 된다.


따라서 다음과 같이 테일러 계수를 일반적으로 구할수 있다.



이제 원래의 정의식


에 앞에서 구한 계수의 일반식을 대입하면, 아래와 같이 테일러시리즈의 일반식을 구하게 된다.




중심 a 에 대한 테일러 전개

위에서 심플함을 위해, 중심을 0 으로 놓았었는데, 이제 중심을 a 로 전개해보도록 하자.
앞에서 어떻게 원하는 계수를 포함하는 항 이외의 모든 항들을 날려버렸는지를 이해했다면, 이것은 정말로 쉬운 일이다.

특히, 1, x-a , (x-a)^2 , (x-a)^3 , ... 들로 전개되므로, 다른 항들을 죽일때, x = 0 을 넣는것이 아니라, x = a 를 넣어야 된다.

결과적으로 다음과 같이 된다.




멱급수 전개에 의한 함수의 변환

함수를 급수로 전개하는 것에 대한 중요한 관점은, 함수에서 수열로의 변환이다. 그것은 함수의 문제를 수열의 문제로 바꾸어준다. 해당 함수에서 다루기 어려웠던 문제가, 수열의 연산에 의해서 쉽게 풀릴수도 있다. 그리고 나서 다시 돌아가면 본래의 문제를 푼것이 되는데, 이것을 역변환이라고 한다.

특히, 멱급수 전개의 경우, (무한) 다항식이고, 많은 연산이 (무한) 다항식에 대해 항별 (term-by-term) 연산을 가능하케해, 상당히 다루기 용이한 면이 있다. 즉, 원래의 문제에서 어려워 보였던 문제가, 멱급수로 변환한후에 쉬워 보이고, 멱급수로 변환한 상태에서 쉽게 문제를 푼 후에, 다시 역변환을 통해 어떤 함수로 돌아가는지를 찾는 것이다.

이것은 변환 / 역변환 을 이용해서 문제를 해결하는 아주 중요한 아이디어이다.


또한, 멱급수 전개는 근사이론에서도 매우 중요한데,  x 에 대입하는 값이 절대값이 작은 경우, 고차항은 더더더 작아지기 때문에, 무시해도 정확한 함수값하고 별 차이가 생기지 않는다.  즉, 좋은 근사(approximation)를 얻을 수 있다. 이렇게 테일러 시리즈를 이용한 근사를 테일러근사 라고 한다.

테일러 근사에 대한 이야기는 다음에 따로 하도록 하겠다.



예제, 이항전개

f(x) = ( 1 + x ) ^k 승이라고 하자. 여기서 k 는 그냥 실수이다. 정수일 필요는 없다.

이것의 테일러 급수의 계수 an 을 구하기 위해, f(x) 를 n 번 미분해보도록 하자. n번 미분하고 0 을 대입한 후에, n! 로 나누면 그것이 an 이라고 했다.

n번 미분하면 일단 k 가 계수로 나오면서 곱해지고, 지수는 1 이 주는 행위가 n 번 반복된다. 그리고 0 을 넣어서 an 을 구한다.


우리는 원하던 테일러 급수를 얻었다. 주의할 것은 k 가 자연수일 필요가 없다는 것이다. k가 분수라든가 해도 상관없다.

만약 k 가 자연수인 경우에는 ,  k+1 번 미분할시 그냥 죽어버리므로, 서메이션은 k 까지 하게 된다.
그리고, k 가 자연수인 경우에, 테일러 계수의 분자부분은 k P n 이고, 이것을 n! 로 나눈것은  k C n 이 된다.

즉, k 가  자연수인 경우, 자연수 승에 대한 이항전개식과 같아진다.

따라서, 이항계수의 정의를 실수범위까지 확장하여, 다음과 같이 택하면...


실수 지수까지 확장된 이항정리를 얻을수 있다.

기본행렬에 대한 복습부터 해보자.

기본행렬은 단위행렬에 단 한번의 기본연산을 행하여 만든 행렬을 말하는 데, 그것은 보통 리플레이스먼트, 멀티플리케이션, 인터체인지 이렇게 세가지를 말한다. 그것이 행연산일 경우 좌곱(Left Multiplication)으로, 열연산일 경우 우곱(Right Multiplication)으로 해줘야 제 기능을 한다.

어떠한 스퀘어 메이트릭스 M 에  유한번의 기본 행 연산을 수행하여 단위행렬 E 가 되었다고 하자.

각 기본행 연산을 나타내는 기본행렬을 E1, E2 , ... , En  이라고 쓰면,  En ... E2 E M = E   와 같이 되었다는 말이다.

( En ... E2 E1 ) M = E  이므로,  En ... E2 E1 는 M 의 역행렬이다.  단위행렬은 곱하나 마나 이므로, En ... E2 E1 E  라고 쓸 수 있다.

결과적으로,  A 에 무슨짓을 해서 단위행렬이 되었을때, 그 짓을 단위행렬에다가 그대로 수행하면, 곧 M 의 역행렬이 된다는 말이 된다.

얼추 이런식으로 하는걸 가우스-조단 방법이라고 부른다. 물론, 사소한 차이에 따라 이름이나 버전이 좀 다른거 같다. 큰 차이는 없다. 정말 사소한 차이다. 근데, 수치에서는 이런 아주 사소한 차이가, 에러의 오더를 바꿔놓기도 하기 때문에, 나름 중요성이 있을수 있지만, 여기서는 에러에 대한 이야기는 안하니까 그런건 관심밖이 된다.




이제 주어진 정방행렬 M 에 대해서 기본행연산을 수행하여 단위행렬로 만드는 짓을 하는데, 같은 짓을 단위행렬에 똑같이 해줘야 하므로, 그냥 두 행렬을 하나로 합쳐서 작업을 하면 편하다. 보통 augmented matrix 라고 부른다.

M 과 E 를 나란히 붙여놓은 상태에서, 행연산을 하면, M 과  E 에 동시에 작용하기 때문에, M 에 하는 행연산을 자연스럽게 단위행렬에 수행해줄수 있다.

M 를 단위행렬로 만들기 위해서는 M 의 대각선 성분이 모두 1 이고, 나머지는 0 이 되도록 연산을 해줘야 하므로, 소거 과정중 M 의 대각선 성분이 0 이 될 경우, 다른행와 로우 인터체인지를 해줘야 한다. 이를 pivoting 이라고 한다. ( 참고로, 각 행의 0 아닌 리딩 엘레멘트를 pivot 이라고 한다. )

암튼, 그러고 나서, 각 행을 pivot 으로 나눠주면 ( = 로우 멀티플리케이션) , 대각선 성분은 1 이 될 것이다.

나머지 원소를 0 으로 만드는 것은 피벗을 1로 만든 상태에서 로우 리플레이스먼트를 다른 모든행에 작용함으로써 쉽게 가능하다.

또는, 피벗 아랫쪽만 0 으로 보내서 upper triangle matrix 를 만든다음에, 맨 아랫 행부터 윗쪽으로 상삼각 부분을 0 으로 보내되 된다.
이렇게 아래서 부터 연쇄적으로 한방에 터는 것을 back-substitution 이라고 한다.


이론적으로는 이것으로 충분하지만, 실제적으로 수치적인 부분에 있어서는 오차를 줄이는 문제가 상당히 중요하므로, 로우 인터체인지를 할때, 가능한한 대각선 성분의 절대값이 큰 값이 되도록 하는것이 권장되는데, 이유는 큰값으로 나눌때 수치적인 오차가 더 작게 발생하기 때문이다.





* 알고리듬의 개념적 이해.

간단히 3 x 3 에 대해 그림으로 이해해보자.


첫번째 스텝은 피버팅으로 로우 인터체인지를 사용한다. 두번째 스텝은 로우 멀티플리케이션, 세번째 스텝은 로우 리플레이스먼트 이다.

이것이 하나의 싸이클이다. 이러한 싸이클을 행의 수만큼 해야한다.

두번째 싸이클에서는 2,2 가 피벗이 되도록 피버팅을 하고 ( 즉, 2,2 아래쪽에 대해 절대값이 가장큰 녀석을 골라 대각선에 오도록 행교환을 한다.)
그리고 나서, 두번째 행을 그 값으로 나눠주면 2,2 성분이 1 이 된다. 이제 그것으로 2열의 나머지 성분들을 모두 0 으로 만든다.

이런식으로 n 차 행렬에 대해 n 싸이클을 반복하면 된다.




* C 로 구현

 첨부파일  : 

inverse.exe



위의 알고리듬을 이해했다면, 이것은 사람이 하는일을 그냥 기계가 대신하도록 만든것이다.
다음의 프로그램은 위에서 설명한 것을 고대로 옮긴것이다.

프로그램을 실행하고, 정방 행렬의 사이즈를 입력한다.
그리고 원소를 입력한다.

화면에서와 같이 스페이스바로 구분하면서 넣어도 되고,  Tab 키로 띄면서 넣어도 된다. 그냥 계속 엔터로 구분하며 넣어도 된다.


다 입력하면, 행렬을 한번 정돈해서 보여주고, 오그멘티드 행렬을 보여준후에,  위에서 말한 과정으로 역행렬을 구해준다.
각 싸이클에는 세 덩어리의 오그멘티드 메이트릭스가 나오는데, 차례대로 위 그림에서 말하는 스텝1 , 스텝2 , 스텝3  를 보여준다.


대강 이런식이다.

주의: 에러처리 전혀 없음.

미국계정 만들고 나서, 앱스토어에 가니 정말 별천지구나...
아이북스도 정말 많네, 근데 가격이 그냥 책 가격이랑 얼추 같은거 같네. 45달러씩 하는건 뭐야 ㅋㅋ
암튼, 애플이 참 좋다.
고객센터 이용하다가 오늘도 또한번 느꼈다. 다음이 현재 마인드로는 죽어도 네이버를 따라갈 수 없다는 걸.

다음 고객센터를 이용하려고 다음 싸이트에 접속을 했다.


하단에 고객센터 링크가 있다. 오케이 클릭!

고객센터 페이지로 넘어간다.




고객센터 전화번호를 찾으려고 스크롤을 내린다... 끼릭끼릭...





헉... 없다 !!!   당황....

어딘가에 고객센터 번호를 갈쳐주는 링크가 있을것이다.


아 인간사람한테 뭐 좀 물어 보려고 하는데,

나 벽에다가 또 글쓰면서 혼자 물어봐야 되는거니?




침착, 일단 찾아보자...  ' 전화로 문의하기 '  따위의 링크가 있을것이다...

오오,.... 다시 위쪽에 보니, 메뉴에  '문의하기' 가 있다... 일로 들어가면 되겠지.  클릭!




헉.... OTL...  전화로 물어보는게 왜이렇게 어렵니...  하악하악.... 



에이 그냥 114 에 물어보기로 한다. 상냥한 안내원이 번호를 가르쳐준다.

1577 - 3321 이 간단한걸,  홈페이지 하단에 자그맣게 써놓는게 그렇게 어렵냐?


전화를 걸었다. ㅇㅇ

원래 물어보려고 했던건 이미 안중에도 없다. 고객센터 번호 없는거에 짜증이 나있다.

원래 물어보려던게 있는게, 그거 말고 우선 건의할게 하나 있다고 말했다.

홈페이지 하단에 고객센터 번호 좀 써놓으면 좋겠다고 했다.

상담원 하는말이,  그거는 고객센터로 들어가서, '신고하기' 를 누르면 전화번호가 나온단다.

아~ 그러냐고, 그래도 좀더 쉽게 접근할수 있게 좀 써줬으면 좋겠다고 했더니..

이 싹퉁없는 상탐원이, 원래 거기 있는거 내가 못찾아서 그런거라고 나를 병신취급하는 느낌이 들게 하는거다.


ㅡ.,ㅡ ㅅㅂ... ' 좀더 쉽게 접근할 수 있게' 라고 말한건 어디로 들은거냐고...


글구, 내가 신고하려고 온것도 아니고, 문의하러 와서, 문의하기 눌렀다가 페이지만 빙빙 돈 사람 마음은 이해못하냐?
전화하려면, 꼭 신고해야 되는거냐? 

살짝, 언성높아질라 하니까... '아 네네 알았어요' 라고 조나 '병신 달래듯' 넘어간다. 아 기분 팍 상하네...





그리고 나서, 네이버도 그러나 하고 가봤다.

역시 하단에 고객센터 메뉴가 있다. 




클릭을 하니 고객센터로 넘어갔다.




이야! 그렇지! 떡하니 전화상담(ARS) 번호 안내  라고 있는거다.  클릭을 하니,




헐...  순간 감동먹었다.

ARS의 기계사람 목소리 멍때리고 듣는거 짜증나니까, 단축번호까지 안내해주는 이 세심한 배려.



배려... 배려... 따뜻하다.

급, 네이버 찬양의 모드 ♡ 가 된다.






다음 Daum ...

이러니, 후발주자인 네이버한테 넘사벽의 차이로 쳐지지.

처음엔 '지식in' 서비스 때문에 역전당했다고, 억울해 하더니, 이제는 그냥  2위도 감지덕지인 회사. 다음.

그래... 그냥 너네...  ' 평생 네이버 다음'해라.

Configures system devices.

Serial port:       MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]
                                [to=on|off] [xon=on|off] [odsr=on|off]
                                [octs=on|off] [dtr=on|off|hs]
                                [rts=on|off|hs|tg] [idsr=on|off]

Device Status:     MODE [device] [/STATUS]

Redirect printing: MODE LPTn[:]=COMm[:]                                      LPT는 병렬포트, COM은 직렬포트

Select code page:  MODE CON[:] CP SELECT=yyy                          CON 은 콘솔,  CP 는 코드페이지

Code page status:  MODE CON[:] CP [/STATUS]

Display mode:      MODE CON[:] [COLS=c] [LINES=n]                     COLS 는 컬럼, LINES 는 행

Typematic rate:    MODE CON[:] [RATE=r DELAY=d]



본인이 사용중인 ThinkPad x200 의 경우, cols = 156 이 딱 맞다. ( 그렇다고 156으로 해놓고 쓰진 않지만... )

                                                
C:\>mode con cols=156       
                                                 

자신의 모니터보다, 디스플레이 결과가 가로로 너 넓어서 다음줄로 넘어가는게 짜증나는 경우,
cols 를 충분히 늘려서 결과가 모두 표시되게 한다음, 전체화면 버튼을 누르면,
화면은 모니터 사이즈에 맞춰지면서, 대신 횡 스크롤바가 생기므로, 편리하다.

양이 방대하거나 할 경우, 그냥 텍스트 문서로 리디렉션 시켜서 결과를 보는것도 방법이다.

[Windows7] [cmd] goto

COM2010. 11. 8. 16:12 |

Directs cmd.exe to a labeled line in a batch program.

GOTO label

  label   Specifies a text string used in the batch program as a label.

You type a label on a line by itself, beginning with a colon.                              레이블링은, 콜론 :  으로 시작한다.


If Command Extensions are enabled GOTO changes as follows:

GOTO command now accepts a target label of :EOF which transfers control to the end of the current batch script file.

This is an easy way to exit a batch script file without defining a label.

Type CALL /?  for a description of extensions to the CALL command that make this feature useful.




팁.


GOTO %1
:a
~~~~~
GOTO END

:b
~~~~~
GOTO END

:c
~~~~
:END

와 같은 식으로 짜면, 파일명 다음에 오는 인자에 따라서, 다중분기할수 있다.

[Windows7] [cmd] if

COM2010. 11. 8. 16:05 |

IF 문을 사용하면 조건분기를 할 수 있다.

구조는 다음과 같다.

IF condition command

조건 부분이 참이면, 뒤에 나오는 명령이 실행된다.

IF NOT   은 조건이 거짓이면, 뒤에 나오는 명령을 실행한다.

EXIST 는 상술된 파일 또는 폴더가 존재하는지를 판단한다.

ERRORLEVEL 숫자  는 최근실행한 명령의 종료코드가 상술된 숫자이상인지 판단한다.

ELSE 문으로 나머지 경우에 대해서도 분기시킬수 있다. ( 단, IF 하고 한줄에 씌거나, IF 블럭의 닫는 괄호와 한줄에 와야한다 )

조건의 비교가 문자열인경우에 " " 를 써줘야 한다.


Performs conditional processing in batch programs.

IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command

  NOT                  Specifies that Windows should carry out  the command only if the condition is false.

  ERRORLEVEL     number Specifies a true condition
                           if the last program run returned an exit code equal to or greater than the number specified.

  string1==string2   Specifies a true condition if the specified text strings match.

  EXIST filename    Specifies a true condition if the specified filename exists.

  command           Specifies the command to carry out if the condition is met.
                           Command can be followed by ELSE command which will execute the command
                           after the ELSE keyword if the specified condition is FALSE

The ELSE clause must occur on the same line as the command after the IF.

For example:

    IF EXIST filename. (
        del filename.
    ) ELSE (                                                                  if 절의 닫는 괄호와 한줄에 왔으므로 오케이.
        echo filename. missing.
    )

The following would NOT work because the del command needs to be terminated by a newline:

    IF EXIST filename. del filename. ELSE echo filename. missing               del 명령어가 ELSE 포함해서 싸그리 파일명으로 받아들임.
                                                                                                            줄을 바꾸거나 괄호로 감싸야 되는데, 줄을 바꾸면 ELSE 가 안먹음
                                                                                                            그러므로, 괄호로 감싸는게 답임.
                                                                                                            또한,괄호로 감싸면, ELSE를 다음줄로 넘길수도 있음.

Nor would the following work, since the ELSE command must be on the same line as the end of the IF command:

    IF EXIST filename. del filename.
    ELSE echo filename. missing                                                                  이러면 ELSE 명령 모른다고 뜸.

The following would work if you want it all on one line:

    IF EXIST filename. (del filename.) ELSE echo filename. missing

If Command Extensions are enabled IF changes as follows:

    IF [/I] string1 compare-op string2 command
    IF CMDEXTVERSION number command
    IF DEFINED variable command

where compare-op may be one of:

    EQU - equal                                                                 EQU 는 '같다'    이와 같은 표현으로  ==   를 쓸 수 있다.
    NEQ - not equal                                                            NEQ 는 '같지않다'
    LSS - less than                                                             LSS 은 '오른쪽 것보다 작다'
    LEQ - less than or equal                                                LEQ 는 '오른쪽 것보다 작거나 같다'
    GTR - greater than                                                         GTR 은 '오른쪽 것보다 크다'
    GEQ - greater than or equal                                            GEQ 는 '오른쪽 것보다 크거나 같다'

and the /I switch, if specified, says to do case insensitive string compares.                       /I 스위치는 대소문자 구별을 하지 않도록 한다.
                                                                                                                                      ( 디폴트는 대소문자를 구별한다. )
The /I switch can also be used on the string1==string2 form of IF. 
These comparisons are generic, in that if both string1 and string2 are both comprised of all numeric digits,
then the strings are converted to numbers and a numeric comparison is performed.

The CMDEXTVERSION conditional works just like ERRORLEVEL,
except it is comparing against an internal version number associated with the Command Extensions. 
The first version is 1.  It will be incremented by one when significant enhancements are added to the Command Extensions.
CMDEXTVERSION conditional is never true when Command Extensions are disabled.

The DEFINED conditional works just like EXIST
except it takes an environment variable name and returns true if the environment variable is defined.

%ERRORLEVEL% will expand into a string representation of the current value of ERRORLEVEL,
provided that there is not already an environment variable with the name ERRORLEVEL, in which case you will get its value instead.
After running a program, the following illustrates ERRORLEVEL use:

    goto answer%ERRORLEVEL%
    :answer0
    echo Program had return code 0
    :answer1
    echo Program had return code 1

You can also use numerical comparisons above:

    IF %ERRORLEVEL% LEQ 1 goto okay

%CMDCMDLINE% will expand into the original command line passed to CMD.EXE prior to any processing by CMD.EXE,
provided that there is not already an environment variable with the name CMDCMDLINE, in which case you will get its value instead.

%CMDEXTVERSION% will expand into a string representation of the current value of CMDEXTVERSION,
provided that there is not already an environment variable with the name CMDEXTVERSION, in which case you will get its value instead.

[Windows7] [cmd] for

COM2010. 11. 8. 15:58 |
Runs a specified command for each file in a set of files.

FOR %variable IN (set) DO command [command-parameters]

  %variable                       Specifies a single letter replaceable parameter.
  (set)                              Specifies a set of one or more files.  Wildcards may be used.
  command                      Specifies the command to carry out for each file.
  command-parameters     Specifies parameters or switches for the specified command.

To use the FOR command in a batch program, specify %%variable instead of %variable.
Variable names are case sensitive, so %i is different from %I.


 Command Extensions are enabled, the following additional forms of the FOR command are supported:


FOR /D %variable IN (set) DO command [command-parameters]

    If set contains wildcards, then specifies to match against directory names instead of file names.


FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

    Walks the directory tree rooted at [drive:]path, executing the FOR statement in each directory of the tree.
    If no directory specification is specified after /R then the current directory is assumed.
    If set is just a single period (.) character then it will just enumerate the directory tree.


FOR /L %variable IN (start,step,end) DO command [command-parameters]

    The set is a sequence of numbers from start to end, by step amount.
    So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would generate the sequence (5 4 3 2 1)



FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

    or, if usebackq option present:

FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ('string') DO command [command-parameters]
FOR /F ["options"] %variable IN (`command`) DO command [command-parameters]

    file-set is one or more file names.  Each file is opened, read and processed before going on to the next file in file-set.
    Processing consists of reading in the file, breaking it up into individual lines of text and then parsing each line into zero or more tokens.
    The body of the for loop is then called with the variable value(s) set to the found token string(s).
    By default, /F passes the first blank separated token from each line of each file.
    Blank lines are skipped.  You can override the default parsing behavior by specifying the optional "options" parameter.
    This is a quoted string which contains one or more keywords to specify different parsing options.  The keywords are:

        eol=c                - specifies an end of line comment character  (just one)
        skip=n               - specifies the number of lines to skip at the beginning of the file.
        delims=xxx        - specifies a delimiter set.  This replaces the default delimiter set of space and tab.
        tokens=x,y,m-n  - specifies which tokens from each line are to be passed to the for body for each iteration.

                          This will cause additional variable names to be allocated.
                          The m-n form is a range, specifying the mth through the nth tokens. 
                          If the last character in the tokens= string is an asterisk,
                           then an additional variable is allocated and receives the remaining text on the line after the last token parsed.

        usebackq          - specifies that the new semantics are in force, 
                                  where a back quoted string is executed as a command and a single quoted string is a literal string command and
                                  allows the use of double quotes to quote file names in file-set.


Some examples might help:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

    would parse each line in myfile.txt, ignoring lines that begin with a semicolon,
    passing the 2nd and 3rd token from each line to the for body, with tokens delimited by commas and/or spaces.
    Notice the for body statements reference %i to get the 2nd token, %j to get the 3rd token, and %k to get all remaining tokens after the 3rd.

    For file names that contain spaces, you need to quote the filenames with double quotes.
    In order to use double quotes in this manner, you also need to use the usebackq option,
    otherwise the double quotes will be interpreted as defining a literal string to parse.

    %i is explicitly declared in the for statement and the %j and %k are implicitly declared via the tokens= option.

    You can specify up to 26 tokens via the tokens= line,
    provided it does not cause an attempt to declare a variable higher than the letter 'z' or 'Z'.

    Remember, FOR variables are single-letter, case sensitive, global, and you can't have more than 52 total active at any one time.

    You can also use the FOR /F parsing logic on an immediate string, by making the file-set between the parenthesis a quoted string,
    using single quote characters.
    It will be treated as a single line of input from a file and parsed.

    Finally, you can use the FOR /F command to parse the output of a command. 
    You do this by making the file-set between the parenthesis a back quoted string. 
    It will be treated as a command line, which is passed to a child CMD.EXE
    and the output is captured into memory and parsed as if it was a file. 

    So the following example:

      FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

       would enumerate the environment variable names in the current environment.

In addition, substitution of FOR variable references has been enhanced.
You can now use the following optional syntax:

    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    %~sI        - expanded path contains short names only
    %~aI        - expands %I to file attributes of file
    %~tI        - expands %I to date/time of file
    %~zI        - expands %I to size of file
    %~$PATH:I    - searches the directories listed in the PATH environment variable
                          and expands %I to the fully qualified name of the first one found.
                          If the environment variable name is not defined or the file is not found by the search,
                          then this modifier expands to the empty string

The modifiers can be combined to get compound results:

    %~dpI                 - expands %I to a drive letter and path only
    %~nxI                 - expands %I to a file name and extension only
    %~fsI                  - expands %I to a full path name with short names only
    %~dp$PATH:I      - searches the directories listed in the PATH environment variable for %I 
                                and expands to the drive letter and path of the first one found.
    %~ftzaI               - expands %I to a DIR like output line

In the above examples %I and PATH can be replaced by other valid values. 
The %~ syntax is terminated by a valid FOR variable name.
Picking upper case variable names like %I makes it more readable and avoids confusion with the modifiers, which are not case sensitive.


이제 조금씩 알아가고 있는데, 자꾸 깜짝깜짝 놀란다.

아침에 부스스일어나면, 아이팟은 항상켜져있으니까 트윗덱 들어가면 오늘의 새로운 소식이 주르륵...
박지성이 두꼴을 넣었꾼! 와! 이러고...

갑자기 늘어난 팔로워수에, 맞팔율 100% 로 팔로잉을 하다가..
박찬종님 께서 팔로잉해주신거에 깜놀, 이렇게 트위터를 통해서 정치인들이 일반인 목소리에 귀를 기울이게 되는구나...하고 또 살짝 놀라고..

해쉬태그 어케쓰는건가 하면서 또 놀라고...

으흠~ 재미지다~



p.s. 팔로워가 약간만 늘어도 이렇게 정신이 없구나 ;; 아직 다른기능들을 잘 몰라서...
       사적인 트위터도 하나 만들었는데, 하다보니 두개로 같은거 팔로잉하고 그러니까 또 막 정신없네... ;;;

-_- 그것도 초딩게임이라고 불리는 캐치마인드를 하다가 밤을 새다니...

아이팟에 무료앱 '그림으로 말해요' 깔았다가... 아 이거 재밌다 했는데...
무료는 몇판 못한대서 빈정상하고 지우고, 결국 지금까지 캐치마인드를...  ㅎㄷㄷ;;;

근데, 크아도 계급이 트로피니까,

진정 내안에는 초딩이 살고 있는거 같다.

... 주말에 진짜 공부해야겠다...

dkim 역학1 수업중에, 마리온 챕터 4 였나, 카오스 파트가..
암튼 그때, 알게된 프로그램인데, 간단하게 사용하기에는 상당히 좋은 프로그램이다.

일단 첨부파일의 압축을 풀고, winfract.exe 를 실행한다.

기본이 아마, 만델브로트 집합으로 되어있을껀데, 우선 화면싸이즈 조절부터 원하는 대로 해주자.
모니터가 충분히 크다면 되도록 화면도 크게 잡는것이 좋을것이다.



전체 크기를 원하는대로 조절했다면, 이제 만델브로트의 자기유사성을 보기위해, 줌인을 해 들어가면 되는데,
View 메뉴에서 줌인 박스를 체크한뒤에, 화면상에서 마우스드래그로 박스를 그리고, 그것을 드래그해서 원하는 위치에 놓은다음 더블클릭을 하면 줌인을 해서 안으로 더 들어간다.

다시 줌아웃으로 빠져나오고 싶다면, view 메뉴에서, 줌아웃 박스로 체크하고, 마찬가지로 박스 그리고 더블클릭하면 된다.

아래는 몇가지 예시 화면이다.



색상 옵션도 다양하게 줄수 있다. 어차피 복소수의 절대값과 수렴 발산에 따른 집합의 분류를 채색으로 나타낸것이기 때문에,
추가적으로 더 자세히 쪼개서 색상을 부여하면, 아주 현란한 그림들을 볼수 있기도 하다. 메뉴 들어가서 이래저래 해보면 금방 터득한다.


만델브로트 뿐만 아니라, 줄리아 집합 이라든가 하는 것들도 꽤 많이 지원한다.  Fractals 메뉴에 들어가면 있다.

예. 줄리아집합




아마도 '자기유사성'하고 '초기조건에 대한 민감성' 이 두가지를 중점으로 관찰하게 될 지 싶은데...

자기유사성은 계속 줌인해 들어가면 계속 같은 형태가 자기자신속에 무한히 반복되는 형태를 띠게 되는것을 볼 수 있고,
초기조건에 대한 민감성은 Lyapunov 지수가 0 보다 작으냐  0 이냐(-> 바이퍼케이션)  0 보다 크냐 ( -> 케이아스 ) 뭐 이런 구분을 통해서 캐릭터화 시킬수 있다.

예. 바이퍼케이션. (중간에 띠 형태로 생기는 빈틈들을 유심히 봐야한다.)



자세한 내용은 케이아스(chaos) 에 대한 포스팅을 '혹시' 하게 되면 그때 살펴보도록 하고... ( 뭐 어차피 위키 찾으면 다 나오지 않을까 싶다...찾아볼때는, 푸앵카레 맵도 같이 찾아보는게 좋을듯 싶다는... )  암튼, 필요한 사람은 유용하게 썼으면 좋겠다.



첨부파일 :

win fractal 1821.zip


파이프 (pipe) 는  |  으로,  리디렉션 오퍼레이터 < , >  의 조합으로 생각할 수 있다.

가령,  해당 디렉토리내에 모든 파일을 삭제하기위해, del *.* 를 입력하면, are you sure (y/n) ? 따위가 나오는데, 그때 자동으로 y 라고 대답하여 바로 삭제하는 방법은 다음과 같이 입력하는 것이다.

echo y | del *.*

이렇게 하면, del *.* 에 대해, y 를 에코하여 대답시킴으로써, 직접 y 를 넣은것과 같은 효과가 난다.


엔터키를 에코하는 echo. 을 이용하면, 자동으로 엔터를 입력시킬수 있다.

예.

echo. | date



괜찮은 무료 앱이 있어서 리뷰를 해본다.

공학용 계산기 이고, 이름은 Free GraCalc 이다.

기본 인터페이스는 아래와 같다.  ㅇㅇ 좀 촌스럽게 생겼다. 간지나게 현란한 버튼들도 없다... ( 모두 func 랑 tirg 버튼안에 몰아놔서 그렇다 ㅋ )


무료앱으로만 공학용계산기를 30여개를 받았는데, 10개 정도는 '피식' 할 만큼 허접한 앱이고, 10개정도는 '인터페이스가 호오~ 그럴싸 한데?' 이고,
나머지 10개 정도는 '기능'이 제법인데? 랄까...

Free GraClac 는 기능이 제법인 축에 속하는 쪽이라고 생각한다. 뭐, 버튼 디자인이나 그런거는 '인터페이스가 호오~ 그럴싸한데?' 스타일에 비해서는 다소 투박하지만, 쓰는데는 별 지장이 없다.


크게, Calculator,  Equations ,  Graph , Referece , More   이렇게 5 가지 모드를 제공한다. 그리고 위의 기본 화면이 Calculator 모드이다.




다른 많은 앱들과 마찬가지로, 계산결과를 보여주는 화면을 손으로 스크롤해보면 이전 계산 결과를 다 남겨두기 때문에,
이후에 참조해서 다른 계산을 하는데 상당히 편하다.

Calculator 모드는 상당히 유용한 4개의 키를 제공한다.

func 키를 누르면 아래와 같은 화면이 뜬다.


뭐 기본적인 로그라던가, n중근이라던가,  팩토리얼 등등 을 볼수가 있다. 사용하고자 하는 함수를 터치하면,  함수가 입력되는데,
비주얼한 요소는 조금 포기했고, 그냥 컴퓨터 코드형식으로 입력된다.
3중근이나 n중근 같은게 함수로 있긴 하지만, 그냥 계산기에서 ^ (1/n) 으로 입력해도 된다.


스크롤바를 더 내려보면...


음, 조합, 순열 도 제공하고... 라운딩 이라고 된거는 , 반올림, 반내림, 가까운 정수 등으로 바꺼주는 함수다. 그러니까 일명 가우스기호 [] 라던가, 혹은 씰링기호 따위가 되겠다.

좀더 내려보면...

최대공약수, 최소공배수, 벨넘버 등도 있고, 사용자 정의함수도 있고... 뭐 그렇다.

약간 아쉬운게, 직접 분수연산 하는 버튼이 없다. ( 다른 앱들은 분수버튼 있는게 많다 )

대신 Free GraCalc 는 분수로 전환해주는 함수가 있으니, 분수계산시 아래와같이 수식전체에 저 함수를 씌워서 쓰면 된다. 뭐 손으로 타자쳐야되는것도 아니고 그냥 버튼한번 눌러주면 되니까 되니까 별로 귀찮지는 않다.



Science-related functions 는 뭐 공기중 온도에 따른 빛의 속도 라던가, 대기압이라던가 하는 것들이 몇개 함수로 들어있다.
또 방정식 모드에서 저장해놓은 식을 사용자 정의 함수로 사용할수 있게 되어있다.


cnst 버튼을 누르면 다음과 같이, 유용한 상수들이 나온다.


More-fundamental constants 를 누르면, 아보가드로수, 볼츠만 상수, 플랑크상수, 쿨롱상수, 투자율, 유전율 등등 이 나온다.

trig 버튼을 누르면  아래와 같이 삼각함수들이 나온다. 뭐 역삼각함수나 그런건 당연히 들어있다.




마지막으로 유닛 버튼을 누르면, 단위변환기가 나온다.


eV 를 J 로 바꺼주는 장면이다. 13.6 eV 를 넣었더니, 머 대략 저런 J 값을 보여준다.
맞는지 확인해보기 위해 계산기 모드로 들어가서 계산을 해봤다


약간 다르게 나왔지만, 전자 전하량의 유효숫자 부분을  1.60218 로 하니까 같은 값을 주었다. 참고로 한 키에 e 와 E 가 두번써있는데, 앞의 e 는 자연상수 이고, 뒤의 E 는 10의 지수형 표현을 위한 것이다. 한번클릭하면 e 가 두번연달아 클릭하면 E 가 입력된다

앞의 계산결과를 이용할 때는, 그냥 바로 연산자부터 입력하면, 위의 그림처럼 앞에 ans 가 붙으면서 이전의 결과를 사용한다.
이전의 여러 계산결과 중, 선택적으로 골라서 사용할때는, 이전결과 중 원하는 거을 클릭하면 그값을 불러다가 사용한다.




다음으로 equation 모드이다.
이퀘이션모드를 클릭하면, 이전에 입력된 수식들이 저장된 목록이 뜬다.
기본 4개 까지 저장이 된다. 고작 4개라니 이게 좀 안습인데, 아마 유료버전을 사면 이게 조절가능할듯 ;;;
유료라면 아마 유효숫자 개수 늘리는것도 되지 않을까?


암튼 빈 슬롯을 선택해서 수식을 입력해봤다.



입력된 수식은 ln x! 에 대한  스털링 근사식의 한버전 x lnx - x + 1/2 * ln (2Pi x ) 의 차이를 나타낸다.  이따가 그래프로 이게 정말 0 으로 가는지 볼려고 함 입력해봤다.

보면, 버튼에 x 와 Pi 가 같이 들어있는데, 만약 x Pi 를 입력하고 싶다면, x 누르고, -> 버튼한번 누르고  x 버튼 두번눌러주면 된다.




곧바로 그래프모드로 가보면, ...

오, 괜탼탸 ~

두손가락을 오므렷다가 펴면 다음과 같이 그래프가 확대된다.

가로든 세로든 따로 확대가 가능하므로, 축의 스케일도 자유롭게 조절된다.
물론 이동도 자유롭다. 또한, 이동시에 좌표축이 완전히 사라지지 않고, 구석에서 보여주기 때문에 상당히 편하다.


음, 대략 9 만 넘어가도, 오차가 0.01 이하로 떨어진다. 조..좋은 근사다.


또한, 그래프 상태에서 화면을 더블클릭하면 근이나, 절편 등을 찾는 기능을 쓸수 있고, 또 그래프를 따라가면서 좌표값을 보여주는 기능도 쓸 수 있다.




다음으로 레퍼런스 모드.


많은 항목이 뜨는데, 항목별로 공식이나 뭐 그런것들에 관한 문서들이 뜬다. 가령 컴플렉스 넘버스 항목으로 들어가면 아래와 같이 다시 세부항목이 뜨고, 또 클릭하면 관련 내용 나오고 그런식이다.




다음으로, more 탭으로 들어가면...

테이블 항목으로 들어가면, 아까 앞에서 그린 그래프의 좌표값들이 주르륵 뜬다.

다항식 솔버는 뭐 다항 방정식 풀어주는 건데, 3차 방정식 까지 제공된다.

특히 관심을 끄는,  트라이앵글 솔버로 들어가면, 다음과 같은 화면이 뜬다.



아래와 같이 삼각형을 풀어준다. 검은값들이 내가 입력한 값이고, 빨간값들은 계산기가 풀어준값이다.

SAS 형태로 값을 넣어보면...


이번에는 SSS 로...


이번에는 SSA 로... 근이 두개 나오면 두개라고 말해주고, 화면을 터치하면 두 근이 전환된다.



삼각형이 안만들어질때는 없다고 나온다.


뭐 돈주고 사는 앱이나, 실제 공학용 계산기보다야 당연히 떨어지겠지만, 그래도 상당히 쓸만한 앱이 아닌가 생각된다.




사용예.


두 함수의 교점을 구해보자.
다음과 같이 입력하고...


그래프 모드로 들어가면, 각 수식과 그래프를 같은색으로 보여준다.
화면을 더블탭핑해서, Find interscetions 를 눌러주면... 수식은 사라지고 곡선들만 남는대신, 트레이싱 모드로 바뀌면서, 좌표정보가 뜬다.

이 때 두 곡선이 만나는 점 근처로 포인터를 가져가면, 딸깍 달라붙으면서 아래와 같이 교점을 보여준다.

아래는, 교점 중에 하나가 (0.9923 , -0.9768 ) 이라는 뜻. 다른 교점 쪽으로 가져가면 그쪽의 좌표를 준다.






아무튼, 제작자의 숨결이 녹아들어있는 앱인거 같다. 이런걸 무료로 뿌리는 사람들이 있어서 그나마 세상이 살만한건지도 모르겠다.
제작자 ( 여러명인듯) 에게 경의를 표한다.


큐를 수평방향으로, 짧게 끊어친다고 하자.

직경의 몇 퍼센트 높이에서 치면, 공이 바닥에 미끄러지지 않고 굴러나갈수 있는가?

단, 당구공은 균일하다고 가정하자. 즉, 관성모먼트 I = 2/5 M R ²  이다.


Note :  실제로, 그값은 실제당구대에서, 당구공에 대한 쿠션의 높이와 상당히 비슷하다.

이분법적으로 찬반 입장을 표명하기 전에, 잠깐 생각을 해보도록 하겠다.

범죄의 집합을 C 라고 하자. 청소년범죄의 집합을 A  라고 하자. 그러면,  A ⊂ C 이다.
법에의해, C는 처벌을 받는다.  A ⊂ C  이므로,  A 은 처벌을 받아야 한다.

그러나 실제로는 청소년범죄는 성인범죄와 같은 처벌을 받지 않는데, 이는 미성년자가 완전체가 아니라는 가정에 기인한다.
즉, 같은 범죄라도, 대상이 미성년자이면, 성인과 동일하게 다루고 있지 않는 것이다.


물리적폭행의 집합을 V 라고 하고, 체벌의 집합을 P 라고 하자.  그러면, P ⊂ V 이다.
법에의해, V 는 처벌을 받는다. P ⊂ V 이므로,  P 는 처벌을 받아야 한다.

앞서와 마찬가지로, 미성년자가 P 와 관계되어 있고, P 는 처벌을 받지 않는다.
역시 미성년자가 완전체가 아니라는 가정에 기인한다.

만약, P 가 성인집단 사이에서 일어난다면, 이것은 그냥 V 일 뿐이다. 당연히 처벌을 받아야 한다.

개인적으로, 이번 체벌 전면 금지 정책 ( 즉, P 는 단지 V 가 되는 것 ) 의 시행을 환영하는 바이다.
이것은, 미성년자들을 성인과 크게 다르지 않게 대해주겠다는 의미로 느껴진다.

그러한 관점에서 볼때, A 의 처벌도 이루어져야 한다고 생각한다.

 미성년자 보호법 개정 촉구.

간단히 말해서,  " 공짜가 어딨니?  이제 안때릴께, 대신 콩밥먹을 각오는 해라 "  정도? ㅋ



 

 


ㅇㅇ 맘에 쏙 듦

[고교물리] 회전운동

Quizes2010. 10. 29. 00:42 |
양쪽에 각각 질량 m 이 달린 아령을 생각하자.

------------------------------------------ 문제가 좀더 와닿도록 수정함. --------------------------------------------------

그 아령의 무게중심을 지나는 축을 중심으로 아령을 회전시킨다고 하자.
이때, 회전축과 아령의 축 사이의 각도는 90도가 아닌 θ 로 일정하게 유지시키며 강제로, 등속회전시키고 있는 상태라고 하자.

(일정한 각속도를 갖는 모터에 단단히 고정시켰다고 해도 좋다. 아령은 이상적인 강체(rigid body)로 가정한다. )

어느 한순간 손을 놓았다고 하자. ( 즉, 외부적인 요인(가령 모터)을 순간적으로 모두 제거하고, 아령만 혼자 냅둔것이다.)

그랬을대, 아령은 손을 떼기전의 운동을 유지할 수 있는가?
그렇지 않다면 이유를 쓰고, 손을 뗀 이후의 운동을 묘사하라.




화질: 아이폰에 비해 좀 많이 떨어짐 ㅋ

컴터에 연결하고 버튼한번 클릭하면 사진이 폴더에 다 저장됨 굿.




사진은 ㅇㅇ 울 강아지.  낮잠자는데 방해해서 표정이 띠꺼움.




난 탁재훈이 정말로 코믹하고 코믹함에 있어서는 손에 꼽을 정도라고 생각한다.
뜨형에서도 탁재훈 때문에 많이 웃었는데, 방송중에 욕을 좀 했나보더라.

" 아 저 또라이새끼, 씨..." 이러고... 사실 내 일상에서는 흔히 듣는 표현이라, 그렇게 큰 거부감은 없는데...
방송에 부적합한건 그런거 같고...

근데 또 평소행동이 그대로 나왔다는건 리얼리티쇼의 관점에서 보면 출연자들의 몰입도가 높다고 생각할수도 있을듯.

다시한번 느끼는건데, 교양을 갖춘다는 게 단지 "교양있는척" 한다고 되는건 아닌것 같다.  분명 언젠가는 티가 나게 마련이다.

혹자는 "어려운자리에서는 말을 안하면 된다" 라고 하기도 하는데, 벙어리도 아니고, 항상 말을 안하고있을수는 없는 일이다.
말을 해야하는 상황이 올수도 있고, 근데 거기서 입만 열었다하면 격이 떨어지는 소리를 쏟아낸다면... 끔찍하군.

결국 안에서 새는 바가지, 밖에서도 샌다고 평소 습관의 중요성을 새삼 깨닫는다.
평소에 장난스럽게 혹은 친밀감을 위해 사용하는 저렴한 언어를 좀 순화하거나, 혹은 어떠한 상황에서도 완벽하게 컨트롤하는 능력을 길러야겠다.

탁재훈 뜨형 또라이 플래시보기


탁재훈이 논란이 된건 이번뿐만은 아니다. 예전에 무슨 프로그램에서 게임중에 넘어지는 와중에 소녀시대 티파니랑 부딪힌적이 있는데, 이것이 논라란이 된건, 본인으로서도 상당히 억울할것으로 생각된다. 보통, 넘어지는 와중에 무의식적으로 아무거나 붙잡게 되지 않나?




하필 붙잡으려고 한게 좀 부적절했군...--;  그래도 탁재훈 입장에서는 충분히 억울할만한 상황인듯.


그 전에도 김아중 관련해서 뭔 논란이 있었는데, 이것도 오해라고 한다.
무릇, 군자는 과전불납리요 이하부정관이라고, 오해받을 행동은 안하는게 상책이다.

아차차, 연예인이 군자는 아니지.... 근데, 대중은 연예인한테 군자상을 요구하는거 같기도 하다.
연예계라는 곳이, 그 어떤세계보다 노는데 있어서는 밀리지 않는 곳일텐데, 군자상을 요구하니, 참 아이러니 한 것 같기도 하고...
연예인들 입장에서는 미치고 팔딱 뛸 노릇이겠다.

연예기획사에서 애들 데려다가, 방송에 적합한 행동가짐을 갖도록 몇년씩 트레이닝을 시키는 것도 이와 무관하지 않은것 같다.




흠... 정치인들한테는 관대한거 같은데...

방명록과 메일을 통해, 심심찮게 오는 문의가 양자역학에 관한 포스팅들이 비번이 걸려있어서 읽을수 없다는 내용들이다.
내용이 심히 부끄러워서 모두 닫아놓았던 것들이고, 틈날때 손봐야지 했던게 벌써 꽤 오래전의 일인거 같다.

아... 낼 모레가 또 열통계 시험인데, 어제는 하루종일 써든하고, 오늘은 또 공부하기도 싫고...
그럴땐 소설책을 보거나 딴짓을 하는게 딱이다. 딴짓의 차원에서, 양자역학 포스팅이나 손을 좀 보자.

아무튼, 여전히 두서는 없겠지만, 지나친 완벽주의때문에 아예 시작도 못하는 것보단 낫겠지. 대충 끄적여 보고, 나중에 업그레이드를 해야겠다.


제 1 편. 양자역학의 태동 : 플랑크의 흑체복사

보통 양자역학의 시작으로, 플랑크의 흑체복사 이야기가 언급된다.
이 실험을 이해하는 것은 약간의 통계역학적 백그라운드를 요하지만, 우리는 스토리만 살펴보도록 하겠다.

우선 우리가 알고있는 아주 중요한 사실은 " 쇳대기를 달구면, 빨개진다. " 라는 것이다.

즉, 쇠가 어떤 온도에 이르게 되면, 우리가 빛을 가해준적이 없음에도 불구하고, 얘가 빛을 내기 시작한다. 오호!
이것은 생각하기에 따라서 상당히 경이로운 자연현상이라고 할 수 있다. 뜨겁게 해주면 빛을 낸다니...


맥스웰 이전의 과학자들 중에는, 이 현상에 대해, "어떠한 온도에서 쇳대기가 빛을 내기 시작하는가" 를 연구했을 수도 있다.
그들에게 빛이란 "반짝이는 그 무엇" 이었을 테니, 온도를 올리다가 어느순간 빛을 내기 시작한다고 생각할수도 있었을 것이다.

그러나 아쉽게도(?) 맥스웰은 " 빛 = 전자기파 " 로 바꿔버렸다. 즉, 반짝거리는 그 무언가가 없더라도, 빛은 나고 있었던 셈이다.
( 우리가 어려서 부터 익숙해진 '가시광선' 이라는 용어는 이미 이러한 내용을 내포한다. )

쇳대기에서 나오는 빛을 연구하던 사람들 중에는, 온도에 따라서, 어떤색의 빛이 나오는가를 연구한 사람들도 있었다. 즉, 스펙트럼을 말한다.
맥스웰 식으로 표현하자면, 달궈진 쇠에서 나오는 빛은 파장(혹은 주파수)에 따라, 얼만큼씩 섞여있는가를 연구했다고 할 수 있다.

온도에 따른, 그 분포는 대략 이러하다.

많은 사람들이, 통계역학과 전자기학의 백그라운드로 부터, 이러한 곡선 ( 온도 T 와 파장 λ ( 혹은 주파수 ν ) 의 함수 ) 를 얻으려고 용을 썼으나, 이 곡선을 얻는것은 당시로서는 아직 풀리지 않은 핫 이슈였다.

직접적으로 이 곡선을 얻지는 못했지만, 특정한 정보를 주는 실험결과들이 쏟아져 나왔다.
가령, 위 그래프에서 봉우리부분의 파장( 혹은 주파수) 에 대한 연구라던가, 온도에 따른 총 인텐시티 같은 것들이 그런것들이다.

참고항목 : 슈테판-볼츠만(Stefan-Boltzmann) 법칙, 빈(Wien)의 법칙, 빈의 변위 법칙, 레일라이-진스(Rayleigh-Jeans) 법칙 등.

결과적으로, 원하는 바는, 위의 곡선을 나타내주는 함수를 얻는것이고, 그것은 여러 실험결과들과 합치해야했다.





- 레일라이-진스 공식

레일라이는 열적 평형상태에 있는, 캐비티 내부의 전자기 복사에 대한 이론을 전개했다.

그는 캐비티 내의 전자기복사를, "바운더리에서 노드를 갖는 스탠딩웨이브들"로 전개한다. 그리고 각각의 스탠딩웨이브들은 캐비티 벽의 입자들이 하모닉오실레이션 하는 것으로 생각했다. ( 전자기파를 만들어야 하므로, 전하를 갖는 입자들임은 당연하다. )

결과적으로, 열적평형상태에 있는 캐비티 내의 레디에이션 에너지 밀도의 평균은 캐비티 벽의 입자들의 하모닉 오실레이션들의 에너지 밀도의 평균과 같게 되고, 이것을 ν , ν + dν 사이의 모드(mode)수 밀도 N(ν) 와 평균에너지의 곱으로 구하게 된다.


여기서 <E> 는 T 의 함수 이고, N 은 액시얼 모드를 제외한, 노말모드들만 카운팅한것이다. 즉, 진행방향에 수직인 두 축 방향의 편광을 고려해야한다.


N(ν) 를 구해보자. 이값은 세기성질로 캐비티의 모양과는 상관이 없다. 계산의 편의를 위해, 한변의 길이가 L 인 정육면체 형태의 캐비티를 생각해보자.

y, z 축으로도 마찬가지고... k ~ k + dk 사이의 모드 수를 세기 위해, 아래와 같이 k-space 에서 두께 dk 인 구각에 들어가는 수를 센다.
이와 같은 방법은 나중에 덴서티 오브 스테이트 를 구하거나 할 때도 쓴다.



따라서, 다음과 같이 모드의 수 ( 의 밀도) 를 구할 수 있다.

( 노테이션은 텍스트 북마다 군데 군데 차이가 있으므로 주의 )

V N(k) dk 구할때 마지막에 2 를 곱한것은, 앞에서 말했듯이 액시얼 모드 빼고,  진행방향에 수직인 두 축방향의 노말모드를 센 것이다.
분모의 (π/L)^3 은 단위눈금부피이다. 즉 한변이 π/L 인 정육면체 볼륨 하나당 점 1개가 들어간다. ( 달리말하면 1/8 점 8 개가 들어간다. )

이제 오실레이터들의 평균에너지 <E> 만 구하면 된다.

고전적인 열역학 이론에 따라, 오실레이터의 에너지분포는 볼츠만 분포를 따르고, 그로부터 다음과 같이 평균에너지 <E> 를 계산할 수 있고, 결과적으로 레일라이-진스 공식을 얻는다.





- UV catastrophe ( 자외선 파국 ? ) 과 플랑크 분포

레일라이 진스 공식은, 낮은 주파수에서는 잘 맞지만, 보다시피 진동수가 높은 영역에서 발산해버려 맛이 가버린다. 이것을 UV catastrophe 라고 부른다. ( 높은 진동수에서 맛이 간다는 말. ) 참고로, 높은 진동수 부분에서 잘 맞는 법칙이 빈의 법칙이다.

어디서 잘못되었을까?

사실인지는 모르겠지만, 암튼, 플랑크는 어떻게 해서든 레일라이 진스 공식과 빈의 법칙을 동시에 만족시키기 위해 8년 인가를 메달렸다고 한다.
하다하다 안되자, 무심코 적분을 서메이션으로 바꿨는데 자외선 파국이 해결되었다나... o_O ?

암튼, 적분을 서메이션으로 바꾸었다는 말은, 레디에이션과 물질사이의 에너지교환이 디스크릿하다는 말이 된다. 즉, 복사와 오실레이터 사이의 에너지 교환이 모든 에너지에서 이루어지는 것이 아니라, 띄엄띄엄 끊어진 값들로 교환된다는 말이 된다.

여러번의 피팅 시도끝에, 플랑크는 복사와 물질(오실레이터) 사이의 에너지교환이 가장 기본적인 에너지의 정수배만 되도록 하므로써, 그러한 이산성이 반영되도록 셋팅하였다. 이때, 그 기본량을 복사의 "퀀텀" 이라고 칭했고, 그것은 오실레이터의 진동수(=전자기파의 진동수) 에 비례했다.
그 비례상수가 바로 플랑크상수 h 이다.

즉, 다음과 같이 레일라이-진스 공식이 수정된다.


이 식을 플랑크 분포 라고 부른다.

참고로 이식을 모든 주파수에 대해서 적분하면, 슈테판 볼츠만 공식이 나오고, 낮은 주파수를 가정하면 ( hν << kT ) , 레일라이 진스 공식이 나오고, 높은 주파수를 가정하면, 빈의 법칙 ( 분포) 가 유도되며, 플랑크식을 파장에 대한 식으로 변형한후, 미분해서 로컬 맥시멈에 대한 파장을 구하면, 피크에서의 파장이 T 에 반비례한다는 빈의 변위법칙도 유도된다.

플랑크의 결과는, 전자기 복사의 양자화를 드러낸 것으로, 양자역학의 시작으로 평가받는다.



후... 쓰다보니 길어져 버렸다. ㅠㅠ

이후의 양자역학 포스팅 예고.

#002. 전자의 이중슬릿 실험과 물질파
#003. 고전 역학적 상태 1부.  위상공간, 배위공간
#004. 고전 역학적 상태 2부.  라그랑지안 미케닉스, 르장드르 변환, 푸아송 브라켓, 헤밀토니안 미케닉스
#005. 양자 역학적 상태 1부.  힐버트 스페이스, 스턴-겔락 실험, 디락 브라켓
#006. 양자 역학적 상태 2부.  리니어 오퍼레이터. 커뮤테이터, 노말 오퍼레이터, 허미션 오퍼레이터, 유니타리 오퍼레이터
#007. 아이겐 스테이트, 스펙트럼, 아이겐 스테이트 익스펜션, 커먼 아이겐 스테이트
#008. 가관측량 ( 옵저버블 ) , 디터미니트 스테이트,
#009. 슈뢰딩거 이퀘이션  ( 이거는 이전에 쓴 거 )
#010. 기대값의 타임 에볼루션, 에렌페스트 정리, 비리얼 정리
#011. 불확정성 정리
#012. 2-level system
...

스케치북 2011

Misc.2010. 10. 24. 16:42 |


ㅄ 같은 프로그램.

내 노트북처럼 모니터가 작으면 일단 비추.  팝업메뉴가 태스크바 뒤로 숨지를 않나...
좋은 기능들이 많은 것 같은데, 이래저래 무수히 많은 사소한 ㅄ짓을 하는 프로그램. ㅋㅋㅋ

이야 이쁘다

카테고리 없음2010. 10. 24. 01:29 |

존박...

카테고리 없음2010. 10. 23. 01:11 |

태어나서 처음으로 이런거에 문자를 보내다니... 그것도 가족들이 다... ㅋㅋ  ( 울가족은 전원 존박 )

허각이 좋았던게 딱 한번 있는데, 그건 이적 하늘을 달리다 부를때...

근데 오늘은 그냥 뭐 그저그랬음.  존박도 뭐 그냥 그랬지만, 그래도 존박 목소리는 허각보다 안질림.

티븨보면서 동생이, 허각은 교과서네... 근데 감동은 그닥이라고 했는데, 윤종신이 똑같은 얘기해서 깜놀 ㅋㅋㅋ


암튼, 존박이 일등했으면 더 좋았을텐데 아쉽.

ie8 기능중에 가장 애용하는 기능이 바로 shift + enter 인데, 네이트온 을 깔면 그렇던가 암튼, shift + enter 누르면 네이트 서치로 넘어가던가 그렇다.

쉬프트 + 엔터 를 애용하다가 갑자기 안먹히고 네이트 서치 로 넘어가면 자증이 나는데, 인터넷 옵션 들어가서 애드온 관리에 드가서,
애드온 및 익스텐션 쪽 드가서, 네이트서치 있으면 끄면된다.

역시나 내가 젤 싫어하는 짓인 " 나 모르게 내 컴터에 이상한짓 하지마 " 의 관점에서 보면, 네이트도 쓰레기인 셈.

얘네도 닮은거 같음 ㅇㅇ
옥상위의 소나무를 심었다. 소나무가 구불구불 자라더니 건물밖으로 쓰러지려고 했다.
소나무의 한 부분을 줄로묶어서 건물의 네 귀퉁이에 그림과 같이 팽팽하게 묶어두었다.


그림과 같이, 줄의 길이가 11 , 12, 13 미터일때, 나머지 줄의 길이를 구하여라.


# 1.
평면상에, 삼각형 ABC 와  만나지 않는 직선 L 이 있다.
삼각형 ABC의 각 꼭지점에서 직선 L 에 이르는 거리를 각각 a , b , c 라고 하자.
무게중심 G 에서 L 에 이르는 거리를,  a , b, c 로 나타내면 어떻게 되는가?


# 2.
공간상에, 삼각형 ABC 와 만나지 않는 평면 K 가 있다.
삼각형 ABC의 각 꼭지점에서 평면 K 에 이르는 거리를 각각 a, b, c 라고 하자.
무게중심 G 에서 K 에 이르는 거리를, a , b, c 로 나타내면 어떻게 되는가?

연대, 고대, 중대에서 허재를 스카웃하려고 공을 들이고 있었다.
그러자 허재는 '그냥' 중대에 간다. 여러모로 봐도 연고대로 가는게 유리했다고 한다, 세인들의 관점에선...

허재는 아마도 그런생각이었을 것이다.
' 내가 최고다. 내가 가는곳이 곧 최고가 된다. '

그니까 허재는 그냥 아무대나 가도 되는거였다.
집에서 가깝다거나, 교통이 편하다거나, 학교풍경이 맘에 든다거나, 공기가 좋다거나, 좋아하는 여자애가 있다거나...
어차피 농구로는 누구에게도 지지 않을 자신이 있었을테고...

그런 자신감.
어느 집단의 일원이 되었음에 생기는 자신감과는 차원이 다르다고 생각한다.


이거슨 엔딩 크레딧. 12번째 판이 왕판인데, 왕은 슈탱임. 슈탱 넘 쎄서 이기기 쉽지않음. 캐넌탱으로 실드4개 써서 깼음. 독탱으로도 깰수있을것같은 느낌.

MMC 는 시스템 관리를 위한 콘솔로, 스냅인(snap-in)을 로드시켜서 제어한다.

MMC에서 스냅인들을 로드시킨후에, 콘솔을 파일로 저장하면, 기본확장자는 msc ( MS Console document ) 이다.

윈 7 에서 기본적으로 미리 구성해서 제공하는 콘솔 파일들로는 아래와 같은 것들이 있다.

보통 연관이 있는 스냅인들을 로드시킨 콘솔을 저장한 것이다.
따라서 같은 스냅인이 여러 파일에 중복되어 들어있기도 하다.

azman.msc                      Authorization Manager :  권한설정
certmgr.msc                       Certificates : 인증서 관리
compexp.msc                    Component Services : COM (Component Object Model) 서비스 관리
compmgmt.msc                 Computer Management :  컴퓨터 관리
devmgmt.msc                    Device Manager : 장치관리자
diskmgmt.msc                   Disk Management : 디스크관리자
eventvwr.msc                    Event Viewer  : 이벤트뷰어
gpedit.msc                        Local Group Policy Editor  : 로컬그룹정책
lusrmgr.msc                      Local Users and Groups  : 로컬 사용자 및 그룹
napclcfg.msc                    NAP Client Configuration  :  NAP (Network Access Protection) 설정
perfmon.msc                     Performance Monitor  : 성능 모니터
printmanagement.msc      Print Management  : 인쇄 관리
rsop.msc                           Resultant Set of Policy :  정책결과 집합  (현재사용자에 적용된 그룹정책들을 보여준다.)
services.msc                    Services   : 서비스
fsmgmt.msc                      Shared Folders   :   폴더 공유 관리
taskschd.msc                   Task Scheduler  :  작업 스케줄러
tpm.msc                            TPM management  :  TPM ( Trusted Platform Module ) 관리
wf.msc                               Windows firewall   :  방화벽
wmimgmt.msc                   WMI (Windows Management Instrumentation ) management  :  WMI 관리

물론, 파일로 저장되지 않은 스냅인들도 많다. 자주 쓸꺼면 해당 스냅인들을 콘솔에 로드해서 파일로 저장해놓고 필요할때 불러다 쓰면 된다.

------------------------------------------------------------------------------------------

mmc.exe 를 실행시키면, 빈 콘솔 (콘솔 루트) 이 뜨는데, 보통 왼쪽부터 tree pane , taskpad pane , action pane 이라고 부른다.
(트리 페인이나 액션페인은 열었다 닫았다 할 수 있다.)

MMC 실행에는 아래와 같이  4가지 모드가 있다.





스냅인을 추가/제거하는 방법은  File > Add/Remove Snap-in  ( Ctrl + M ) 을 하면 된다.

Advanced... 옵션에서, parent snap-in 을 변경허용 여부를 정할 수 있다.


트리 페인에 폴더를 추가하려면, 폴더 스냅인을 추가해준다. 우클릭해서 Rename 해주고 사용하면 된다.


콘솔을 저장하면, 기본적으로  Administrative Tools 폴더에 저장되는데, 이러면 시작메뉴에 Administrative Tools 메뉴 띄워놓으면, 바로 쓸수있다.
%SystemRoot%\System32 에 넣으면, 아무데서나 쓸 수 있다.


-------------------------------------------------------------------------------------------

action > new taskpad view 를 선택하면, taskpad view wizard 가 실행되고, taskpad 를 입맛대로 셋팅할 수 있다.

셋팅 마지막에 Add new tasks to this taskapd after the wizard closes 라는 체크박스가 뜨는데, 체크한채로 finish 하면, new task wizard 가 뜬다.  추가할 작업의 커맨드 타입을 고를수 있다.

Menu Command  : 이거는 to configure a task that runs a menu command within the MMC.
Shell Command  :  이거는 to configure a task that runs an operating system command,
                                           such as a script, another application, a Web page, or another command-line task.
Navigation           :    이거는 to create a task that automatically navigates the MMC to one of the items in your Favorites list.