КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 706104 томов
Объем библиотеки - 1347 Гб.
Всего авторов - 272715
Пользователей - 124641

Последние комментарии

Новое на форуме

Новое в блогах

Впечатления

medicus про Федотов: Ну, привет, медведь! (Попаданцы)

По аннотации сложилось впечатление, что это очередная писанина про аристократа, написанная рукой дегенерата.

cit anno: "...офигевшая в край родня [...] не будь я барон Буровин!".

Барон. "Офигевшая" родня. Не охамевшая, не обнаглевшая, не осмелевшая, не распустившаяся... Они же там, поди, имения, фабрики и миллионы делят, а не полторашку "Жигулёвского" на кухне "хрущёвки". Но хочется, хочется глянуть внутрь, вдруг всё не так плохо.

Итак: главный

  подробнее ...

Рейтинг: 0 ( 0 за, 0 против).
Dima1988 про Турчинов: Казка про Добромола (Юмористическая проза)

А продовження буде ?

Рейтинг: -1 ( 0 за, 1 против).
Colourban про Невзоров: Искусство оскорблять (Публицистика)

Автор просто восхитительная гнида. Даже слушая перлы Валерии Ильиничны Новодворской я такой мерзости и представить не мог. И дело, естественно, не в том, как автор определяет Путина, это личное мнение автора, на которое он, безусловно, имеет право. Дело в том, какие миазмы автор выдаёт о своей родине, то есть стране, где он родился, вырос, получил образование и благополучно прожил всё своё сытое, но, как вдруг выясняется, абсолютно

  подробнее ...

Рейтинг: +2 ( 3 за, 1 против).
DXBCKT про Гончарова: Тень за троном (Альтернативная история)

Обычно я стараюсь никогда не «копировать» одних впечатлений сразу о нескольких томах (ибо мелкие отличия все же не могут «не иметь место»), однако в отношении части четвертой (и пятой) я намерен поступить именно так))

По сути — что четвертая, что пятая часть, это некий «финал пьесы», в котором слелись как многочисленные дворцовые интриги (тайны, заговоры, перевороты и пр), так и вся «геополитика» в целом...

Сразу скажу — я

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).
DXBCKT про Гончарова: Азъ есмь Софья. Государыня (Героическая фантастика)

Данная книга была «крайней» (из данного цикла), которую я купил на бумаге... И хотя (как и в прошлые разы) несмотря на наличие «цифрового варианта» я специально заказывал их (и ждал доставки не один день), все же некое «послевкусие» (по итогу чтения) оставило некоторый... осадок))

С одной стороны — о покупке данной части я все же не пожалел (ибо фактически) - это как раз была последняя часть, где «помимо всей пьесы А.И» раскрыта тема именно

  подробнее ...

Рейтинг: +1 ( 1 за, 0 против).

Математика на компьютере: Maple 8 [Олег Александрович Сдвижков] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Серия «Библиотека студента»

О. А. Сдвижков

МАТЕМАТИКА НА КОМПЬЮТЕРЕ
MAPLE 8

Москва
СОЛОН-Пресс
2003

УДК 621.396.218
ББК 32.884.1
С28

С28

О. А. Сдвижков
Математика на компьютере: Maple 8. — М.: СОЛОН-Пресс, 2003. —
176 с: ил. — (Серия «Библиотека студента»)
ISBN 5-98003-039-5
Книга посвящена программе Maple — новейшей системе символьной (аналитической) математики. Рассмотрены основные правила работы в ее среде,
методы и способы решения задач по элементарной и высшей математике, геометрическим построениям, теории вероятностей и математической статистике.
Отдельная глава посвящена математическим моделям в экономике. Книга основана на богатом опыте преподавания автора. Приведено много примеров решения задач.
Книга предназначена для научно-технических работников, студентов и преподавателей высших учебных заведений.

УДК 621.396.218
ББК 32.884.1

ISBN 5-98003-039-5

© Макет и обложка «СОЛОН-Пресс», 2003
© О. А. Сдвижков, 2003

Предисловие
Что такое Maple? Одним из мировых лидеров в компьютеризации математических вычислений (в том числе символьных) является корпорация Waterloo
Maple Inc. (Канада), выпускающая программный продукт Maple. Последняя версия Maple 8, называемая далее Maple, охватывает почти всю математику, начиная с элементарной математики и заканчивая специальными математическими
разделами. Maple — математическое windows-приложение, позволяющее решать задачи из этого широчайшего диапазона за минимальное время.
Сложно ли работать в Maple? Оказывается, нет. Программы решений основных математических задач и геометрических построений, составленные авторами Maple, предоставляются пользователю только именами, в круглых скобках
после которых вводятся необходимые данные. Учитывая зависимость от данных,
их называют1 встроенными функциями [3]. Задача пользователя — выстраивать
из них и операторов нужные последовательности и задавать данные. Впрочем,
часто оказывается, что достаточно воспользоваться одной из встроенных функций, тем более что их в Maple более 3000. Для сравнения, в MathCAD-2000 их
только около ЗОО2.
Можно ли доверять полученным в Maple результатам? Да, можно. Приведенные далее примеры лишний раз подтверждают это. Более того [3], Maple —
первая компьютерная программа, прошедшая тестирование с результатом
100 %. Если вы решаете в Maple, например, иррациональное уравнение, то можете быть уверены, что список полученных корней содержит все корни уравнения и в нем нет посторонних корней. Компьютерная программа Maple незаменима как для проверки окончательных и промежуточных результатов, получаемых
аналитически — без компьютера, так и для поиска методов решения.
Вообще, стремительное развитие уровня всех компьютерных математических приложений привело к парадоксальной ситуации, не оцененной пока должным образом. С одной стороны, аналитические решения многих задач уже нельзя считать рациональными, так как компьютерные решения проводятся быстрее,
то есть часто решать аналитически все равно, что ехать из Твери в Москву через Рязань. С другой стороны, компьютерные решения не принимаются как полноценные! Однако несомненно, что такое положение временное и в недалеком
будущем компьютерный способ решения станет если не основным, то равноправным с аналитическим. В Maple имеется мощная справочная система Help с
пояснениями и примерами. Рекомендуется использовать ее как можно чаще,
тем более что Maple достаточно жесткая система, не допускающая никаких отклонений от установленных в ней правил.
1
Другой терминологии придерживается Матросов А. В. Maple 6. Решение задач высшей
математики и механики. — СПб.: БХВ-Петербург, 2001. 528 с.
2
Сдвижков О. A. MathCAD-2000: введение в компьютерную математику. — М.: Издательско-торговая корпорация «Дашков и К0», 2002. 204 с.

Предисловие
До последней версии Maple в пакете student, содержащем встроенные функции основных математических вычислений, необходимых в учебном процессе,
была возможность получения пошаговых решений. В последней версии Maple
пошаговые функции пакета student переданы пакету Student [Calculusl], хотя
сам пакет student остался. Однако основное назначение Maple состоит в оптимизации математических вычислений, включающей в себя получение результата
минимумом нажатий на клавиши.
В данном учебно-практическом руководстве, применяя только самые необходимые средства Maple, решаются типовые и конкурсные задачи элементарной
математики, задачи высшей математики и математические модели основных
экономических задач. Дублирующие действия и полные списки параметров
встроенных функций, как правило, не приводятся. С ними, как и с теми средствами Maple, которые не вошли в данное руководство, желающие могут ознакомиться как в справочной системе Maple, так и в более подробных руководствах,
посвященных Maple.
Условия разбираемых задач и примеров взяты, в основном, из типовых задачников. Их решения в Maple сопровождаются комментариями, которые выделены курсивом. Задачи разбиты по темам и решаются, вообще говоря, в такой
последовательности, в какой они проходятся по программам средней и высшей
школ. Так что данное учебно-практическое руководство вполне можно рассматривать как дополнение к учебным курсам математики.
Используемые обозначения:
СКМ — курсор мыши в форме стрелки;
ЛКМ (ПКМ) — левая (правая) кнопка мыши.

Глава 1
ЭЛЕМЕНТАРНАЯ МАТЕМАТИКА

§ 1. Основные правила работы в Maple
Окно Maple имеет типичный вид для приложения Windows (рис. l.l).
Работа проводится по секциям «вход-выход», раскладка En. Каждая секция
автоматически обозначается левой квадратной скобкой (см. рис. 1.1), объединяющей строку ввода (командную строку) и полученный результат. К сожалению, на всех представленных далее фрагментах листового поля Maple левые
квадратные скобки, обозначающие вычислительные секции, отсутствуют, так
как не поддаются копированию. Командные строки начинаются с оператора > и
имеют красный цвет, а результаты, автоматически выравниваемые по центру,
окрашены в синий. Оператор начала ввода > вставляется на листовое поле
щелчком ЛКМ по кнопке > меню инструментов Maple,, причем одновременно
появляется левая квадратная скобка, меняющая, по мере необходимости, свою
длину. Правила редактирования командных строк обычные. Второй по значимости оператор ; (точка с запятой) — оператор вывода результатов на рабочий

Рис. 1.1

Глава I. Элементарная математика
лист. Если командная строка заканчивается им, то в каком бы месте строки ни
находился курсор, после нажатия или щелчка ЛКМ по кнопке ! панели
инструментов Maple проводятся вычисления и результаты выводятся на рабочий лист. Например, так получаем:
> 1+2;

> 2*3+1;

sin{Pi/6);

Следует обратить внимание на ввод числа п. Градусная мера в Maple
degrees. Переход от радианной (radians) меры угла к градусной и наоборот осуществляется встроенной функцией convert. Примеры будут приведены позже.
Последний, предпоследний и предпредпоследний результаты Maple сохраняет
под именами %, %%, % % % , соответственно. Действительно, продолжение
предыдущих вычислений дает:
>

%+%%+%%%;

21
2
Степень ху вводится
> х " у;

Корень квадратный (арифметический) из неотрицательного числа х обозначается sqrt(x), например,
>

sqrt (9);

Показатели степени, имеющие вид — , заключаются в круглые скобки. Hart
пример,
> 27 Л {1/3);
27 (1/3)

Вычисления числовых выражений проводятся встроенной функцией
evalf(at n), где a —- числовое выражение, п — необязательный параметр, определяющий число значащих цифр. По умолчанию п ~ 10, значение п переустанавливается глобальной переменной Digits. В частности, продолжение вычислений дает:
>

evalf(%);

3.000000000

Основные правила работы в Maple
Необходимость скобок при вводе степени с показателем — объясняется
п
тем, что действие возведения в степень имеет приоритет выполнения перед умножением и делением, которые являются действиями одной ступени:
X

Уг

> x/y*z;
XZ

У
Логарифмы log a b набираются в виде log [а] (Ь), в частности:
>

1од[2] (8);

1п(8)
1п(2)
>

e v a l f (%)1
3.000000000

В случае десятичных логарифмов квадратные скобки можно не ставить. Для
натуральных логарифмов, как видно из последнего примера, сохраняется обозначение 1п(х).
Задача. Вычислить
25 | 0 В б 5 + 4 9 l o g e 7
Решение. После оператора > с клавиатуры вводится числовое выражение и нажимается клавиша . По команде появляется результат набора — в стандартной математической форме. Проверяется правильность ввода и встроенной функцией evalf находится значение числового
выражения:
>

( 2 5 Л ( 1 / ( l o g [б] (5) ) ) + 4 9 л ( 1 / { 1 о д [ 8 ] (7) ) ) )
(Мб)]

>

л

(1/2) ;

(М«

evalf{%);

10.00000
Ответ: 10.
Для ввода математических символов можно использовать также панель
EXPRESSION (рис. 1.2). Щелкаете ЛКМ по кнопке View основного меню
Maple, по строке Palettes переходите на строку Expression Palette и еще раз
щелкаете ЛКМ — появляется данная панель. Когда надо вставить в командную

Глава I. Элементарная математика
fl EKPRESSO
IH

Рис. 1.2

строку один из ее символов, то щелкаете по нему ЛКМ, и его шаблон появляется на месте, занимаемом курсором ввода. Пусть требуется вычислить t g — .
Щелкаете ЛКМ по кнопке tan и получаете шаблон, с приглашением ввести величину угла:
> tan (%?);

Вводите и, нажав , приходите к результату:
1

Аналогичным образом открываются и применяются еще три панели, имеющиеся в Maple.
Если результат является промежуточным, не требующим вывода на рабочий
лист, то ставится : (двоеточие) — отказ от вывода результата. Например,

Оператор присваивания (запоминания) вводится . В частности, с
его помощью определяются функции. Самый простой способ задания функции
[:= Аналитическое выражение>, например от переменной х. Он неудобен тем,
что при таком задании Maple игнорирует запись f(a) и значение f(a) приходится
вычислять встроенной функцией подстановки subs(x=a,f) — подставить х=а в f:
> f:=xA2;

> subs(x=6,f);
36

Более длинный способ, но не имеющий этого недостатка, называемый основным [3], с помощью «стрелки»: f:=x —» , где стрелка вводится как тире и знак больше. Например,
> f:=x->xA2;
/ : = х —> х'
>

f (6);

36

Основные правила работы в Maple
Пример ввода и вычисления значения функции двух переменных:
> f:«x+y;

f'- = (xty)-t х + у

Присваивание отменяется F:=T, а все предыдущие присваивания, если их
несколько, отменяются одновременно командой restart:
> х:=1:х;
1
> х : = ' х ' : х;

>

х:=1:у:=2:z:=3:x+y+z ;
6

> restart:x+y+z;
x+у+z
Имеется изящный способ задания функции, как процедуры программирования, завершаемый нажатием :
:=ргос(переменные)
аналитическое выражение
end;
Например, функция у = х2 + Зх - 4 вводится им следующим образом:
> у:=ргос(х)
хЛ2+3*х-4
end;
у: = ргос(х)х'2 + 3 x ^ - 4 end proc
Вычисление ее значения при х = 1:
>

yd);

О
Если нет необходимости в проверке правильности ввода, то после end ставится двоеточие.
При вводе функций, заданных несколькими аналитическими выражениями,
можно использовать оператор условного перехода if, применяемый в следующих
видах:
1) if then fi;
Если выполнено условие, то выполняется следствие. В противном случае
ничего не выполняется.
2) if then else fi;
Если выполнено условие, то выполняется следствие 1, в противном случае
выполняется следствие 2, что задается также компактным видом:
3) ЧП,,-вследствие 2>);

10

Глава I. Элементарная математика
Пусть требуется задать функцию:
-

Г*2, х < О,

fix) = 1.
Конструкция 3, примененная дважды, позволяет задать ее в виде:
>

f:-*if* (х ?packages;

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

§ 2. Алгебраические преобразования
Встроенные функции элементарных преобразований:
simplify — упростить,
expand — раскрыть скобки,

Алгебраические преобразования

13

factor — разложить на множители,
normal — привести к общему знаменателю,
combine — преобразовать степени (или тригонометрическое выражение),
collect — привести подобные члены.
После ключевого слова в скобках вводится аналитическое выражение или
его имя — идентификатор, а также параметры, часть которых или все могут отсутствовать — быть необязательными. Например, применяя collect, чтобы не
было сообщения об ошибке, необходимо указать переменную, по степеням которой приводятся подобные члены — обязательный параметр. В simplify может
быть добавлена встроенная функция assume — принять, задающая условия, при
которых происходит упрощение, — необязательный параметр. Встроенная функция combine также имеет необязательные параметры. Выделив ключевое слово
(или установив на нем курсор) и нажав , вы попадете на страницу справочной системы, где сможете ознакомиться с соответствующим списком параметров и примерами их применения. Чтобы вывести результат после встроенной
функции, ставится оператор ; и нажимается . Рассмотрим простейшие
примеры.
> simplify((а"3-Ь Л 3)/(а-b));
2

2

a

+ba+b

> expand((a-b)*(ал2+а*Ь+Ьл2));
a'-b3
> factor(а"3-Ь л З);

(a-b)(a2 +ba+b2)
> normal(y/x+1/(хл2));
yx +1
> collect(х л 2+3*х л 2+4*х+4*х+у,х);
4x2 + 8x + у
> simplify(2*a/sqrt(a" 2),assume(a combine((х (1/2))*х (3/2));

x2
В Maple предусмотрена возможность — smart-способ, используя контекстное меню, не заниматься набором наиболее часто используемых ключевых слов.
Делается это так. Вводится выражение и выводится его стандартный математический вид, который с помощью мыши выделяется. После чего, когда СКМ находится на нем, делается щелчок ПКМ — появляется контекстное меню. Именно его вы видите на рисунке окна Maple (рис. 1.1). Устанавливаете СКМ на
нужном ключевом слове и щелкаете ЛКМ — происходит выполнение выбранной команды.

14

Глава I. Элементарная математика
Пример. Упростить выражение:

Решение. Набирается заданное выражение, выводится его стандартный математический вид, выделяется и открывается контекстное меню.
По команде simplify происходит упрощение и в следующей секции появляется результат:
л

л

л

л

л

> ( ( ( 5 * х ) З - ( 7 * у ) З ) / ( ( 5 * х ) 2 - ( 7 * у ) 2 ) + 1 / ( ( 5 * х ) (л
л
л
1) + ( 7 * у ) ( - 1 ) ) ) * ( 5 * х + 7 * у ) { - 1 ) + ( х 2 - 1 4 * х - 2 5 + 4 9 ) / ( х - 7 + 5 ) ;

125х 3 - 343j/3
2

2

25л: - 49*/

1
+

j_

П+1

5л; у х2 -14л +24

+ 7у
> R0 := simplify{{(125*х л 3-343*у л 3)/ (25*х л 24 9*у л 2)+1/(1/5/х+1/7/у))/(5*х+7*у)+{х л 2-14*х+2 4)/(х-2)

R0:=

JC-11

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

В частности,
> simplify{(х-у)/{sqrt(x)+sqrt(y) ) )

х-у

Поэтому, прежде чем упрощать алгебраическое выражение, содержащее
степени с дробными показателями, надо встроенной функцией subs — подстановка перейти к алгебраическому выражению, содержащему степени с целыми
показателями.
Пример ([11], 2.001). Упростить
1

-Лс +\
2

х -

Алгебраические преобразования

15

Решение. Вводится заданное выражение (как функция f) и, чтобы проверить правильность ввода, оно выводится на листовое поле — рабочий
лист в стандартной математической форме:
A
> f:=((sqrt(x)+l)/(x*sqrt(x)+x+sqrt(x)))*{x 2-sqrt(x));
2

7 + DU

-

Все правильно. Переход к степеням с натуральными показателями и
переобозначение:
л
л
л
л
л
> g : = s u b s ( s q r t ( x ) = a , х 2 = а 4 , х ( 3 / 2 ) = а 3 , х = а 2 , f) ;
4

(а+\)(а
3

ё•~

-а)

2

а + £Г +а
Упрощение:
> simplify(g);
а2 - 1
Ответ: х - 1.
Решение, для наглядности, расположено в трех вычислительных секциях,
но рациональнее решать в одной:
> f:=({sqrt(x)+l)/(x*sqrt{x)+x+sqrt(x)))*(xA2-sqrt(x)):
subs(sqrt(x)=a,хА2=аЛ4,хЛ(3/2)=ал3,х=ал2,f):simplify(%);

a2 - 1
Пример ([11], 2.002). Упростить:
p-q
Решение.
2) ) ) * ( p - q ) / ( s q r t ( p ) + s q r t { q ) ) );

> g : = s u b s ( р л (1/4) =x, q A (1/4 ) =y, s q r t (p) =Х Л 2, s q r t (q) = у л 2 , р==хл4 , q=y"4, f)

(х- у)2

U + уУ
х2+у2

16

Глава I. Элементарная математика
> simplify(g);

'

2

х2



Пример ([11], 2.162). Упростить:
а2 + 4

Решение. Вводим заданное выражение, проверяем правильность ввода и
упрощаем через контекстное меню (smart-способ), что дает:
>

(ал2+4)/{a-sqrt(((ал2-4)/(2*а))л2+4));

а2 +4
+ 16

а
2*(ал2+4)/а/((ап2+4)л2/а"2)л(1/2);

Чтобы избавиться от квадратного корня, так как а1 + 4 > 0 при любсш а, решение разбивается на следующие два случая:
>

simplify(2*(ал2+4}/а/((аА2+4)А2/аА2)л(1/2),assume(a>0));

2
л

л

А

л

А

> simplify(2*(а 2+4)/а/((а 2+4) 2/а 2) (1/2),assume(a 0; -2, если а < О
Замечание. Упрощаемое алгебраическое выражение набирается с клавиатуры только один раз — при первоначальном вводе. Во всех остальных случаях
командные строки заполняются с помощью копирования (полного или частичного) предыдущего алгебраического выражения и вставки из буфера обмена.
Пример ([11], 2,173). Упростить: Л Л
2

"" d

(х - х - 6)|х

Алгебраические преобразования

17

Решение. Вводим заданное выражение и проверяем правильность ввода:
> restart:x*abs(x-3)/((х л 2-х-6)*abs(х) ) ;
Xt X
2



-х- 6)|J

Смотрин, что дает встроенная функция simplify:
> simplify(x*abs(x-3)/((х л 2-х-б)*abs(x)));
х-3
х2 - х - 6
Если 0 < х < 3, то под знаком модуля отрицательное число, а если
х < 0 или х > 3, то положительное. С помощью assume задается условие
О < х < 3, а с помощью встроенной функции принадлежности about проводится контроль правильности задания условия:
> assume(х>0,х simplify(x/(x"2-x-6)*abs{{х-3}/х});
1
х - +2
Знак тильда - при х указывает на то, что на переменную х наложены
ограничения. Далее решение аналогичное.
> х:="хч:assume(x simplify(x/(хл2-х-6)*abs((x-3)/x)};
1
x - +2
> x:="x':assume(x>3):about(x);
Originally x, renamed x~:
is assumed to be: RealRange(Open(3),infinity)
> simplify{x/(х-2-х-б)*abs((x-3)/x)) ;

v

1
x- + 2
Ответ:

, если 0 < x < 3;
, если х < 0 или х > 3.
x+2
x+2
Достаточно эффективно упрощает алгебраические выражения, содержащие
степени с рациональными показателями, встроенная функция разложения в ряд
series (выражение, переменная), применяемая по каждой переменной.

18

Глава I. Элементарная математика
Пример ([II], 2.026). Упростить:
.5

- . г

Решение.
> { < а л ( 4 / 3 ) ) л ( 1 / 5 ) ) А ( 3 / 2 ) * ( s q r t ( a * ( a " 2 * b )
3 * ( ( a * s q r t { b ) ) A ( l / 4 ) ) л б ) ) ;

>

r t

( 1 / 3 ) )

л

4 / ( ( ( а

л

4 )

л

(1/5)

series(%,a):series(%,b);

(1/6)

Ответ: — F =

§ 3. Тригонометрические преобразования
Естественно, в Maple заложены основные тригонометрические формулы:
> s i m p l i f y (cos (x) "2 + s i n ( x ) A 2) ,1
> expand(cos(x+y)};
cos(x) cos(y) - sin(jc) sin(i/)
> expand(sin(x+y));
sin(x) cos(^) + cosUJ sm(y)
> expand(tan(x+y));
tan(x) + tan(y)
1 - tanU) tan(//)
> expand(cot fx+y));
cot(je) cot(^) - 1
cot(y)
> expand(cos(2*x));
2 cosU) 2 - i
> expand(sin(2*x)};
2 sin(jc) cosU)
> expand(tan(2*x));

n

tanU)
1 - tan(jc) 2

Тригонометрические преобразования

19

> expand(cot ( 2 * х ) ) ;
1 cotU) 3 - 1
2 cot(x)
> combine(cos(x)"2);
— cos{2.*:) + —
> combine(sin (x)Л2) ;
---cos(2*)
> expand{cos(3*x)) ;
4cos(x)3 - 3 c o s U )
> expand{sin(3*x)) ;
4sinU)cos(jc) 2 — sin(jc)
> combine(sin(x)*cos(y));
1



/

^

!



/

\

- sinU + y) + ~ smU - y)
> combine(cos(x)*cos(y) ) ;

- cos(x - y) + - cosU + (/)
>

c o m b i n e ( s i n ( x ) " s i n ( y ) );

- cos{x - y) - — cosU + y)
Так что если вы забыли какую-либо из перечисленных формул, то ее легко
получить. Только надо правильно подобрать встроенную функцию, в противном
случае возвращается исходное тригонометрическое выражение. Например,
>

simplify(sin(x)*sin(у));

sinU) sin(r/)
Удивительно, но ни одна из встроенных функций не преобразует сумму тригонометрических функций в произведение, какие бы дополнительные параметры
не устанавливались. В частности,
>

simplify(cos(x)+cos(у));

cosOc) + cos(y)
> factor(cos(x)+cos(у));
cosU) + cos(i/)

