2015년 7월 28일 화요일

맥시마(maxima)의 =기호의 사용법

 맥시마를 처음 시작할 때 잘못 쓰기 쉬운 기호 중 하나가 바로 =이다. 보통 다른 프로그래밍 언어에서는 대입 연산자(우항 값을 좌항에 저장하는)로 사용되므로 이것에 익숙해서 여기에서도 당연히 대입 연산자일거라고 생각하기 때문이다. 그런데 맥시마의 대입 연산자는 : , :=, :: , ::= 이 네 가지이다.

맥시마에서 =는
① 등식(eqation)을 만들거나
② ‘같다’를 판변하는 비교 연산자로 사용되는 기호이다.

아래 예를 보자

첫 번째에서 x=2라고 입력하면 변수 x에 2를 입력한 것이 아니다. 그냥 (x=2)라는 등식을 입력한 것이다. 두 번째 예에서는 변수 a에 (x=2)라는 등식 자체를 입력한 것이다. Maxima에서 변수는 상수뿐만 아니라 뒤에 나오겠지만 표현식(expression)도 저장할 수 있다. 아래의 예는 변수 b에 x2-2x+1=0 이라는 방정식 자체를 입력한 것이다.

그리고 ‘=’기호는 조건 검사문 if 문과 뒤에오는 조건식에서 ‘같다’를 판별하는 논리 연산자로 쓰인다.
위에서 if 문 뒤의 (x = %pi) 에서 =는 변수 x값이 π와 같은지를 검사하는 비교 연산자이다. 이 논리식이 참이기 때문에 변수 a에 1값이 대입되었다.
 비교 연산자로 쓰이는 <, >, <=, >=도 비교 연산자 뿐만 아니라 부등식(inequality)를 만드는 데에 사용된다.
위의 첫 번째 입력은 c라는 변수에 2y+1<0 이라는 부등식을 대입한 것이다. 두 번째 입력에서 (d>2)는 if문 뒤의 조건식이다. 이것이 참이므로 e변수에 true값이 저장된다.

댓글 없음:

댓글 쓰기