Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка Maple, Стребуляев

.pdf
Скачиваний:
297
Добавлен:
27.03.2015
Размер:
1.24 Mб
Скачать

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 2

2 dy dx

 

 

 

 

 

 

 

 

 

(x y 5)

 

 

 

0

 

0

 

 

 

 

 

 

 

> value(%);

20

Вычисление двойных интегралов путем перехода к полярным координатам:

>restart: with(student):

>A:=Doubleint(sqrt(x^2+y^2),x,y,Omega);

 

 

2 2

dx dy

A :=

 

x y

 

 

 

 

 

 

 

 

 

 

 

># При переходе к полярным используем r и phi;

>assume(r>0); # полагаем r>o;

>changevar({x=r*cos(phi),y=r*sin(phi)},A,[r,phi]);# заменяем переменные;

r~2 dr~ d

># задаем область Omega;

>Omega:=x^2+y^2<=a^2; x:=r*cos(phi);y:=r*sin(phi); Omega;#Область Omega в полярных координатах;

:= x2 y2 a2

x := r~ cos( )

y := r~ sin( )

r~2 cos( )2 r~2 sin( )2 a2

> simplify(%);

r~2 a2

> Int(Int(r^2,r=0..a),phi=0..2*Pi); value(%);

2

 

a

 

 

 

r~

2

dr~ d

 

 

 

0

 

0

 

 

41

2a3

3

Вычисление тройных интегралов:

>restart: with(student): with(plots):

>Tripleint(x*y^2*z^3,x,y,z,V);

 

 

 

x y

2

z

3

dx dy dz

 

 

 

 

 

 

 

V

 

 

 

 

 

># Интеграл ограничен поверхностями z=xy,y=x,x=1,z=0;

>plot3d(x*y,x=0..1,y=0..1-x,axes=boxed);

> Tripleint(x*y^2*z^3,z=0..x*y,y=0..x,x=0..1); value(%);

 

1

x

x y

 

 

 

 

 

 

x y

2

z

3

dz dy dx

 

 

 

 

 

 

0

0

0

 

 

 

 

1

364

> Int(Int(Int(exp(-x^2-y^2-z^2),x=- infinity..infinity),y=-infinity..infinity),z=-infin- ity..infinity)=int(int(int(exp(-x^2-y^2-z^2),x=-in- finity..infinity),y=-infinity..infinity),z=-infin- ity..infinity);

 

 

 

 

 

 

( x2 y2 z2)

 

 

 

e

(3/2)

 

 

 

 

 

 

dx dy dz

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

> a(x,y,z):=1/(1+x+y+z)^(7/2);

42

a(x, y, z) :=

1

(1 x y z )(7/2)

 

Вычисление тройных интегралов через цилиндрические координаты:

>restart: with(student): with(plots):

>Tripleint(sqrt(x^2+y^2),x,y,z,V);

 

 

 

2 2

dx dy dz

 

 

 

x y

 

 

 

 

 

 

 

V

 

 

implicitplot3d(x^2+y^2=z^2,x=-1..1,y=- 1..1,z=0..1,grid=[15,15,15],axes=boxed);# Область V;

># implicitplot3d -используется для отображения заданных в неявном виде поверхностей, а опция grid задает число базовых точек по которым строится поверхность (по умолчанию rid=[10,10,10];

>

Tripleint(sqrt(x^2+y^2),x,y,z,V)=Int(Int(Int(sqrt(x^ 2+y^2),x=-sqrt(z^2-y^2)..sqrt(z^2-y^2)),y=- z..z),z=0..1);

 

 

 

 

1

z

z2 y2

 

2 2

 

 

 

2 2

dx dy dz

 

 

 

x y

dx dy dz

 

 

x y

 

 

 

 

 

 

 

 

 

 

 

V

 

0

 

z

z2 y2

 

> changevar({x=r*cos(phi),y=r*sin(phi)},Ihs(%),

[r,phi,z]);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

2

 

r

 

2

dr d dz

 

 

 

 

 

Ihs

 

 

 

 

 

 

