Компьютерной алгебры maxima



Pdf просмотр
Дата11.04.2017
Размер0.99 Mb.
Просмотров310
Скачиваний0
ТипУчебно-методическое пособие

Казанский (Приволжский) федеральный университет






М.С. МАЛАКАЕВ, Л.Р. СЕКАЕВА, О.Н. ТЮЛЕНЕВА

ОСНОВЫ РАБОТЫ С СИСТЕМОЙ
КОМПЬЮТЕРНОЙ АЛГЕБРЫ MAXIMA
Учебно-методическое пособие






Казань
2012

- 2 -
УДК 510

Авторы-составители:
ст. преп. М.С. Малакаев, канд. физ.- мат. наук, доц. Л.Р. Секаева, канд. физ.- мат. наук, доц. О.Н. Тюленева
Научный редактор, рецензент
Доктор физ.- мат. наук, Е.А. Широкова
Основы работы с системой компьютерной алгебры Maxima:
Учебно-методическое пособие
/
М.С. Малакаев,
Л.Р. Секаева,
О.Н. Тюленева. Казань: Казанский университет, 2012. – 57с.
Данное пособие предназначено для студентов 1-го курса Института геологии и нефтегазовых технологий, содержит описание основных приемов работы с компьютерной программой Maxima для выполнения алгебраических преобразований, символьных вычислений и построения разнообразных графиков.
© Казанский университет, 2012
© Малакаев М.С., Секаева Л.Р., Тюленева О.Н.

- 3 -

Оглавление
§1. Введение. Система компьютерной алгебры Maxima ...................... 4
§2. Ввод простейших команд в Maxima .................................................. 6
§3. Решение задач элементарной математики ....................................... 11
§4. Решение задач линейной алгебры ..................................................... 15
§5. Построение графиков функций ......................................................... 24
§6. Программирование в Мaxima на встроенном макроязыке ............. 37
§7. Вычисление пределов функции ......................................................... 45
§8. Вычисление производных функции .................................................. 47
§9. Задачи для самостоятельного решения ............................................. 53





- 4 -
§1. ВВЕДЕНИЕ.
СИСТЕМА КОМПЬЮТЕРНОЙ АЛГЕБРЫ MAXIMA
Компьютерные программы по математике делят на:
1. Программы, предназначенные для вычислений, которые работают с числовыми выражениями (например, Excel). Их результаты, обычно, бывают приближенными, они оперируют с вещественными числами, представленными в виде бесконечных десятичных дробей, поэтому при вычислениях происходит их округление.
2. Программы, которые наряду с математическими вычислениями и построением графиков, проводят символьные преобразования, вычис- ления в символьном виде, например, производных или первообразных заданной функции, находят корни различных уравнений и систем уравнений и т.д. такие программы называют – «системы компьютер-
ной алгебры» (например, Mathematica, MatLab, Maxima и т.п.).
Мы познакомимся системой компьютерной алгебры Maxima.
Основными преимуществами программы являются:
1. Возможность свободного использования (Maxima относится к классу свободных программ и распространяется на основе лицензии GNU).
GNU General Public License(Универсальная общедоступная
лицензия GNU или Открытое лицензионное соглашение GNU) наиболее популярная лицензия на свободное программное обес- печение, созданная в 1988 г. Её также сокращённо называют
GNU GPL или даже просто GPL. Эта лицензия предоставляет пользователям компьютерных программ следующие права:

- 5 -
1) свободу запуска программы, с любой целью;
2) свободу изучения того, как программа работает, и её модифи- кации;
3) свободу распространения копий;
4)свободу улучшения программы, и выпуска улучшений в пуб- личный доступ;
2. Возможность функционирования под управлением различных ОС (в частности Linux и Windows);
3. Небольшой размер программы (дистрибутив занимает порядка 23 ме- габайт, в установленном виде со всеми расширениями потребуется око- ло 80 мегабайт);
4. Maxima имеет удобный графический интерфейс (wxMaxima) на рус- ском языке, а также есть возможность работать в режиме командной строки.
5. Maxima дает возможность решать широкий класс задач.
Недостаток: отсутствие справки на русском языке, но в сети Ин- тернет присутствует большое количество статей с примерами исполь- зования Maxima;
В Maxima сейчас принят такой же принцип нумерации версий, как и в ядре Linux: номер состоит из трёх чисел, разделённых точками, при- чём номера с нечётным средним числом соответствуют так называемым разрабатываемым версиям, с чётным – к стабильным версиям.
Установить последнюю версию программы на свой компьютер можно с ее сайта в сети Интернет: http://maxima.sourceforge.net/
. Рус- ская локализация сайта: http://maxima.sourceforge.net/ru/

