Файл: Mathematica для математиков. Часть Реализация основных понятий математического анализа.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.10.2023

Просмотров: 289

Скачиваний: 7

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

113
????????????????[????/ ????, {????, ????, ∞}]
Numerical integration converging too slowly...
3.843941796202754˟10 13977
В Mathematica имеются функции Product и NProduct, вычисляющие произведения


max min
i
i
i
f
. Обращение к ним аналогично формату обращения к функциям Sum и NSum.
????????????????????????????[????, {????, ????}]
????!
???? = ????;
???????????????????????????????? ????????????
????
???? + ???? + ????
????
????=????
, ????, ????, ∞ ==
????????????[
????
(???? + ???? + ????)
????
????=????
, {????, ????, ∞}]
1
(???? + ???? + ????)
????
????=0

????=1
==
1 4(1 + ????)(2 + ????)(3 + ????)(4 + ????)
Здесь функция HoldForm используется для того, чтобы в левой части записать выражение в невычисленном виде.
Часто результат символьного суммирования зависит от значений параметров, стоящих в суммируемом выражении. Если при каких – то значениях параметров ряд сходится, то возвращается результат, соответствующий таким значениям. Если вы хотите увидеть условия, при которых этот результат верен, то следует использовать опцию
GenerateConditions→True.
????????????[????
????
, {????, ????, ∞}, ???????????????????????????????????????????????????????????????????????? → ????????????????]
ConditionalExpression[
1 1 − ????
, Abs[????] < 1]
Если в полученном результате вы желаете избавиться от предположений, то используйте функцию Refine.
????????????????????????[%, ????????????[????] < 1]
1 1 − ????
Если опцию GenerateConditions→True не использовать, то сразу получим результат (без предположений, хотя они использовались при вычислении).
????????????[????
????
, {????, ????, ∞}]
1 1 − ????
Разложение не всегда получается таким, как хочется
???????? = ????????????[
????????????[???? ????]
????
, {????, ????, ∞}]
1 2
ⅈ(Log[1 − ⅇ
ⅈ????
] − Log[ⅇ
−ⅈ????
(−1 + ⅇ
ⅈ????
)])

114
Для получения более простого выражения следует выполнить алгебраические преобразования результата
???????????????????????????? = ????????????[????_] − ????????????[????_] → ????????????[????/????];
???????????? = ????????????????????????????????[????????/. ????????????????????????????]
????????????????????????????????????????????[????????????, ???????????????????????????????????????????? ⧴ ???? < ???? < 2????]
????
2

????
2
В выражении
1   ...   8   9   10   11   12   13   14   15   ...   19

sm мы выполнили подстановку Log[a_]–Log[b_]→Log[a/b], а следом использовали функцию PowerExpand для выполнения преобразования Log[a^b] в bLog[a], которое автоматически функцией
Simplify не выполняется. Т.о. имеет место равенство
2
sin
1
x
n
x
n
n






3.5.2
Ряды Тейлора.
Произвольную функцию f(x) можно разложить в степенной ряд около точки
x=x
0
, используя функцию Series. В формате Series[f,{x,x
0
,n}] она генерирует степенной ряд
 
 




n
k
k
k
x
x
k
x
f
0 0
0
!
в окрестности точки x
0
до слагаемого (x-x
0
)
n
. Например,
????????????????????????[????[????], {????, ????, ????}]
????[0] + ????

[0]???? +
1 2
????
′′
[0]????
2
+
1 6
????
(3)
[0]????
3
+
1 24
????
(4)
[0]????
4
+
1 120
????
(5)
[0]????
5
+ ????[????]
6
???? = ????????????????????????[????????????[????], {????, ????, ????}]
1 + ???? +
????
2 2
+
????
3 6
+
????
4 24
+
????
5 120
+ ????[????]
6
????????????????????????[
????????????[????]
????
, {????, ????, ????}]
1 −
????
2 6
+
????
4 120

????
6 5040
+
????
8 362880
+ ????[????]
9
Как видите, в конце полинома, представляющего ряд, функция Series выводит символ
 
1

n
x
O
. Следует помнить, что функция Series создает ненулевой остаточный член, даже если он тождественно равен нулю.
????????????????????????[????
????
, {????, ????, ????}]
????
5
+ ????[????]
6
???? ????_ = ????
????
+ ????????
????
− ????????
????
+ ????????
????
− ???????????? + ????????;
????????????????????????[????[????], {????, ????, ????}]
17 − 12???? + 6????
2
− 3????
3
+ 2????
4
+ ????
5
+ ????[????]
6
Функцию Series можно использовать для переразложеня полинома по степеням
a
x

