2010년 10월 27일 수요일

오일러의 수, 전기장, 에너지

매스매티카 사용자에게 오일러의 수, 전기장, 에너지를 생각하면 떠오르는 건 뭘까? 방정식에서 모두 E로 표기된다는 점이다. 그래서 문제가 발생한다. 실수로 아래와 같이 입력하면,
E == m c^2
결과는




이 된다. 이 방정식은 좌변은 오일러의 수로 상수를 나타내므로 틀린 식이다. 매스매티카에서 대문자 E는 오일러의 수를 가리킨다. 즉, 매스매티카에서 E 또는 Esc+ee+Esc, 혹은 \[ExponentialE]를 입력하면 이건 오일러의 수를 나타낸다. 그럼, 전기장이나 에너지를 뜻하는 변수로 E를 쓸 수는 없을까? 유감스럽게도 그렇다. 다른 문자를 사용해야 한다. 하지만, 대안이 있다. 보기에 E와 비슷한 문자를 사용할 수는 있다. \[CapitalEpsilon] 즉, 그리스 문자 ε의 대문자가 E와 비슷하게 생겼는데, 이걸 사용하면 된다.
\[CapitalEpsilon] == m c^2
라고 입력하면 쓸만한 결과를 얻을 수 있다.




다행히도 단축키도 있어서 매번 \[CapitalEpsilon]을 입력할 필요도 없다. 단축키는 Esc+E+Esc이다.

x에 대하여 정리하면...

대중에게 알려진 가장 유명한 방정식은 아인슈타인의 에너지와 질량의 동등성을 나타내는
e == m c^2
일 것 같다. 여기서 m은 물체의 질량, c는 진공에서 빛의 속도, 그리고 e는 이 질량에 저장된 에너지를 뜻한다. 이 방정식을 m에 관해 정리하려면, 즉 m만 좌변에 남기고 모두 우변으로 옮기려면 어떻게 해야 할까? 방정식을 m에 관해 풀면 된다.
e == m c^2
% // Solve[#, m] &
결과는 방정식이 아닌 Rule로 주어진다. 이걸 방정식으로 바꾸려면, 아래와 같이 리스트(List)를 벗겨 내고, 헤더를 Equal로 바꿔주면 된다.
e == m c^2
% // Solve[#, m][[1, 1]] & // Equal @@ # &
그럼, c^2에 관해 정리하려면 어떻게 해야 할까? 위와 같은 방법으로 하면 c^2가 적절한 변수가 아니라는 오류 메시지를 보게 될 뿐이다. 이럴 땐, c^2를 잠시 HoldForm으로 잡아두면 문제를 해결할 수 있다.
e == m c^2
% /. c^2 -> HoldForm[c^2] // Solve[#, HoldForm[c^2]][[1, 1]] & // 
  ReleaseHold // Equal @@ # &
Solve로 항을 정리한 후에 ReleaseHold를 사용하면 간단하게 HoldForm을 제거할 수 있다.