- 6 -
§2. ВВОД ПРОСТЕЙШИХ КОМАНД В MAXIMA
После запуска Maxima появляется окно программы, в верхней гра- фической части окна интерфейса указано, какая загружена версия.
Попробуем набрать несколько команд.
Разделителем команд является символ “ ; ” ( в ранних версиях
Maxima и некоторых ее оболочках наличие точки с запятой после каж- дой команды строго обязательно, поэтому рекомендуется добавлять ; после каждой команды).
После ввода команды необходимо нажать клавиши Shift и Enter для ее обработки и вывода результата.
После ввода каждой команде присваивается порядковый номер
(%i1)
,
(%i2)
,
(%i3)
и т.д. Результаты вычислений имеют соответственно порядковый номер
(%o1)
,
(%o2)
и т. д. Где "
i
" –сокращение от англ. input (ввод), а "
o
" – англ. output (вывод).
Это позволяет при дальнейшей записи команд сослаться на ранее записанные, например
(%i1)+(%i2)
будет означать добавление к выра- жению первой команды выражения второй с последующим вычислени- ем результата. Также можно использовать и номера результатов вычис- лений, например, таким образом
(%o1)*(%o2)
Используемые обозначения для ввода команд.
Ввод числовой информации
Правила ввода чисел в Maxima точно такие, как и для многих дру- гих подобных программ.

Целая и дробная часть десятичных дробей разделяются симво- лом точка.

- 7 -

Перед отрицательными числами ставится знак минус.

Числитель и знаменатель обыкновенных дробей разделяется при помощи символа / (прямой слеш).
Обратите внимание, что если в результате выполнения операции получается некоторое символьное выражение, а необходимо получить конкретное числовое значение в виде десятичной дроби, то решить эту задачу позволит применение оператора numer.
В частности он позволя- ет перейти от обыкновенных дробей к десятичным.

Константы
В Maxima для удобства вычислений есть ряд встроенных констант:
Название
Обозначение
π (число Пи)
%pi e (экспонента)
%e
+∞ (плюс бесконечность) inf
-∞ (минус бесконечность) minf
Комплексная бесконечность infinity
Мнимая единица (
√ )
%i
Истина true
Ложь false


- 8 -
Арифметические операции
Для обозначения арифметических операций в Maxima используются математические знаки: «+» - сложение, «–» - вычитание, «*» - умноже- ние, «/»- деление.
Возведение в степень можно обозначать тремя способами: ^ , ^^ , **.
Извлечение корня степени n записывают, как степень ^^(1/n).
Напомним еще одну встроенную в Maxima полезную операцию – нахождение факториала числа. Эта операция обозначается восклица- тельным знаком.
Например, 6!=1. 2. 3. 4. 5. 6=120.
Для увеличения приоритета операции, как и в математике, при за- писи команд для Maxima используют круглые ( ) скобки.
Переменные
Для хранения результатов промежуточных расчетов применяются переменные. Заметим, что при вводе названий переменных, функций и констант важен регистр букв, так переменные x и X – это две разные переменные. Присваивание значения переменной осуществляется с ис- пользованием символа
: (двоеточие),
Например, x: 5- «переменной х присвоено значение 5» или b: a^2+3-
«переменная b будет иметь значение равное а
2
+3».

- 9 -
Если необходимо удалить значение переменной (очистить ее), то применяется метод kill
: kill(x)
– удалить значение переменной x; kill(all)
– удалить значения всех используемых ранее переменных.
Кроме того, kill начинает новую нумерацию для исполняемых команд.
Математические функции
В Maxima имеется достаточно большой набор встроенных матема- тических функций. Для записи функции необходимо указать ее назва- ние, а затем, в круглых скобках записать через запятую значения аргу- ментов.
Например, sin(x);
Следует иметь в виду, что некоторые названия функций отличаются от названий, используемых в отечественной литературе:
Функции
Обозначение
Тригонометрические sin(x) (синус), cos(x) (косинус), tan(x) (тангенс), cot(x) (котангенс), sec(x) (секанс,
), csc(x) (косеканс,
).
Обратные тригонометрические asin(x) (арксинус), acos(x) (арккосинус), atan(x) (арктангенс), acot(x) (арккотангенс).

- 10 -
Гиперболические sinh(x) (гиперболический синус), cosh(x) (гиперболический косинус), tanh(x) (гиперболический тангенс), coth(x) (гиперболический котангенс), sech(x) (гиперболический секанс), csch(x) (гиперболический косеканс).
Натуральный логарифм,
Остаток от деления
Квадратный корень
Модуль log(x) mod(x) sqrt(x) abs(x)
Минимальный элемент из списка min(x1,x2,…,xn)
Максимальный элемент из спис- ка max(x1, x2,…,xn)

Пользовательские функции
Пользователь может задать собственные функции. Для этого снача- ла указывается название функции, в скобках перечисляются названия аргументов, после знаков := (двоеточие и равно) следует описание функции. После задания пользовательская функция вызывается точно так, как и встроенные функции Maxima.
Пример.


- 11 -
Как записать число
и e


§3. РЕШЕНИЕ ЗАДАЧ
ЭЛЕМЕНТАРНОЙ МАТЕМАТИКИ
К таким задачам можно отнести

вычисление и преобразование арифметических выражений,

построение графиков функций,

решение уравнений и систем алгебраических уравнений.

Упрощение выражений
Рассмотрим возможности Maxima по упрощению и прочим преоб- разованиям выражений. В частности, речь пойдет

об автоматическом раскрытии скобок и вынесении за скобки;

oб упрощении как арифметических действий над некоторыми элементами, так и выражений с участием степенных, показа- тельных и логарифмических функций;

об обработке тригонометрических выражений.
Все эти функции призваны облегчать читаемость математических фор- мул и повышать простоту их восприятия.