при любом a.
????????????????????????[????[????], {????, ????, ????}]
11 + 4(???? − 1) + 19(???? − 1)
2
+ 15(???? − 1)
3
+ 7(???? − 1)
4
+ (???? − 1)
5
+ ????[???? − 1]
6
С рядами можно выполнять обычные арифметические операции.

115
???? = ????^????(???? + ????)(* g это разложение в ряд экспоненты, см. выше *)
2 + 5???? +
13????
2 2
+
35????
3 6
+
97????
4 24
+
55????
5 24
+ ????[????]
6
????????????????????????[????????????[???? + ????], {????, ????, ????}]
????????????????????????[????????????[???? + ????
????
], {????, ????, ????}]
1
????

1 2
+
5????
6

????
2 2
+
17????
3 60

????
4 4
+ ????[????]
5
???? = ????????????????????????[????????????????????????[????], {????, ????, ????}]
???? −
????
3 3
+
????
5 5

????
7 7
+ ????[????]
9
????^????
????
2

2????
4 3
+
23????
6 45

44????
8 105
+ ????[????]
10
Можно разлагать в степенные ряды функции нескольких переменных
????????????????????????[????????????[????????], {????, ????, ????}, {????, ????, ????}]
(???? + ????[????]
6
)???? + (−
????
3 6
+ ????[????]
6
)????
3
+ (
????
5 120
+ ????[????]
6
)????
5
+ ????[????]
6
Функция Series создает объект SeriesData, который можно использовать как функцию.
???????????????? = ????????????????????????[????????????[????], {????, ????, ????}]
1 −
????
2 2
+
????
4 24
+ ????[????]
6
???????????????? ∗ ????
????
????
2

????
4 2
+
????
6 24
+ ????[????]
8
???????????????? + (????
????
− ???? − ????)
−???? +
????
2 2
+
????
4 24
+ ????[????]
6
????[????????????????, ????]
−???? +
????
3 6
+ ????[????]
5
Однако вычислить значение выражения или построить график не поучается.
????????????????/. ???? → ????
SeriesData::ssdn: Attempt to evaluate a series at the number 1.
Returning Indeterminate.
Indeterminate
Чтобы это сделать надо отбросить остаточный член. Функция Normal оставляет только степенной многочлен, отбрасывая символ
 
1

n
x
O
???????????????? = ????????????????????????[????????????[???? + ????], {????, ????, ????}]
???? −
????
2 2
+
????
3 3

????
4 4
+
????
5 5

????
6 6
+
????
7 7
+ ????[????]
8


116
????????????????????????[????????????????]
???? −
????
2 2
+
????
3 3

????
4 4
+
????
5 5

????
6 6
+
????
7 7
С полученными многочленами можно уже выполнять стандартные операции без всяких ограничений.
????????????????????????[%]
1 420
????(420 − 210???? + 140????
2
− 105????
3
+ 84????
4
− 70????
5
+ 60????
6
)
После отбрасывания «остаточного члена» можно строить график полинома, приближающего исходную функцию. Вот пример графика функции
Cos[x] и ее ряда Тейлора до 8-го порядка.
????????????????[????????????????????????????????[{????????????[????], ????????????????????????[????????????????????????[????????????[????], {????, ????, ????}]]}], {????, −????????, ????????}]
Чтобы узнать в каком виде хранится тот или иной объект в системе
Mathematica можно использовать функцию InputForm. Мы уже знаем, что ряды Тейлора хранятся в виде SeriesData объекта.
????????????????????????????????????[????????????????]
SeriesData[x, 0, {1, −1/2, 1/3, −1/4, 1/5, −1/6, 1/7}, 1, 8, 1]
Соответственно, функция SeriesData[x,x
0
,{a
0
,a
1
,…},n min
,n max
,den] создает объект SeriesData, который представляет степенной ряд в окрестности точки x
0
. Величины a
i являются коэффициентами ряда.
????????????????????????????????????????[????, ????, {????, −????/????, ????/????, −????/????, ????/????, −????/????, ????/????}, ????, ????, ????]
???? −
????
2 2
+
????
3 3

????
4 4
+
????
5 5

????
6 6
+
????
7 7
+ ????[????]
8
????????????????????????????????????????[????, ????, ????????????????????[???? ∗ ????, {????, ????????}], ????, ????, ????]
1 + 2 2???? + 3 3????
2
+ 8????
3
+ 5 5????
4
+ 6 6????
5
+ 7 7????
6
+ ????[????]
7
Ряд может быть построен не по целым степеням. Для этого используется последний аргумент den, отличный от единицы. В таком случае генерируется ряд с коэффициентами {a
0
,a
1
,…} при степенях