dr d dz

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

43

># Определяем границу области интегрирования;

>x:=r*cos(phi);

x := r cos( )

>y:=r*sin(phi);

y := r sin( )

> x^2+y^2=z^2;

r2 cos( )2 r2 sin( )2 z2

> simplify(%);

r2 z2

># Вычиcляем интеграл;

>Int(Int(Int(r^2,r=0..z),phi=0..2*Pi),z=0..1):= int(int(int(r^2,r=0..z),phi=0..2*Pi),z=0..1);

 

1

2

z

 

 

 

r2 dr d dz :=

 

 

 

 

 

6

 

0

0 0

1.6. Операции с рядами

Применение систем символьной математики особенно эффективно при решении одной из задач математического анализа — операций с рядами. В настоящем разделе рассматриваются задачи анализа числовых и функциональных рядов, а также разложения функций в ряды Тейлора, Фурье, асимптотическое разложение.

Числовые последовательности с заданным числом членов:

>restart:with(plots):

>sum(k^2,k=1..4);

30

> Sum(k^2,k=1..4)=evalf(sum(k^2,k=1..4));

4

 

 

 

 

k2 30.

 

k 1

 

 

 

> sum(k,k=1..n);

 

 

 

 

(n 1)2

 

n

1

 

 

 

 

 

2

 

2

2

Бесконечные последовательности:

> restart:sum(-exp(-k),k=1..n);

44

 

 

( n 1)

 

(-1)

 

e

 

(e-1)

(-1)

 

e

1

e

1

> sum(-exp(-k),k=1..infinity);

1

1 e

> Sum(k*a^k,k)=evalf(sum(k*a^k,k));

ak (k a 1. k 1. a )

k ak

(a 1.)

2

k

 

>

Sum(1/n!,n=1..infinity)=evalf(sum(1/n!,n=1..infinity));

1

n! 1.718281828

n 1

> Sum(n^2*exp(-sqrt(n)),n=1..5000)=evalf(sum(n^2*exp(- sqrt(n)),n=1..5000));

5000

n2 e( n ) 239.9949283

n 1

>

Sum(n!/n^sqrt(n),n=1..1000)=evalf(sum(n!/n^sqrt(n),n=1.

.500));

1000 n!

( n ) 0.5453177346 101074

n 1 n

Вычисление факториала числа:

3!;

6

> factorial(50);

304140932017133780436126081660647688443776415689605120000000000

Двойные суммы:

> Sum(Sum(k^2,k=1..m),m=1..N);

N

 

m

 

 

 

k

 

 

 

 

2

 

 

 

 

m 1 k 1

 

> factor(simplify(value(%)));

45

N (N 2) (N 1)2

12

> subs(N=100,%);

8670850

Вычисление произведений членов последовательности:

>restart:

>Product(k^2,k=1..5)=product(k^2,k=1..5);

5

k2 14400

k 1

>Product(k^2,k)=product(k^2,k);

k2 (k)2

k

> product(a[k],k=1..6);

a1 a2 a3 a4 a5 a6

> f:=[1,2,3,4,5]; product(f[k],k=1..5);

f := [1, 2, 3, 4, 5]

120

> product(n+k,k=1..4);

(n 1) (n 2 ) (n 3 ) (n 4 )

>Product(2/i,i=1..infinity)=product(2/i,i=1..infinity);

2 0

1 i

i

Общая схема исследования сходимости числовых рядов. Знакопостоянные ряды:

> restart:with(linalg):

> U:=(n)->(1/(ln(n)^2))*cos(Pi*n^2/(n+1));

 

 

n2

 

 

cos

 

 

 

 

 

 

 

 

U := n

n 1

ln(n )2

 

> S:=Sum(U(n),n=2..infinity);

 

 

n2

 

 

cos

 

 

 

 

 

 

 

 

 

 

S :=

n 1

ln(n )

2

 

n 2

 

 

46

Проверка необходимого условия сходимости:

> Limit(U(n),n=infinity)=limit(U(n),n=infinity);

 

n2

 

 

 