- 12 - rat
эта функция преобразовывает рациональное выражение к так называемой канонической форме, то есть раскрывает все скобки, затем приводит все к общему знаменателю, суммирует и сокращает; кроме того, приводит все числа в конечной десятичной записи к рациональ- ным.
Если требуется вычислить числовое значение, полученного выра- жения, то можно применить функцию at
, указав в скобках выражение или его адрес и значение переменной. divide
– нахождение частного и остатка от деления одного многочлена на другой
Первый элемент полученного массива – частное, второй – остаток от деления. factor
– разложение на множители

- 13 - expand
– раскрытие скобок gcd
– наибольший общий делитель многочленов ratsimp
– упрощение выражения fullratsimp(выражение)
– применяется для более серьезных упрощений.
Она последовательно применяет к переданному выражению функцию ratsimp
, а так же некоторые нерациональные преобразования, до тех пор, пока выражение не перестанет упрощаться.

- 14 - partfrac
– преобразуeт в простые дроби по заданной переменной
Пусть дано выражение radcan
– преобразует выражения, содержащие логарифмические, пока- зательные и степенные функции.
Иногда требуется последовательно несколько раз применить функ- цию radcan
.
Для упрощения тригонометрических выражений применяется при- ставка trig
. Для наилучшего результата ее можно комбинировать с функциями ratsimp
, fullratsimp
, radcan и другими.

- 15 - trigsimp
– тригонометрическое упрощение

trigexpand
– тригонометрическое раскрытие скобок. Использует форму- лы преобразования сумм двух углов для представления введенного вы- ражения в как можно более простом виде – где в качестве аргумента только одна переменная

§4. РЕШЕНИЕ ЗАДАЧ ЛИНЕЙНОЙ АЛГЕБРЫ
Для задания матрицы используется функция matrix
:
Командой
(%i1)
записывается матрица
15 2
7 10







и в строке
(%o1)
записан ответ
15 2
7 10







Интерфейс wxMaxima достаточно удобен и не требует умения за- поминать и безошибочно вводить длинный текст для вызова функции

- 16 - matrix
. Достаточно лишь заполнить вспомогательные формы.

Исполь- зуя меню, щелкнуть по кнопкам «
Алгебра → Enter Matrix…
». При этом появится окно, которое необходимо заполнить, щелкнуть по команде
«ОК»,

далее появится следующее окно, которое нужно заполнить и по коман- де «ОК» получим результат
В этих примерах были определены две квадратные матрицы: вто- рого и третьего порядка.

- 17 -
Действия с матрицами
Рассмотрим основные действия с матрицами на примере. Для это- го зададим две матрицы: A и B.
Поэлементное сложение, вычитание, умножение матриц на число.
Умножение матриц
Вычисление матрицы, обратной данной

- 18 -
Так же обратную матрицу можно получить с помощью функции invert

Функции для работы с матрицами
determinant
– нахождение определителя матрицы eigenvalues
– нахождение собственных значений матрицы minor
– определяет минор матрицы. Первый аргумент – матрица, вто- рой и третий – индексы строки и столбца соответственно rank
– ранг матрицы submatrix
– возвращает матрицу, полученную из исходной удалением соответствующих строк и (или) столбцов. В качестве параметров сле- дуют номера удаляемых строк, исходная матрица, номера удаляемых столбцов.

- 19 - transpose
– транспонирование матрицы

Решение систем линейных алгебраических уравнений
Рассмотрим различные способы решения систем.

Метод Крамера
Пример. Решить систему линейных алгебраических уравнений ме- тодом Крамера:
2 10 15,
2 4
12,
3 9.
x
y
z
x
y
z
x
y
z


 



 


 


Решение.
Вычислим основной определитель системы:

- 20 -
Командой
(%i1)
записываются коэффициенты при неизвестных
x
,
y
,
z
и вычисляется этот определитель, в строке
(%o1)
записан определитель
1 2 10 2
4 1
1 1
3












и получен ответ в строке
(%o2)
21
D
 
Так как
21 0
D
  
, то система имеет единственное решение. Что- бы получить его, необходимо вычислить дополнительные определители
x
D
,
y
D
,
z
D
и используя формулы Крамера
x
D
x
D

,
y
D
y
D

,
z
D
z
D

найти неизвестные
x
,
y
,
z
Вычислим дополнительные определители.
Командой
(%i3)
задается определитель
x
D
, составленный следующим образом:
- первая строка записывается на основе коэффициентов первого уравнения системы, взятых в следующем порядке: свободный член, коэффициент при неизвестном
y
, коэффициент при неизвестном
z
,
- вторая и третья строки записываются аналогично из коэффици- ентов второго и третьего уравнений соответственно.
В строке
(%o4)
вычисляется определитель
21
x
D
 
, в строке
(%o5)
находим неизвестную
1
x


- 21 -
Командой
(%i6)
записывается определитель
y
D
, составленный следующим образом:
- первая строка (из первого уравнения) – коэффициент при неизвестном
x
, свободный член, коэффициент при неизвестном
z
,
- вторая и третья строки записываются аналогично (из второго и третьего уравнения).
В строке
(%o7)
вычисляется дополнительный определитель
42
y
D
 
