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

Maple для студентов физиков. Часть 1. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

Глава 4. Расчеты

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (a) (x a)2

 

 

 

 

 

 

 

 

 

x

2

 

 

 

 

 

 

 

 

 

 

 

f (x) f (a)

 

f (a) (x

a)

 

 

 

 

 

 

x

 

 

 

 

2!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (a)

(x a)3

 

 

 

 

 

 

 

 

x

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. . .

Maple знает эту теорему и может ее применить для генерирования всевозможных рядов с помощью команды taylor.

Например, для функции sech:

> taylor(sech(x),x=0,20);

Опция x = 0 говорит Maple, что разложение надо делать вблизи 0. Цифра 20 говорит, что надо включать члены вплоть для x20.

Задача 3.19

Найдите разложение в ряд Тейлора для следующих функций вблизи x = 0 при сохранении членов до x10.

(a) sin(x)

(b) cos(x)

(c) arctan(x)

(d) ex

(e) ln(1 + x)

(f) (1 + x)p

Ответы выглядят впечатляюще, но в большинстве физически значимых задач оставляют первые два члена и поэтому можно работать, не загромождая выкладки, чему поможет команда taylor(f(x),x=0,3), которая дает члены до x2.

Получив разложение в ряд, вы захотите использовать это выражение в дальнейших расчетах. Maple позволяет свернуть выражение,

созданное в taylor в полином: convert(...,polynom), где ... – это имя,

которое вы давали ряду Тейлора. Например,

>f:=taylor((1+x^2)^(3/2),x=0,5);

>f:=convert(f,polynom);

101

Maple для студентов физиков

Задача 3.20

Maple также может разложить в ряд Тейлора специальные функции Найдите разложения:

(a)J0(x),

(b)I0(x),

(c)K(x) (полный эллиптический интеграл EllipticK),

(d)Γ(x).

Для (a)-(c) точка разложения x = 0, для (d) x = 1. Разлагать до x10. Ответ ужасен – посмотрите, можете ли вы получить нечто более приемлемое с помощью evalf, или, сказав Maple разложить вблизи x

= 1.0 (снова десятичная точка).

Задача 3.21

Теперь попробуем разложить функцию Бесселя K0(x) около x = 0. Maple не сможет это сделать, но сделайте предположение – и оно хорошее – если рассматриваемая функция имеет сингулярность некоторого рода в точке разложения, то либо функция, либо ее некоторые производные в этой точке не существуют и разложение в ряд Тейлора невозможно. Тогда есть еще другие виды разложений, которыми можно аппроксимировать функции и команда Maple series, которая

работает почти так же, как taylor (но более общая).

Попытайтесь применить series(BesselK(0,x),x=0,3); и посмотрите, что случится. Учтите, что игнорируя многие громоздкости и концентрируясь на ведущих членах, вы можете сказать, что K0(x) имеет логарифмическую сингулярность. (Учтите, что в разложении появляется постоянная Эйлера. Чтобы узнать о ней: запрос ?gamma.)

Окончив эту работу, сделайте то же для следующих функций:

(a) cot(x),

(b)

1

 

,

 

tanh(x)

 

 

 

(c)

 

x

.

 

 

 

 

 

sin(x2 )

 

Вместо 3 попробуйте другие цифры в команде series и посмотрите, можете ли вы точно сказать, что это означает.

102

Глава 4. Расчеты

Задача 3.22

Еще один вид разложения, который очень полезен в математической физике: асимптотические разложения. Это разложения относительно , которые кажутся необычными, но все они означают, что мы хотим знать как ведет себя функция, если ее аргумент очень велик. Для этого применяется команда Maple asympt(f,x,2) (или series(f,x=infinity,2)), где f – выражение Maple. Попытайтесь сделать это для следующих функций с помощью series для (a)-(b) и asympt для

(c)-(d). Оставляйте только два члена, как показано в командах выше.

(a)J0(x),

(b)I1(x),

(c)K0(x),

(d)Γ(x).