20

Глава I. Элементарная математика
> combine(cos(х)+cos(у),trig,symbol);
cos(x) + cos(y)
Этот пробел устраняется процедурами:
> cpc:=proc(x,у)
2*cos{(x+y)/2)*cos{(x-y)/2)
end;

с р с : = р г о с (х, у ) 2 х c o s ( l / 2 x ^ + l / 2 x / / ) x c o s ( l / 2 x x - l / 2 x y ) e n d p r o c
> cmc:=proc(x,у)
- 2 * s i n ( ( x + y ) / 2 ) * s i n { (x-y)/2)
end;
erne: = р г о с (x, г / ) - 2 х s i n ( l

/ 2 x x + [ / 2 x y ) x sin{l

/ 2 x x ~ l / 2 x y ) end proc

> sps:=proc(x,y)
2*sin((x+y)/2)*cos((x-y)/2)
end;
sps: = p r o c (x, //)2 x s i n ( l / 2 x x + l / 2 x x ) x c o s ( l / 2 x j c - l / 2 x y ) e n d p r o c
> sms:=proc(x,y)
2*sin((x-y)/2)*cos((x+y)/2)
end;
sms: =

proc (x, //)2 x sin(l

/ 2 x x - l / 2 x / / ) x cos(l /2xx+\/2xy) end proc

Тогда, н а п р и м е р , если надо свернуть в п р о и з в е д е н и е сумму cos х + cos З х . то
> срс(х,3*х);
2 cos(2;t) cos{;t)
Имеет смысл добавить также формулы, выражающие sin x и cos x через тангенс половинного аргумента:
> st:=proc(х)
2*tan(x/2)/(l+tan(x/2) Л 2}
end;
5Г: = proc0t)2 х tan(l / 2 х х) / (1 + tan(l / 2 х х)"2) end proc
> ct:-proc(х)
(I-tan(х/2)Л2)/(l+tan(x/2)"2)
end;
сг: = ргос 0с)(1 - tan(l / 2 х л:)Л2) / (1 + tan(l / 2 х х)'2) end proc
Теперь можно перейти к примерам.
Тригонометрические тождества, как и любые другие виды тождеств, доказываются в Maple встроенной функцией testeq.
Пример ([7], 3.1.2.) Доказать тождество:
ctga - tga = 2ctg2a.

Тригонометрические преобразования

21

Решение.
> testeq(cot(alpha)-tan(alpha)=2*cot(2*alpha)) ;

true
Ответ: тождество верно.
Если такое рациональное решение, по каким-либо причинам, не устраивает,
то можно преобразовать левую и правую части заданного равенства и убедиться, что они равны:
> simplify(cot(alpha)-tan(alpha)) ;

-l + 2cos(a) 2
cos(a) sin(a)
> expand(2*cot(2*alpha));

cot(g) 2 - 1
cot(a)
> simplify(subs(cot(alpha)=cos(alpha)/sin(alpha),%));

-l+2cos(ct) 2
cos(ct) sin(a)
Пример ([11], 3.005.) Доказать тождество:
a

5a

cos a + cos 2a + cos 6a + cos 7a = 4 cos — cos — cos 4a.
Решение. Для краткости набора произведена замена а на х.
>testeq(cos(x)+cos(2*х)+cos(6*x)+cos(7*x)=4*cos(x/2)*cos{5*x/2)*cos
(4-х));
true

Ответ: тождество верно.
Доказательство, преобразованием левой части:
> срс(х,7*х)+срс(2*х,6*х);
2 cos(4x) cos(3x) + 2 cos(4x) cos(2x)
>

factor(%);
2 cos(4x)(cos{3x) + cos(2.t))

>

subs{cos (3*x)+cos{2*x}-cpc(3*x,2*x),%);
4 COS(4JC) COS — x

cos - x

22

Глава I. Элементарная математика
Пример ([11], 3.005.) Вычислить 2 - 1 3 cos2а + sin"' 2а, если ctga = -—.
5
Решение.
>

subs(cos(2*x)=ct (2*x>,sin(2*x)=st(2*x),2-13*cos subs(tan(x)=-5,%);
57
5
Ответ: —.
5

§ 4. Алгебраические уравнения
Встроенная функция, предназначенная для решения уравнений и неравенств, имеет вид:
solve(ypaBHeHHe или неравенство, переменная),
причем в случае уравнения (неравенства) с одной переменной имя переменной
можно не указывать.
Пример ([11], 6.001). Решить алгебраическое уравнение:
х2 +1
х -4

х2 - 1
= 23
х+3

Решение. Вводится заданное уравнение и проверяется правильность
ввода:
>

( х Л 2 + 1 ) / ( х - 4 ) - ( х Л 2 - 1 ) / ( х + 3 ) = 2 3;

X2 + 1 _ х' - 1
х-4

=

^

х +3

Ввод уравнения проведен правильно. Нахождение корней:
> solve(%);

~55,5
16

Г-55

Ответ: <

]

, 5 >.

Компактное решение этого же уравнения:
> solve((хл2+1)/(х-4)-(хЛ2-1)/(х+3)=23);
-55
16



Алгебраические уравнения

23

Пример ([11], 6.002). Решить уравнение с параметрами:
Ь

^
х ~b

х - а

2

Решение.
> b/(x-a)+a/
х -а
х -b
Так как переменных несколько, то необходимо указать переменную,
относительно которой решается уравнение:
>

s o l v e (%,х);

+ а

-h
'2

+

I
2

а

rs
I
, a +b
Ответ: < а + о.
Еще проще решаются уравнения smart-способом — через контекстное меню:
1) в командную строку вводится уравнение и находится его стандартный
математический вид (как при проверке правильности ввода);
2) щелчком ПКМ по выделенному стандартному математическому виду открывается контекстное меню;
3) после щелчка ЛКМ по строке Solve (или, если переменных несколько, по
нужной переменной строки Solve Equation for a Variable) в командной строке
следующей секции появляются корни.
Пример. Решить уравнение:
5х2 + Х + 7 - 1 3 = 0
Решение.
> 5*x"2+abs(х+7)-13=0;
Ъх2 + Х + 7 -13 = 0
Используя контекстное меню получаем:
л
>R2 := solve({5*х 2+аЬз{х+7) - 1 3 = 0 } ) ;
R2: = {x = !}, subs (x=l,5*x"2 + abs(х+7)-13 ) ;
-8 + 8|
> subs (x=-6/5,5*x"2 + abs(х + 7) - 1 3 } ;
29
" 5
-6
Ответ: {1, -—
о

+

29
5

-6
5

Глава I. Элементарная математика

24

Пример. Решить уравнение:
х+\ - 3

-2

=1

Решение.
>

(abs(х+1)-3)/(abs(x)-2)=l;

х + l| - 3
-2

=1

Через контекстное меню получаем не решение уравнения, а решение неравенства:
> R3 :*= s o l v e ({ ( a b s (x + l ) - 3 ) / { a b s (x) -2) = 1)) ;

R3: = {x < 2, 0 < х}, {2 < х)
Откуда делаем вывод, что корнями могут быть только числа 0, 2. Значение 2 отбрасываем, так как оно не входит в ОДЗ. Проверкой убеждаемся, что х = 0 корень уравнения.
Ответ: {0}.
Пример ([11], 6.033). Решить иррациональное уравнение:
Vl5 - х + л/3 - х = 6.
Решение (smart-способом).
> sqrt(15-x)+sqrt(3-x)=6;

> R4

:= s o l v e ( { ( 1 5 - х ) л (1/2) + ( 3 ~ х ) л (1/2)

R4:={x

= 6});

--1}

Ответ: -1.
Пример ([11], 6.037). Решить уравнение:

Vl + 4х + Vl - Vx - 2 .
Решение (smart-способом).
>

(l+sqrt(х))Л(l/3)+(l-sqrt(х))п{1/3)=2;
3)

>

R5

:=

s o l v e d (x

n

(1/2)+1) ^ (1/3) + (1-х

л

= 2

(1/2) )п(1/3)

R5 : = {х = 0}
Ответ: {0}.
Пример ([11], 7.236). Решить логарифмическое уравнение:

=

2});

Алгебраические уравнения

25

Решение (smart-способом).
> 3*loglO ( х А 2 ) - Ц о д Ю (-х) ) Л 2=9;
\п(х2)

Ы-х)2 _

1(10)

1п(10)2