, в строке
(%o8)
находим неизвестную
2
y

Командой
(%i9)
записывается определитель
z
D
, составленный следующим образом:
- первая строка (из первого уравнения) – коэффициент при неизвестном
x
, коэффициент при неизвестном
y
, свободный член,
- вторая и третья строки записываются аналогично.

- 22 -
В строке
(%i10)
вычисляется дополнительный определитель
42
y
D

, в строке
(%i11)
находим неизвестную
2
z
 
Ответ:


1; 2; 2

Чтобы не набирать команды вручную можно используя меню про- вести действия, описанные выше «щелкнуть по кнопкам «
Алгебра →
Enter Matrix…
». При этом появится окно, которое необходимо запол- нить, щелкнуть по команде «ОК»…»

Решение системы линейных алгебраических уравнений с по-
мощью обратной матрицы
Пример. Решить систему линейных алгебраических уравнений с помощью обратной матрицы:
2 3
4 21,
4 2
3 42,
3 4
2 21.
x
y
z
x
y
z
x
y
z




   

   

Решение.
Командой
(%i12)
записывается матрица А – матрица, составленная из коэффициентов при незвестных
x
,
y
,
z

- 23 -
Командой
(%i13)
записывается матрица В – матрица, составленная из свободных членов.
Командой
(%i14)
записывается матрица, обратная данной матрице А.
Командой
(%i15)
обратная матрица умножается на матрицу В.
Ответ:


11; 5; 4
 


Методом Гаусса
Пример. Решить систему линейных алгебраических уравнений ме- тодом Гаусса
2 8
14,
2 4
7 13,
5 3
4 2.
x
y
z
x
y
z
x
y
z









    

Решение.
Введем расширенную матрицу A

- 24 - и приведем ее к треугольному виду решим, получим искомые значения
Ответ:
22 4
5
;
;
21 21 3









Любую из трех выше приведенных систем можно с помощью ко- манды solve solve([уравнение1, уравнение2, …],[переменная1, переменная2, …]).
Пример:
Ответ:
22 4
5
;
;
21 21 3








§5. ПОСТРОЕНИЕ ГРАФИКОВ ФУНКЦИЙ
В математике удобно полученное решение выводить в графиче- ском виде. Система компьютерной математики Maxima может строить графики двумерных и трехмерных функций, заданных в явном виде, в параметрическом виде, в виде таблицы.

- 25 -
Рассмотрим основные графические функции. В Maxima имеется не- сколько альтернативных библиотек для отображения графиков функ- ций. По умолчанию используется библиотека
Plot
. Также для решения некоторых задач используются библиотеки
Draw
Построение графиков функций, заданных в явном виде
Для построения двумерных графиков используются функция plot2d([y1, y2], [x,a,b],[y,c,d])
Первый аргумент – список функций, второй и третий – ограничения по осям координат. Третий аргумент является необязательным. Если его не указать – он будет подобран автоматически.
Чтобы не вводить длинный вызов функции plot2d со всеми её пара- метрами, заполним вспомогательные формы для построения графика.
Для этого в меню выбираем команду «
Графики → Plot2d
…» После вы- полнения данной команды появляется окно с формой, которую необхо- димо заполнить.
В первой строке необходимо ввести уравнение функции или назва- ние функций, если функция была задана ранее. Если функций несколь-

- 26 - ко, то они отделяются запятыми. Графики в этом случае автоматически нарисуются разными цветами.
При помощи кнопки
Дополнительно
можно выбрать либо парамет- рический (функция задана параметрическом виде), либо дискретный график (функция задана по точкам). Во второй строчке формы задается диапазон изменения переменной x (можно поменять на другое назва- ние, например t). В строке
Формат
можно выбрать один из методов по- строения графиков функций. В поле
Опции можно выбрать некоторые параметры графика.
Возможные
Форматы
:
I)
встроенный
– график нарисуется в том же окне, что и командная строка.
II)
gnuplot
– график нарисуется в отдельном окне, и его можно масштабировать (изменять размеры за счет изменения размеров окна).
При движении мышки внизу слева отображаются координаты положения указателя.
III)
openmath
– в этом формате график может видоизменяться в интерактивном режиме, в частности его можно масштабировать не только за счет изменения размеров окна, но и с помощью кнопок.
IV)
по-умолчанию
– построением графиков занимается gnuplot
Возможные
Опции
:
I)
set zeroaxis
;
– проводит оси через начало координат,
II)
set grid;
– прорисовывает сетку,
III)
set size ratio 1;
– выравнивает масштабы по осям координат, чтобы круг на мониторе выглядел круглым, а не в виде овала. Отметим, что

- 27 - последнее обстоятельство связано с тем, что разрешение монитора по горизонтали и по вертикали разное (пиксель не является «круглым»).
Пример. Построить графики функций на отрезке
[-4 π;4π].



Построение графиков функций, заданных в параметрическом виде
Для построения графика параметрически заданной функции используется команда plot2d([parametric, x-выражение, y-выражение, [t, t1, t2],
[nticks, количество]]); где x-выражение и y-выражение задают зависимость вида x=x(t), y=y(t), где t – переменная параметризации; [t, t1, t2] задает отрезок, в пределах которого параметр t будет изменяться; nticks задает количество кусочков, на которые будет разбит интервал изменения параметра при построении графика.