cos

 

 

 

 

 

 

 

 

 

 

lim

n 1

0

ln(n)2

 

n

 

 

Для определения сходимости используем признак Даламбера:

> if limit(U(n+1)/U(n),n=infinity)<1 then print(R-

сходится) else print (R- расходится) fi;

R-расходится

Знакопеременные ряды:

> restart:

> V:=(n)-> (-1)^n*sin(n)^2/n;

(-1)n sin(n)2

V := n

n

 

>S:=Sum(V(n),n=2..infinity);

(-1)n sin(n)2

S := n

n 2

Проверка необходимого условия сходимости:

> Limit(V(n),n=infinity)=limit(V(n),n=infinity);

lim

(-1)n sin(n)2

0

n

n

 

Построение графика частичных сумм ряда:

> H:=(k)->sum((-1)^n*sin(n)^2/n,n=1..k);

k

(-1)n sin(n)2

H := k

 

n

n 1

 

> plot(H(k),k=1..400);

47

Построение графика частичных сумм ряда из модулей: > G:=(k)->abs(H(k));

G := k H(k)

> plot(G(k),k=1..400);

Нахождение суммы ряда:

> Sum((-1)^n*sin(n)^2/n,n=1..1000)=evalf(sum((-

1)^n*sin(n)^2/n,n=1..1000));

1000 (-1)n sin(n)2

n -0.3071095407

n 1

Функциональные ряды:

> restart:with(plots):

> U:=(x,n)->x^n/(1+x^(2*n));

U := (x, n)

xn

1 x(2 n )

 

> U(x,n+1)/U(x,n);simplify(%);

x(n 1) (1 x(2 n ) )

(1 x(2 n 2) ) xn

x x(1 2 n )

1 x( 2 n 2)

> Sum(U(x,n),n=1..infinity);

 

xn

 

(2 n )

n 1 1 x

> assume(n>0); solve({abs(U(x,n+1)/U(x,n))<1.01},{x,n});

48

{x x, n~ n~}

>f:=(x,n)->abs(U(x,n+1)/U(x,n));

f := (x, n)

 

U(x, 1 n )

 

U(x, n )

> plot3d(f(x,n),x=-

1..1,n=1..100,color=blue,thickness=2,axes=frame);

> x:=3;

Sum(U(x,n),n=1..infinity)=evalf(sum(U(x,n),n=1..infinity));

 

x := 3

 

3n~

 

 

0.4652589637

(2 n~ )

n~ 1 1 3

>

Степенные ряды :

>restart:

>a:=(n)->(n^n)/(n!);

a := n nn n!

> Sum(a(n)*x^n,n=1..infinity);

nn xn

n 1 n!

49

> R:=limit(a(n)/a(n+1),n=infinity); evalf(%); # область

сходимости -e^(-1) < x < e^(-1);

R := e(-1)

0.3678794412

Разложение функций в ряд Тейлора: Функция от одного переменного:

>restart: with(plots):with(linalg):

># Разложение в ряд Тейлора до члена с x^4 функции f(x);

>f:=(1+x+x^2)/(1-x+x^2);

f :=

1 x x2

1 x x2

 

> taylor(f,x=0);

1 2 x 2 x2 2 x4 2 x5 O(x6 )

># Разложение в окрестности x=0 до порядка остатка = 5(необязательный параметр);

>taylor(f,x=0,5);f1:=convert(%,polynom);f1;

1 2 x 2 x2 2 x4 O(x5 )

f1 := 1 2 x 2 x2 2 x4

1 2 x 2 x2 2 x4

> f1:=convert(%,polynom);# f1основная часть ряда; f1 := 1 2 x 2 x2 2 x4

> # Сравним насколько отличается исходная функция от ее

приближения рядом Тейлора; > plot([f,f1],x=-

1..1.2,color=[BLUE,PINK],linestyle=[SOLID,DASHDOT],ti tle="Функция и ее ряд Тейлора",titlefont=[HELVETICA,BOLD,10],legend=["функция","ряд Тейлора"],thickness=3);

50