> R0 := solve({3*ln(x"2)/In(10)-In{-х) л 2/1п(10) Л 2 = 9}) ;
R0: = {x = -1000}, {х = -1000}
• Ответ: {-1000}.
Пример. Решить показательное уравнение:
5Л+1 - 2 - 9 * - ' = 4-5* + 3 2 j M .
Решение. Применение контекстного меню приводит к специфической
функции RootOf, представляющей все корни уравнения, включая комплексные. Для ее преобразования используется процедура allvalues:
2*9 Л {х-1)=4*5 Л х+3 Л (2*х-1);

> R1 := s o l v e ( { 5 Л ( х + 1 ) - 2 * 9 " ( х - 1 ) = 4 * 5 л х + З л ( 2 * х - 1 ) } ) ;
Rl:={x = RootOf(-5 L z + 1 ) + 29(-z~l) + 45~ z + 3(2-z-")}
> allvalues(%);

{x = RootOf (-5 ( - z + i ) + 2 9 L z " l ) + 4 5 - z +3 ( 2 - z -°, 1.000000000)}
Ответ: 1.
Аналогично через solve решаются системы уравнений, только уравнения,
как и неизвестные, вводятся в виде множеств — в фигурных скобках.
Пример ([11], 6.075). Решить систему уравнений:
\х2у + ху2 =6,
[ху + х + у = 5.
Решение.
> solve({хА2*у+х*уЛ2=6,х*у+х+у=5},{х,у});

{х = 2, у = 1}, {х = 1, у = 2},
2

2

{х = -RootOK _ Z - 2 _Z + 3) + 2, у = RootOf( _ Z - 2 _ Z + 3)}
Так как функция RootOf зависит от квадратного трехчлена с переменной
_Z, не имеющего действительных корней, то действительных решений системы
только два.
Ответ: {(2, 1), (1,2)}.

26

Глава I. Элементарная математика

§ 5. Тригонометрические уравнения
До тех пор пока не установлено (набрано) _EnvAllSolutions:=true, встроенная функция solve возвращает пользователю только одного представителя корней заданного тригонометрического уравнения. После данной команды она возвращает все множество корней для каждого тригонометрического уравнения.
Например,
> solve(sin(x)=l/2,x) ;

1

Г
>_EnvAllSolutions:-true:solve(sin(x)=l/2,x);
63
Форма ответа — необычная, но корни уравнения найдены правильно. Здесь
и далее, независимо от индекса, переменная _В принимает значения из множества {0, 1}, а значения _Z принадлежат множеству целых чисел. В чем нетрудно
убедиться с помощью встроенной функции принадлежности about. Таким образом, полученное множество корней уравнения можно разложить в две серии
к

о

— + 2тш, — + 2пп
6
6
и записать в привычном виде
(-1)" • £ + тш, п z Z.
6
Следующий пример, по всей видимости, вопросов не вызовет:
> solve(cos(2*x)=0, х) ;

Рассмотрим решения типовых тригонометрических уравнений.
Пример ([И], 8.035). Решить тригонометрическое уравнение:
3 sin2 2х + 7 cos 2 л ; - 3 = 0.
Решение.
> s o l v e ( 3 * s i n ( 2 * x ) " 2 + 7 * c o s ( 2 * x ) - 3 = 0, х) ;
I

1

1

/ С\

у

- - к + к_ 1Ъ~, -п + п_ Z4~, -arctan - /VTo", i arctanf ~ /VfO, ~ | + тс_ Z5~
Первые две серии решений можно записать в виде:

, Тригонометрические уравнения

27

-(2л+1), п eZ.
4
Третья и четвертая серии решений содержат мнимую единицу I = V-1,
то есть эти серии комплексные и в ответ не входят.
Ответ: — (2п +1), п е Z.
4
Пример ([11], 8.123). Решить тригонометрическое уравнение:
sin Зх - 4 sin х cos 2x - 0.
Решение.
>

solve(sin(3*x)-4*sin(x)*cos(2*х)=0,х);

1
7i + 2 7 t _ Z 8 ,
2 Z 8
6

2n_Z6~, 2к Zl~,

5
1
7c + 2n^Z8~,
2 Z 8
6
6

2 Z 9

^7г + 2тс_29~
6
Первые две серии решений записываются в виде кп, третья и шесh пп, а четвертая и пятая — в виде — ь пп.
6
'
6
Ответ: пп, — (6п ±1), п е Z.
6

тая •— в виде

Посмотрим, отбрасываются ли в тригонометрических уравнениях посторонние корни. Такими в следующем примере являются значения 2гсл, п е Z.
Пример. Решить уравнение:
sin 2x
1 - COS X

= 2 sin x.

Решение.
>

solve(sin(2*x)I{l-cos(x))=2*sin(x),x);

к + 2тг_ Z3~, - тс + 2тс_ Z4-, - - к + 2п_ 2 4 3
3
Посторонних корней нет.
О т в е т : п + 2 п п , 2 к п ± —, n e Z .
о

Пример. Решить иррационально-тригонометрическое уравнение:
Vl - cos 2д: = V6 cos x.
Решение.
>

solve(sqrt(l-cos(2*x))=sqrt(6)*cos(x),x);
-TC--TC™S3

3

3

Глава I. Элементарная математика

28

Подстановки _ВЗ = 0 и _ВЗ = / дают две серий решений:
Я

71

— ь 2пп, - — + 2тш, я е Z.
о
о
71

Ответ: ± — + 2тш, п е Z.
о
Удивительно, тригонометрические уравнения, содержащие модуль, не решаются или выдаются не полные ответы, но если модуль вводить через квадратный
корень, используя формулу х = *Jx2, то — решения идеальные.
Пример. Решить уравнение:
= cosx.
Решение 1 — не полное:
> restart :__EnvAll Solutions :=true: solve (abs (sin(2*x) )=cos (x) ,x) ;
--7i + 2ji_Zb, - n + 2 ^ Z 2 ~
Решение 2 — полное:
>

Л

solve(sqrt(sin(2*x) 2)=cos (x),x);

, 6

2
ТС

К

Ответ: ± — + 2nn, ± — + 2nn, n E Z.
2
6
Пример ([7], 4.23.2). Решить уравнение:
5 sin2 x + 8 cos JC +1 = |cos x + cos
Решение.
>

solve(5*sin(x)"2+8*cos (x)+l=sqrt(cos (x)A2)+cos(x)Л2,х

| тс + 2n_ Z9~, - - 7i +
3
3
arctanf — ^ - Э в U2

2K_

— + —
12 12

arctan - J - >/-98Третья и четвертая серии решений комплексные.
2
Ответ: ± — тг + 2тгя, п е Z.

Z10~

_ Z10

Неравенства

29

Возникает следующий вопрос, находит ли встроенная функция solve корни
систем тригонометрических уравнений? Ответ положительный.
Пример ([7], 4.29.1). Решить систему:
cos х + cos у = v3,

Решение.
>

solve((cos(x)+cos(у)=sqrt(3),x+y=Pi/3},{x,y});

{x = - n - 2тг_ Z4~, у = - к + 2я_ Z4~}
6
6
Ответ: (
6

2nn, — + 2кп), n e Z.
6

§ 6. Неравенства
Рассмотрим решения типовых неравенств и систем неравенств.
Пример ([11], 9.022). Решить алгебраическое неравенство:
1

2-х

+

^-

s o l v e d / (2-x)+5/ (2+х)

А

Л

л

л

л

л

(х 3-х 2)/(Ь 2*х 2+х+2)

^

.

4Ь2 + 4

'

2Ь2 + 6 - 1

isolve(%,Ь);

{6 = -2}, {£ = 1}
Ответ: {-2, 1}.
Задача ([7], 6.17.7). Найти наименьшее целое значение а, при котором неравенство ах2 + 4х -1 + 2а > 0 выполняется при всех значениях х.
Решение. Данное неравенство выполняется при всех значениях х, если
а > 0 и дискриминант D < 0, Находим целочисленные решения этой системы неравенств:
> isolve({4+a~2*a A 20},a);
{а = 2 + _ NN7~)
Ответ: 2.
Задача ([7], 2.6.11). При каких значениях а корни уравнения удовлетворяют
условию \х\ < V.Zax2 + (За 3 -12а 2 - 1)х - а(а - 4) - О?
Решение. При а - 0 уравнение линейное и его корень х - 0 удовлетворяет заданному условию. Решаем уравнение при а Ф 0;
> solve(3*а*хЛ2+(3*аЛ3-12*аЛ2-1)*х-а*(а-4)=0,х);
1

1

2

л

, -а + 4а

Требуем выполнения заданного условия и находим а:
> solve({-3 simplify(3/4*cos(t/4)+l/4*cos ( 3 * t / 4 ) , t r i g ) ;
cos| — t
4

> simplify(3/4*sin{t/4)-l/4*sin(3*t/4),trig);

l }

(\ Л

(\

4 J

H J

(4

sin| —t\- sin

—t

cos

—t

Поэтому чаще она задается в виде
3

\х - a cos t,
[у = a sin 3 /.
Точки таблично заданной функции строятся так же, как график функции заданной параметрическими уравнениями, но с заданием дополнительных параметров: style=point, symbol=bbx. Последний параметр — необязательный, значение box, при котором точки изображаются квадратиками, выбрано из списка
опций, с которым можно ознакомиться через контекстное меню. Перед набором
функции plot задаются векторы значений функции.

Основые построения на плоскости

41

Задача. Построить точки (X, Y) таблично заданной функции:
X

2

4

6

8

10

Y

3

5

4

6

5

Решение. Задаем вектор значений переменной X и проверяем правильность ввода, выводом на листовое поле значения хх:
>

restart:x:=vector{[2,4,6, 8,10]);

* : = [2,4,6,8,10]

То же самое делаем по другой переменной:
> y:=vector{ [3,5, 4, 6,5] ) ;
у. = [3,5,4,6,5]
> у [1] ;

3
Строим заданные точки:
> plot([x[i],y[i],i=i1..53,x=1..10,0..7, style=point, symbol=box) ;

10
Рис. 2.13

При построении графика функции, заданной в полярных координатах, в списке параметров указывается coords=polar. Построим, например, трехлепестковую розу г - sin 3(р:
> plot{[sin{3*x),х,х=0..2*Pi],coords=polar);

42

Глава II. Геометрические построения

Рис. 2.14

Если вы забыли, какой вид имеет график функции, заданной в полярных координатах уравнением г = cosq>, то легко вспомнить:
> plot([cos(x),х,х=0..2*Pi],coords=polar,color=blue);

0.40.2-

•0.4Рис. 2.15
Это окружность радиуса 0,5 с центром в точке (0,5; 0).
Функции, заданные несколькими аналитическими выражениями, например,
2

х , х < 0,

/ U ) = • 1 - х, 0 < х < 2,

1, х > 2.

вводятся, как уже говорилось, с помощью встроенной функции piecewise
(условие1, выражение 1, .... условие К, выражение К), причем каждое следующее условие по умолчанию справедливо для тех значений переменной, кото-

Дополнительные построения на плоскости

43

рые не удовлетворяют предыдущему условию. В частности, задание функции
/Ос) в виде

> £:=piecewise(x plot(f,x=-l..3};

1\

\

0.5\

1

U

.3

-0.5

\

\
\

-1
Рис. 2.16

§ 2. Дополнительные построения на плоскости
Все построения предыдущего параграфа проводились графической функцией
plot, встроенной в ядро системы Maple. Посмотрим, каковы возможности графических функций пакета plots. Открываем пакет:
> with(plots) ;

[animate, animate3d, animatecurve, arrow, changecoords, complexplot, complexplot3d,
conformal, conformalSd, contourplot, contourplot3d, coordplot, coordplot3d,
cylinderplot, densityplot, display, display 3d, fieldplot ,fieldplot3d, gradplot,
gradplot3d, graphplot3d, implicitplot, implicitplot3d, inequal, interactive,
listcontplot, Hstcontplot3d, Hstdensityplot, listplot, HstplotSd, loglogplot, logplot,
matrixplot, odeplot, pareto, plotcompare, pointplot, pointplot3d, polarplot,
polygonplot, polygonplot3d, polyhedra_supported, polyhedraplot, replot, rootlocus,
semilogplot, setoptions, setoptions3d, spacecurve, sparsematrixplot, sphereplot,
surfdata, textplot, textplot3d, tubeplot]

Глава II. Геометрические построения

44

Выделив любую функцию списка и нажав , пользователь попадает на
страницу системы Help с ее описанием и примерами применения. Поэтому на
всех графических функциях пакета останавливаться не будем, а рассмотрим
только наиболее часто используемые.
Графическая функция inequal пакета plots избавляет пользователя от необходимости самому находить и выделять области плоскости, определяемые системами линейных неравенств. Пусть требуется построить замкнутую область, заданную неравенствами: х + у < 1, х > О, у > 0. Тогда графическая секция построения имеет вид:
>

with(plots):

inequal{{x+y=O,y>=0},x=-l..2,y=-

1..2)?

Рис. 2.17

Если цвета заливок внутренней и внешней областей, предлагаемых по умолчанию, не устраивают, то они изменяются параметрами optionsfeasible и
optionsexcluded, соответственно. Например,
> inequal({х+у = 0,у>=0},х=-1. .2,у=~ 1..2,opt ionsfeasible =
inequal({х+у=0,у>=0},х=-1..2,у=1..2,optionsfeasible=(color=red),optionsexcluded=(color=grey),
optionsclosed=(color=blue,thickness=2));

Рис. 2.19

Графики ' неявно заданных функций строятся графической функцией
implicitplot. Построим, например, с ее помощью гиперболу х2 - у2 = 1:
>

with(plots) :implicitplot(хЛ2-у"2=1,х=-2..2, у—2..2) ;

1.5
1
0.51
о
-0.5
-1
•1.5

Рис. 2.20

Плоская линия называется лемнискатой (овалом Кассини), если для каждой
ее точки М произведение расстояний до двух фиксированных точек Fx и F2 —
фокусов есть величина постоянная.

46

Глава И. Геометрические построения
Пусть координаты фокусов (-а, 0) и (а, 0). Тогда уравнение лемнискаты

где р - const. Лемниската, соответствующая р - а2, имеет форму восьмерки и
называется лемнискатой Бернулли. Построение лемнискаты Бернулли при а - 1:
л

А

л

л

> with(plots):implicitplot(((х-1) 2+у 2)*((х+1) 2+у 2)=1,
х=-1.5..1.5,у=-0.5..0.5);

Рис. 2.21

Построение в окрестности точки (0, 0) не доведено до конца. Понятно, что
точка (0, 0) принадлежит лемнискате Бернулли. Построение лемнискаты при
а = 1, р2 = 0,9:
> i m p l i c i t p l o t { ( (х-1)Л2 +уЛ2)*((х+1)Л2+уЛ2)=0.9,х=2. . 2 , у — 0 . 5 . .0.5) ;

Построение лемнискаты при а = 1, р2 = 1,5:
Л
Л
л
л
> implicitplot({(х-1) 2+у 2)*((х+1) 2+у 2)=1.5,х=- 2..2,у=-1..1);

Дополнительные построения на плоскости

47

Вывод уравнения лемнискаты Бернулли в полярных координатах:
> subs(x=r*cos(phi),y=r*sin(phi),((х- а)А2+уЛ2)*((x+a)л2+у"2)
-а л 4);
2

2

2

2

2

2

4

((гсоз(ф)-а) +г зт(ф) ){(/-со5(ф)+а) + г зт(ф) ) = а
Л

> simplify(%,trig) :subs(cos (phi) 2=(1+cos

4

4

= a

solve(%,r);

Следовательно, в полярных координатах ее уравнение г = а Л /2соз2ф.
Скалярное поле р = р(х, у) изображается графической функцией densityplot,
а семейство линий уровня — графической функцией contourplot. Например,
если р = х2 - у2, то:
> w i t h ( p l o t s ) : d e n s i t y p l o t ( х Л 2 - у Л 2 , х=-2 . . 2 , у = - 2 . .2),; .

Рис. 2.24

>

with(plots):contourplot(х'2-ул2,х=-2..2,у—2..2)

21

-2

-1 /

Чх \ \
ч ч •
„—-—

Рис. 2. 25

Глава II. Геометрические построения

48

Векторные поля изображаются графической функцией fieldplot. Например,
если a = (х + у) • i + (х - у) • j , то графическая секция построения векторного
поля имеет вид:
>

f i e l d p l o t { [х + у , х - у ] , х = - 2 . . 2 , у = - 2 . .2) ;

I I \
I M
1 I1\ \
f i l l
i
/

t

I

I
/

I
/

i
t

-i

)
I
i


\\
\
vv

\
\
w
\,

I

\



I
i

J i i
i i •

:

'A: :
//
/ !
I /
\ \ \ \ \ ( I ! 1 J
v S \ \ \ 1 I I
\[
\\
X I

I I
I )
! !

Рис. 2.26

Графическая функция gradplot проводит построение векторного поля градиента. Например, если скалярное поле г - -Jx2 + у2, то соответствующая графическая секция имеет вид:
> gradplot (sqrt (

, х=-2 . . 2 , у=-2 . . 2

Рис. 2.2;

Геометрические построения в пространстве

49

§ 3. Геометрические построения в пространстве
Построение поверхностей происходит аналогично построению кривых на
плоскости. Пусть требуется построить гиперболический параболоид, заданный
уравнением г = х2 - у2. Самый простой способ — через контекстное меню
(smart-способ).
1. Вводится аналитическое выражение, определяющее поверхность.
2. Выводится его стандартный математический вид, последний выделяется и
щелчком ПКМ открывается контекстное меню.
3. По строке Plots переход на строку 3-D Plot, а через нее на нужный порядок переменных. Щелчок ЛКМ по переменным приводит к построению графика.
Такими шагами получаем:
>

А

А

х 2-у 2;

х2
А

-у2

л

smartplot3d[x, у] (х 2-у 2);

Live

Рис. 2.28

График «сырой»: нет осей координат, плохой обзор. Щелчком ПКМ по нему
открываем контекстное меню и по строке Axes (оси) переходим на строку
iNormal ниспадающего меню:

Рис. 2.29

50

Глава II. Геометрические построения
Щелчок ЛКМ по ней дает:

Live

Рис. 2.30

Координатные оси появились, но угол обзора по-прежнему плохой. Поэтому
щелкаем ЛКМ по графику, но кнопку не отпускаем, а двигаем мышь так, чтобы
за счет вращения графика, которое при этом происходит, получить лучший угол
обзора:

Рис. 2.31

Графическая функция ядра Maple, предназначенная для построения поверхностей, plot3d. Конструкцией plot3d(f,x=a..b,y=c..d) строятся поверхности, заданные уравнением z -fix, у), а конструкция plot3d([fl,f2,f3],u=a..b,v=c..d) позволяет построить параметрически заданные поверхности. Построим поверхность
ху{х2 - у2)

которая называется «обезьяньим седлом»:
> p l o t 3 d ( x * y * ( х л 2 - у л 2 ) / s q r t ( х л 2 + у л 2 ) , х = - 1 0 . . 1 0 , у — 10. . 1 0 ) ;

Геометрические построения в пространстве

51

Рис. 2.32

Построим псевдосферу
х = sm и cos v, у = sin и sin v, z = In tg — + cos u
постоянной полной кривизны К = -1:
>plot3d([sin (u)*cos(v),sin(u)*sin(v),In(tan(u/2))+cos(u)],u=
• 2..10,v-0..2*Pi,axes=normal);

Рис. 2.33

Так же просто строится, например, катеноид
х = chu cos v, у = chu sin v, z - u,
поверхность вращения,
(мыльных пленок):
>

принадлежащая

классу

минимальных

p l o t 3 d ( [ c o s h (u) * c o s (v) , c o s h (и) * s i n ( v ) , u ] , u —

РИС.

2.34

поверхностей

2. .2, v - 0 . . 2 * P i ) ;

52

Глава П. Геометрические построения

Конструкция plot3d({f, g},x=a..b,y=c..d) позволяет построить две поверхности в одной системе координат. Заметим, что в подобной ситуации на плоскости
уравнения объединялись квадратными скобками. Построим, например, пару
плоскостей:
> plot3d(f1+х+у,1+х-у},х=-2..2,у=-2..2) ;

Рис. 2.35

Теперь рассмотрим некоторые графические функции пакета plots трехмерной графики. Графическая функция implicitplot3d строит поверхности, заданные
неявным уравнением F{x, у, z) = 0. Пусть требуется построить двуполостной гиперболоид х'2 + у2 - z2 = - 1 . Тогда, используя данную функцию, получаем:
> with (plots) :implicitplot3d(x"2 + y'-2-z'42 = -l,x=-2. .2,y=2..2,z=-3..3,axes=normal);

Рис. 2.36

Линии уровня высоты поверхности z = f(x, у) строятся графической функцией contourplot3d(f, x=a..b, y=c..d). Например, для плоскости г = 6 - х - у графическая секция имеет вид:
> contourplot3d(6-х- у,х=0..7,у=0..7,axes-normal,color^black);

Рис. 2.37

Геометрические построения в пространстве

53

Векторные поля изображаются графической функцией fieldplot3d. Например,
> fieldplot3d([z-x,x-y,x+z],х=-1..1,у=-1..1,z=-l..1,
axes=boxed,color=black);

Рис. 2.38
Векторное поле градиента скалярного поля изображается графической
функцией gradplot3d. Конструкция тела функции самая простая:
> gradplot3d(x*y*z, х=-1 . Л , у=-1. . 1, z = - l . . 1, color=black, axes=boxed) ;

Рис. 2.39
Графическая функция spasecurve строит пространственные кривые, заданные параметрическими уравнениями. Построим, например, коническую винтовую линию х = t cos t, у - t sin t, z = t:
> spacecurve([t*cos(t),t*sin{t),t],t=0..5*Pi,axes=normal, color=black);

Рис. 2.40

Глава II. Геометрические построения

54

Графическая функция pointplot3d предназначена для построения последовательности точек:
> with(plots):pointplot3d([seq([t+1,t-1,t+3],t=-l..5)],
color=red,axes=normal,symbol=box) ;

-2

Рис. 2.41

§ 4. Сплайн-интерполяция
Согласно описанию справочной системы Maple, встроенная функция
spline(X, Y, х, к) предназначена для интерполирования таблично заданных
функций (X, Y) натуральными сплайнами. В ней X, Y — векторы или одномерные массивы, х — независимая переменная, к — необязательный параметр,
принимающий значения 1, 2, 3, 4, которые заменяются ключевыми словами
linear, quadratic, cubic, quartic, соответственно. Посмотрим, как она работает.
Пусть функция задана таблицей
X

|

t

2

3

4

5

Y

j

5

1

4

2

3

Введем векторы значений переменных:
>

X:=vector([1,2,3,4,5]);

Y:=vector([5,1,4,2,3]);

Х: = [1,2,3,4,5]
У: = [5,1,4,2,3]

При к = 1 получаем:
>

f[1] : = s p l i n e ( [1,

2,

3,

4,

5], [5,

1,

А,

2,

9 - Ах

х < 2

-5 + Зх

х < 3

10-2*

х < 4

-2+х

otherwise

3 ] , х , l i n e a r )

Сплайн-интерполяц ия

55

Построим интерполяционную функцию и заданные точки:
> plot{[f[1],[X[i],Y[i],i=l--5]], x=0..5,0..5,style=[line,point],
color=[red,blue]);

Рис. 2.42
При к = 2 получаем:
> f [ 2 ] : = s p l i n e { [1, 2, 3, 4, 5 ] , [5, 1, 4, 2, 3 ] , x , q u a d r a t i c )
44

258



129

A

17
505

_
: — л

17
745
17
970
17
974
17

V"

A

17
17
474
115
x+
17
17
526
' 17
55 2
454
17
17
410
41 2
~\~
x ——x
17
17

X <

2
5

X <

2
7_
2
9

X <

X <

2

otherwise

В этом случае график интерполяционной функции имеет вид:
> plot{[f[2],[X[i],Y[i],i=l..5]],х=-2..5,-3..7, style
=[line,point], color=[red,blue]);

Рис. 2.43
Таким образом, имеет место гладкая интерполяция многочленами второй степени.

Глава II. Геометрическиепостроения

56

При к = 3 получаем:
> f[3]:=spline([1,

2,

3,

4,

5],[5,

1,

4,

2,

п 4
48 2 16
9 + -л - — ^ + — х
439
234 2 31
+
х х
1046 925
261 2 24

• — + — * - — х

1066

659

135

+

2

9

у

3],х,cubic);

х distance(A,G);

i л/452-У9
4) Задание высоты, проходящей через вершину С треугольника Т:
> altitude(hC,C,T);

hC
Вывод уравнения данной высоты:
> detail(hC);
assume that the names of the horizontal and v e r t i c a l axes are _x
and _y, respectively

name of the object: hC
form of the object: Hne2d
equation of the line: 99-_x~15*_y = 0
Аналогично:
> altitude(hA,A,T) ;

hA
> detail(hA);
assume that the names of the horizontal and v e r t i c a l axes are
and __y, respectively

name of the object: hA
form of the object: Hne2d
equation of the line: -28-12*_x+14*_y = 0
> intersection(L,hC,hA);

> coordinates(L);

"483 608
97 ' 97
5) Вычисление длины высоты, опущенной из верщины А:
> distance(A,13);

6) Вычисление площади треугольника Т:
>

area(T);

97

Аналитическая геометрия

63

7) Уравнение и параметры окружности, описанной около треугольника:
> circumcircle(Сс, Т, 'centername' = Е);
Сс
> detail(Сс);
assume that the names of the horizontal and vertical axes are _э<
and _y, respectively
name of the object:

Cc

form of the object:

circle2d

name of the center: E
coordinates of the center: [98/97, 84/97J
radius of the circle: 1/9409 *816425Л(1/2) *9409л(1/2)
equation of the circle: _xA2-85+_yA2-l96/97'*jc-l68/97'*_j> = 0
8) Уравнение и параметры окружности, вписанной в треугольник:
> i n c i r c l e (Ic,T, 'centername'=H);

> simplify(detail(Ic));
assume that the names of the horizontal and vertical axes are _x
and _y, respectively
name of the object: Ic
form of the object: circle2d
name of the center: H
coordinates of the center:
А

[2 *(7*85л(1/2) +3 *2А(1/2) *85л(1/2)-3 *2A(l/2) *U3A(1A

А

2))/(2*85 (1/2)+2 (1/2)*113А(1/2)+2А(1/2)*85А(1/2)),(-7*2А(1/2)*85л(1/2) + 7*2\
*ПЗА(1/2)+1 б *85л(1/2))/(2 *85А(1/2) +2А(1/2) *ПЗА(1/2) +2А(1/2) *85л(1/2) \
radius of the circle:

194/(2*85А(1/2)+2А(1/2)*113А(1/2)+2А(1/2)*85А(1/2))

equation of the circle:

4*(-n90*2A(I/2)+184*_xA2+184*jyA2+8611+14*113A(1 \

/2)*2A(l/2)*85A(l/2)-1022*jc-lJ56*^y+_yA2*113A(l/2)*85A(l/2)+_xA2*113A(lA
2)*85A(!/2)-15*jy*85A(l/2)*2*(l/2)*113A(l/2)+jrA2*85A(l/2)*241/2)*lBA(l/2)\
+^2*85А(1/2)*2А(1/2)*ПЗА(1/2)-_х*85А(1/2)*2А(1/2)*113А(1/2)+85*^2*2*(\
l/2)+85*jcA2*2A(l/2)-U05*jK*241/2)-85*jy*2A(l/2)-85*85A(l/2)*113A(l/2))/(\
2*85A(l/2)+2A(l/2)*U3A(l/2)+2A(l/2)*85A(l/2))A2
>

1 Г
226

=

0

radius(Ic);

30(7V85" + Зл/2 V85 - 3^2 УПз"
2V85 + 424Ш + V2 V85

-7У2У85 + 7V2 УГТз" ч-1бУв5
2л/85 + л/2л/Пз" + V2 V85"

64

Глава III. Высшая математика
>

e v a l f (%);

4.171075133
Посмотрим, что предлагается в Maple по решению пространственных геометрических задач:
> with(geom3d);

[Archimedean, AreCollinear, AreConcurrent, AreConjugate, AreCoplanar, AreDistinct,
AreParallel, ArePerpendicular , AreSameObjects, AreSamePlane, AreSkewLines,
DefinedAs, DirectionRatios, Equation, FindAngle, FixedPoint, GlideRejlect,
GlideReflection , GreatDodecahedron , Greatlcosahedron ,
GreatRhombicuboctahedron , GreatRhombiicosidodecahedron ,
GreatStellatedDodecahedron , HarmonicConjugate, Hexakislcosahedron ,
HexakisOctahedron , InRadius, IsArchimedean, IsEquilateral, IsFacetted,
isOnObject, IsQuasi, IsRegular, IsRightTriangle, IsStellated, IsTangent, MidRadius,
NormalVector , OnSegment, ParallelVector , PentagonalHexacontahedron ,
Pentagonallcositetrahedron , PentakisDodecahedron , QuasiRegularPolyhedron ,
RadicalCenter, RadicalLine, RadicalPlane, RegularPolyhedron ,
RhombicDodecahedron , RhombicTriacontahedron , RotatoryReflect,
RotatoryReflection , ScrewDisplace, ScrewDisplacement, '
SmallRhombicuboctahedron , SmallRhombiicosidodecahedron ,
SmallStellatedDodecahedron , SnubCube, SnubDodecahedron ,
StereographicProjection , StretchRotate , TangentPlane, TetrakisHexahedron >
TrapezoidalHexecontahedron , Trapezoidallcositetrahedron , Triakislcosahedron ,
TriakisOctahedron , TriakisTetrahedron , TruncatedCuboctahedron ,
TruncatedDodecahedron , TruncatedHexahedron , Truncatedlcosahedron ,
Truncatedlcosidodecahedron , TruncatedOctahedron , TruncatedTetrahedron ,
altitude, area, center, centroid, circle, coordinates, cube, cuboctahedron , detail,
dilate, distance, dodecahedron, draw, dsegment, duality, faces,facet,form,
gtetrahedron , hexahedron, homology, homothety, icosahedron, icosidodecahedron ,
identity, incident, intersection ^inverse, inversion, line, midpoint, octahedron,
parallel, parallelepiped, plane, point,polar, pole, powerps, projection , radius,
randpoint, reflect, reflection , rotate, rotation, schlafli, segment, sides, sphere,
stellate, tetrahedron , tname, transform, translate, translation, transprod, triangle,
unit, valuesubs, vertices, volume,xcoord,xname,ycoord,yname, zcoord, zname]
Список еще более внушительный. Основные пространственные геометрические объекты:
point (точка), segment (отрезок), dsegment (вектор), line (прямая), triangle
(треугольник), plane (плоскость), sphere (сфера), polyhedra (многогранник
заданного вида).

Аналитическая геометрия

65

Кроме последнего объекта, их можно ввести, соответственно, как:
point(A, xA,yA,zA), segment(AB,[A,B]), dsegment point(S,6,7,13); point(А,8,-7,-6); point(В,-5,6,-7);
point(С,-3,-4,-10);

А
В
С
> gtetrahedronfT,[S,A,B,C]);

> draw(T,axes=normal,title

=i

Пирамида');
Пирамида

1Q:

ЗЗак 133

66

Глава HI. Высшая математика
1) Вывод уравнения плоскости ABC:
> plane(р,[А,В,С]);
Р
> detail(p);
Warning, assuming that the names of the axes are _x, _y and _z
name of the object: p
form of the object: plane3d
equation of the plane: 729-49*_x-41*_y+104*_z = 0
2) Вычисление величины угла между ребром AS и плоскостью ABC:
> l i n e d , [A,S]);
I
> FindAngle(1, p );
. ( 250
arcsml > e v a l f (%) ;
.5455107810
> convert(%,units,radians,degrees);
31.25546542
3) Вычисление площади основания пирамиды:
> triangle(ABC,[А,В,С]);
ABC
> area(ABC); ,

4) Определение уравнения высоты, проходящей через S, и расстояния
от S до плоскости ABC:
> line{h, [S,p] ) ;
h
> detail(h);
Warning, assume that the parameter in the parametric equations is _t
Warning, assuming that the names of the axes are _x, _y, and _z
> distance(S,p);
name of the object: h
form of the object: lineSd
equation of the line: f_x = 6-49*J, _y = 7-41*J, _z = 13+104*Jj
> distance(S,p);
250
2483

/14898

Линейная алгебра

67

5) Вычисдение объема пирамиды:
> volume(T);
250

§ 2. Линейная алгебра
Список встроенных функций пакета linalg:
> with{linalg) ;

[BlockDiagonal, GramSchmidt, JordanBlock, LUdecomp, QRdecomp, Wronskian,
addcol, addrow, adj, adjoint, angle, augment, backsub, band, basis, bezout,
blochnatrix, charmat, charpoly, cholesky, col, coldim, colspace, colspan,
companion, concat, cond, copyinto, crossprod, curl, definite, delcols, delrows, det,
diag, diverge, dotprod, eigenvals, eigenvalues, eigenvectors, eigenvects,
entermatrix, equal, exponential, extend, ffgausselim ,fibonacci ,forwardsub,
frobenius, gausselim, gaussjord, geneqns, genmatrix, grad, hadamard, hermite,
hessian, hilbert, htranspose, ihermite, indexfunc, innerprod, intbasis, inverse,
ismith, issimilar, iszerojacobian, Jordan, kernel, laplacian, leastsqrs, Ht\solve,
matadd, matrix, minor, minpoly, mulcol, mulrow, multiply, norm, normalize,
nullspace, orthog,permanent,pivot,potential, randmatrix, randvector, rank,
ratform, row, rowdim, rowspace, rowspanj rref, scalarmul, singularvals, smith,
stachnatrix, submatrix, subvector, sumbasis, swapcol, swaprow, sylve,ster, toeplitz,
trace, transpose, vandermonde, vecpotent, vectdim, vector, wronskian ]
Основные встроенные функции пакета и возвращаемые результаты:
- angle — величина угла между векторами;
augment — матрица, объединяющая заданные матрицы по горизонтали;
crossprod — векторное произведение векторов;
charpoly — характеристический полином матрицы;
col — столбец матрицы с заданным номером;
det — определитель;
dotprod — скалярное произведение векторов;
eigenvals — собственные числа матрицы (линейного преобразования);
eigenvectors — собственные векторы матрицы (линейного преобразования);
inverse — обратная матрица;
linsolve — решение системы линейных уравнений по матрице системы
и матрице свободных членов;
multiply — произведение матриц;
rank — ранг матрицы;
row — строка матрицы с заданным номером;
stackmatrix — матрица, объединяющая заданные матрицы по вертикали;
submatrix — подматрица, стоящая в пересечении указанных строк и столбцов;

68

Глава III. Высшая математика
trace — след матрицы;
transpose — транспонированная матрица.
Наиболее простой способ задания вектора, например, х = (1,2,3), в виде:
> x:=vector{[1,2,3]);

х: = [1,2,3]
Аналогично:
>

y:=vector ([3,2,1]);

у: = [3,2,1]
Имеется тест для проверки принадлежности к векторам:
> type(x,vector);

true
Выведем на листовое поле первые элементы векторов:
> х[1];

1

Найдем величину угла между векторами:
> angle(x,у);

arccos —
Наиболее простой способ задания матрицы, например

имеет вид:
>

A:=matrix([[5,2], [2,2]]);

"5 2"
2 2
Аналогично:
>

B:«matrix type{A,matrix);
true
> type(В,matrix);
true

Линейная алгебра

69

Выведем на листовое поле по одному их элементу:
> А [ 1, 1 ] ;

5
> В [ 1, 2 ] ;
3

Понятие вектора в Maple близко понятию одномерного массива, но не совпадает с ним. Простейшая конструкция одномерного массива array(dim, list), где
dim — диапазон изменения нумерации элементов массива, list — список элементов массива. Одномерные массивы, в которых нумерация списков начинается с единицы, являются векторами. Действительно,
>

z:=array type(z,vector);

true
> v:=array(0..2, [3,4,5]);

г; = аггау(О..2,[
(0) = 3
(1) = 4
(2) = 5
])
> type(v,vector);

false
Аналогично, 2-мерные массивы, в которых нумерация списков начинается с
единицы, являются матрицами:
> W:=array(1..2,l. .3, [ [ 1,2,3], [ 4,5,б]]);


W: =

4 5 6

> type(W,matrix) ;

true
> Q : = a r r a y ( 0 . . 1 , 0 . .2 , [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ]
Q: =

;

array(0..2, 0..2 [
(0, 0) = 1

(1, 1) = 5
(1, 2) = 6

(0,0-2

])

(0,2) = 3
(1, 0) - 4

70

Глава III. Высшая математика
> type(Q,matrix);
false

Следующие три секции показывают, что вектор не фиксируется {строка,
столбец), а понимается из контекста проводимых вычислений:
> X:=vector([1,2]);

* : = [1,2]
> multiply(X,В);

[8,5]
> multiply(В,X);

[10,4]
Как можно задавать матрицы строки (столбцы) показывается в следующих
двух секциях:
> X:=matrix(l,2, [1,3]);

* : = [1 3]
> X:=matrix(2,l, [ 1 , 3 ] ) ;

Далее приведены примеры применения основных встроенных функций рассматриваемого пакета:
> augment(А,В);

"5 2 4 3"
2 2 2 1
>

x:=vector {[1,2,3]) :у:=vector([3,2,1]) ;crossprod{х,у);

[-4, 8, -4]
> charpoly(A,lambda);

X2 - 7 Х + 6 >

col(B,l);

[4,2]
> det(A);

б
> dotprod(x,у);

10
> eigenvals(A);

6, 1
> eigenvectors(A);

[1, 1,{[1

Линейная алгебра

71

Здесь первый элемент во внешних квадратных скобках — собственное число, второй — кратность собственного числа, в фигурных скобках — собственный вектор. В следующих двух секциях проверка:
> multiply(А, [ 1 , - 2 ] ) ;
[1,-2]
>

multiply{A, [2,1]);

[12,6]
Найдем матрицу обратную к матрице А и сделаем проверку:
> inverse(A);
1 —1
3
-1 5
6
.3

Т

> multiply(А, %);
1

О'

О 1
Обратная матрица также находится как А~и.
>

evalm(AA(-1));

"1
3
-1

-1
3
5
6.

.3

В следующих двух секциях решается система
'5
,2
> C : = m a t r i x ( 2 , l , [9,6] ) ;

С: =
> linsolve(А,С);

Последующие секции пояснений не требуют:
> rank(A);
2
> row(A,l) ;
[5,2]

Глава III. Высшая математика

72

> stackmatrix(А,В);
5 2
2 2
4 3
2

1

> submatrix(A,1..1,2..2}

[2]
> trace(А);
> t r a n s p o s e (В);
4 2
3

1

Приведенные примеры показывают, что пакет linalg предназначен, в первую
очередь, для работы с функциональными матрицами. Иначе длительность набора
многих встроенных функций себя не оправдывает.

§ 3. Математический анализ
Пределы функций lim/(x) вычисляются в Maple встроенной функцией
x-ta

limit(f(x),x=a,dir),
где dir — необязательный параметр, принимающий значения left (предел слева),
right (предел справа), real (действительный), complex (комплексный). Данная
встроенная функция вводится в командную строку как с клавиатуры, так и с панели EXPRESSION (рис. 1.2). Шаблон встроенной функции вычисления предела имеет вид:
*

> limit{%?,

%?=%?);

Пример ([4], 1. 290). Вычислить предел:
,. -Jx + -Jx - 1 - 1
lim
,
.
Решение.
> limit((sqrt(x)+sqrt(x-l)-l)/sqrt(хЛ2-1),x=l);

Ответ:

л/2

Математический анализ

73

Пример ([4], 1.302). Вычислить предел:
з
2
Urn х (л/х3 + 2 - Vx3 - 2 ) .
Решение.
> limit(хЛ(3/2)*(sqrt(хлЗ+2)-sqrt(хлЗ-2)),

x-infinity);

2
Ответ: 2.
Пример ([4], 1.339). Найти односторонние пределы:
,. 2 + х
hm
-.
*-»2±о 4 - А:

Решение.
> limit((2+х)/(4-хЛ2), х=2,right);

,

—00
л

> limit((2+х)/(4-х 2) ,

х-2,left);
оо

Ответ: ±оо.
Встроенная функция discont(f(x),x) возвращает пользователю значения, в
которых нарушается непрерывность функции f(x). Например,
> d i s c o n t ( х / ( ( х - 2 ) * ( х + 3)) ,х) ;

{3, 2}
> discont(tan(x) , х) ;

{n_ZL~+\- n)
Встроенная функция iscont(f(x),x=a..b) возвращает true, если f(x) непрерывна на открытом промежутке (а, Ь), и false, если она на нем не является непрерывной. Аналогично действует встроенная функция iscont(f(x),x=a..b,'closed'),
только на замкнутом промежутке. В частности,
> iscont(х/((х-2)* iscont(х/((х-2)*(х+3)),х=2..3,'closed');

false
Задача ([4], 1.401). Исследовать на непрерывность:
[2л/Г,

если 0 < х < 1,

f(x) - \ 4 - 2х, если 1 < х < 2,5,
12х - 7, если 2,5 < х < 4.

Глава HI, Высшая математика

74

Решение. Вводим заданную функцию:
> f:=piecewise(x plot(f,x=0..4,thickness=2) ;

-1•2Н

Рис. 3.3
Ответ: х = 2,5 — точка разрыва первого рода.

Математический анализ

75

Находить производные и неопределенные интегралы проще всего smart-способом — через контекстное меню.
1. Вводится аналитическое выражение, определяющее функцию.
2. Выводится стандартный математический вид.
3. Обычным образом открывается контекстное меню.
4. Стрелка КМ устанавливается на строке Differentiate или Integrate соответственно.
5. В появившемся списке переменных, по которым можно произвести это
действие, выбирается нужная. После щелчка ЛКМ по ней появляется результат.
Выглядят перечисленные пункты «устрашающе», но на самом деле все они,
может быть кроме первого, выполняются просто и быстро. Что получается, если
находить производную и неопределенный интеграл от функции х2 таким способом, показано на следующем фрагменте листового поля:
> хл2;
2

х
> R0 := dif/(x"2,x) ;

> Rl := i n t ( х л 2 , х ) ;

Задача ([7], 9.2.12). Вычислить производную в заданной точке:
,, , х2 +1 + sin х
f\x) =
, х0 = О
cosx
Решение. Набираем аналитическое
smart-способом находим производную:

выражение

данной

> restart:(xA2+l+sin(х))/cos(x);

х
> RO

sin(x)
cosOt)

:= d i f f ( (xA2 +l + s i n { x ) ) / c o s ( x ) , x ) ;

_ 2x + cos(x)
cosU)

2

(x +1 + sin(x)) sin(x)
cos(x) 2

Подставляем x = 0 и вычисляем результат:
>

subs(x=0,%):evalf(%) ;

1.
Ответ: 1.

функции

и

76

Глава III. Высшая математика
Встроенная функция дифференцирования diff(f, x). В частности,
>

diff diff(x A 2,x$2) ;
2
Встроенная функция diff применима и к функциям нескольких переменных.
д"Нх ,...,х
)
В виде diff{f,x]$k,,...xn$kn) вычисляются частные производные
A/'"" k '
дхх ....дх„ "
где А, +... + kn = k.
Задача ([4], 7.80). Показать, что
ди
дх

ди
ду

3
х +у+z

ди
8z

если и = lnU 3 + уг + z3 - Ъхуг).
Решение.
> u : = l n ( x A 3 + y"3 + z A 3-3*x*y*z) ;
3

3

3

u: = \n(x + у + z -Ъхуг)
>

s i m p l i f y ( d i f f ( u , x ) + d i f f-(u, y ) + d i f f ( u , z ) ) ;

x+у +z
Задача. Дана функция г = уу\~. Показать, что

2
d2z
2 d z
n
-У Т Т = Одх2
* ду
Решение.
> z:=y*sqrt{у/к);
г: = у
xn2*diff(z,xS2)-yA2*diff(z,y$2);
^

у

1

(3/2)
Y

х

1
4 Л,Л ( 3 / 2 )
( if \
'

v'

{х)

Математический анализ
>

77

s e r i e s ( % , х ) : s e r i e s ( % , у) ;

О
Наибольшее и наименьшее значения функции f{x) на заданном промежутке
[а, Ь\ находятся встроенными функциями maximized, x=a..b) и minimized,
x=a..b), соответственно. Если требуется получить и координаты точки, в которой принимается такое значение, то в списке параметров добавляется location
или location=true.
Задача ([11], 15.157). Найти наибольшее и наименьшее значения функции
на заданном промежутке:
f(x) ~ •— - — sin
i 22x + — cos x - cos x, -%
. т0с
0
Решение.
> minimize(x/2-sin(2*x)/4+cos(x)A2/3-cos(x),x=- Pi/2..Pi/2);
1
> maximize{x/2-sin(2*х)/4 + c o s ( x ) A 2 / 3 - c o s ( x ) , х=- P i / 2 . . P i / 2 ) ;
1

Ответ: min / = —, max / = —.
4
4
Экстремумы функции нескольких переменных находятся встроенной функцией ехпета(аналитическое выражение,!},{переменные}).
Задача ([4], 7.192). Найти экстремумы функции двух переменных:

z = хг +3ху2 -\Ъх ~\2у.
Решение.
>

e x t r e m e ( х л 3 + 3 * х * у л 2 - 1 5 * х - 1 2 * у , {}, { х , у } ) ;

{-28, 28}
A

A

> solve(Idiff(x 3+3*x*y 2-15*x-12*y,x)=0,diff(хл3+3*х*уп2-15*хл
л
12*у,у)=0,х З+3*х*у 2-15*х- 12*у=-28});
> solve ({cliff (x A 3 + 3*x*y*2-15*x-12*y,x)=0,diff (х л 3 + 3*х*у л 2~15*х12*у,у)=0,х п З+3*х*у л 2-15*х- 12*у=28});

Ответ: -28, 28.
Задачи на условный экстремум решаются этой же встроенной функцией, с
указанием в фигурных скобках ограничений на переменные.

78

Глава III. Высшая математика
Задача ([4], 7.209). Найти условные экстремумы функции:
1

и = xyz, при х + у + z = 4, ху + yz + zx = 5.

Решение.
>

e x t r e m a ( x * y * z , { x + y + z = 4 , x * y + y * z + z * x = 5 } , {х,у, z}) ;
{2 ^ }

> s o l v e ( { x * y * z = 2 , x + y + z = 4 , x * y + y * z + z * x - 5 } , f x , y, z ) ) ;

{z = 1, у = % x = 1}, {z=l,y = \ , x = 2}, {z = 2, у = 1, Л; = 1}
> solve({x*y*z=50/27,x+y+z=4,x*y+y*z + z*x=5}, {x,y,z});
г

и

2,

Oi

|

^

О

Oi

i

О

о

2.-.

Ответ: {г,—}.
1 27/
Встроенная функция интегрирования int. Конструкцией int(f(x),x) вычисляются неопределенные интегралы:
j f(x)dx.
С=0. Например,
> i n t (х Л 2,х);

1Л з

3
Конструкцией int(f(x),x=a..b) вычисляются определенные интегралы
j f{x)dx.
Например,
> int (хЛ2,х=1..3);
26
3

Разберем решения типовых задач на интегрирование.
Задача ([11], 15.273). Найти площадь фигуры, ограниченной линиями:
у = -,у = 6-х.
Решение. Строим заданные линии и определяем фигуру, площадь которой надо вычислить:
>

p l o t ([5/х, 6-х], х=-6. .6,-5. .6);

Математический анализ

•4

-2
•4Рис. 3.4

Находим абсциссы точек пересечения графиков функций:
> solve(5/x=6-x, х) ;
5, 1
Вычисляем площадь:
> int(6-x-5/x,x=l..5);
-51п(5)+12
Оцениваем результат:
> evalf{%};

3.952810440
Ответ: «4.
Задача ([4], 6.482). Найти площадь петли кривой х = 2t - t2, у ~ 2t2 Решение. Введем заданные функции и построим петлю:
> x:=t->(2*t-tA2) ;y:=t->2*tA2-t'43;

-t
plot([x{t),y{t),t=-5..5],x=-2..2,-2..2);

79

80

Глава III. Высшая математика

Рисунок 3.5 «подсказывает», что точка самопересечения графика
функции имеет координаты (0, 0) и соответствует значениям t = 0 и t ~ 2.
При изменении t от 0 до 2 петля обходится против хода часовой стрелки.
Интегрируя в противоположном направлении, найдем площадь петли:
>

int(y(t)*diff(x(t),t),t=2..0};

15
Ответ: —.
15
Задача ([4], 6.485). Найти площадь фигуры, ограниченной (в полярных координатах) кривой: г = a sin 5(p.
Решение. Принимая а =\, строим заданную линию:
> plot ( [sin (5*t),t,t=0..2*Pi],coords=polar);

Вычисляем площадь одного лепестка:
> a n 2/2*int (sin(5*t)"2,t=0..Pi/5);
_L 2
20° 7

Ответ: па'
Задача ([4], 6.504). Найти длину петли к-ривой х = t2, у - t(
Решение. Вводим заданные функции и строим график:
A

A

> restart:x:=t->t 2;y:=t->t*(l/3-t 2);

r.

=

t-*t\--t

1
о

t2).

Математический анализ
>

81

p l o t ( [ x ( t ) , y ( t ) , t — 2 . .2] , х — 1 . . 1 , - 1 . .1) ;

о.в0.6:
0.40.2и

-1 -0.8 -0.6 -0.4 -0'.2
-0.2 ^

О.В

1

•0.4-

-0.6-0.8•1-

Рис. 3.7

График помогает найти значения t = ±—j=, которым соответствует точка
V3
самопересечения петли. Остается применить формулу вычисления длины дуги:
> int(sqrt(diff(x(t), t)"2+diff(y(t),t)Л2) , t=-l/sqrt(3) ..
1/sqrt(3));
s *
Ответ: — v3.
Разберем на задачах вычисление несобственных интегралов.
Задача ([4], 6.416). Вычислить несобственный интеграл (или установить его
расходимость):

J

dx

Решение.
> i n t { (1 + 2*х)/ { ( х А 2 ) * ( 1 + х ) ) , x = l . - i n f i n i t y ) ;

и

dx

Применяем встроенную функцию evalf, вторым параметром задаем
число значащих цифр результата:
> evalf(%,3) ;

1.69
Ответ: «1,69.

Глава III. Высшая математика

82

Задача ([4], 6.436). Вычислить несобственный интеграл (или установить его
расходимость):
ч

dx
# - х2 -

Решение.
>

п

int(1/sqrt(б*х-х 2-8),х=2..4);

\

1

dx

- X
>

-

e v a l f (%,3);

3.14
Ответ: «3.14.

t

Задача. Трактриса х = a(cos t + In tg —), у = a sin t вращается вокруг оси

4-*
абсцисс. Найти площадь получающейся поверхности.
Решение. Вводим заданные функции при а = 1 и строим трактрису:
>

x:=t->cos(t)+ln{tan(t/2));у:=t->sin(t);

; = t—> cos(/) + In tan — t

y. = sin
>

plot([x(t) , y ( t ) , t=0..Pi],x=-2..2,-1..2) ;

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

Поверхностные интегралы

83

правлением оси Ох. Находим площадь поверхности вращения, получающейся при вращении правой части трактрисы при а = 1 вокруг оси Ох:
A

Л

> evalf{int(2*Pi*y(t)*sqrt(diff(x(t),t) 2+diff{y(t),t) 2),
t=Pi/2..Pi));

6.283185308
Следовательно, так как:
>

evalf(2*Pi);

6.283185308,
то результат 2п. При произвольном а > 0 появляется коэффициент а2.
Ответ: Ana2.
Таким образом, площадь поверхности псевдосферы с параметром а равна
площади поверхности сферы радиуса а.

§ 4. Поверхностные интегралы
Двойные интегралы, сведенные к повторным двойным интегралам
Ь

.у2(х)

J dx J fix, y)dy,
а

уЦх)

вычисляются конструкцией int(int(f,y=yl(x)..y2(x)),x=a..b).
Задача ([5], 8.30). Вычислить

(х + 2y)dxdy,
где область D ограничена кривыми у = х2, у = ых.
Решение.

Построим область интегрирования:

> plot([x"2,sqrt(х)],х=-1..1,-1..1,color-[red,green]);

Рис. 3.9

Глава III. Высшая математика

84

Из рисунка 3.9 видно, что область интегрирования является правильной как по у, так и по х. Сводим двойной интеграл к повторному двойному
интегралу следующим образом
i

Л

J dxj {x + 2y)dy
О

*

х

и вычисляем:
> i n t (int (х+2*у, у=х^2. . sqrt (х) ) , х=0. . 1) ;
9

20
Ответ: —.
20
Разберем решение в Maple типовой задачи о нахождении объема цилиндрического бруса с помощью двойного интеграла.
Задача. Вычислить объем тела ограниченного поверхностями
z = 0, z - (х - I ) 2 , у2 ~ х.
Решение. Построим заданные поверхности в одной системе координат:
> i m p l i c i t p l c t 3 d ( {z=0, z= (x-1) Л 2 , у Л 2=х}, х=0 . .1,у=2..2,z=0..1,axes=normal);

Рис. 3.10
Понять по рисунку 3.10, что представляет собою заданное тело, можно, но лучше применить оператор условного перехода if и построить тело
следующим образом (рис. 3.11):
>

plot3d('if*(х>=уА2,(х-1)л2,0),х=0.-1,у=-

1..l,axes=normal);

Проекция (D) тела на плоскость хОу (рис, 3.12):
л
> implied.tplot ({х=у 2, х=1}, х=0 . . 1 , у=-1. . 1, axes=normal) ;
Объем тела, как следует из рисунков, равен

JJ (х -1)2 dxdy = J dx J (x - \)2dy.
D

о

_/;

Поверхностные интегралы

85

Рис. 3.11

У 0.5-

0.2

0.4

D.6

0.8

•0.5-

Рис. 3.12

Вычисляем объем тела;
>

int(int((1-х)A2,y=-sqrt(x)..sqrt(x)),х-0..1);

32
105
о
Ответ:

3 2

.

105
Аналогично вычисляются тройные интегралы.
Задача ([51, 8.84). Найти объем тела, ограниченного указанными поверхностями
2

у = х , z = у, z + у = 2.
Решение. Достаточно построить две поверхности, чтобы увидеть заданное тело и правильно расставить пределы интегрирования:
> p l o t 3 d ( { ' i f * (у>=хЛ2,у,0),"if* (у>=хЛ2,2у=0'. . 1, a x e s = n o r m a l ) ;

у,0)},х=-1..1,

Глава III. Высшая математика

х

0.6 D.8 1
у

Рис. 3.13
Объем тела равен тройному интегралу от элемента объема, то есть
1

1

2-у

-i

*'

у

V = fjj dxdydz - Jdx\dy \dz.
v

Вычисление объема тела:
> i n t { i n t { i n t (1,z=y. . 2 - у } , y = x " 2 . . 1 ) , x = - l . . 1 ) ;
16
15
Ответ: —.
15
Обычно большие вычислительные трудности возникают при аналитических
расчетах потоков векторных полей через поверхности. Посмотрим, как такие задачи решаются в Maple.
Задача. Дано векторное поле
и пирамида с вершинами О(0, 0, 0), А(1, 0, 0), В(0( 1, 0), С(0, 0, 2). Найти поток поля через внешнюю сторону поверхности пирамиды.
Решение. Строим пирамиду с использованием оператора логического
умножения and:
> plot3d('if" (x+y=0and y>=0,2-2*x- 2*y,0),
x=-l..1,y=-l..1,axes=normal);
1.6-

Поверхностные интегралы

N

87

Задаем векторное поле:
> F:=vector([yA2-zA2,x"2-zA2,2*х*у]);

Поток векторного поля через ориентированную поверхность (S) вычисляется по формуле
F— п- о .

П=Я -

—о

где п — поле единичных векторов, нормальных к поверхности, ориентированных в ту сторону, откуда видна выбранная сторона поверхности, da —
элемент площади, причем под знаком поверхностного интеграла справед-,
ливы соотношения
dxdy = dxdz = dydz
п(У —

cosy

cosp

,
cosa

где в знаменателях — направляющие косинусы нормалей к поверхности.
Для решения задачи надо вычислить потоки через грани пирамиды и найти
их сумму.
1. Грань ABC является плоскостью с уравнением 2х + 2у +z = 2 . Нормальный вектор, соответствующий заданной ориентации п = (2,2,1). Вво- 0 / 1 , 2 2 1 ,
оим на листовое поле п — — ~ \—т= t V5
—j=,
—f=) и проводим расчеты:
' V5'

> n:=vector([2/sqrt(5),2/sqrt(5) , l/sqrt{5) ] ) ;
П:=
> with(linalg):g:=dotprod(F,n);
fi:= (

5*

-*••'

5

> p:=subs (z=2-2*x-2*y,g)*sqrt(5) ;
2

-{y
5

-(2

2

2

-2x-2y) 4E + -(x
5

-(2-2x-

> int(int(p,y=O..1-х),x=0..1);
-11
12

2. Грань ОАВ имеет уравнение z = О, соответствующее поле нормальных векторов п

= -k = (О, О, - 1). Подставляем последний вектор в формулу

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

88

Глава HI. Высшая математика
> п: = "гГ : n : = v e c t o r ( [ 0 , 0 , - 1 ] };

п : = [0, 0, - 1]
> g:="g":g:=dotprod{F,п);
g • = -2ху
> int(int(g,y=O..1-х),x=0..1);

-1
12
3. Грань ОАС имеет уравнение у = 0, п - -/ = (О, - 1 , 0). Поэтому:
> п: = "гГ : n : = v e c t o r ( [ 0 , - 1 , 0 ] } ;

п: = [0, - 1 , 0]
s

> g:= g':g:=dotprod(F,n);
1

2

> int{int(g,z=0..2-2*x),x=0..1);
i
2

4. Так как грань ОВС имеет уравнение х = 0, п = -i = (-1, 0, 0), то:
> n:="n-:n:=vector([-1,0,0]);

л: = [-1,0,0]
> g:='g":g:=dotprod(F,n);
2

2
+

2

> int(int(g,z-O..2-2*y),y=0..1);

Суммируя полученные значения, получаем П = 0. Такой же результат
получается по формуле Остроградского—Гаусса, так как дивергенция векторного поля равна нулю.
Ответ: 0.
Задача. По данным предыдущей задачи найти циркуляцию векторного поля
вдоль замкнутого контура ABC, ориентированного положительно:
1) непосредственно,
2) по формуле Стокса.
Решение I. Циркуляция вычисляется по формуле


и равна сумме циркуляции по каждому участку.

Поверхностные интегралы

89

1. Ребро АВ задается уравнениями z = 0, у - 1 - х, то есть dz - О,
dy = -dx. С помощью вектора п задаем подынтегральную функцию, исключаем у и интегрируем от Л к В:
> n:=vector([1,-1, 0]) ;
п : = [1, - 1, О]
> g:=dotprod(F,n);
g: = у2
>

-х2

p:=subs(y=l-x,g);int(p,x=l..0);

: = (\-х)2 -х2

Р

О
2. Ребро ВС задается уравнениями х = 0, z = 2 - 2у, то есть dx = О,
dz = -2dy:
>

n:=vector([0,1,-2]);

я: = [0,1,-2]
> g:=dotprod(F,n);
g\= X2
>

-Z2

-Axy

p:=subs(x=0,z-2-2*y,g);int(p,y=l..0);

4
3
3. Ребро СА задается уравнениями y=0, z-2 - 2x, то есть dy = 0,
dz = -2dx:
> n:=vector{[1,0,-2]);
n: = [1,0,-2]
> g:=dotprod{F,л};

g:= у2 -z2 -4xy
> p:=subs(y=0,z=2-2*x,g);int (p,x=0..1);
-4
3
4 4
II. Находим ротор заданного векторного поля:
> curl(F,[х,у,z]);

[2х + 2z, - 2z - 2у, 2х - 2у]

Глава III. Высшая математика

п
, 2
2
1 .
Умножая скалярно на вектор п = — = ( — р г , - = , - = ) и вычисляя поток port V5
V5
V5
тации через площадку ABC, получаем:
>

n:-vector{[2/sqrt(5),2/sqrt(5),1/sqrt(5)]) ;

/г: = 5 ^ ' 5 ^ ' 5
> dotprod(q,n);
2
5
>

(-2z -

simplify(%};

- X-JE - - V51/
>

int(int(6/5*x*sqrt(5)-6/5*sqrt(5)*y,y=O..1-х) , x=0..1) ;

0

Ответ: О.
Задача ([5], 10.136). Проверить потенциальность векторного поля и найти
потенциал
a = (

У•г +(
1

х

У

?•)•/+(

5") • А.

У

Решение.
(хл2),

'(yA2),1/y-x/ (z"2)] ;

a:=

L-JL I__L L-JL
9 '
У
Г
л
л

7
*-

>

1

//
и

l

2
/J
Lf

3"

£•

curl(a,[x,y,z]);

[о, о, о]
>

-

p o t e n t i a l (a, [ x , y , z ] , " U ) ;

true
> U;

х
z

у
х

z
у

^
x
У
z
Ответ: — + — + — + С.
z
x
у
В Maple необозримое число систем криволинейных координат. Дифференциальные операции векторного анализа в них рекомендуется рассмотреть самостоятельно.

Ряды

91

§ 5. Ряды
Сумма членов конечной числовой последовательности хп = fin), где
л - 1 , .... k, находится в Maple встроенной в ядро системы функцией add(f(n),
n=l..k). В общем случае п - ягшп..лтах:
>

add(n,n-l..100);

5050
Хотите узнать, чему равна сумма первых пятидесяти четных натуральных
чисел? Пожалуйста,
>

add(2*n,n=l..50);

2550
Для функциональных последовательностей следует использовать более
мощную функцию sum(f(x,n),n=I..k). Выведем с ее помощью формулу суммы
первых п членов арифметической прогрессии, имеющей, как известно, вид:
a,,a,

+d,al

+ 2d,..., а,

+{п ~\)d,...

Здесь а, — первый член, d — разность арифметической прогрессии. Находим данную сумму: •
>

s u m ( a [ l ] + (k-1) * d , k = l . .n) ;

3
1
a{{n +1) - — din + 0 + -din + D 2 - ax +d
После упрощения полученная формула принимает знакомый вид:
>

f a c t o r (%);

— л(2а, - d + а*л)
2
или, что тоже самое,
2
Пусть задана геометрическая прогрессия
6,, bl • q , bl • q 2 , ...,

Найдем сумму первых п ее членов:
>

sum(b[I]*q"(k-1),k=l..п);

>

normal(%);

qiq-\)

--

92

Глава III. Высшая математика
Приходим к известной формуле
\~q

Рассмотрим применение встроенной функции sum к решению некоторых
конкурсных задач для поступающих в вузы.
Задача ([11], 4.041). Найти целое положительное п из уравнения
(3 + 6 + 9 + . . . + Ш - 1)) + (4 + 5,5 + 7 + . . . + ^~^) = 137
Решение.
> s u m ( 3 M k - 1) , k = l . .n)+sum( ( 8 + 3 * k ) / 2 , k = 0 . .n) : i s o l v e (%-137, n") ;
in =7}
Ответ: 7.
Задача ([11], 4.061). Решить уравнение
х-l
х-2
х-3
1
+
+ — . — + . . . + — = о3
Jv

л

А*

л

.

Решение.
> isolve(sum((х-к)/х,к=1..х-1)=3,х);
{х = 7}
Ответ: 7.
Задача ([7], 8.1.13). В арифметической прогрессии 20 членов. Сумма членов, стоящих на четных местах, равна 250, а на нечетных 220. Найти десятый
член прогрессии.
Решение. По условиям задачи составляем систему, решаем ее и находим
а!0:
> solve({sum(a[l]+(2*k-l)*d,k=l..10)=250,
sum(a[l]+2*k*d,k=0..9}=220} , U [ l ] , d } ) ;
{d = 3 , a , - - 5 }
> -5+9*3;
22
Ответ: 22.
Найдем п-ю частичную сумму ряда
1

I
1^n{n +\)(п + 2 )
{

> s u r a d / (k* ( к + 1 ) * (к+2) ) , к = 1 . .п) ;

1

1

I
+

2 {п + \)(п + 2) 4

Ряды

93

Найдем п-ю частичную сумму гармонического ряда и убедимся, что ряд расходится:
>

sum(l/k,k=l..n);

4{п +1) + у
> limit(Pei(n+1)+gamma,n=infinity);
со
Встроенная функция sum заменяет все признаки сходимости числовых рядов вместе взятые, более того, в случае сходимости ряда она находит его сумму.
Если же ряд расходится, то возвращается он же или один из символов ±оо.
Задача ([5], 12.31). Пользуясь признаком Даламбера, исследовать на сходимость ряд:
п2 + 5

Г
Решение. Применение признака Даламбера.
> limit(( sum ( (п л 2+5)/2 л п,п=1..infinity) ;

11
Ответ: ряд сходится, S = 11.
Задача ([5], 12.32). Пользуясь признаком Даламбера, исследовать на сходимость ряд:

Решение.
> limit{{п+1)Л(п+1)*п!/(п+1)!/плп,n-infinity) ;
е
A

> sum{n n/n!,n=l..infinity) ;

Ответ: ряд расходится.

94

Глава III. Высшая математика
Задача ([5], 12.90). Исследовать на абсолютную'и условную сходимость

Решение.
Л

> s u m ( ( - 1 ) ( n + 1 ) * 1 / ( 3 * n - l ) , n = l . . i n f i n i t y ) ;;

> sura(l/ {3*n-l) ,n=l. /infinity) ;
со

Ответ: ряд сходится условно.
Представление f{x) в виде

где 0({х - xo)k) — бесконечно малая величина к-го порядка относительно
х - х0, находится встроенной функцией series(/, x = XQ, k), по умолчанию к = 6.
Заданное значение k переустанавливается автоматически, если а^ = ... = а^+г = 0
или, если коэффициенты разложения слишком малы. Слагаемое 0({х - xo)k)
убирается встроенной функцией convert(%,polynom), при точном представлении
оно отсутствует. Примеры:
> series(1/((х-1)*х),х=1,5);

> convert(%,polynom);

J

х -1

2

3

_ 2 + х - (х -1) + (х - 1 ) - (х -1)

A

>series(sin(x 3),x=0,7);

x3+O{x*)
> s e r i e s ( s i n ( x ) / ( х Л 3 ) , x=0, 10 };
22

22

6

7

X- - ii +
+
X - — X*X X*
+
+О(х )
+ — X
X
+ + л :
6
120
5040
6 120
5040
362880
При разложении f(x) в ряд Тейлора по степеням х - х0 можно использовать
более слабую встроенную функцию taylor(/, х = х0, k), в которой при х0 = 0 вместо х = xQ достаточно ввести х.
у

Задача ([4], 5.393). Написать формулу Тейлора 3-го порядка для функции
х
в точке х = 2. Построить графики данной функции и ее многочлена

Тейлора 3-й степени.

Ряды

95

Решение.
> taylor(x/{x-l),x=2,4);
2

2-(х~2) + (х-2)

-U-2)

3

> convert(%,polynom);
4 - JK + (JC - 2 ) 2 - U - 2 ) 3
> plot({x/(x-1),4-x+(x-2)Л2-(x-2)"3}, x = 0 . . 5 , - 1..5,axes=normal);

э \

4

Рис. 3.15
В случае функции нескольких переменных применяется встроенная функция mtaylor, вызываемая из библиотеки встроенных функций.
Задача ([4], 7.185). Разложить по формуле Тейлора в окрестности точки (1,
1, 0) до членов второго порядка включительно функцию fix, у,г) = Inixy +z2).
Решение.
> readlib(mtaylor) ; _
procO ... end proc
> mtaylor(In(x*y+z A 2),[x=l,y=l,z=0],3);
X

-fto-i)"
Ответ: x-i + у-I - Ux-I)2

-Uy-\)2

+ z2.

Асимптотические разложения находятся встроенной функцией asympt. Например,
>

asympt(х/(х+1),х);

+
7+ Г
х
х2
х3
хА
х
Разложение в ряд Лорана по степеням z - zQ функции комплексного переменного /(г) находится встроенной в пакет numapprox функцией laurent.

96

Глава III. Высшая математика
Задача ([5], 12.364). Разложить в ряд Лорана по степеням г - z0:

2

.

Решение.
> with(nuraapprox);

[chebdeg, chebmult, chebpade, chebsort, chebyshev, confracform, hermite_pade,
hornerform, infnorm, laurent, minimax,pade, remez]
>

л

Л

laurent(z/(2 2+1) 2,z=I);

256
^k-ik(z-i)k~x

В окрестности точки z 0 = oo ряд Лорана находится командой asympt.
Задача ([5], 12.353). Найти разложение в ряд Лорана и установить область
сходимости:
1
= со.

2(2-1)'

Решение.
>

a s y m p t ( 1 / ( г * ( z - 1 ) ) , z) ;

г2

1

г3

h

г4

Область сходимости очевидна: |г| > 1.
Ответ: 2^—п=2 Zn

h

г5



U6

Глава IV
ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ.
РЯДЫ ФУРЬЕ

§ 1. Дифференциальные уравнения
Основной пакет методов решений дифференциальных уравнений DEtools
системы Maple вызывается командой:
> with(DEtools);

Для краткости список встроенных функций пакета не приводится.
Начнем с работы классификатора дифференциальных уравнений, входящего
в этот пакет. Если ввести в командную строку ключевое слова odeadvisor, выделить его и нажать , то справбчная система откроется на странице, содержащей основные виды дифференциальных уравнений, различаемых Araple.
* Дифференциальные уравнения 1-го порядка:
Abel, Abel2A, Abel2C, Bernoulli, Chini,
Clairaut, dAlembert, exact, homogeneous, homogeneousB,
homogeneousC, homogeneousD, homogeneousG, linear, patterns,
quadrature, rational, Riccati, separable, sym_implicit
* Дифференциальные уравнения 2-го порядка:
Bessel, Duffing, ellipsoidal, elliptic, Emden,
erf, exactjinear, exact_nonlinear, Gegenbauer, Halm,
Hermite, Jacobi, Lagerstrom, Laguerre, Lienard,
Liouville, iinear_ODEs, linear_sym, missing, Painleve,
quadrature, reducible, sym_Fx, Titchmarsh, Van_der_Pol
* Дифференциальные уравнения высших порядков:
quadrature, missing, exactjinear, exact_nonlinear, reducible,
iinear_ODEs
После щелчка ЛКМ по виду дифференциального уравнения происходит переход на страницу справочной системы, где приводится общий вид дифференциального уравнения, описание и примеры. Например, щелкнув ЛКМ по ключевому слову separable, узнаем, что это класс дифференциальных уравнений с разделяющимися переменными,
щелкнув по exact,
выясняем, что это
дифференциальные уравнения в полных дифференциалах (потенциальная функция С{х, у)) и т. д. В частности, homogeneous — однородные дифференциальные
уравнения различных видов.
4 Зак.:33

98

Глава IV. Дифференциальные уравнения. Ряды Фурье
Пусть требуется определить тип уравнения

Вызываем,
odeadvisor:

если

только

приступили

к

работе,

встроенную

функцию

> with{DEtools,odeadvisor);

[odeadvizor]
Видим, что она готова к работе. Заполняем командную строку указанным
ниже образом и нажимаем :
> o d e a d v i s o r ( d i f f ( у ( х ) , х)*sqrt(1-х Л 2)=1+у(х) Л 2,у(х));

[_separable]
Как и следовало ожидать, это уравнение с разделяющимися переменными.
Понятно, что уравнение может принадлежать нескольким классам. В таких случаях odeadvisor возвращает пользователю их список.
По существу все методы решений дифференциальных уравнений и систем
таких уравнений, рассматриваемые в курсе высшей математики втузов, заменяются в Maple одной встроенной функцией dsolve, входящей в ядро системы. Ее
простейшая конструкция dsolve (уравнение, неизвестная функция), причем по
умолчанию решение ищется в явном виде. Формы ответов, как и методы решений, выбираются автоматически или устанавливаются пользователем с помощью экстра-аргументов, с полными списками значений которых можно ознакомиться в справочной системе Maple, выделив в командной строке dsoive и нажав . Далее приведены их основные значения и соответствующие
примеры.
Задача ([5], 9.27). Найти общее решение дифференциального уравнения с
разделяющимися переменными:

Решение.
>

dsolve{diff(у{х>,х)*sqrt(1-хЛ2)=1+у(х)Л2,у{х));

у(х) = tan(arcsin(je)+_Cl)
Проверка:
> subs(y{x) = tan(arcsin(х)+_С1),1+у(х)П2л
diff(у(х),х)*sqrt(1-х 2));


Л I
1 + tan(arcsin(;c)+_ Cl)2 - — tan(arcsin(x)+_ C1) VI - х2



>

e v a l f (%);

Ответ: у = fg(arcsin x + С).

)

Дифференциальные уравнения

99

Если требуется получить не общее решение, а общий интеграл обыкновенного дифференциального уравнения, то добавляется экстра-аргумент implicit.
Найдем общий интеграл последнего дифференциального уравнения:
Л

Л

> dsolve(diff(у(х),х)*sqrt(1- х 2)=1+у(х) 2,у(х),implicit);

arcsinOt) - arctan((/U))+_ Cl = О
Задача ([51, 9.45). Найти частное решение дифференциального уравнения,
удовлетворяющее заданному начальному условию
y'tgx = у, у{^) = 1.
Решение. Частное решение ОДУ по заданному начальному условию находится встроенной функцией dsolve, в которой они объединяются фигурными скобками:
> dsolve({diff(у(х),х)*tan(х)=у(х) , у{Pi/2}=1}, у(х) } ;
у(х) = sinU)
Ответ: у = sinx.
Задача ([5], 9.64). Найти частное решение однородного дифференциального
уравнения 1-го порядка, удовлетворяющее заданному начальному условию
ху' = у\п^-, 1/(1) =1.
X

Решение.
>

dsolve({diff(у(х),х)*х=у(х)*1п{у s u b s ( y ( x ) = l / 2 * ( e x p ( x ) - 2 + 2 * x ) * e x p ( - 2 * x ) , d i f f < y ( x ) ,x$2)
+5*diff(у(х),х)+6*у(х)-ехр(-х)-ехр(-2*х)) ;

-2+2хк

{ 2х)

-

Дифференциальные уравнения
>

101

simplify(%);

О


Ответ: у = С{е~^ + С2е~

x

2x

+ Ue -2+2x)e~ .

Задача ([5], 9.371}. Найти частное решение дифференциального уравнения,
удовлетворяющее заданным начальным условиям:
ут-у' = -2х, у(0) = 0, у'(0) = 2, у*(0) = 2.
Решение. Задавая значения
оператор D, получаем:

производных,

> d s o l v e U d i f f (у (х) , х $ 3 ) - d i f f ( у ( х ) , х ) = D(D(y)) (0)=2},у(х));

у{х)=ех

-е{~х)

применяя

дифференциальный

2*х, у ( 0 ) = 0 , D ( у ) (0)=2,

+х2

Ответ: у = ех - е~х + х2.
Аналогично решаются системы дифференциальных уравнений, вводящиеся
в общих фигурных скобках. Таким же образом вводятся неизвестные.
Задача ([5], 9.444). Найти решение системы дифференциальных уравнений
х = х + у - cos(0< У - -2х - у + sin t + cos t.
Решение.
> d s o l v e U d i f f ( x ( t ) , t ) - x ( t ) + y ( t ) - c o s ( t ) , d i f f (y (t) , t) —
2 * x ( t ) - y ( t ) + s i n ( t ) + c o s ( t ) }, 'collect (%,t) :collect(%,_C1) :collect(%,_C2);
ix(t) = sin(0_ C2 + cos(0_ Cl - cos(*)f,
y(t) = (cos(0 - sin(t))_ C2 + (- s'm(t) - cos(t))_ C\ + (slnti) + cos(t))t}
Ответ:
x - Cy cos t + C2 sin / - t cos t,
у = —Cj(sin t + cost) + C2(cos t -sin/) + t(sin t + cost).
Если необходимо найти частное решение системы дифференциальных уравнений, то в первые фигурные скобки добавляются начальные условия. Найдем
решение последней системы при х(0) = 1, у(0) = 2:
> d s o l v e U d i f f (x(t) , t } = x ( t ) + y ( t ) - c o s ( t ) , d i ff (y ( t ) , t) =2*x(t)-y ( t ) + s i n ( t ) + cos(t) ,x(0)=l,y(0)=2}( {x(t) ,y(t) }) ;

{x(t) = 3 sinit) + cosit) - cos(t)t, y(t) = 2 cosfr) - 4 sin(0 + sinO)^

102

Глава IV. Дифференциальные уравнения. Ряды Фурье

Если требуется представить компоненты решения степенными рядами, то добавляется экстра-аргумент series. Для последней системы, в частности, получаем:
> dsolve{{diff(x(t>,t)=x(t)+y(t)-cos(t),diff(у(t),t)=2 * x ( t ) - y ( t ) + s i n ( t ) + c o s ( t ) , x ( 0 ) = l , y { 0 ) = 2 } , { x ( t ) , y ( t ) }, s e r i e s ) ;
5

12

60
1
120

t

6

+O(t ),

Численное решение проводится автоматически добавлением экстра-аргумента numeric. При этом результат выводится на листовое поле в виде процедуры, с
которой можно обращаться как с вектор-функцией. Если задано output =
listprocedure, то она выводится в виде списка, а если output = array, то в виде
массива. Уберем в последней командной строке series и решим систему на отрезке [0, 1], h = 0.1 численно:
> restart:V:=dsolve({dif f (x (t) , t}=x X:=subs (V,x{t) ) ;

X: - proc(0 ... end proc
> Y:=subs(V,y(t));
Y: = (proc(/)... end proc)
> Ml:=seq(0.1*t,t=0..10):M2:=seq(X(0.l*t),t=0..10}:M3:=seq(Y(0.l*t
),t = 0..10) :
> M:=matrix([[Ml],[M2],[M3]]):N:=transpose(M);
N: = transpose(yW)
> evalm(N)
0.
.1

1.
1.195004145

2.
1.700158193

.2

1.380061351

.3
.4

1.555296339
1.720891723

.5
.6

1.877068096
2.024061784

1.401202937
1.103848927
.8086402888
.5159667779
.2260881002

.7

2.162105895

-.06084465986

.8

2.291409761

-.3447608567

.9

2.412141863

-.6256446487

1.0

2.524413138

-.9035062850

Дифференциальные уравнения

103

Построение на фазовой плоскости полученного решения:
> K:=evalm(N):plot([K[i,2],К[i,3],i=l.,11],x=0..3,-1..3,
style=point,color=red);

2-

0.5

1

1.5
x

2.5

-1Рис. 4.1

В примерах справочной системы Maple, видимо, с учебными целями, широко практикуются обозначения математических объектов (дифференциальных
уравнений, начальных условий и т. д.). Такой подход нельзя назвать рациональным, но в некоторых случаях он может оказаться полезным. Поэтому следующая задача решается именно таким способом.
Задача ([5], 9.441). Найти решение системы дифференциальных уравнений
х ~ Зх - 2у + t, у = Зх - Ау
Решение.
> s y s : = {diff ( x ( t ) , t ) - 3 * x ( t ) - 2*
> s:={x(t),y(t)}:
> dsolve(sys,s);

d i f f (у
dsolve{{diff(x{t),t)=x(t)+y(t)-cos(t),diff(y
У

^1
X -^.
\ X

Рис. 4.5

Применение графической функции DEplot к построению фазовых траекторий разобранной задачи хищники — жертвы (рис. 4.6):
> DEplot DEplot3d(1D(x) {t)-y(t) + (l-x(t) "2y ( t ) A 2 ) * x ( t ) ,D(y) (t)=-x{t} + ( l - x ( t ) A 2 y ( t ) A 2 ) * y ( t ) }, { x ( t ) , y { t ) } , t = 0 . . 1 0 ,
[[x(0)=l,y(0)=l]
,linecolor=t/2);

stepsize=O

На следующем фрагменте листового поля построены фазовые траектории
системы дифференциальных уравнений
dx
dt

_-

V*

— —-*-

_J_ T

i 6|

dy
dy
dt
d
dt



if

*y

— — У — d f i e l d p l o t ( [D(x) ( t ) « x ( t ) *y (t)+4,D(y) (t)=x ( t ) Л 2 + у ( t ) Л 2
17] / [ x ( t ) ' , y ( t > ] , t - 0 . . 5 , x — 6 . . 6 # y=- 6. .6,arrows=MEDIUM) ;
\ \ \ \ \ \ \ \
W\\\\\\
\ \ \ \ 4%
\ \ \
/
\ \
\ \

Рис. 4.11

Как видно из рисунка 4. 11, имеются четыре положения равновесия.

§ 3. Динамика материальной точки
Пусть материальная точка массы m в момент времени t0 находится в точке
х0 и имеет вектор скорости х0. Тогда, согласно классической механике Ньютона, траектория ее движения х - x{t) определяется системой дифференциальных
уравнений 2-го порядка:
F = nix,
где F = F(tt х, х) — действующая на точку сила. Данная система сводится к
системе дифференциальных уравнений 1-го порядка. Например, при п = 2, m =
1 она записывается в виде:
dx



du_
dt
dy_
dt = v
dv

Динамика материальной точки

111

Если существует такая функция U(x, y,z), что
8U

_

дх

д
F

Л-

ду

d
F

JL

dz

то она называется потенциалом (потенциальной энергией), а силовое поле —
потенциальным. Закон сохранения энергии движущейся материальной точки в
потенциальном силовом поле:
2

+ U = Е, Е =
Окружающее нас силовое поле (локально, m = 1) имеет потенциальную
м — ускорение свободного пафункцию U = gy => Z7, = О, F2 = -g, где g- « 9,8—
дения материальной точки. Его называют полем силы тяжести. Графические
изображения потенциальной функции:
>

with(plots) :densityplot((х,у)->9.8*у,-20..20,0..20) ;

.-i-.-.-i

Рис. 4.12
> contourplot((x,y)->9.8*y,-2 0..20,0..200,filled=true)
2DD

'
.480;

Рис. 4.13

Глава IV. Дифференциальные уравнения. Ряды Фурье

112

Графическое изображение поля силы тяжести:
>

fieldplot([(х,у)->0, (х,у)->-9.8],-

,

20..20,0..20,arrows=LARGE)

Рис. 4.14

Пусть заданы начальные условия л:(0) = 0, х(0) = 20, у(0) = 0, у{0) = 25 и
требуется найти в поле силы тяжести U(x, у) = g • у траекторию движения материальной точки. Решение задачи имеет вид:
> d s o l v e U d i f f ( x { t ) , t $ 2 ) = 0 , d i f f {у (t) , t $ 2 ) — 9 . 8 ,
x ( 0 ) = 0 , D ( x ) { 0 ) = 2 0 , y ( 0 ) = 0 , D ( y ) (0) = 2 5 }, { x ( t ) , у ( t ) I) ;
4Q

+2Ы,

Такой же результат получается, если перейти к системе дифференциальных
уравнений 1-го порядка:
> d s o l v e ( { d i f f ( x ( t ) , t ) = u ( t ) , d i f f (u ( t ) , t ) = 0 , d i f f (у d s o l v e U d i f f < x ( t ) , t ) = u ( t ) , d i f f ( u ( t ) , t ) = 0 , d i f f ( y , t ) = v ( t ) ,
diff(v(t),t)=-9.8,x(0)=0,u(0)=25,y(0)=0,v(0)=20},
{ x ( t } , u ( t ) , y ( t ) , v ( t ) }) ;
2

Ш = 25, y{t\ = -~t , v(t) = ID

, u(t) = 25}

Построение графиков полученных траекторий:
>
p h a s e p o r t r a i t { [ d i f f ( x ( t ) , t ) = u ( t ) , d i f f < u ( t ) , t ) = 0 , d i f f ( y ( t ) , t )
=v(t) ,diff (v(t) , t ) = ~ 9 . 8 ] , [x(t) ,u(t) ,y(t) ,v(t) ] , t = 0 . .4,
[ [ x ( 0 ) = 0 , u ( 0 ) = 2 0 . , y ( 0 ) - 0 , v ( 0 ) = 2 5 ] , [x (0) = 0 , u (0) = 2 5 , у ( 0 ) - 0 , v (0) = 2 0 j

],scene=[x(t),у(t)],linecolor=[red,blue});

Динамика материальной точки

113

3025201510
5
20

40

60

100

80

Рис. 4.15

Глобальные взаимодействия материальных тел, согласно закону всемирного
тяготения, определяются полями сил тяготения, потенциалы которых имеют вид:
,,
U =

k

=> FF = -

kx
з •

k > 0. В плоском случае:
F, =-

ky

kx

3'

з•

Графическое построение потенциальной функции при k = 10:
> with(plots):contourplot{{x,у}->-10/sqrt(хА2+уЛ2),1..1,-1..1,filled=true);

Рис. 4.16

114

Глава IV. Дифференциальные уравнения. Ряды Фурье

Построение траектории движения материальной точки в поле сил тяготения
при k = 1, х(0) = 1, у(0) = О, Ш) = 0, у(0) - 0,5:
> phaseportrait ( [dif f (x (t) , t) «=u (t) , dif f (u (t) , t) =A
x(t)/(x{t)*2+y(t)
2)*(3/2),diff(y(t) , t) -v (t) , dif f (v (t) ,t)=л
A
y (t) / (x (t) 2+у (t) 2)л (3/2) ], [x(t) ,u(t) ,y(t),v(t) ],t=0. -Pi, [ [x(0)
=l,u{0)=0,y(0)=0,v(0)-0.5]],scene=[x(t),у(t>],stepsize=0.01);
0.4 i
У(0

0.2

0.4

0.6
x(t)

0.8

•b,2-0.4
Рис. 4.17
При увеличении начальной скорости получается существенно другой рисунок:
> phaseportrait([diff(x(t),t)=u(t),diff(u(t),t)=x(t)/(x(t)*2+y(tr2>A(3/2) ,diff (y{t) ,t)=v(t),diff (v(t) ,t)=y(t)/(x{t}^2 + y(t)A2)Л(3/2) ], [x(t),u{t) ,y(t) ,v(t) ] ,t=0. .Pi, [ [x(0)
=l,u(0)=0,y(0)=0,v{0}=2]],scene=[x(t),y{t)],stepsize=0.01);

У0)

-Q.4

-0.2

u

0.2

0.4

0.6
x(t)

0.8

1

Рис. 4.18
Рисунки 4.17, 4.18 хорошо иллюстрируют то, что в поле сил тяготения траектории движения материальных тел являются коническими кривыми, один из
фокусов которых находится в полюсе силового поля.

Динамика материальной точки

115

В 1696 году И. Бернулли поставил и решил, наряду с другими выдающимися математиками своего времени, задачу о брахистохроне (кратчайшем времени), положившую начало вариационному исчислению — оптимальному управлению. Найти путь, по которому материальная точка, двигаясь под действием
силы тяжести без трения и сопротивления, попадает из точки А в точку В за
наименьшее время:

Рис. 4.19

Потенциальная функция поля силы тяжести U = tngy. Из закона сохранения энергии, так как в начальный момент времени скорость равна нулю, следует
Е - tngyA, то есть:
ёУА
Откуда находится скорость движения:

ds
Так как v = —, ds = J\ + y'(x)dx, то, двигаясь по линии у = у(х), материdt
альная точка попадет из точки А в точку В за время

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

= С> С = const

Глава IV. Дифференциальные уравнения. Ряды Фурье

116

Приятно отметить, что Maple находит его общее решение в параметрической форме:
> dsolve(

subs (

T=cos{t/2)/sin(t/2),%):normal(%):simplify(%);

COS,.V

cos! — t
= Ccosl —t sin — /

С arctan

sin

cos,5.Ш-.

Отсюда, с учетом
> simplify{arctan(cot(x)

~7i - arc cot(cot(jc)),
следует
x = ±r{t - sin /) + xA, у = yA - r(l - cos t).
где г — произвольная неотрицательная постоянная. Полученные уравнения определяют на плоскости семейство циклоид, выходящих из точки А и обращенных выпуклостью вниз. Построение линий данного семейства при уА = 6,
хА =0;
> p l o t ( { s e q ( [ r * ( t - s i n { t ) ) , 6 - r * ( 1 - cos ( t ) ) , t = 0 . . 2 * P i ] , r = l . . 3 ) } ,
color=red);

Ряды Фурье

5

117

:

43218 10

12 14 16 18

Рис. 4.20

§ 4. Ряды Фурье
Коэффициенты ряда Фурье
a

n

c o s n x

+ bn sin nx)

абсолютно интегрируемой на отрезке [-л, тг] функции /(л:) вычисляются по формулам:

а п = — I /( cos

, й„ = — I /U) sin nxdx.

Maple избавляет пользователя от аналитических вычислений коэффициентов и дает богатейшие возможности для графического представления результатов, включая анимацию графиков. Простейший способ — непосредственное вычисление коэффициентов ряда Фурье, используя встроенную функцию int. Например, пусть требуется разложить в ряд Фурье функцию fix) = х, х f:=х;

>

a[0]:=int(f,x=-Pi..Pi)/Pi;a[n]:=int(f*cos(n*x>,x=•

ao:=O

an:=0
> b[n]:=int(f*sin(n*x),x=-Pi..Pi)/Pi;

:=-2

- sin(Ttn) + nn cos(nrt)
n2n

Pi..Pi)/Pi;

Глава IV. Дифференциальные уравнения. Ряды Фурье

118

S : = ( x , k ) - >а[0] /2 + sum(a[n] *cos (n*x) +b[n] * s i n (n*x) , n = l . . k} ;
1
(
S: = (x, k) ->• — a0 +\ £,{an cos(nx) + bn sin(njc))
2
I
S (x,2) ;

2 sin(x) - ъ\п{2х)
>

S(x,3) ;

2 sin(x) - sin(2j;) + - sin(3x)
о

Построение графиков показывает, как происходит приближение:
>

p l o t ( S ( x , 2 ) , x = - 9 . ,9) ;

•В

/

-6

-4

\

-2

Рис. 4.21
plot(S(x,3),x=-9..9);

Используя средства программирования Maple, частичные суммы рядов Фурье рациональнее задавать процедурами. В частности, заданные на промежутке
(-тс, я) функции разлагаются в ряд Фурье процедурой:
> S := ргос (х, п)
local k, m, а, Ь;
for к from 0 to n do
а[к] := int {f*cos(k*x),x = -Pi .. Pi)/Pi;

Ряды Фурье
Ь[к] := i n t ( f * s i n { k * x ) / P i , x = -Pi .. Pi)
end do;
l/2*a[0]+sum(a[m]*cos(m*x)+b[m]*sin{m*x),m =
end p r o c ;

119

. . n)

S := proc (x, n)
local k, m, a, b;
for к from 0 to л do
a[k] := int(/xcos(foor), x = -n .. n)/n; b[k] := int(fxsm(kxx)/n, x = -K .. к)
end do ;
l/2xa[0] + sum(a[m]xcos(mxx) + b[m]xs'm(mxx), m= 1 .. n)
end proc
Пользователю остается задать f и ввести п. Например, возвращаясь к разобранной задаче, получаем:
> f:=x: y:=S(x,3);
2
у: = 2 sin(x) - sin(2x) + — sin(3A:)
о
Построение в одной системе координат заданной функции и S(x, 3):
> z:=x->modp(x,2*Pi):plot([у(х),2(x-Pi)-Pi],x--9..9);

4.23
Процедура разложения в ряд Фурье функции, заданной на промежутке (0, 21):
> Sp := proc {x, 1, п)
l o c a l k, га, а, Ь;
for к from 0 to n do
а[к] := i n t ( f * c o s ( P i * k * x / l ) / l , x - 0 .. 2*1);
Ь[к] := i n t ( f * s i n { P i * k * x / l ) / l , x = 0 .. 2*1)
end do;
l/2*a[0]+sum(a[m]*cos(Pi*m*x/1)+b[m]*sin(Pi*m*x/1),m = 1 .. n)
end p r o c ;

Глава IV. Дифференциальные уравнения. Ряды Фурье

120

Sp := ргос (х, /, п)
local к, mt at b\
for к from 0 to и do
a[k] := int(/xcos(7rxb^//)//, x - 0 .. 2x1);
b[k] := int(/xsin(Trxbcc//)//, x = 0 .. 2x/)
end do ;
, m = 1 .. n)
end proc
Пусть требуется найти частичную сумму S3(x) ряда Фурье функции
f(x) = — - — , 0 < х < 2л, построить график S3(x) и вычислить S3(—)• Решение
первой части задачи:
> f:«(Pi-x)/2:Sp(x,Pi,3);

sinU) + — sin(2x) + — sin(3x)
Z
о
Решение второй части:
> p l o t { S p ( x , P i , 3 ) , x — 9 . .9) ;

'

Наконец, последнее:
> subs(x=Pi/2,Sp(x,Pi,3));

1

>

evalf(%);
.6666666667.

Процедура разложения в ряд Фурье только по синусам имеет вид:
> restart:Sps := ргос (х, 1, п)
local k, m, а, Ь;
for к from 0 to n do

Ряды Фурье

121

b[k] : - i n t ( 2 * f * s i n ( P i * k * x / l ) / l , x - 0 .. 1)
end do;
surafb[ra]*sin(Pi*m*x/1),m = 1 . . n )
end p r o c ;
Sps := proc (x, I, n)
local k, m, a, b;
for к from 0 to и do b[k] := int(2x/xsinf nxkxx/iyi, x = 0 .. /) end do ;
sum(b[m]xsin(7rxmx*//), m-\ ..n)
end proc
Пример. Разложить в ряд Фурье по синусам f{x) = хът х, 0 < х < л до четвертой гармоники.
Решение.
> f:=x*sin(x):Sps(x,Pi,4);
1
, м 16 sin(2x)
32 sin(4A:)
—nn sinU)
sinU) - —
.
2
9
2
9
я
225
7i
Процедура разложения в ряд Фурье по косинусам имеет вид:
> Spc := proc (x, 1, п)
l o c a l k, m, а, Ь;
for к from 0 to n do
а[к] := i n t ( 2 * f * c o s ( P i * k * x / 1 ) / 1 , х = 0 .. 1 ) ;
end d o ;
1/2*а[0]+sum(a[m]*cos(Pi*m*x/1) ,ra « 1 . . n)
end p r o c ;
Spc := proc (x, /, n)
local к, т, a, b;
for к from 0 to и do a[k] := int(2x/xcos(7rxboc//)//, x = 0 .. /) end do ;
l/2xa[0] + sum(fl[-m]xcos(nxmxx//), m~ 1 .. n)
end proc
Пример. Разложить в ряд Фурье по косинусам до третьей гармоники
fix) =е\х Е ( 0 , In 2).
Решение.
> f : = e x p ( x ) :Spc ( х , Ш ( 2 ) ,3) ;

2|п(2)со 2
1п(2)

2

1п(2) + я

2

+

2

( ш)
2

1п(2) + 4тг

61п(2)со 3
1п(2)

( ш)

Глава V
ВЕРОЯТНОСТЬ И СТАТИСТИКААЛГЕБРА ЛОГИКИ

§ 1. Теория вероятностей
После команды:
> with(stats);

[anova, describe, fit, importdata, random, statevatf, statplots, transform]
можно приступать к решению задач по теории вероятностей и математической
статистике. Законы распределения вероятностей, входящие в Maple, приведены
в следующих двух списках.
Дискретные распределения:
binomiald[n,p]
discreteuniform[a,b]
empirical[list_probj
hypergeometric[Nl, N2, n]
negativebinomial[n,p]
poisson[mu]
Непрерывные распределения:
beta[nul, nu2]
cauchyla, b]
chisquare[nu]
exponential[alpha, a]
fratio[nul, nu2]
gamma[a, b]
laplaced[a, b]
logistic[a, b]
logriormal[mu, sigma]
normald[mu, sigma]
studentst[nu]
uniform[a, b]
weibull[a, b]
В квадратных скобках, естественно, параметры распределений. С приведенными списками распределений и достаточно подробными их описаниями можно
ознакомиться на странице distributions справочной системы Maple. Интегральная функция, дифференциальная функция (закон распределения вероятностей)
и квантиль дискретного распределения, соответственно, обозначаются dcdf, pf,
icdf. Соответствующие обозначения для непрерывного распределения: cdf, pdf,
icdf. Базовая встроенная функция (подпакет) теории вероятностей имеет вид:
statevalf[eud функции, закон распределения](аргумент),
Пусть случайная дискретная величина починяется, например, биномиальному закону распределения с параметрами п = 5, р = 3/4. Тогда закон распределения вероятностей находится следующим образом:
> p:=statevalf[pf,binomiald[5,3/4]]:[[m,p(m)]Sm=0..5];
[[0, .0009765625000], [I, .01464843750], [2, .08789062500], [3, .2636718750],
[4, .3955078125], [5, .2373046875]]
Построение многоугольника распределения вероятностей:
> plot([[m,p(m)]$m-0..5]);

Теория вероятностей

123

Ввод интегральной функции данного биномиального распределения:
> F:=statevalf[dcdf,binomiald[5,3/4]];
F:=

statevalfdcdiMnomia!d&m

Вычисление ее значение при х = 2:
> statevalf[dcdf,binomiald[5,3/4]] (2);
.1035156250

Функция F действительно «накапливает» вероятности:
> F (0 ) ; F (1) ; F (5 ) ;
.0009765625000
.01562500000
1.
Однако она не совпадает с общепринятой в отечественной математической
литературе интегральной функцией распределения [2]. Переопределим ее следующим образом:
. >G:=piecewise(x int(statevalf[pdf,normald[10,2]](x),x=12..14};
14
1

C:=solve(int(2*С/(1+х А 2),x=-infinifу..infinity)=1,С);

1

Ti + 2 arctan(infinity)

128

Глава V. Вероятность и статистикаю. Алгебра логики

> arctan(infinity);
1
—п
2
Ответ: С =

2-71

Найдем интегральную функцию распределения по плотности распределения,
заданной в последней задаче:
> R=int(1/((l+tA2)*Pi),t=-infinity..x) ;
1 2arctan(x) + n
Задача ([2], 430). Задана плотность совместного распределения случайной
непрерывной двумерной величины (X, Y):
,
\4хуе~х2~у2, х > 0, уу > 0
/г U у)ч = <
[0,
х < 0 или у < 0
Найти:
1) математические ожидания Мх, Му,
2) дисперсии Dx, DY.
Решение. Плотности составляющих находим следующим образом:
> f:=4*х*у*ехр{-х Л 2-у Л 2);

> assume(x>0, y>0):fl:=int(f,y=0..infinity);

> f2:=int(f,x=0..infinity);

Вычисления математического ожидания и дисперсии составляющей X:
> Ml:=int{fl*x,x=Q..infinity);

> Ql:-int((x-Ml) A 2*fl,x=0..infinity) ;

Остается учесть, что Мх = Mv, Dx = DY,
Ответ: Мх = MY = — , Dx = DY = 1 - - .
.

Jf

У

2

>

*

Y

4

Математическая статистика

129

§ 2. Математическая статистика
Назначения подпакетов, вызываемых with(stats):
anova — дисперсионный анализ;
describe — вычисления числовых характеристик выборок;
fit — регрессионный анализ;
random — генерация случайных чисел с заданным законом распределения;
statevalf — теория вероятностей;
statplots — графические представления выборок;
transform — группировка (преобразование) выборочных данных.
Необходимость статистической обработки данных возникает тогда, когда
есть некоторый массив данных — выборка. Поэтому естественно начать с получения случайной выборки, используя подпакет
random[distribution](quantity, uniform, method).
Параметры подпакета:
distribution — закон распределения выборки,
quantity — объем выборки,
uniform — использовать преобразование случайного равномерного распределения в данный закон, default — по умолчанию,
method — применяемый метод ('auto', 'inverse', 'builtin').
Устанавливаем, чтобы не рябило в глазах, число значащих цифр равное
трем:
> Digits:=3;

Digits: - 3
Генерируем выборку объема п = 50, имеющую нормальный закон распределения с математическим ожиданием а = 10 и среднеквадратическим отклонением а - 2:
> х:=[random[normald[10,2]](50,'default','inverse')];

x:= [9.19, 11.5, 10.7, 12.6, 13.0, 12.3,7-46,8.92,8.80, 11.6, 11.9, 10.9,5.82,8.89,9.32,
8.30, 8.76, 8.01, 15.5, 12.3, 9.46, 9.11, 12.1, 12.5, 9.33, 11.0, 10.1, 9.61, 13.7, 15.0,
12.2, 13.1, 11.7, 10.4, 11.5,9.02,9.23,7.16, 12.0, 10.6,6.39,6.97,9.03,6.84,8.29,
10.5, 11.7,7.05, 12.1,9.53]
Сортируем варианты в порядке возрастания:
> transform[statsort] (x) ;

[5.82, 6.39, 6.84, 6.97, 7.05, 7.16, 7.46, 8.01, 8.29, 8.30, 8.76, 8.80, 8.89, 8.92, 9.02, 9.03,
9.11,9.19,9.23,9.32,9.33,9.46,9.53,9.61, 10.1, 10.4, 10.5, 10.6, 10.7, 10.9, 11.0,
11.5, 11.5, 11.6, 11.7, 11.7, 11.9, 12.0, 12.1, 12.1, 12.2, 12.3, 12.3, 12.5, 12.6, 13.0,
13.1, 13.7, 15.0, 15.5]
5 3ак. 133

Глава V. Вероятность и статистикаю. Алгебра логики

730

Проведем группировку полученных значений, разбивая их на k и 1 + 3.2!g50
групп. Подсчитываем k:
>

l+3.2*log[10](50);

3.2 ln(50)
>

evalf(%);

6.44

Принимаем к = 6. Находим размах выборки:
> 15.5-5.82;

9.68
Оцениваем шаг:
>{%)/6;
1.61
Округляем (только в большую сторону) и принимаем h = 1,7. Оцениваем
крайнее левое значение первого интервала:
>

5.82- (1.7*6-9.68)/2;

5.56
Округляем до 5,6 и находим интервальный вариационный ряд:
> trans form[tallyinto] (x, [5.6. .7.3,7.3. .9,9. .10.7,10.7. .12.4,
12.4. .14.1,14.1. .15.8]);
[Weight(10.7 .. 12.4, 15), Weight(12.4 .. 14.1, 5), Weight(5.6 .. 7.3, 6),
Weight(7.3 .. 9.8), Weight(l4.1 .. 15.8, 2), Weight(9 .. 10.7, 14)]
> X : = t r a n s f o r m [ s t a t s o r t ] (%) ;

X: = [Weight(5.6 .. 7.3, 6), Weight(7.3 .. 9.8), Weight(9 .. 10.7, 14),
Weight(10.7 .. 12.4, 15), Weight(12.4 .. 14.1, 5), Weight(14.1 .. 15.8, 2)]
Составляем дискретный вариационный ряд:
> Digits:="Digits':Digits:=4;

Digits := 4
>

Y : = t r a n s f o r m [ c l a s s m a r k j (X) ;

Y:=[Weight(6.45O, 6), Weight(8.150, 8), Weight(9.850, 14), Weight* 11.55, 15)
Weight(l3.25, 5), Weight(14.95, 2)]
По интервальному вариационному ряду строится гистограмма частот (рис. 5.7):
> with(stats[statplots]):histogram(X, colour=grey);
По дискретному вариационному ряду строится полигон частот:
> with tplottools) :
> 1 := polygon([[6.45,6], [8.15,8], [9.85,14], [И.55,15], [13.25,5]
, [14.95,2] ] , color = grey) ;

Математическая статистика

131

/ := POLYGONS(
[[6.45, 6.], [8.15, 8.], [9.85, 14.], [11.55, 15.], [13.25, 5.], [14.95, 2]],
COLOUR(/?GS, .75294118, .75294118, .75294118))
> p l o t s [ d i s p l a y ] (1) ;
141210-

10
Рис. 5.6

12

14

ЦП
4'
2-

iiii

ill!
U

6

a

10
Рис. 5.7

1глщ% •;

12

14



Задача. Критерием Пирсона проверить гипотезу о нормальном законе распределения признака X генеральной совокупности, если статистическое распределение выборки имеет вид
xi

-4,5

-2,5

п,

11

24

-0,5 1,5 3,5 5,5
27

34

25

19

7,5
10 '

уровень значимости а - 0,05.
Решение. Вводим заданное статистическое распределение:
> W:=[Weight(-4.5,11),Weight(-2.5,24),Weight(-.5,27),
Weight(1.5,34),Weight{3.5,25),Weight(5.5,19),Weight(7.5,10)];
W:=[Weight(-4.5, 11), Weight{-2.5, 24), Weight(-.5, 27), Weight(1.5, 34)
Weight(3.5, 25), Weight(5.5, 19) , We-ight(7.5, 10)]

Глава V. Вероятность и статистикаю. Алгебра логики

132

В подпакете describe вычисляем объем выборки, выборочную среднюю и
выборочное среднеквадратическое отклонение:
> N:=describe[count](H);

> a:=describe[mean](W);

a: - 1.300000000
> q:=describe[standarddeviation](W) ;
4: = 3.312602199
Обозначаем списки вариант и частот:
> x:=transform[statvalue](W);

х: = [-4.5, - 2.5, -.5,1.5, 3.5, 5.5, 7.5]
> n:=transform[frequency](W);

n: = [11,24,27,34,25,19,10]
По формуле
N•h
m, =

(

, {xi - xB)2.
)
2a

где h — шаг, xg — выборочная средняя, a — среднеквадратическое отклонение, находим список теоретических частот:
> m: = [ s e q ( 1 5 0 * 2 * e x p ( - { x [ i ] - a ) A 2 / ( 2 * q A 2 ) ) / ( q * s q r t ( 2 * P i ) ) ,
i=l..7)]:evalf(m);

[7.801399128, 18.71174140, 31.17072266, 36.06371726, 28.97911123, 16.17300008,
6.268838334]
Вычисляем наблюдаемое значение критерия %2:
>

sum((n[i]-m[i])л2/т[1],i=l..7):evalf(%);

6.743417871
Так как оно меньше критического, равного для данной задачи 9,488, то
есть основания принять гипотезу.
Задача ([2], 535). Найти выборочное уравнение прямолинейной регрессии Y
по X по данным, приведенным в корреляционной таблице:

1
!
!

Y\X
16
26
36
46
56

20
4
4

25
6
8
14

30
10
32
4
46

35
3
12
16

40
9
6
5
20

«,
10
18
44
22
6
п = 100

!

:

Математическая статистика

• 133

Решение. Вводим данные корреляционной таблицы:

> W:= [[Weight (20,4), Weight(25,6), Weight(25,8), Weight(30,10),
Weight(30,32), Weight(35,3), Weight(40,9), Weight(30,4
Weight(35,12) Weight (40,6) Weight(35,l) Weight(40,5)] ,
[Weight(16,4) Weight(16,6) Weight(26,8) Weight(26, 10} ,
Weight (36,32) Weight(36,3), Weight (36, 9) Weight(46,4),
Weight(4 6,12),

W e i g h t ( 4 6, 6) ,

W e i g h t ( 5 6 , 1) ,

Weight(56,5)]] ;

W := [[Weight(35, 3), Weight

30274 4168
~~ 2861 + 2861

e v a l f (%);

у = -10.58161482

+1.456833275JC

Ответ: ух = 1,45* - 10,58.
Решение можно дополнить. Построение корреляционного поля двумерной
выборки, заданной в последней задаче:
> statplots[scatterplot](W[1],W[2],color=red,axes=normal);

о

о

о

о

о

о

35

40

50-

40о

30о

о

20о

о

20

25

30
Рис. 5.8

Построение в одной системе координат и корреляционного поля, и полученного выборочного уравнения прямолинейной регрессии:
> x:=vector (transform[statvaluej (W[1])) ;
x: = [20, 25, 25, 30, 30, 35, 40, 30, 35, 40, 35, 40]

Глава V. Вероятность и статистикаю. Алгебра логики

134
>

y : = v e c t o r ( t r a n s f o r m [ s t a t v a l u e ] (W[2])J;

y: = [16, 16, 26, 26, 36, 36, 46, 46, 46, 56, 56]
> plot{[[x[i],y[i],i=l.Л2],
10.58161482+1.456833275*x],x=0..60,0..60,style=[point,line]);
6050dO
3020100

20

10

30
x

40

50

60

Рис. 5.9

Аналогичным образом находится выборочное уравнение параболической
регрессии.
Задача {[2], 537), Найти выборочное уравнение регрессии Г/Г = Ах2 + Вх +
+ С по данным, приведенным в корреляционной таблице:
Y\X
25
45
110
п,

2

3

5

nv

-

20

30

1

31

1

48

49

31

49

п = 100

20
20

Решение. Вводим на листовое поле данные корреляционной таблицы:
> W:=
[[Weight (2,20), Weight(3,30),
Weight(5,l>, Weight (3,1) ,
Weight (5,48) },
[Weight(25,20) ,
Weight(45,30),
Weight(4 5,1),
Weight (110,1) ,
Weight(110,48)]];
W := [[Weight(2. 20), Weight(3, 30), Weight(5, 1), Weight(3, 1), Weight(5, 48),
Weight(25, 20), Weight(45, 30)], [Weight(45, 1), Weight(110, 1), WeighUllO, 48)]]

Вывод выборочного уравнения параболической регрессии Y по X:
> fit[ieastsquare[[x,y],
У=

у=а*хЛ2+Ь*х+с]](W);

26405
69365
Х~ +
9114
9114

X -

2750
1519

у = 2.897191135л' + 7.610818521л - 1.810401580

Математическая статистика

135

Ответ: ух = 2,9Ох2 + 7,61* - 1,81.
Построение заданных точек:
>

statplots[scatterplot](W[l],W[2],color=red,axes=normal);

100-

60-

4020-

2

2.5

3

3.5

4

4.5

Рис. 5.10

Построение точек вместе с выборочным уравнением параболической
регрессии:
> х: =vector(transform[statvalue] (W[1]));

x: = [2, 3, 5, 3, 5]
>

у;-vector(transform[statvalue](W[2]));

y:= [25, 45, 45, НО, И0]
> p l o t < [ [ x [ i ] , y [ i ] , i = 1 . . 5 ] , 2 6 4 0 5 / 9 1 1 4 * x A 2 + 6 9 3 65/9114*x],x=0..8,0. .111,style-[point, line]) ;

10080;
60

:

4020-

0

1

I I I I > I ' ' • ' -I •—' > > I ' ' ' • I • ' ' ' I ' > ' ' I
1 2
3
4
5
6
7

Рис. 5.11

2750/1519

136

Глава V. Вероятность и статистикаю. Алгебра логики

§ 3. Алгебра логики
Зададим процедурами программирования наиболее часто используемые элементарные функции двузначной логики и для проверки вычислим по одному их
значению. Конъюнкция:
> соп:=ргос(х,у)
mi г, (х, у)
end;
con : - procU, у) min(.v, у) end proc
> con (0,1) ;

О
Дизъюнкция:
> diz:=prbc(x,у)
max(x,у)
end;
diz : = procCt, у) max(x, у) end proc
>

diz(0,1);

1
Отрицание:
> no:=proc (У.)
1-х
end;
no: = proc(x) 1 - x end proc
> no ( 1 ) ;

0
Сложение по модулю 2:
> mo:=proc(x)
x mod 2
end;

mo: = proc(x) x mod 2 end proc
> mo ( 3 ) ;

Следствие (импликация):
> im:=proc(x, y)
" i f (x iqv(0, 1) ;
0

Задача. Проверить равенство х ~ у = (х v у) л {х v у)
Решение. Таблица истинности левой части равенства очевидна. Достаточно составить таблицу истинности правой части:
> g:=proc(x,y)
con(diz(no(x),y},diz(x,no(y)))
end;

g: = proc{x, у) con(diz(no(jc:), у), diz(x, no(y))) end proc
> g { 0 , 0) ; g (0 , 1) ; g ( 1 , 0 ) ; g ( 1 , 1) ;

1

0
0
1
Ответ: равенство верно.
Задача. Применяя таблицу истинности, доказать тождественную истинность
формулы: ((х ~ у) л х) -> у.
Решение.
> g:=proc(x,y)
ira(con(iqv(х,у),по(х)),по(у)};
end;

g:= procU, г/) im{con{iqv{x, у), по(х)), по(у)) end proc
> g ( 0 , 0 ) ; g ( 0 ,• 1 ) ; g ( 1 , 0) ; g ( 1 , 1) ;

1
1
1
1
Тождественная истинность формулы доказана.
Задача. Составить таблицу истинности функции х © {у v z).
Решение. Ввод заданной функции:
> f:=ргос(х,у,z)
mo [ x + d i z ( у , п о { z ) ) )
end;

/: = proc(;c, y, z) moU + diz(y, по(г))) end proc

Глава V. Вероятность и статистикаю. Алгебра логики

138

Таблица истинности функции алгебры логики (булевой функции) 3-х
переменных содержит 8 строк и 4 столбца. Первые три столбца имеют
стандартный вид, соответствующий записи чисел от 0 до 7 в. двоичной
системе исчисления. Поэтому вводим:
>

а:=[0,0,0,0,1,1,1,1];

а : - [ О , О, О, О, 1, 1, 1, 1]
•> Ь : = [ 0 , 0 , 1 , 1 , 0 , 0 , 1 , 1 1 ;

Ь: = [О, О, 1, 1, О, О, 1, 1]
с: = [О, 1, О, 1, О, 1, О, 1]
Вывод списка элементов
функции:
>

четвертого столбца — значений заданной

p:=[seq(f evalm(transpose(matrix([a,b,c,p])}};

О О О Г
О О 1 О
0 10 1
0 111
10 0 0
1 0 11
1 1 0 0
1 1 1 0
Пусть надо найти совершенную дизъюнктивную нормальную форму
(СДНФ) последней функции f. Определяем степень с булевым показателем:
> s:=ргос(х,у)
"if1(у=1,х,по(х))
end;

s : = ргос(лс, у) 'if(i/ = 1, х, noU)) end proc
Находим СДНФ заданной функции:
>
a d d ( a d d ( a d d ( f ( i , j , k ) * ( s ( x , i ) * s ( у , j ) * s ( z , k ) ) , i = 0 . . 1 ) , j = 0 . . 1 ) ,
k=0..1);

(1 - x)(\ - y){\ - z)y(\ - z) + x{\ - y)z + (1 - x)yz,
где произведение следует понимать как конъюнкцию, а сумму как дизъюнкцию.
Аналогично составляется совершенная конъюнктивная нормальная форма:
> m u l < m u l { m u l ( " i f ( f ( i , j , k ) = 0 , n o ( f ( i , j , k l ) * ( s ( x , n o ( i ) ) + s
+ s ( z , n o ( k ) ) ) , 1 ) , i = 0. . 1 ) , j = 0. . 1 ) , k = 0 . . 1 ) ;

(1 - x + у + z)(2 - x - у + z)(x + у + 1- г)(3 - x - у - z)

(y,no(j))

Глава VI
МАТЕМАТИЧЕСКИЕ МОДЕЛИ
В ЭКОНОМИКЕ

§ 1. Линейное программирование
Задачи линейного программирования решаются встроенными функциями
minimize и maximize, входящими в пакет simplex, вызываемый обычным образом:
> with(simplex) ;

[basis, convexhull, derm, define_zero, display, dual, feasible, maximize, minimize,pivot,
pivoteqn,pivotvar, ratio, setup, standardize ]

Вызов пакета обязателен, так как входящие в ядро системы Maple встроенные функции minimize и maximize отличаются от рассматриваемых наборами
параметров.
Будем придерживаться такой конструкции:
гшшгшге(целевая функция, {ограничения}, NONNEGAT1VE).
Последний параметр показывает, что входящие переменные неотрицательны. Соответственно в такой конструкции включать условия неотрицательности
переменных в ограничения не надо.
Пример. Решить задачу линейного программирования
2

=

X-I ~г оХп ~г х^ —г m m

х] + 4х 2 + З х 3 < 12

Зх - 2х, + х > 6
[х{ > 0, х 2 > О, А'3 > О
Решение.
> z:=xl+3*x2+x3,

z : = xl + 3x2 + хЗ
> minimize(z,{xl+4*x2+3*x3=6},NONNEGATIVE);
{xl = 2 , x2 - 0, хЗ = 0}
>

subs[%r z ) ;

Ответ: (2, 0, 0), minz = 2.

Глава VI. Математические модели в экономике

140

Пример. Решить задачу линейного программирования
z = 5 + .V, + Ъх2 -¥ max,

.

[Л-, + Х.,

< 10

JC, < 6
Н 0, х2 > О
Решение.
> maximize (5+xl + 3*x2

>

subs (%,5+xl + 3 * x 2 ) ;

Ответ: {2, 8), maxz = 31.

;1+х2 with(plots):
> inequalUxl+x21
i _ 1,

1 Y

^ 1

X! > 0, x2 > 0, x 3 > 0,
x,1 = — , x, = — , x 4 = —~. Ее решение в Maple:
V
V
V
> minimize(xl+x2+x3,{8*xl+4*x2+x3>=l,3*xl+5*x2+7*x3>=l,6*xl+
6*x2+4*x3>=l, 2*xl+5*x2+7*x3>=l},NONNEGATIVE);

?-, xl=±-, хЗ = 0}


61

w 32
.1 6 Л Ч
Ответ: V = —, пропорции выпуска продукции (—,—,0).
7
7

7

,

В Maple имеются графические средства, которые очень хорошо подходят
для графического решения матричных игр 2 х п и т х 2.
Задача ([6], 266). Найти (графически) решение и цену игры с матрицей
' 2 1 5 3
1

3

4 0,5

Матричные игры

145

Решение. Пусть х и 1 - х частоты применения первым игроком (с горизонтальными стратегиями), соответственно, первой и второй стратегий.
Тогда его выигрыш, в зависимости от «чистых» стратегий, применяемых
вторым игроком, соответственно составляет:
у{(х) = 2х + (1 - x)t у2(х) = х + 3(1 - х)
у3 (х) = 5х + 4(1 - х),

уА Ос) = Зх + 0.5(1 - х)

Проведем геометрические построения:
> inequal{{у with(simplex):
> m i n i m i z e (z, { s u m ( x [ l , j ] , j = l . . 4 ) = 2 5 , s u m ( x [ 2 , j ] , j = l . . 4 ) = 5 5 ,
s u m ( x [ 3 , j] , j = l. . 4 ) = 2 0 , s u m ( x [ i , 1] , i = l. . 3) = 4 5 , sum (x [ i , 2 ] , i = l . . 3 ) = 1
5 , s u m ( x [ i , 3 ] , i = l . . 3) =20 , sum (x [ i , 4 ] , i = l . . 3} =20 , x [ 1, 3] c:=matrix([[7,5,12],[4,6,8),[10,9,6]]);

7

5 12

4

6

8

10 9

6

с: =

> d : - m a t r i x Ш 2 , 3 , З Ь [4, 0, 5] , [ 0 , 1 , 4] ] ) ; а : = [50, 3 0 , 1 2 0 ] ;
Ь:=[60,40,100];

2

3

3

d: = 4

0

5

О 1

4

а:=[50, 30, 120]
6: = [60, 40, 100]
Ввод матрицы планируемых перевозок:
> x:=matrix([[xll,xl2,xl3],[х21,х22,х23],[х31,х32,хЗЗ]]);
хП

х!2

х13

х21

х22

х23

х31

х32

хЗЗ

Ввод целевой функции:
> z : = s u m { s u m ( c [ i , j ] * x [ i , j ] + d [ i , j] * s i g n u m ( x [ i , j ] ) , i - 1 . . 3) , j - 1 . . 3) ;

Транспортная задача

151

z:=l xll +2 signum(x/7)+4^27+4signunX^27)+ 10*37 + 5x72 + 3 signum(x72)
+ 6x22 + 9х32 + signum(x32) + 12х!3 + 3 signum(x73) + 8х23 + 5 signun p:=seq{sum(x[i,j] , j = l . .3)=а [i] , i = l . . 3) ;
q:=seq(sum(x[i, j] , i = l . . 3 ) = b [ j ] , j = l . . 3 ) ;
p:=xll +xl2+xl3 = 50,x21 +x22+ x23 = 30, x31 + x32 + x33 = 120
q := xll + x21 + x31 = 60, x!2 + x22 + x32 = 40, xl3 + x23 + хЗЗ = 100
> r:=solve({p,q});

r := {x22 = x22, x23 = x23, x32 = x32, хЗЗ = хЗЗ, xll = -90 + x22 + x32 + x23 + хЗЗ,
x21 = Ъ0-х22-х23,xl2 = 40-x22-x32,x31 = 120 -x32-хЗЗ,
x!3 = 100 ~x23-x33}
Тогда целевая функция принимает вид:
> w:=subs(r,z);

w := 2090 + 4x22-х23 +х32-9хЗЗ + 5 signunX*25) + 4 signum(x33) + signum(xi2)
+ 2 signurr

A : = m a t r i x ( [ C 0 . 2 , 0 . 6 , 0 . 1 ] , [0,0.2,0.4], [ 0 . 3 , 0 . 1 , 0 . 2 ] ] ) ;

.2 .6 .Г
0 .2 .4
.3 .1 .2
> у:-matrix with(linalg):
> X:=raultiply(inverse(evalm(E-A)),y);

2867.187501'
X: = 1773.437501
2296.875001

754

Глава VI. Математические модели в экономике
3. Расчет матрицы (хц) потоков средств:
>

Ml:-evalm{col(A,l)

Ml: = [573.4375002, 0., 860.1562503]
M2:=evalm{col(А,2)*Х[2,1]);

М2: = [1064.062501,354.6875002,177.3437501]
M3:=evalm{col(А,3)*Х[3,1]);

МЗ: = [229.6875001,918.7500004, 459.3750002]
x:=concat(M1,M2,M3);

"573.4375002
0.
х: =

1064.062501 229.6875001"
354.6875002 918.7500004

860.1562503

177.3437501

459.3750002

4. Вычисления общих доходов отраслей:
[i,l]/i=l..3);

1433.593751
>

Х[2,l]-sum(x[i,2],i-l..3);

177.343750
>

Х[3, l ] - s u m ( x [ i , 3 ] , i = l . .3) ;

689.062501
5. Вывод матрицы коэффициентов полных затрат:
> inverse(evalm(E-A));

1.562500000

1.276041667

.8333333333

.3125000000

1.588541667

.8333333333

.6250000000

.6770833333

1.666666667

Задача ([6], 23). Предприятие выпускает три вида продукции в количестве,
характеризующемся вектор-планом X = (10,7,4). Для его изготовления используются 5 видов сырья. Известна матрица А:
' 5 10 3 9
4 8 5 6


8

Ь 12 4 3 10^
где aik характеризует расход к-го вида сырья на 1 единицу /-го вида продукции. Наконец, вектор С =(7,4,5,10,2) задает стоимость 1 единицы каждого
вида сырья.
Определить необходимое количество единиц сырья каждого вида для обеспечения плана, стоимость сырья для единицы каждого вида продукции и общую
стоимость всего сырья для всей продукции.

Потоки в сетях

155

Решение. Ввод данных:
>

A:=matrix([[5,10,3,9,2], [4,8,5,6,8], [6,12,4,3,10]]);

"5 10 3 9
4

8 5 6

2'
8

6 12 4 3 10
>

X : « m a t r i x ( [ [ 1 0 ] , [ 7 ] , [4]

10
Х: =

>

C:=matrix([[7], [4], [5], [10], [2]]);

7
4

С: =

5
10
2

Необходимое количество сырья каждого вида:
> multiply(transpose(A),X);

102'
204
81
144
116
Стоимость сырья для единицы каждого вида продукции:
> multiply(А,С);

184
161
160
Общая стоимость сырья:
>

multiply(transpose(X),%};
[3607]

§ 5. Потоки в сетях
Пусть задана ориентированная 2-полюсная сеть, один полюс — вход, другой — выход, весовые коэффициенты дуг — максимальные пропускные способности дуг. Требуется определить максимальную пропускную способность сети.

Глава VI. Математические модели в экономике

156

Геометрическое решение данной задачи основано на теореме Форда-Фалкерсона, согласно которой максимальная пропускная способность сети равна минимальной пропускной способности сечений сети. Аналитически задача решается
сведением ее к задаче ЛП. Рассмотрим сеть, представленную на рисунке:

х4

х1

х2

Рис. 6.7
Цифры рядом с дугами — максимальные пропускные способности дуг, хи
х2, х3, хА, хь — планируемые потоки в дугах. Аналитическая постановка задачи о
максимальном потоке для данной сети имеет вид:
х4 + х5 ->• max,
при условиях
О < х1 < 3, 0 < х2 < 1, 0 < х5 < 1, 0 < хА < 1, 0 < х5 < 4,
а также
Л]



Л х:=matrix (4,3);

: = аггау(1..4,1..3Д1)
> m [. 1 ] : = 0 :
for x [ l , l ]
for x [ l , 2 ]
for x [ l , 3 ]
for x[2,l]
for x[2,2]
for x[2,3]
for x[3,l]
for x[3,2]
f o r x[3,3]
for x[4,l]
for x[4,2j
for x[4,3]
n:=sum (sum

from 0
from 0
from 0
from 0
from 0
from 0
from 0
from 0
from 0
from 0
from 0
from 0
{c [ i , ;) ] *

to
to
to
to
to
to
to
to
to
to

1 do
1 do
1 do
1 do
1 do
1 do
1 do
1 do
1 do
1 do
1 do
1 do

x[i

,;

to
to

if

4) , j=l.-3) ;

= l. .3) m/
1 0
13,

0]

0

0

0

0 0
1

0

1

oj

§ 8. Задача Эрланга
1. Пусть So, S[

Sn возможные состояния физической системы S, причем

переходы из одного состояния S, в другое S, происходят под действием простейшего потока событий с интенсивностью Xtj (

среднее число переходов за

единицу времени). Если схема состояний системы 5 имеет вид, представленный
на рисунке 6.15, то она называется схемой «гибели и размножения*.

'"01 ^

"12^
'л,л—1
32

Рис. 6.15

Название схемы объясняется тем, что она определяет численности популяций в каждом следующем поколении через интенсивности рождения и гибели
предыдущих поколений. Обозначим вероятности p(S = S,) = р-, и сделаем допущение, что они не зависят от рассматриваемого момента времени. Тогда, так
как среднее время1 пребывания системы в состоянии S,- постоянно (и равно — ) ,
Pi

для схемы «гибели и размножения» должны выполняться соотношения

Задача Эрланга

169

Откуда
Pi =
Xi2 Х01

=

р2

Ро

Ро-

Рп =

Складывая полученные соотношения и учитывая

находим

10

21

,-]

+ ... +

РО = 4 +
10

В Maple полученные вероятности, называемые финальными, рассчитываются приведенными ниже командными строками:
> р [ 0 ] : = ( l + s u m ( product ( l a m b d a [ k , k + 1 ] , k = 0 . . i ) / p r o d u c t
(lambda[k+1,k], k = 0 . . i ) , i = 0 . . n - 1 ) ) Л (-1);
1

Ро '• = — 7
1+
V

> p:=p[0]*product{lambda[k,k+1],k=0..i-1)/product
(lambda[k+1,k],k=0..i-1);

/t=0

P'-=7—7

i.t+i

1+
V

V

11л*+и
k=o
JJ

Например, пусть:
i

_ i

Лп I — 1
10

=

i

— о

*M2 —
2 1 ~



Л-2,3 ~ •$

170

Глава VI. Математические модели в экономике
Подстановка данных значений дает:
> restart:lambda[0,1]:=1;lambda[1,2]:=2;lambda[2,3]:=3
;lambda[1,0]:=0.5;lambda[2,1]:=1.5;lambda[3,2]:= 2 .5;n:=3;p[0]:={
l + sum( product (lambda[k,k+1],k=0..i)/ product (lambda[k+1, k] ,
л
k=0. .i),1=0..n-1)) (-1);

10" **"* •
*.2il: = 1.5
П'.-Ъ
p0: -.1127819549
> p:=p[0]*product(lambda[k,k+1],k=0..i-l)/product(lambda[k+1,k],
k=0..i-l);

n
> [subs(i=l,p),subs(i=2,p),subs(i=3,p)
о
.1127819549

UK»

,.1127819549^-

.1127819549-^-

П

> evalf(%);
[.2255639098, .3007518798, .3609022557]
2. Задача Эрланга о п-канальной системе массового обслуживания (СМО) с
отказами — одна из первых задач теории массового обслуживания. Имеется п
каналов (линий связи), на которые случайным образом поступает поток заявок
с интенсивностью X, обслуживаемых с интенсивностью ц (ц = - — ) . Найти фиобс

нальные вероятности СМО и характеристики ее эффективности:
А — абсолютную пропускную способность, то есть среднее число заявок,
обслуживаемых в единицу времени;
Q — относительную пропускную способность, то есть вероятность того, что
заявка будет обслужена;
_Р0ТЙ — вероятность отказа;
k — среднее число занятых каналов.

Задача Эрланга

171

Состояния So, S,,-.... Sn такой системы — число занятых каналов (5 0 — все
свободны, 5, — один занят, ..., Sa — все заняты). Схема состояний системы:

1

Такой вид схемы состояний системы следует из того, что поток заявок переводит систему из любого левого состояния в правое с интенсивностью X, а обратные интенсивности зависят от числа каналов, которые могут освободиться.
Она является частным случаем схемы «гибели и размножения». Согласно предыдущему пункту

a

x

+—+
ц

x


7
+
2

x
2-3-ц

r

3

X"
л!ц'

-

)

-

'



Обозначение р = — приводит к формулам Эрланга:

р

р

Задание их в форме процедуры программирования:
> р:=ргос(го,п)
l o c a l q;
Л
q[0];=(sura(ro"i/i!,i=0..n)) (-1) ;
A
[q[0], [seq(q[0]*ro i/i!,i=l.".n) ] ] ;
end;
p :=ргос(то, п)
local q\
q[0] :=
end proc

///!, i = 1 .. и)]]

Определим характеристики эффективности системы. Вероятность отказа
равна вероятности того, что все каналы заняты, то есть
п

Ротк ~ Рп

=

~~7 ' Р°
ft •

Относительная пропускная способность — вероятность, что заявка будет
обслужена, находится как вероятность противоположного события

Глава VI. Математические модели в экономике

172

Абсолютная пропускная способность

а среднее число занятых каналов

Задача. В парикмахерский салон, который обслуживают два мастера, заходит в среднем 8 клиентов в час, причем если мастера заняты, то клиенты уходят. Среднее время обслуживания одного клиента 1/6 часть часа. Содержание
одного рабочего места составляет 100 рублей за 1 час, а доход от обслуживания
одного клиента 50 рублей.
1. Найти характеристики эффективности работы салона.
2. Определить доход, полученный за час работы двумя мастерами.
3. Найти характеристики эффективности работы салона, если его будут обслуживать три мастера. Выгодно ли принять на работу третьего мастера с точки
зрения общего дохода, получаемого за 1 час работы салона?
X
4
Решение. 1. По условию задачи п - 2, X = 8, |д - 6, р = — = — • С помощью
Ц

3

введенной процедуры находим:
> р (4 / 3 , 2 ) ;

"9
29' 29'29
>

e v a l f (%);

[.3103448276, [.4137931034, .2758620690]]
Следовательно, вероятность отказа Ротк = 0.276, относительная пропускная способность Q = 0.724, абсолютная пропускная способность А —
= 5.792, среднее число занятых мастеров 0.965.
2. Средний доход за один час D = 50А = 299,6 рублей.
3. Замена в процедуре п - 2 на п = 3 дает:
>

р(4/3,3) ;

Ю8 72_ _32_
81
293' 293 ' 293 ' 293
>

evalf(%);

[.2764505119, [.3686006826, .2457337884, .1092150171]]
В этом случае доход, получаемый мастерами за один час:
>

50*8*

evalf(%);

356.3139932
Прием на работу третьего мастера не выгоден, так, как D3 - D2 < 100.

ЛИТЕРАТУРА

1. Аронович А. Б., Афанасьев М. Ю., Суворов Б. П. Сборник задач по исследованию операций. М: Изд-во МГУ, 1997. 256 с.
2. Гмурман В. Е. Руководство к решению задач по теории вероятностей и
математической статистике: Учеб. Пособие для студентов втузов. Изд. 4-е, М.:
ВШ, 1998. 400 с : ил.
3. Дьяконов В. Maple 7: учебный курс. — СПб: Питер, 2002. 672 с, ил.
4. Ефимов А. В., Демидович Б. П. и др. Сборник задач по математике для
втузов. Линейная алгебра и основы математического анализа. — М.: Наука,
1993. 480 с.
5. Ефимов А. В., Демидович Б. П. и др. Сборник задач по математике для
втузов. Специальные разделы математического анализа. — М.: Наука, 1986.
368 с.
6. Калихман И. Л. Сборник задач по математическому программированию.
Изд. 2-е, доп. и перераб. М., «Высшая школа», 1975.
7. Куланин Е.Д. и др. 3000 конкурсных задач по математике. 3-е изд., испр.
и доп. — М.: Рольф, 1999. 624 с, с илл.
8. Рыжиков Ю. И. Решение научно-технических задач на персональном компьютере. — СПб.: КОРОНА принт, 2000. 272 с.
9. Рычков В., Дьяконов В., Новиков Ю. Компьютер для студента. Самоучитель — СПб.: Питер, 2001. 592 с: ил.
10. Самойленко А. М,, Кривошея С. А., Перестюк Н. А. Дифференциальные
уравнения: примеры и задачи. Учеб. пособие. 2-е изд., перераб. — М.: Высш.
шк., 1989. 383 с : илл.
11. Сканави М. И., Егерев В. К., Кордемский Б. А., Зайцев В. В. и др. Сборник задач по математике для поступающих во втузы: Учеб. пособие. Изд. 5-е,
перераб. и доп. — М.: ВШ, 1998. 431 с: ил.
12. Шелобаев С. И. Математические методы и модели в экономике, финансах, бизнесе: Учебное пособие для вузов. — М.: ЮНИТИ ДАНА, 2000. 376 с.

Содержание

Предисловие

3

ГЛАВА 1. ЭЛЕМЕНТАРНАЯ МАТЕМАТИКА

5

§ 1. Основные правила работы в Maple

5

§ 2. Алгебраические преобразования

12

§ 3. Тригонометрические преобразования
§ 4. Алгебраические уравнения
§ 5. Тригонометрические уравнения

18
22
25

§ 6. Неравенства
§ 7. Комплексные числа

29
31

ГЛАВА И. ГЕОМЕТРИЧЕСКИЕ ПОСТРОЕНИЯ
§ 1. Основые построения на плоскости
§ 2. Дополнительные построения на плоскости

34
34
43

§ 3. Геометрические построения в пространстве
§ 4. Сплайн-интерполяция

49
54

ГЛАВА III. ВЫСШАЯ МАТЕМАТИКА
§ 1. Аналитическая геометрия

58
58

§ 2. Линейная алгебра

67

§ 3. Математический анализ

72

§ 4. Поверхностные интегралы
§ 5. Ряды

83
91

ГЛАВА IV. ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ. РЯДЫ ФУРЬЕ
§ 1. Дифференциальные уравнения
§ 2, Геометрические построения, связанные с ОДУ
§ 3. Динамика материальной точки
§ 4. Ряды Фурье

:

ГЛАВА V. ВЕРОЯТНОСТЬ И СТАТИСТИКА. АЛГЕБРА ЛОГИКИ
§ 1, Теория вероятностен
,
§ 2. Математическая статистика
§ 3. Алгебра логики

97
97
105
ПО
117
122
122
129
136

Содержание
ГЛАВА VI. МАТЕМАТИЧЕСКИЕ МОДЕЛИ В ЭКОНОМИКЕ
§ 1. Линейное программирование
§ 2. Матричные игры
§ 3. Транспортная задача
§ 4. Балансовые модели
§
§
§
§

5. Потоки в сетях
6. Сетевое планирование
7. Целочисленное программирование
8. Задача Эрланга

Литература

175
139
139
142
147
152
155
158
163
168
173

Серия «Библиотека студента»

Олег Александрович Сдвижков

Математика на компьютере:
Maple 8

Ответственный за выпуск
В. Митин
Макет и верстка
С. Тарасов
Обложка
Е. Холмский

000 «СОЛОН-Лресс»
123242, г. Москва, а/я 20
Телефоны:
(095) 254-44-10, (095) 252-36-96, (095) 252-25-21
E-mail: Solon-R@coba.ru

ООО «СОЛОН-Пресс»
127051, г. Москва, М. Сухаревская пл., д. 6, стр. 1 (пом. ТАРП ЦАО)
Формат 70x100/16. Объем 11 п. л. Тираж 2000 Заказ № 133
Отпечатано в ООО «Типография ИПО профсоюзов 11 pi »физдат».
109044, Москва, Крутицкий вал, 18.