- 28 -
Для удобства набора команды достаточно заполнить две формы: после щелчка по кнопке «
Графики → Plot2d
» появляется окно диалога Двумерный график, затем нажимаем на кнопку
Дополнительно, на этой форме появляется второе окно
Параметрический график
Пример. Построить окружность единичного радиуса.
{
[

- 29 -
После выполнения этой команды на мониторе появляется эллипс, а не окружность. Чтобы этого не происходило необходимо использовать опцию set size ratio 1; которая выравнивает масштабы по осям коорди- нат. Тогда в результате получим
Для построения на одном рисунке двух параметрических графиков, нужно сначала построить первый график. Затем в графической части окна надо щелкнуть на тексте–вызове plot2d(['param...
первого графика, а потом щелкнуть по кнопкам «
Графики → Plot2d
» и
Дополнительно
После заполнения сведений о втором графике на одном рисунке по- явятся два графика. Графики автоматически будут нарисованы разными цветами.
Пример. Построить два графика на одном рисунк
{
и {
[


- 30 -
Построение дискретных функций
Maxima может рисовать графики функций, заданных таблично. Для этого ей нужны два списка: один – для значений абсцисс дискретных точек, второй – для значений ординат этих точек. Командная строка в этом случае выглядит так wxplot2d([['discrete, [x1,x2,x3,x4], [y1,y2,y3,y4]]], [x,a,d],
[style,[points,3,2,6]]);

Стили бывают: точечный график (
points
), сплошная линия (
lines
) и линии с точками (
linespoints
).
[points,3,2,6]
означает следующее
3 – толщина маркеров;
2 – номер цвета;
6 – тип маркера.
[lines,2,1]
означает следующее

- 31 -
2 – толщина линии;
1 – цвет линии.
[linespoints,1,2,3,4]
означает следующее
1 – толщина линии;
2 – толщина маркеров;
3 – номер цвет;
4 – тип маркера.
Предусмотрено 13 типов маркеров: 1– заполненные кружочки; 2 – не- заполненные кружочки; 3 – знак +; 4 – крестик; 5 – звездочка; 6, 7– за- полненный и незаполненный квадратик; 8, 9 – заполненный и незапол- ненный треугольник; 10,11 – повернутые заполненные и незаполненные треугольник; 12,13 – заполненные и незаполненные ромбик.
Для удобства набора команды можно заполнить две формы: после щелчка по кнопке «
Графики → Plot2d
…» появляется окно диалога
Двумерный график, затем нажимаем на кнопку
Дополнительно
, на этой форме появляется второе окно
Дискретный график

- 32 -
Пример. Построить пятиконечную звезду


Графики в полярной системе координат
Если использовать две окружности с одинаковыми радиусами и вращать одну вокруг другой, то получится
кардиоида (греч. кардиа – сердце). По мне- нию математиков, получаемая кривая напо- минающая сердце.
В прямоугольной декартовой системе координат уравнение кардиоиды имеет сложный вид
(x
2
+ y
2
ax)
2
= a
2
(x
2
+ y
2
).
Но в полярной системе координат уравнение кардиоиды имеет простой вид
ρ = a + a cos t, где ρ – расстояние от точки кривой до начала координат, t– полярный угол, a – диаметр окружности.

- 33 -
В Maxima графики в полярной системе координат рисует функция draw2d()
;
но, прежде чем пользоваться этой функцией, нужно дополни- тельно загрузить этот модуль оператором load(draw).
Пример. Построить кардиоиду



Графики функций, заданных неявно
В системе Maxima есть специальная команда, которая позволяет строить графики функций, заданных неявно. Ее синтаксис: implicit_plot (выражение, x_range, y_range) implicit_plot ([выражение1, выражение2, ...], x_range, y_range) где выражение – это уравнение, задающее неявную функцию, x_range и y_range – промежутки изменения переменных x и y.

- 34 -
Для того, чтобы можно было использовать функцию implicit_plot
, необходимо подключить пакет, содержащий эту функцию, с помощью команды load(implicit_plot)
Пример. Построить окружность единичного радиуса


Точки пересечения кривых
Чтобы найти точки пересечения кривых необходимо решить систе- му уравнений, составленную из уравнений этих кривых. В Maxima для этого можно использовать команду solve([уравнение1,уравнение2, …],[переменная1, переменная2, …]).
Пример. Найти точки пересечения окружности x
2
+ y
2
=4 и прямой x + y =2.

Построим графики окружности и прямой, чтобы убедиться в том, что решение существует. Окружность удобно задать в параметрическом виде

- 35 -
Из графика видим, что решением исследуемой системы уравнений яв- ляются координаты 2 точек. Теперь решаем систему
Здесь в качестве решения возвратились координаты точек пересечения.

Построение трёхмерных графиков
Основная команда для построения трёхмерных графиков – plot3d

- 36 -
Трехмерные графики удобно строить в параметрическом виде. Для этого используется библиотека
Draw
:
Пример: Построим параболоид вращения
В параметриче- ском виде уравнение параболоида имеет вид:
{
[ ].
-2
-1 0
1 2
3 -3
-2
-1 0
1 2
3 0
1 2
3 4
5 6
7 8
9

- 37 -
§6. ПРОГРАММИРОВАНИЕ В MAXIMA
НА ВСТРОЕННОМ МАКРОЯЗЫКЕ
В Maxima можно программировать. Рассмотрим основные операто- ры.
Ветвление
Обеспечивает в зависимости от результата проверки условия (да
или нет) выбор одного из альтернативных путей работы алгоритма.
Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.
Виды ветвлений:
Условный оператор в Maxima имеет вид if условие then действие1 else дей-
ствие2;
Если условие истинно, то выполняется выражение действие1, иначе – выпол- няется выражение действие2
if условие then действие;
Если условие истинно, то выполняется вы- ражение

действие.
условие
действия 1
действия 2 условие
действия

- 38 - if условие1 then действие1 else if условие2 then действие2 else if...else действиеN
Если выполняется условие 1, то вы- полняется выражение действие1, иначе – проверяется условие2, и ес- ли оно истинно – выполняется вы- ражение действие 2, и т.д. Если ни одно из условий не является истин- ным – выполняется выражение действиеN.
Пример: Построить графики функций
3
x
y

и







0
,
2
,
0
,
2
x
x
x
x
y

-6
-4
-2 0
2 4
6
-3
-2
-1 0
1 2
3
y x
f g
условие
условие
условие
действия 1
действия 2
действия N

- 39 -
Цикл
Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла.
Виды циклов.

Цикл «для»
Оператор цикла в Maxima
Для выполнения итераций используется оператор do for i: i1 step i2 thru i3 do тело цикла;
Здесь i – переменная цикла; i1 – начальное значение; i2 – шаг (по умолчанию равен 1); i3 – конечное значение переменной цикла; тело
цикла - операторы тела цикла. i1, i2, i3 и тело цикла могут быть произ- вольными выражениями. Ключевое слово thru указывает, что заверше- ние цикла происходит при достижении переменной цикла значения i3;

Цикл «пока»
(предписывает выполнять тело цикла до тех пор, пока выполняется условие) for i: i1 step i2 while условие do тело цикла
Ключевое слово while указывает, что цикл выполняется, пока выполняется условие.
i=i1,i2,i3
тело цикла
тело цикла
условие

- 40 -

Цикл «до»
(предписывает выполнять тело цикла до тех пор, пока не будет выполняться некоторое условие) for i: i1 step i2 unless условие do тело цикла
Ключевое слово unless указывает на то, что цикл выполняется, пока не будет достигнуто
условие.
При нормальном завершении цикла на экран возвращается done
Принудительный выход из цикла осуществляется при помощи операто- ра return
, который может возвращать произвольное значение.
Пример: Задать первые 5 членов арифметической прогрессии, где
a
1
=-4 с шагом 5.
Пример: Вычислить сумму всех чисел от 1 до 10
Чтобы полноценно использовать в Maxima циклы необходимо вве- сти следующие понятия: список и массивы.
тело цикла
условие

- 41 -
Списки
Списки – базовые строительные блоки для Maxima. Чтобы создать список необходимо в квадратных скобках записать все его элементы через запятую. Список может быть пустым или состоять из одного эле- мента.
Пример:
Элементом списка может и другой список
Чтобы вывести на экран один из элементов списка нужно записать имя списка, а затем в квадратных скобках указать номер интересующего элемента:




- 42 -
Массивы
Массивы – это упорядоченная последовательность величин (эле- ментов массива), обозначаемая одним именем. Прежде чем создать массив его нужно описать с помощью функции

array array (name, dim_1, ..., dim_n)
array (name, type, dim_1, ..., dim_n)
array ([name_1, ..., name_m], dim_1, ..., dim_n)
Здесь name – это имя массива, dim_1, ..., dim_n – размерность массива.
Порядковый номер элемента называется индексом. Индексы эле- ментов обычного массива - целые числа, изменяющиеся от 0 до dim_i.

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

- 43 -
В некоторых задачах бывает необходимо массив преобразовать в список, для этого используется функция listarray

:
Пример:
Найти максимальный элемент в каждом столбце матрицы a(3,3)
Решение:
Для решения данной задачи в программе необходимо описать два массива:

двумерный массив а(3,3)это заданный массив,

одномерный массив b(3) в него будем записывать максималь- ные элементы каждого столбца.
Затем нужно ввести элементы массива а(3,3)

Для нахождения максимального элемента по столбцам необходим двойной цикл (вложенный). Внешний цикл с переменной k будет перебирать столбцы, а во внутреннем цикле с переменной i будут сравнивать элементы столбца между собой для поиска наибольшего.

- 44 -

Пример:

Протабулировать функцию:
f (x) := x sin(2x); x
[0;π ] с шагом h=0.1π и по точкам построить график функции.
Решение: Сначала нужно описать массивы x и y при помощи функции array
Если отрезок x
[0;π ] пробегать с шагом h=0.1π, то получиться
11 точек. Определяем диапазон изменения индекса i узлов сетки:
i=0, 1, 2, 3, 4, 5, 6, 7, 8,9, 10.
Значения этих массивов вычисляются в цикле for:
Для просмотра значений массивов используется функция listarray(x).


- 45 -
На одном рисунке построим два графика: один точечный – результат табуляции, а второй непрерывный – график явно заданной функции.
§7. ВЫЧИСЛЕНИЕ ПРЕДЕЛОВ ФУНКЦИИ

Предел функции f (x) при x → a вычисляется в Maxima с помощью оператора limit(f (x), x, a);
Пример: Вычислить
x
x
x
sin lim
0

Командой
(%i1)
находится предел от функции
x
x
sin при x →0 и в стро- ке
(%o1)
записан ответ 1.

- 46 -
Возможен другой вариант ввода команды интегрирования. Исполь- зуя меню, щелкнуть по кнопкам «
Анализ→Find Limit
». Появится окно, которое нужно заполнить и по команде «ОК» получить результат.

Примеры: Вычислить пределы функций
x
x
e


lim
,
x
x
e


lim
,
x
x
e


lim
,
2 2
3
lim
2 3
1






x
x
x
x
x

- 47 -
С помощью Maxima можно вычислять односторонние пределы, для этого опять зайдем в меню в «
Анализ→Find Limit
». В появившемся окне в строке направление нужно выбрать
§8. ВЫЧИСЛЕНИЕ ПРОИЗВОДНЫХ ФУНКЦИИ
Производная функции f(x) вычисляется с помощью оператора diff(f(x), x, n);
. Здесь n – это порядок производной.
Пример: Вычислить производную функции


x
x
arcsin sin

- 48 -
Возможен другой вариант ввода команды интегрирования. Исполь- зуя меню, щелкнуть по кнопкам «
АнализDifferentiate
». Появится ок- но, которое нужно заполнить и по команде «ОК» получить результат.

C помощью функции diff

можно вычислять частные производные функции многих переменных: diff(f(x,y), x, n, y, m);
Здесь n – это порядок производной по переменной x, m– это порядок производной по переменной y.
Примеры:
Вычислить следующие производные
)
(
8 7
3 2
5
y
x
dy
dx
d
и
)
3
(
2 2
2 2
y
x
xy
dx
d


- 49 -

Приложение производных
I. Нахождение точек экстремума функции.
При решении подобных задач следует придерживаться предлагае- мой схемы:
1. Изобразить рассматриваемый объект.
2. Вычислить первую производную функции, приравнять ее к нулю, решить полученное уравнение, т.е. найти критические точки функ- ции.
3.Вычислить вторую производную функции в каждой из критиче- ских точек. По знаку второй производной определить, какая из то- чек является максимум, а какая минимумом функции.
4. Записать координаты этих точек.
Примеры: 1.Найти экстремумы функции
)
1
(
3

x
x
Решение: Зададим функцию и построим график

- 50 -
Найдем первую производную данной функции, приравняем к нулю и решим уравнение:
В результате решения уравнения получились две точки, которые явля- ются критическими.
Вычислим вторую производную и посчитаем ее значение в критических точках

- 51 -
В точке x=
вторая производная больше нуля, значит это точка мини- мума, в точке x=1 вторая производная равна нулю, значит, это точка перегиба.
Сравним с графиком, построенным ранее. Действительно на графи- ке есть точка минимума и точка перегиба.
Найдем значение функции в этих точках:
Ответ: Точка





 
256 27
,
4 1
является точкой минимума.
2.
Найти экстремумы функции двух переменных
2 2
2 2
(3
)
x
y
z
e
x
y
 


Решение: Зададим функцию
Найдем стационарные точки, в которых выполняется необходимое условие экстремума функции:
В результате получено пять точек. Для каждой из них проверим вы- полнение достаточного условия экстремума. Проделаем это только для точки (1,0).

- 52 -
Так как значение определителя в этой точке положительно, а значение
2 2
(1,0)
0
z
x



, то точка (1,0) является точкой максимума и max
3
z
e

.
Сравним с графиком, построенным ранее.
3.
Ответ: Точка





 
256 27
,
4 1
является точкой минимума .
-3
-2
-1 0
1 2
3-3
-2
-1 0
1 2
3 0
0.2 0.4 0.6 0.8 1
1.2
z
(y^2+3*x^2)*%e^(-y^2-x^2)
x y
z

- 53 -
§9. ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
1.Вычислить произведение матриц AB а)
,
0 4
5 6
1 7
3 1
,
11 3
1 2
1 0
3 1
5 1
2 2


























B
A
в)
,
3 3
0 2
1 1
2 3
,
9 4
6 3
10 5
6 2
13 2
6 3



























B
A
б)
,
0 2
4 9
1 0
2 1
,
8 4
5 3
11 5
3 2
6 1
2 4



























B
A
г)
,
0 1
3 4
1 4
0 2
2
,
4 5
3 2
3 2
1 2
5

























B
A
2.
Вычислить обратную матрицу а)
,
0 2
7 2
3 1
1 2
3













A
б)
,
3 1
4 6
3 8
1 1
1















A
в)
,
2 2
4 1
1 2
2 1
3
















A
г)
1 5
1 3
1 2
2 4
3













A
3. Найти решения методом Крамера или с помощью обратной матрицы а)















,
9 3
,
12 4
2
,
15 10 2
z
y
x
z
y
x
z
y
x
б)