den
n
x
x
/
0
min

,




den
n
x
x
/
1 0
min


и т.д. до


den
n
x
x
/
0
max

????????????????????????????????????????[????, ????, {????, ????, ????/????, ????/????, ????/????????, ????/????????????}, ????, ????, ????]
1 + ???? +
????
2
+
????
3/2 6
+
????
2 24
+
????
5/2 120
+ ????[????]
3
Функция CoefficientList[poly,var] возвращает список коэффициентов полинома poly при степенях переменной var.
????????????????????????????????????????????????????????????[(???? + ????)
????
, ????]
{243,405,270,90,15,1}
????????????????????????????????????????????????????????????[(???? − ????)(???? − ????)(???? − ????), ????]
{-6,11,-6,1}

117
????????????????????????????????????????????????????????????[???? + ???? + ???????? + ????
????
− ????
????
+ ????
????
, {????, ????}]//????????????????????????????????????
1 0 1 1 1 1 0 0 0 0 0 0
−1 0 0 0
Эта фукция, в каком то смысле, является обратной к SeriesData.
???????? = ????????????????????????[????????????[????], {????, ????, ????}]
????????????????????????????????????????????????????????????[????????????????????????[????????], ????]
{1,1,
1 2
,
1 6
,
1 24
,
1 120
}
Функция SeriesCoefficient[series,n] возвращает коэффициент при
ом
n

члене степенного ряда.
????????????????????????????????????????????????????????????????????[????????????????, ????]
1 5
3.5.3
Ряды Фурье
Периодические функции с периодом 2·L можно разложить в ряд по синусам и косинусам
 












1 0
/
sin
/
cos
2
n
n
n
L
x
n
b
L
x
n
a
a
x
f


,
(1) в котором коэффициенты а
n и b
n вычисляются по формулам
  

  

...,
,
2
,
1
,
/
sin
1
...,
,
2
,
1
,
0
,
/
cos
1








n
x
d
L
x
n
x
f
L
b
n
x
d
L
x
n
x
f
L
a
L
L
n
L
L
n


(2)
В ряд Фурье можно разложить только периодическую функцию. Но если функция определена на конечном интервале, например на интервале
,
L
x
L



то ее всегда можно периодически с периодом 2·L продолжить на всю числовую ось и затем использовать разложение для периодической функции. Часто в качестве L выбирают число π. Ряды Фурье удобно записывать в комплексном виде
  




n
L
x
n
i
n
e
c
x
f
/

,
(3) где
 
,
2
,
1
,
0
,
2 1
/







n
dx
e
x
f
L
c
L
L
L
x
n
i
n

(4)
Заметим, что для рядов Фурье имеет место среднеквадратичная сходимость к функции, а не поточечная.
Разложение в ряд Фурье можно интерпретировать как представление функции f(x) последовательностью чисел d n
вида
,...
2
,
1
,
0 2
2




n
c
b
a
d
n
n
n
n
(5)


118 где коэффициенты d
n служат мерой вклада соответствующих частотных компонент в функцию f(x). Последовательность
 
n
d
называют частотным спектром функции f.
В пакете Mathematica имеется несколько функций, выполняющих разложение в ряды Фурье.
Функция FourierTrigSeries[expr,t,n] раскладывает выражение expr
, заданное на отрезке




,

и зависящее от переменной t, в тригонометрический ряд Фурье порядка n.
????????????????????????????????????????????????????????????????????[????
????
− ????, ????, ????]
????
2 3
+ 4(−Cos[????] +
1 4
Cos[2????] −
1 9
Cos[3????]) + 2(−Sin[????] +
1 2
Sin[2????] −
1 3
Sin[3????])
????????????????????????????????????????????????????????????????????[????????????[????]
????
+ ????????????[????]
????
, ????, ????]
1 2
+
1 2
Cos[2????] +
3Sin[????]
4

1 4
Sin[3????]
Точность приближения рядом Фурье разрывных функций хуже, чем непрерывных.
????????????????????????????????????????????????????????????????????[????????????????????????????[????/????], ????, ????]
1 2
+
2Cos[????]
????

2Cos[3????]
3????
+
2Cos[5????]
5????

2Cos[7????]
7????
????????????????[%, {????, −????????, ????????}]
????????????????????????????????????????????????????????????????????[????, ????, ????]
2Sin[????] − Sin[2????] +
2 3
Sin[3????] −
1 2
Sin[4????] +
2 5
Sin[5????] −
1 3
Sin[6????]
????????????????[%, {????, −????????, ????????}]
Чем выше гладкость функции, тем лучше приближение при одном и том же порядке ряда/суммы Фурье.
????????????????????????????????????????????????????????????????????[????????????[????], ????, ????]
????
2

