ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.04.2021
Просмотров: 1365
Скачиваний: 16
Вычисление произведений членов последовательностей
Для вычисления произведений членов последовательностей исполь-
зуются функции
product
и
mul
, разница между которыми аналогична
разнице между
sum
и
add
.
> Product(k^2, k=1..n) = product(k^2, k=1..n);
n
k
=1
k
2
= Γ(
n
+ 1)
2
Product(k^2-2*k+2, k=1..5) = mul(k^2-2*k+2, k=1..5);
5
k
=1
(
k
2
−
2
k
+ 2) = 1700
Разложение функций в ряды
Для разложения функций в ряд Тейлора используются функции
taylor
(для функции одной переменной) и
mtaylor
(для функции
нескольких переменных). Для разложения функций одной переменной
в обобщенный степенной ряд используется функция
series
. Для на-
хождения конкретного коэффициента разложения используют функции
coeftayl
и
coeff
, причем последнюю допустимо применять только к
уже готовому разложению.
> y := x -> (1+x)/(1-x):
y(x) = taylor(y(x), x=0, 4);
1 +
x
1
−
x
= 1 + 2
x
+ 2
x
2
+ 2
x
3
+ O(
x
4
)
> cot(x) = series(cot(x), x=0, 4);
cot(
x
) =
x
−
1
−
1
3
x
−
1
45
x
3
+ O(
x
4
)
> coeff(%, x, 3);
−
1
45
> expan := f(x)=taylor(f(x), x=t, 3):
subs(t=x[0], expan);
f
(
x
) =
f
(
x
0
) + D(
f
)(
x
0
)(
x
−
x
0
) +
1
2
(D
(2)
)(
f
)(
x
0
)(
x
−
x
0
)
2
+ O((
x
−
x
0
)
3
)
> mtaylor(sin(x^2+y^2), [x=0, y=0], 8);
x
2
+
y
2
−
1
6
x
6
−
1
2
y
2
x
4
−
1
2
y
4
x
2
−
1
6
y
6
51
4.5
Интегрирование функций
Вычисление простых интегралов
Для вычисления простых интегралов в Maple используется функ-
ция
int
. При вычислении неопределенных интегралов переменная ин-
тегрирования задается без диапазона, а в аналитическом представлении
результата отсутствует произвольная постоянная.
> f := x -> exp(a*x)*cos(b*x):
Int(f(x),x) = simplify(int(f(x),x));
e
(
ax
)
cos(
bx
)
dx
=
e
(
ax
)
a
cos(
bx
) +
b
sin(
bx
)
a
2
+
b
2
> g := x -> x^3*cos(x):
Int(g(x), x=0..2*Pi) = simplify(int(g(x), x=0..2*Pi));
12
π
2
Функция
int
позволяет вычислять несобственные интегралы, а
также интегралы с переменными пределами интегрирования:
> f := x -> 2/(x^2+4*x+6):
Int(f(x), x=-infinity..infinity) =
int(f(x), x=-infinity..infinity);
∞
−∞
2
x
2
+ 4
x
+ 6
dx
=
π
√
2
> g := x -> sin(x)/x:
Int(g(x), x=-1..1)=int(g(x), x=-1..1);
1
−
1
sin(
x
)
x
= 2 Si (1)
> h := x -> 1/x^2:
Int(h(x), x=0..1) = int(h(x), x=0..1);
1
0
1
x
2
dx
=
∞
52
> Int(2*x, x=sqrt(x)..x^2) = int(2*x, x=sqrt(x)..x^2);
x
2
√
x
2
x dx
=
x
4
−
x
2
Интегрирование по частям
С помощью функции
intparts
из пакета
student
можно выпол-
нить интегрирование по частям.
> with(student):
f := x -> arctan(x):
u := x -> arctan(x):
If := Int(f(x), x):
If = intparts(If, u(x));
arctan(
x
)
dx
= arctan(
x
)
x
−
x
1 +
x
2
dx
> f := x -> x^k*ln(x):
u := x -> ln(x):
If := Int(f(x), x):
If = simplify(intparts(If, u(x)));
x
k
ln(
x
)
dx
=
ln(
x
)
x
(
k
+1)
−
x
k
dx
k
+ 1
Кратные интегралы
В Maple специальных средств для вычисления кратных интегра-
лов не существует. Однако в пакете
student
есть функции
Doubleint
и
Tripleint
, которые позволяют вычислить значение интеграла, если
заданы пределы интегрирования. Таким образом, задача сведения крат-
ного интеграла к повторному возлагается на пользователя.
Вычислим
Ω
xy d
Ω
, где
Ω =
(
x, y
) : 0
≤
x
≤
1
, x
2
≤
y
≤
x
.
> with(student):
f := (x, y) -> x*y:
Doubleint(f(x, y), x, y, Omega) =
value(Doubleint(f(x, y), y=x^2..x, x=0..1)):
53
Ω
yx dx dy
=
1
24
Вычислим
Ω
x
2
+
y
2
d
Ω
, где
Ω =
(
x, y
) :
x
2
+
y
2
≤
a
2
,
воспользовавшись функцией замены переменных
changevar
из паке-
та
student
.
> f := (x, y) -> sqrt(x^2+y^2):
If := Doubleint(f(x, y), x, y, Omega):
sub := {x=r*cos(phi), y=r*sin(phi)}:
If = changevar(sub, If, [r, phi]);
Ω
x
2
+
y
2
dx dy
=
Ω
|
r
|
2
dr dφ
> If = value(Doubleint(abs(r)^2, r=0..a, phi=0..2*Pi));
Ω
x
2
+
y
2
dx dy
=
2
a
3
π
3
Криволинейные интегралы
Для вычисления криволинейных интегралов первого рода в паке-
те
student
имеется функция
Lineint
, которая, как и
Doubleint
и
Tripleint
, имеет только инертную форму. Параметризация кривой поз-
воляет свести криволинейный интеграл к простому.
Вычислим интеграл
C
y
2
ds
,
где
C
=
(
x, y
) :
x
=
t
−
sin
t, y
= 1
−
cos
t,
0
≤
t
≤
2
π
.
> with(student):
f := (x, y) -> y^2:
If := Lineint(f(x, y), x, y, t=0..2*Pi):
x := t -> t-sin(t):
y := t -> 1-cos(t):
If = value(If);
2
π
0
1
−
cos(
t
)
2
1
−
cos(
t
)
2
+ sin(
t
)
2
dt
=
256
15
54
4.6
Дифференциальные уравнения
Решение обыкновенных дифференциальных уравнений
Maple позволяет решать одиночные дифференциальные уравнения
и системы дифференциальных уравнений как аналитически, так и в чис-
ленном виде. Для решения обыкновенных дифференциальных уравнений
используется функция
dsolve
. Первый параметр функции
dsolve
дол-
жен иметь структуру множества и содержать систему уравнений, а также
начальные или краевые условия. Производные при записи дифференци-
альных уравнений могут задаваться функцией
diff
или оператором
D
,
однако для записи начальных или граничных условий подходит только
оператор
D
.
Решим сначала уравнение
x
2
d
2
y
dx
2
−
3
x
dy
dx
+
y
= 0
, а затем — задачу
Коши для этого же уравнения с начальными условиями
y
(1) = 6
,
dy
dx
(1) = 0 :
> eqn := x^2*(D@@2)(y)(x)-3*x*D(y)(x)+y(x)=0:
dsolve(eqn, y(x));
y
(
x
) =
_
C1
x
(2+
√
3)
+
_
C2
x
(2
−
√
3)
> ic := y(1)=6, D(y)(1)=0:
dsolve({eqn, ic}, y(x));
y
(
x
) = (3
−
2
√
3)
x
(2+
√
3)
+ (2
√
3 + 3)
x
(2
−
√
3)
Решим уравнение, описывающее движение тела, брошенного вверх
на высоте
h
0
соскоростью
v
0
:
> eqn := (D@@2)(h)(t)=-g:
ic := h(0)=h[0], D(h)(0)=v[0]:
dsolve({eqn, ic}, h(t));
h
(
t
) =
−
gt
2
2
+
v
0
t
+
h
0
Решим задачу Коши для системы уравнений
⎧
⎪
⎨
⎪
⎩
dx
dt
=
x
+ 2
y
+ 2 e
t
,
dy
dt
= 2
x
+
y
c начальными условиями
x
(0) = 1
,
y
(0) = 2 :
55