,
8 7
2
,
5 4
3 4
,
4 2
z
y
x
z
y
x
z
y
x
в)
















,
4 3
4
,
3 3
2 3
,
2 3
2
z
y
x
z
y
x
z
y
x
г)















16 4
3
,
5 5
,
9 2
3 2
z
y
x
z
y
x
z
y
x

- 54 -
4.
Методом Гаусса решить следующие системы уравнений a)














,
12 6
5
,
2 4
2
,
8 2
3
z
y
x
z
y
x
z
y
x
б)














,
8 3
5 6
,
1 2
3
,
6 4
z
y
x
z
y
x
z
y
x
в)














,
4 4
2
,
2 3
,
6 2
3
z
y
x
z
y
x
z
y
x
г)














3 4
5 4
,
5 3
,
8 3
8 5
z
y
x
z
y
x
z
y
x
5. Вычислить определители а)
1 2
5 2
2 0
0 1
4 1
2 3
1 0
1 2



, б)
,
1 2
5 4
2 0
0 1
1 4
2 0
0 2
3 1




в)
,
1 2
5 2
2 0
0 3
4 1
2 4
1 0
1 0



г)
1 2
3 4
2 0
0 1
1 4
1 0
0 2
3 4




6. Решить системы а)
1 2
3 4
1 2
3 4
1 2
3 4
1 2
3 4
0,
2 2
3 3
15,
9 9
4 4
5,
3 3
2 2
15.
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
  




















