적분에 대한 명령어는 int입니다. 만약 적분이 구해지지 않으면 evalf를 사용하여 적분에 대한 근사값을 얻을 수 있읍니다.

1/(1-x^2)를 x에 대해 적분해 보겠습니다.

> int(1/(1-x^2),x);

다시 적분된 것을 미분해 보아야 겠죠? ^^

> diff(%,x);

같은 식으로 1/sqrt(1-x^2), 1+tan(x)^2를 적분해 보겠습니다.

> int(1/sqrt(1-x^2),x);
> int(1+tan(x)^2,x);

위의 내용은 부정적분이고, 구간을 정해서 적분할 때는 아래와 같이, x에 직접 구간을 주면 됩니다.

> int(x^2,x=a..b);
> int(1/(1+x^3),x=1..3);
> evalf(%);

아래의 내용도 실습해 보면 됩니다.

> int(exp(-x^2),x=0..infinity);
> int(sin(sin(x)),x=0..Pi/2);
> evalf(%);

정적분의 정의에 의하면, 두 함수 f(x)와 g(x)사이의 면적은 int(abs(f(x)-g(x)),x=a..b) 로 주어집니다. 즉, f(x)-g(x)값의 절대값들의 합으로 생각할 수도 있겠는데요. 여기에서 a,b는 두 함수의 교점을 나타냅니다.

먼저 f(x)와 g(x)의 정의를 하고, 그래프를 그려 봅니다.

> f := x->1-x^2; g := x->exp(-x);
> plot([f(x),g(x)],x=0..1);
> a:=0; b:=fsolve(f(x)=g(x),x=0.5..1);
> int(abs(f(x)-g(x)),x=a..b);

매개변수로 주어진 곡선 (x(t),y(t)) 의 구간 [a,b]에서의 길이는 int(sqrt(diff(x(t),t)^2+diff(y(t),t)^2),t=a..b) 로 주어집니다. 아래의 극좌표로 주어진 곡선 r=f(t), 0<=t<=2*Pi 의 길이를 구해 보겠습니다.

> f := t->2*(1+cos(t));
> with(plots):

아차, 극좌표로 된 것을 그릴 때는 아래와 같이……

> polarplot(f(t),t=0..2*Pi);
> x := t->f(t)*cos(t); y := t->f(t)*sin(t);
> int(sqrt(diff(x(t),t)^2+diff(y(t),t)^2),t=0..2*Pi)