Полагаю, что вы получили 2 в последнем случае, поскольку обычно мы заботимся о ведущем члене асимптотического разложения. Он обычно отвечает на два наиболее важных вопроса:

(1)функция растет или спадает?

(2)каким образом она себя так ведет?

Суммы / Sums

Ваши качества как расчетчика, в том числе, определяются и тем, как вы понимаете идею бесконечных сумм. Maple знает все о них и может выполнять достаточно впечатляющие вещи.

Рассмотрим любимую 1 .

n 1 n2

Команда Maple sum выполнит суммирование. Ее синтаксис почти такой же, как у команды int (учтите, что Sum – это инертная форма.)

>restart;

>sum(1/’n’^2,’n’=1..infinity);

прекрасный неожиданный результат. В этом виде первый аргумент sum – это выражение. Учтите особенности этой команды Maple: индекс n в одинарных кавычках. Вам не всегда надо действовать так, но если, все же, вы так не сделаете, то Maple даст ошибку на каком-то этапе вычислений, поэтому придется изучить правила для применения

103

Maple для студентов физиков

одинарных кавычек. (Одинарные кавычки говорят Maple использовать n как фиктивную переменную в данной команде, игнорируя все предыдущие присвоения чего-либо этой переменной n.)

В дальнейшем смысл кавычек поясняться не будет, да и печатать кавычки неудобно.

Команда sum и ее инертная форма Sum, работают как функции.

>fn:=n->1/n^2;

>s1:=Sum(fn(n),n=1..infinity);

>value(s1);

Посмотрим возможности суммирования в Maple, затратив минуту на просмотр ?sum.

Вот несколько упражнений для практики.

Задача 3.26

Найдите каждую из этих сумм в выражениях (a)-(c) и функций в

(d)-(f).

N

 

n

(a) n3

(b)

( 1)

2

n 1

n 1

n

 

2n 2

(c)

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

n 1

 

N

1

 

 

(d) lim

 

 

 

ln(N) .

 

N n 1 n

 

Учтите: в обоих членах N стремится к бесконечности, причем не только в сумме. Небольшой полученный вами забавный символ – это не ошибка, а весьма известное число, обозначаемое символом гамма. Это – постоянная Эйлера. Ее значение получите с помощью evalf.

 

x

n

 

x

n

(e)

 

(f)

 

.

 

 

 

 

n 1

n

n 1 n(n 1)

104

Глава 5. КОМПЛЕКСНЫЕ ЧИСЛА И ФУНКЦИИ

Рассматриваемые темы и задачи

сложить и вычесть

add and subtract

функции Бесселя, комплексные

Bessel functions, complex

разрезы

branch cuts

сопряжение, комплексное

conjugate, complex

электрические поля, углы

electric fields, corners

линейные заряды

line charges

формула Эйлера

Euler's formula

еvalc

evalc

экспоненциальная функция, ком-

exponential function, complex

плексная

 

умножить и разделить

multiply and divide

фаза

phase

полярные координаты

polar coordinates

возведение в степень, комплекс-

raising to a power, complex

ное

 

Re и Im

Re and Im

интерференция волн

wave interference

конформные отображения

Функции Maple и их опции

interface

abs(z)

polar

conjugate

expand

plottools

assume

Re(z)

fieldplot

еvalc

Im(z)

 

105

Maple для студентов физиков

Разделы:

Комплексная арифметика Элементарные комплексные функции Описание команды evalc (из справки) Специальные комплексные функции Интерференция волн

Электростатика с линейными зарядами (конформные отображения)

Комплексная математика (ТФКП) является мощным инструментом моделирования в физике. Понятия комплексной единицы, комплексной плоскости и др. известны из курсов математики.

В Maple 1 обозначается I (заглавная буква I). Например, комплексное число 5 + 3i в Maple записывается так:

>restart;

>z1:=5 + 3*I;

Следует быть осторожным при записи таких чисел, поскольку использование i дает внешне похожее выражение, как ниже:

> z2:=5+3*i;

Выглядит неплохо, но комплексная арифметика с «i», конечно, работать не будет (к тому же, в примере i ничего не присвоено).

Только I – то, что нужно. (Если вас не устраивает такое обозначение, то можно переопределить I с помощью команды interface, но лучше этого не делать.)

В этой главе – обзор того, что можно сделать на комплексной плоскости: арифметика, расчеты, специальные функции вроде J0(z) и Γ(z). При работе с переменной, имеющей имя, начинающееся с z (z1, z2, и т. д.) имейте в виду, что это комплексная переменная вида z = x + iy.

Комплексная арифметика

Рассмотрим, что можно делать с комплексными числами. Вопервых, простое сложение – вычитание. Правила – как при сложении векторов на плоскости (ху):

106

Глава 5. Комплексные числа и функции

>z1:=5+3*I;

>z2:=1-6*I;

>z3:=z2+z1;

Смеха ради – нарисуем задачу о сложении в комплексной плоскости с помощью стрелок-векторов (заодно поучимся строить стрелки-век- торы). На картинке z1 – зеленый, z2 – синий, а сумма – красным (z3).

> with(plottools):

L1 := arrow([0,0], [5,3], .2, .5, .1, color=green): L2 := arrow([0,0], [1,-6], .2, .5, .1, color=blue): L3 := arrow([0,0], [6,-3],.2,.5,.1,color=red):

> plots[display](L1,L2,L3, axes=normal,view=[-10..10,-10..10]);

Умножение и деление не похожи на операции с векторами. Комплексное умножение выполняется путем обычного алгебраического умножения Re и Im частей каждого из чисел, при этом I2 = –1. А вот пример умножения:

(5+3I)*(1-6I) = (5 + 3I – 30I + 18) = 23 – 27I.

(Использован дистрибутивный закон):

> z1*z2;

Деление комплексных чисел выполняется исходя из идеи комплексного сопряжения (число с противоположным знаком комплексной части):

> conjugate(6+4*I);

Сопряженные полезны из-за того, что произведение числа на сопряженное есть действительное число

>conjugate(6+4*I)*(6+4*I);

>assume(x,real);assume(y,real);

>conjugate(x+y*I)*(x+y*I);

>expand(%);

Иэто действительное число равно квадрату амплитуды комплексного числа, рассматриваемого как вектор.

Ответ: 62 + 42 = 52.

107

Maple для студентов физиков

Это полезно для комплексного деления, потому что комплексная дробь умножается на сопряженное знаменателю число и тогда знаменатель становится чисто действительным, и нам не надо беспокоиться.

Задача 4.1

Выполните вручную комплексное деление 3 4I , а затем сделай- 2 5I

те это в Maple и покажите, что ответы совпадают.

Это решение достаточно простое. Можно нарисовать картинку для операции умножения. Но при этом придется перейти в иное представление комплексных чисел. В комплексной плоскости декартовы координаты заменяются на полярные координаты, и тогда число представляется в виде пары (модуль, угол). Угол отсчитывается против часовой стрелки, а модуль вычисляется как модуль длины вектора. Например,

2

 

2

 

 

4

 

 

для числа 5 + 4I амплитуда равна 5

4

 

 

41 , а arctan

 

 

:

 

5

 

 

 

 

 

 

 

> with(plottools):

L1 := arrow([0,0], [5,4], .2, .5, .1, color=green):

L2 := arc([0,0],4,0..arctan(.8),color=red):

>plots[display](L1,L2, axes=normal,view=[-5..5,-5..5],scaling=constrained);

Вполярных координатах хорошо визуализировать комплексные

числа.

Связь между декартовыми (x + iy) и полярными (r, ) координата-

ми простая: x = r cos( ) и y = r sin(θ).

Для комплексной экспоненты есть формула Эйлера e(i ) = cos( ) + i sin( ).

Тогда связь декартовой формы и полярной формы представления комплексных чисел: x + iy = r e(iθ).

С помощью этой формы можно переписать (в новом виде) прави-

ла умножения и деления чисел.

Для умножения: если z1 r1e i 1 и z2 r2e i 2 , то z1z2 r1r2e i( 1 2 ) . Умножение означает произведение амплитуд и сложение углов исходных векторов, что и нарисовано ниже (z1 и z2 зеленым, а произ-

ведение – красным).

108

Глава 5. Комплексные числа и функции

> with(plottools):

L1 := arrow([0,0], [1,2], .1, .3, .1, color=green): L1a := arc([0,0],1.5,0..arctan(2),color=green):

>L2 := arrow([0,0], [1,.8], .1, .3, .1, color=green): L2a := arc([0,0],.75,0..arctan(.8),color=green):

>L3 := arrow([0,0], [-.6,2.8], .1, .3, .1, color=red): L3a := arc([0,0],2.5,0..arctan(2.8,-.6),color=red):

>plots[display](L1,L2,L3,L1a,L2a,L3a, axes=normal,view=[-3..3,-3..3], scaling=constrained);

Деление работает аналогично, только амплитуды делятся, а углы

вычитаются: z1 r 1e i( 1 2 ) . z2 r2

Это – простая арифметика. В Maple есть удобные команды для ручной работы с комплексными числами:

Re(z) – извлекает действительную часть числа z, Im(z) – комплексную,

abs(z) – дает амплитуду, и arctan(Im(z),Re(z)) – дает угол:

>z:=5-3*I;

>Re(z);Im(z);abs(z);arctan(Im(z),Re(z));

ВMaple естькоманда, котораяконвертируетдекартовуформувполярную, но ее результат сложно использовать в последовательных расчетах:

>polar(z);

Но лучше применять форму arctan.

В Maple также есть команда для комплексно сопряженного числа conjugate.

> conjugate(3+4*I);

Задача 4.2

Выполните операции с комплексными числами z1 и z2 и представьте ответ в декартовой и полярной форме. Команда polar упрощает эти действия.

109

Maple для студентов физиков

Вот определения z1 и z2, которые предлагается использовать в задаче:

> z1:=3-5*I;z2:=-2+3*I;

 

 

 

(a) z1 + z2

(b) z1 z2

(c) z1z2

(d)

z1

z2

 

 

 

 

Задача 4.3

Покажите графически – стрелками на графике (как выше), что поворот комплексного числа на угол в комплексной плоскости сопровождается умножением на множитель e(iθ).

Для этого вначале определите комплексное число z1 и нарисуйте его как стрелку, умножьте z1 на e(iθ) для некоторого угла по вашему выбору, затем нарисуйте этот новый вектор как стрелку. При выполнении будьте внимательны и используйте в аргументах команды arrow только числа с плавающей запятой. Вероятно, Maple вернет вам ответы, содержащие квадратные корни из целых чисел, и, если вы просто скопируете эти числа в команду arrow, то никакая стрелка не появится. Поможет в этом старая знакомая – команда evalf и команды: [Re(z),Im(z)], которые помогут вставить Re и Im части комплексного числа в команду arrow.

Элементарные комплексные функции

Начнем с экспоненты.

Формула Эйлера e(iθ) = cos( ) + isin( ) известна, и поэтому для ez (при том, что z = x + iy) можно переписать так: e(x + iy) = ex(cos(y) + isin(y)). Для изображения Re и Im частей этой функции нужна трехмерная гра-

фика plot3d.

>restart;

>plot3d(Re(exp(x+I*y)),x=-6..6,y=-6..6,shading=z,axes=framed,labels= ["x","y","Re(f)"],orientation=[-60,60],title="Real Part");

>plot3d(Im(exp(x+I*y)),x=-6..6,y=-6..6,shading=z,axes=framed,labels= ["x","y","Im(f)"],orientation=[-60,60],title="Imaginary Part");

Заметьте, что для отрицательных х она очень мала, а для положительных очень велика – так ведет себя ex.

110