б)
1 2
3 4
1 2
3 4
1 2
3 4
1 2
3 4
1,
4 4
4,
16 16 6,
16 16 4
4 7.
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x

 



 

 



 
 







в)
{
г)
{

- 55 -
7. Построить графики функций a)




3 2
1 4
2




x
x
x
y
, б)
2 3
8
x
x
y


, в)




3 2
1 4
3




x
x
x
y
, г)
2 1
2




x
x
x
y
, д)
,
3 6
2




x
x
x
y
e)
,
6 2
2



x
x
y
ж) cos tg
y
x
x


, з) ctg sin
y
x
x


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







),
cos
1
(
2
),
sin
(
2
t
y
t
t
x





,
sin
3
,
cos
3
t
y
t
x
в) параболу г) прямую






,
2 1
,
t
y
t
x







2 1
,
2
t
y
t
x
9. Построить графики функций в полярной системе координат а) окружность б) улитку Паскаля
,
3

r
l
a
r



cos
, в) логарифмическую спираль г) архимедову спираль



2 0
q
r

,

k
r

, при k=1, 3, 5; где
q
- коэффициент роста, д) полярную розу е) кардиоиду
,
3
sin
2


r
)
1
(cos
2



a
r
, при а=1, 3.

- 56 -
7. По точкам с шагом
8



построить кривую, заданную в полярной системе координат в промежутке


2 0


а)
,
cos
2 6