4Cos[????]
????

4Cos[3????]
9????

4Cos[5????]
25????
????????????????[%, {????, −????????, ????????}, ???????????????????????????????????????????? → ????????????????????????????????????]
При установке опции FourierParameters->{1,π/L} создается ряд (1) с коэффициентами (2). Следующий ряд построен на отрезке [-1, 1] и имеет период 2 (следующий рисунок слева).

119
????????????????[????_] = ????????????????????????????????????????????????????????????????????[????????????[????], ????, ????, ???????????????????????????????????????????????????????????????????? → {????, ????}]
????????????????[{????????????[????], ????????????????[????]}, {????, −????, ????}, ???????????????????????????????????? → ????????????????????????????????????[????. ????????]]
1 2

4Cos[????????]
????
2

4Cos[3????????]
9????
2

4Cos[5????????]
25????
2
Следующий ряд имеет период 4 (L=2).
????????????????[????_] = ????????????????????????????????????????????????????????????????????[????????????[????], ????, ????, ???????????????????????????????????????????????????????????????????? → {????, ????/????}]
????????????????[{????????????[????], ????????????????[????]}, {????, −????, ????}, ???????????????????????????????????? → ????????????????????????????????????[????. ????????]]
1 −
8Cos[
????????
2 ]
????
2

8Cos[
3????????
2 ]
9????
2

8Cos[
5????????
2 ]
25????
2
(предыдущий рисунок справа).
Опция Assumptions уточняет диапазон изменения символьных переменных, используемых в разлагаемой функции.
????????????????????????????????????????????????????????????????????[????????????[???? − ????], ????, ????, ???????????????????????????????????????????? → ???? < ???? < ????]
????
2
+????
2 2????

2 1+Cos ???? Cos ????
????

2 1+Cos 3???? Cos 3????
9????
+
Cos 2???? Sin ????
2
????

2(????+Sin [????])Sin [????]
????
+
(????−Cos [????]Sin [????])Sin [2????]
????

2(3????+Sin [3????])Sin [3????]
9????
В разложении четных функций присутствуют только косинусы. Любую функцию, заданную на отрезке [0,L] можно продолжить четно на отрезок [-L,0], а потом разложить в ряд Фурье. Но можно сразу использовать формулы разложения по косинусам. Функция FourierCosSeries выполняет эту работу сразу (следующий рисунок слева).
????????????[????_] = ????????????????????????????????????????????????????????????????[????, ????, ????]
????????????????[{????, ????????????[????]}, {????, −????????, ????????}, ???????????????????????????????????? → ????????????????????????????????????[????. ????????]]
????
2

4Cos[????]
????

4Cos[3????]
9????

4Cos[5????]
25????
Сравните с результатом одного из примеров, приведенных выше, где разлагалась функция Abs[t].
Косинус преобразование функции f(t) эквивалентно преобразованию
Фурье функции
 
 






0
,
,
0
,
t
t
f
t
t
f
В разложении нечетных функций присутствуют только синусы. Любую функцию, заданную на отрезке [0,L], можно нечетно продолжить на отрезок


0
,
L

, а потом разложить в ряд Фурье. Но можно сразу использовать


120 формулы разложения по синусам. Функция FourierSinSeries выполняет эту работу сразу.
????????????[????_] = ????????????????????????????????????????????????????????????????[????
????
, ????, ????????];
????????????????[{????
????
, ????????????[????]}, {????, −????????, ????????}, ???????????????????????????????????? → ????????????????????????????????????[????. ????????]]
(предыдущий рисунок справа).
Синус преобразование функции f(t) эквивалентно преобразованию Фурье функции
 
 







0
,
,
0
,
t
t
f
t
t
f
Функция FourierSeries используется для построения комплексных рядов Фурье.
????????[????_] = ????????????????????????????????????????????????????[????, ????, ????]
ⅈⅇ
−ⅈ????
− ⅈⅇ
ⅈ????

1 2
ⅈⅇ
−2ⅈ????
+
1 2
ⅈⅇ
2ⅈ????
+
1 3
ⅈⅇ
−3ⅈ????

1 3
ⅈⅇ
3ⅈ????
Легко видеть, что вещественная часть результата совпадает с результатом работы функции FourierTrigSeries, а мнимая равна нулю.
????????????????????????????????????????????????????[????????[????????[????]]]
2Sin[????] − Sin[2????] +
2 3
Sin[3????]
????????????????????????????????????????????????????[????????[????????[????]]]
0
Опции функций
FourierSeries,
FourierTrigSeries,
FourierSinSeries, FourierCosSeries, используются одинаково.
Например,
????????????[????_] = ????????????????????????????????????????????????????????????????[????????????[????], ????, ????, ???????????????????????????????????????????????????????????????????? → {????, ????}]
????????????????[{????????????[????????????[????]], ????????????[????]}, {????, −????, ????}, ???????????????????????????????????? → ????????????????????????????????????[????. ????????]]
−1 + ⅇ −
2(1 + ⅇ)Cos[????????]
1 + ????
2
+
2(−1 + ⅇ)Cos[2????????]
1 + 4????
2

2(1 + ⅇ)Cos[3????????]
1 + 9????
2
Здесь мы построили график четного продолжения функции
t
e с положительной полуоси на отрицательную, т.е. график функции
t
e
; а также косинус разложение функции
t
e при L=1 (для этого использовалась опция
FourierParameters→{1,π}), которое приближает функцию
t
e
на отрезке [-L,L].
Любую функцию этой группы можно использовать для построения ряда
Фурье функции нескольких переменных.
????????????????????????????????????????????????????[???? + ????, {????, ????}, {????, ????}]
ⅈⅇ
−ⅈ????
− ⅈⅇ
ⅈ????

1 2
ⅈⅇ
−2ⅈ????
+
1 2
ⅈⅇ
2ⅈ????
+ ⅈⅇ
−ⅈ????
− ⅈⅇ
ⅈ????

1 2
ⅈⅇ
−2ⅈ????
+
1 2
ⅈⅇ
2ⅈ????
????????????????????????????????????????????????????????????????????[???? + ????, {????, ????}, {????, ????}]
2Sin[????] − Sin[2????] + 2Sin[????] − Sin[2????]

121
????????????????????????????????????????????????????????????????[???? ∗ ????, {????, ????}, {????, ????}]
4Sin[????]Sin[????] − 2Sin[2????]Sin[????] − 2Sin[????]Sin[2????] + Sin[2????]Sin[2????]
????????????????????????????????????????????????????????????????[????
????
+ ????
????
, {????, ????}, {????, ????}]
8????
2 3
− 8Cos[????] + 2Cos[2????] − 8Cos[????] + 2Cos[2????]
Функция FourierCoefficient возвращает n-й коэффициент в разложении функции в ряд Фурье, где n может быть любым целым числом. Так в формате
FourierCoefficient[expr,t,k] возвращается коэффициент при
t
k
i
e
Например,
????????[????_]: = ????????????????????????????????????????????????????????????????????????[????, ????, ????]
????????????????????[????????[????], {????, −????, ????}]

3
, −

2
, ⅈ, 0, −ⅈ,

2
, −

3
Или
????????[????_] = ????????????????????????????????????????????????????????????????????????[????, ????, ????]
ⅈ(−1)
????
????
Имея список коэффициентов или общую формулу для вычисления, можно построить частотный спектр функции (следующий рисунок слева).
????????????????????????????????????????????????[????????????[????????[????]], {????, −????????, ????????}, ???????????????????????????????????? → ????????????,
???????????????????????????????????????????? → {????????????????????????????????????, ????????????????????????}]//????????????????????
????????[????_, ????_] = ????????????????????????????????????????????????????????????????????????[????????????[−???? − ????], {????, ????}, {????, ????}]

(−1)
????+????
Sinh[????]
2
(−ⅈ + ????)(−ⅈ + ????)????
2
????????????????????????????????????????????????????????????[????????????[????????????????????[????????[????, ????], {????, −????????, ????????}, {????, −????????, ????????}]],
???????????????????????????? → ????????????????????????, ???????????????????????????????????? → ????????????, ???????????????????????????????????? → −????????, ???????? , −????????, ???????? ,
???????????????????????????????????? → ????????????????????????????????????[????????????????????????]](* предыдущий рисунок справа *)
Аналогично действуют функции FourierSinCoefficient, и
FourierCosCoefficient .
????????????????????????????????????????????????????????????????????????????????????[????, ????, ????]
2 3
Это коэффициент при
x
k
sin
. Действительно
????????????????????????[????????????????????????????????????????????????????????????????[????, ????, ????]]
2Sin[????] − Sin[2????] +
2 3
Sin[3????] −
1 2
Sin[4????]
Коэффициенты рядов Фурье вычисляются как интегралы по формулам (2) или
(4). Вы можете сравнить.