maple : 함수를 사용하자

> x:=’x’: y:=’y’:

> x^2 + x – 4*x^2;

> x*y + 2*x^2*y + y^2*x^2 – 2*y*x;

> (x + 2*y + 1) * (x – 2)^2;
> expand(%);
> factor(%);

> sqrt(1+x)^4;

expand()는 수식을 전개하는 역할을, factor()은 인수분해를 해 줍니다.

변수에 값을 대입하는 경우에는 subs(var=value,expr)를 이용해서 합니다.

> a:=’a’: x:=’x’:
> subs(x=1+a,1+x^2);
> subs(x=3,y=1-a,(x+y)*(x-y)^2);

> simplify((1+x)^2);
> simplify(1+2*x+x^2);
> int(1/(x^4-1),x);
> diff(%,x);
> simplify(%);

여기에서 int는 적분을, diff는 미분을 의미합니다.

함수의 정의를 지우는 것은 f:=’f’;라고 하면 됩니다. 변수의 경우도 마찬
가지여서, 변수 x를 지울 때는 x:=’x’;라고 합니다.

> f := ‘f’:
> f := x->x^2;
> f(a+1);
> f(4);
> subs(x=4,f(x));
> expand(f(x+1+y));

maple : list와 set

계산을 할 때, 여러 대상들을 모아서 하나의 개체로 취급하는게 편리한 경우가 많습니다. Maple에서는 list와 set이 그런 기능을 제공합니다.

list는 [ ]를 이용하여 만드는데, 벡터처럼 순서와 반복을 그대로 유지합니다. set은 { }를 이용해서 만들고, 집합처럼 순서와 반복을 무시합니다. 이걸 어디다 써 먹으면 좋을지는 알아서 생각하시고…… 저는 방법만 떠들겠습니다. (사실은 많이 써먹지 않은 놈들입니다, 저도…..)

> a:=[3,5,1,1];

> b:={3,5,1,1};

list와 set 를 다룰 때 자주 사용하는 함수로는 다음과 같은 것들이 있습니다.

nops(a)는 list 또는 set a 의 요소들의 갯수를 주며, map(f,a)는 함수 f 를 a의 각 요소들에 작용시킵니다. 또한 set과 set 의 사이에서는 기본적 으로 사용되는 집합에 대한 개념을 사용하시면 됩니다.

> nops(a);

> nops(b);

> {1,2,3,4} union {3,4,5,6};

> {1,2,3,4} intersect {3,4,5,6};

> {1,2,3,4} minus {3,4,5,6};

> a := [0,Pi/4,Pi/2,Pi];

> map(sin,a);

list중에서 각각의 요소를 대상으로 작업하여야 하는 경우도 있읍니다. 이때에는 a[n]과 같이 index를 이용하면 됩니다.

좀 더 다양한 작업을 하기 위해서는 op 함수를 이용할 수 있읍니다. 예를 들어 op(i,j,a) 는 a의 i번째부터 j번째까지의 요소들을 나열합니다.

> a:= [4,5,2,-1];

> a[1];

> a[3];

> op(1,a);

> op(3,a);

> op(1..3,a);

> op(2..4,a);

> op(a);

maple : 저장에 관하여

메이플로 작업한 결과를 저장하기 위해서는 단축키 Ctrl+s를 누르면 되겠 습니다. (이것은 일반적인 윈도 프로그램에서 공통이며….. 유닉스/리눅 스용 메이플에서는 단축키가 조금 다를 것입니다. 지금 윈도 쪽에서 이 글 을 쓰고 있는데, 사용하실 때는 알아서들 확인해 보고 쓰세요.^^) 이 경 우 저장되는 형식은 *.mws의 꼴이며, 메이플 워크시트 형식이라고 합니 다.

하지만 다른 방식의 저장도 가능합니다. 먼저 export를 눌러 나오는 메뉴 들을 살펴보겠습니다. (이것은 저장할 때의 형식 목록에도 나와 있으니 그 쪽으로 하셔도 상관 없겠지요?) plain text, maple text, latex, maple explore source, html 의 형식이 보일 것입니다. 이런 다른 형태로 의 저장이 가능합니다.

plain text, maple text는 메이플에 입력한 수식형태 그대로 출력해 주는 것입니다.(두 가지는 개인적으로 잘 써먹지 않은 기능이라 정확한 차이까 지 말해주기는 어렵겠네요.) latex, maple explore source는 tex 소스 형 식으로 출력해 줍니다. 이것으로 ps 파일을 만들 수 있다는 말입니다. ps 파일은….. 플랫폼에 상관없이 잘 보이는 녀석이지요. 유닉스나 리눅스에 서는 고스트뷰(gv)라는 프로그램을 사용하여 볼 수 있으며, 윈도에서도 ps 를 볼 수 있는 프로그램들을 많이 찾을 수 있습니다. 이도저도 없으면 유 명한 어도비 애크로뱃 리더를 사용해서도 보실 수 있는데….. 이 녀석도 공짜입니다. 잘 활용하세요. 논문 같은 것은 ps 형식으로 되어 있는 경우 가 상당히 많으므로, 애크로뱃 리더 정도는 깔아 두시는 편이 좋을 것입니 다. 그렇지 않으면 애로사항이 꽃피겠지요. ^^ (김성모 스타일이라고 합니 다.)

여기의 기능 중 가장 이쁜 기능이라 감히 말할 수 있는 것은, html 형식으 로 저장할 수 있는 점입니다. 화면에 보인 모양 그대로 html 형식으로 바 꾸어 주어, 나중에 홈페이지에 올릴 수 있는 모양으로 만들어 줍니다. 물 론 수식과 그래프들은 그림으로 저장되지요.

maple : evalf()

메이플에서 계산을 할 때 그냥 아래와 같이 해도 결과는 구할 수 있습니다.

> 123.4*8.2^3;
> (23.4*43)/(43.5-(3.2*2))+(12.4*34.8);

위의 계산들은 각각 해를 구하는 것입니다. 손으로 계산하려면 꽤나 골치아플걸요. 아래의 것은 팩토리얼입니다.

> 13!;

보통의 전자 계산기로는 에러가 나기 딱 좋죠? (보통의 것은 8자리 정도, 공학 계산기는 10자리 넘는 것도 있지만……비싸겠죠?) 계산해 보셨어요? 몇 자리입니까? 이 정도라면 메이플이 상당히 강력한 놈이라는 것을 다시 깨달으실 수 있죠?

잡담은 여기까지.

일단 다음을 계산해 봅시다. 분수가 나오죠?

> (5^8)/(3*Pi^2)*sqrt(5);

얘를 구하면 얼마 정도 나올까요? 이것을 구하려고 생각하면 막막할 것입니다. 계산기를 사용하더라도 하나하나 입력해서 계산해야 할 것이고, 그나마 자릿수 길면 도중에 잘리겠지요. 그러나 메이플에서는 간단하게 이 계산을 수행할 수 있습니다.

방금 전에 계산한 식을 나타내는 표현은 ” 입니다. 이것을 이용하면…..

> evalf(“);

29500.13725 정도 되는 값이 딱 나와 주지요? 보통의 계산기로 계산했을 경우 29500.137 정도 나오겠지요. 큰 오차는 아니지만, 정밀한 계산을 한다고 생각하면 이건 큰일입니다!

또한 메이플로는 유한, 혹은 무한합이나 곱을 계산할 수도 있습니다. 한번 다음의 식을 따라가 보겠습니다.

> Sum((2*i+5)/(3*i^2-5),i=1..10);

이 입력의 결과로는, 시그마가 등장하는 우리에게 낯익은 모양이 등장할 것입니다. 그, 수학책에 많이 나오는 수식 형태로 말입니다.

> value(“);

이 계산의 결과로 분수꼴의 답을 얻을 수 있습니다.

> evalf(“);

그리고 이 계산의 결과로, 이 분수꼴을 다시 전개한 결과를 보실 수 있습니다.

> Product((3*Pi*i-5)/(2*i^2-Pi),i=1..10);

이것은, 커다란 파이를 쓰는….. 아시죠? 그 수식….. 그 수식을 보여줍니다. Sum과 같은 방식이죠.

> value(“);

이 계산의 결과로, 인수분해와 분수로만 된 것 같은 꼴의 식이 나옵니다. 이 정도로도 우리는 충분히 좋은 값을 얻었다 생각할 수 있겠습니다만.

> evalf(“);

이것을 사용해 주면 확실하게 답을 얻을 수 있습니다.

또한 소수 몇 자리까지 답을 구할것인가 하는 문제도 있는데요, 이것도 간단히 해결됩니다. 다음의 식을 보겠습니다.

> 5/3;

위의 식은 무한히 나가는 소수라는 점은 아시죠? 이것을 다음과 같이 계산해 보겠습니다.

> evalf(“,3);

답은 1.67이 나옵니다. 다른 식에 대해서도 생각해 보도록 합시다.