r
б)
,
2
sin
2 2


r
в)
,
cos
2 1



r
г)
2
cos
4 2


r
8. Построить трехмерный график функции a) конус б) цилиндр








,
sin
3
,
cos
3
s
z
t
s
y
t
s
x








,
sin
2
,
cos
3
s
z
t
y
t
x
в) эллипсоид г) гиперболоид








cos
2
,
sin sin
3
,
sin cos
3
s
z
s
t
y
s
t
x








sin ch
3
,
sh
2
,
cos ch
3
s
s
z
t
y
s
t
x
9. Построить а)
2
,
0
, 0 2 ,
1,
2
x
x
y
x
x
x
x





 

 


б)
,
4
,
3 4
0
,
1 0
,
3













x
x
x
x
x
x
y
в)
,
2
,
2 2
0
,
0 0
,
1












x
x
x
x
x
y
г)
2
,
0 2
0
,
0
,
sin










x
x
x
x
x
y
10. Найти максимальный элемент, стоящий на главной диагонали мат- рицы А(5,5).
11. Найти сумму элементов матрицы А(5,5).

- 57 -
12. Найти произведение минимальных элементов каждого столбца мат- рицы А(5,5).
13. Найти максимальный элемент, находящийся выше главной диагона- ли матрицы А(5,5).
14. Вычислить пределы a)
2 6
5 1
10
lim
2 2






x
x
x
x
x
, б)
10 7
6
lim
2 2
2






x
x
x
x
x
, в)
7 3
2
lim
7




x
x
x
, г)
2 2
0 3
5
sin lim
x
x
x

, д)
x
x
x
3 5
1
lim





 


, е)











49 1
2 7
2
lim
2 7
x
x
x
x
15. Вычислить все производные с первого до десятого порядка a)
,
1 2
x
x
y


б)


,
3 1
2 2
x
tg
y


в)


,
1
ln
2
x
x
y



г)
,
3 5
sin
2
x
y

д)


x
x
y
arcsin sin

16. Найти экстремумы функций и записать уравнения асимптот а)
12 3
12 2
2



x
x
y
, б)


,
3 2
4 2



x
x
y
в)
2 3
1 2
x
x
y


, д)


2 2
1


x
x
y
17. Найти экстремумы функции двух переменных а)
,
1 6
4 2
2 2





x
xy
y
x
z
б)
3 6
2
y
x
xy
x
z







Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал