Материал может быть использован при подготовке демонстрации учащимя возможностей системы с НОВЫМ графичеким интерфейсом wx. Материал собран очень лаконично.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Моделирование фракталов в СКМ MAXIMA»
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«Мордовский государственный
педагогический институт имени М.Е. евсевьева»
Физико-математический факультет
Кафедра информатики и вычислительной техники
Презентационная работа
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ В MAXIMA. ВОЗМОЖНОСТИ МАТЕМАТИЧЕСКОГО ПАКЕТА MAXIMA
Автор работы А. В. Порваткин, студент __ курса группы ___ очной формы обучения_________________________________
Направление подготовки 44.03.05 Педагогическое образование.
Профиль Математика. Информатика
Руководитель работы
канд. физ.-мат. наук, доцент___________________________ Т. В. Кормилицына
Саранск 2019
1 Краткий обзор истории создания программы
Система компьютерной математики (CAS) Maxima является потомком СКМ Macsyma, которая начала своё существование в конце 1960 года, как и большинство систем. Macsyma первая создала систему компьютерной алгебры, она проложила путь для таких программ как Maple и Mathematica. Главный вариант Maxima разрабатывался Вильямом Шелтером с 1982 по 2001 год. В 1998 году он получил разрешение на реализацию открытого кода на GPL. Благодаря его умению Maxima сумела выжить и сохранить свой оригинальный код в рабочем состоянии. Вскоре Вильям передал Maxima группе пользователей и разработчиков, которые сохранили её в рабочем состоянии. На сегодняшний день пакет достаточно активно развивается, и во многих отношениях не уступает таким развитым системам компьютерной математики, как Maple или Mathematica. Maxima поддерживает выполнение
операций с полиномами, элементарными функциями, вычисление пределов и производных, аналитическое вычисление определённых и неопределённых интегралов, решение интегральных, алгебраических уравнений и их систем,
выполнение операций со степенными рядами и рядами Фурье, с матрицами и списками, тензорами. Среди достоинств СКМ Maxima следует отдельно выделить возможность свободного использования, работы на компьютерах под управлением различных ОС; небольшой размер программы (около 80 мегабайт); наличие русскоязычного интуитивно понятного интерфейса, справочной системы.
2 Основные элементы интерфейса системы
В рабочем окне программы Maxima представлены:
строка заголовка, в которой располагается название программы и информация о том, сохранен ли рабочий документ;
панель меню программы – доступ к основным функциям и настройкам программы;
панель инструментов – на ней находятся кнопки для создания нового документа, быстрого сохранения документа, вызова окна справки, создания ячеек ввода, прерывания вычислений, кнопки для работы с буфером обмена;
рабочая область – непосредственно сам документ, в котором формируются ячейки ввода и выводятся результаты выполненных команд;
полосы прокрутки;
панели символов греческого алфавита, математических символов и инструментов для работы с графиками;
строка состояния.
3 Главное меню программы и основные принципы работы
Главное меню программы содержит следующие панели: Файл, Правка, Ячейка, Maxima, Уравнения, Алгебра, Анализ, Упростить, Графики, Численные расчеты, Помощь.
В меню Файл собраны все команды связанные с открытием, сохранением, загрузкой пакетов и печатью документов, как и в любом Windows-приложении.
В меню Правка собраны команды, связанные с редактированием текста, копированием поиском в документе, выделением.
В меню Ячейка собраны команды которые помогут редактировать документ. С помощью этого меню можно выделять название страницы, делить на страницы рабочий документ созданный в Maxima.
Команды меню Maxima специфичны для этой программы. Здесь содержатся основные рабочие панели и команды ввода и удаления функций и переменных.
В системе Maxima встроена справочная система на английском языке. Она включает в себя документацию по организации работы в системе, а также информацию по встроенным командам системы с большим количеством примеров их использования для решения математических задач.
При решении задач математического анализа с помощью системы Maxima используется меню Анализ.
Для построения графиков в меню Maxima имеется панель Графики.
Для решения алгебраических уравнений и их систем имеется панель Уравнения.
Арифметические выражения вводятся в поле ввода. Если необходимо вычислить дробные выражения, то системы сама может привести выражения к общему знаменателю. Если значение нужно получить в виде десятичной дроби, то необходимо воспользоваться панелью Численные расчеты.
Рассмотрим основные принципы работы с программой. После того, как система загрузилась, можно приступать к работе с программой. Для этого следует добавить ячейку ввода команд. Систему можно использовать в качестве калькулятора для нахождения значений числовых выражений. Например, для того, чтобы найти значение произведения 155 и 1785, надо щелкнуть левой кнопкой мыши в рабочей области программы. В результате будет сформирована ячейка ввода. Далее с клавиатуры вводим команду: 155*1785 и нажимаем комбинацию клавиш Ctrl+Enter или Ctrl+R и получаем результат. Выполнение вычислений в системе Maxima Таким образом, в документе будут сформированы две строки: (%i1) — ячейка ввода и для нее (%о1) — ячейка вывода. Каждая ячейка имеет свою метку — заключенное в скобки имя ячейки. Ячейки, в которых размещаются входные данные (формулы, команды, выражения) называют ячейками ввода. Они обозначаются %iChislo, где Chislo — номер ячейки ввода (i — сокращенно от английского слова input — ввод). Ячейки, в которых размещаются выходные данные (списки значений, выражения) называют ячейками вывода. Они обозначаются %oChislo, где Chislo — номер ячейки вывода (о — сокращенно от английского слова output — вывод). Почему же имена ячеек начинаются с символа %? Разработчики системы Maxima посчитали удобным начинать имена всех встроенных служебных имен: констант, переменных, зарезервированных слов, с этого символа. Сделано это для того, чтобы избежать возможных накладок с пользовательскими именами. В системе Maxima предусмотрена возможность ввода сразу нескольких команд в одной строке. Для этого одна команда от другой отделяется символом «;». При этом формируется одна строка ввода и столько строк вывода, сколько команд было задано. Для обозначения завершения ввода команды можно вместо точки с запятой использовать знак $. Это бывает удобно в том случае, если вывод результата вычисления на экран не нужен; тогда его можно «заглушить». Заглушенный результат при этом все равно будет вычисляться. Команда присваивания значений переменным задается в виде: имя_переменной: значение. Имена функций и переменных в системе Maxima чувствительны к регистру, то есть прописные и строчные буквы в них различаются. Задание команды в ячейке ввода и формирование ячейки вывода при нажатии комбинации клавиш Ctrl+Enter, называют отдельной сессией работы с системой Maxima. Рассмотрим основные приемы работы с отдельными сессиями работы в Maxima.
Задание команды для выполнения математических расчетов. Для задания команды системе нужно в строке ввода задать само выражение и оценить его, закончив ввод нажатием комбинации клавиш Ctrl+Enter. В результате образуется ячейка ввода и соответствующая ей ячейка вывода.
Сворачивание и разворачивание отдельных сессий. Если мы наведем курсор мыши на левый верхний угол квадратной скобки и нажмем левую кнопку мыши, то произойдет сворачивание части документа, относящейся к этой команде. Повторный щелчок мыши вернет ячейку в начальное состояние.
Добавление ячеек в документ. При работе с системой можно столкнуться с трудностью добавления команд в заданное место документа. Остановимся на этом подробнее. Например, у нас имеются две ячейки ввода (%i2) и (%i3). Ячейки в документе, между которыми требуется вставить дополнительно ячейку. Для добавления новой ячейки между ячейками (%i2) и (%i3) щелкнем левой кнопкой мыши между ячейками так, чтобы появилась горизонтальная черта. После чего нажимаем на клавиатуре клавишу Enter. Ячейка ввода добавлена.
Переоценить значение отдельно взятой ячейки. Если нужно переоценить значение введенного выражения (или выражения после внесенных в него исправлений), то для этого достаточно установить курсор в ячейке ввода и нажать комбинацию клавиш Ctrl+Enter.
Переоценить ячейки всего документа в целом. Особенностью графического интерфейса системы wxMaxima является то, что при открытии ранее сохраненного документа в рабочем окне выводятся только команды, все же ячейки с результатами не отображаются. Для их вывода можно воспользоваться командой Evaluate all cells пункта меню Правка.
Удалить ячейки ввода из документа. Для удаления ячейки необходимо ее выделить и, например, нажать на клавиатуре клавишу Delete. В системе Maxima можно добавлять в документ текстовые комментарии. Для этого выбираем пункт меню Правка→Cell→New Text Cell (или клавиша F6), после чего с клавиатуры набираем текст. Кроме того, в документе для оформления текста можно применять различные стили. Для этого можно воспользоваться пунктом меню Правка→Cell→New Section Cell (или Ctrl+F6), или Правка→Cell→New Title Cell (или Ctrl+Shift+F6). Сохранение документа выполняется обычным способом с использованием пункта меню Файл. С помощью кнопки «Настроить» wxMaxima на панели инструментов (или пункт меню Правка→Настройка) можно изменять конфигурацию графического интерфейса системы, применяемую по умолчанию. После нажатия на кнопке появляется окно с настройками, которое имеет две вкладки: Параметры и Стиль. На вкладке Параметры можно выбрать язык, вид панели инструментов и ряд дополнительных опций: проверять баланс скобок в тексте, копировать в буфер при выделении. На вкладке Стиль можно выбрать применяемый по умолчанию шрифт и его размер, а также стиль оформления (цвет и начертание) различных данных, используемых в документе: переменных, констант, чисел, имен функций.
Рассмотрим построение двумерного графика функции. Возьмем например, функцию у=5sin(x). Для этого в рабочей области необходимо ввести: plot2d(5*sin(x),[x,-2,3])$, после чего задать выполнение кода. Здесь -2 и 3 – соответственно, левая и правая границы интервала.
4 Модель динамики популяций
Рассмотрим модель взаимодействия «хищник—жертва». Предполагается, что жертвы размножаются с постоянной скоростью, а их численность убывает вследствие поедания хищниками. Хищники же размножаются со скоростью, пропорциональной количеству пищи, и умирают естественным образом. Данная модель описывается системой уравнений, представленной на рисунке 1.
Рисунок 1 Система уравнений модели «хищник – жертва»
Решая эту задачу при различных значениях, получаем различные фазовые портреты (обычный колебательный процесс и постепенная гибель популяций). Для решения используем численный метод Рунге-Кутта из пакета dynamics. Графики, иллюстрирующие процессы, происходящие в рассматриваемой системе, представлены на рисунках 2 – 4.
Рисунок 2 Фазовый портрет
Рисунок 3 Динамика популяций при α=0
Рисунок 4 Вымирание популяций
Рассмотрим код для задачи моделирования системы хищник-жертва.
Дифференциальные уравнения формируются символьными выражениями, определяющими правые части. Порядок следования выражений для расчёта правых частей ОДУ в первом списке функции должен соответствовать друг другу. Следует обратить внимание, что результат выполнения функции — двухуровневый список (каждый элемент списков и — также список, содержащий значение независимой переменной, и соответствующие значения искомых функций), поэтому он преобразуется в векторы, используемые для построения графических иллюстраций.
Рассмотрим пример построения трехмерного фазового портрета движения твердого тела. Находим решение задачи Эйлера свободного движения твердого тела, описываемого системой уравнений, представленной на рисунке 5.
Рисунок 5 Уравнения свободного движения твердого тела
Фазовый портрет для данной динамической системы (трехмерная кривая) представлен на рисунке 6.
Рисунок 6 Фазовый портрет системы
Одна из самых знаменитых динамических систем предложена в 1963 г. Лоренцем в качестве упрощенной модели конвективных турбулентных движений жидкости в нагреваемом сосуде тороидальной формы. Система состоит из трех ОДУ и имеет три параметра модели. Задаём правые части уравнений модели Лоренца:
eq: [s*(y-x), x*(r-z) -y, x*y - b*z];
Задаём временные параметры решения
t_range: [t,0,50,0.05];
Задаём параметры системы
s: 10.0; r: 28.0; b: 2.6667;
Задаём начальные значения переменных
init: [1.0,0,0];
Выполняем решение
sol: rk(eq, [x,y,z],init,t_range)$
len:length(sol);
Выделяем компоненты решения и строим графические иллюстрации:
t:makelist(sol[k][1],k,1,len)$
x:makelist(sol[k][2],k,1,len)$
y:makelist(sol[k][3],k,1,len)$
z:makelist(sol[k][4],k,1,len)$
plot2d([discrete,t,x])$ plot2d([discrete,t,y])$
Результаты решения представлены на рисунках 6 и 7.
Рисунок 6 Возрастание нестабильности системы
Рисунок 7 Аттрактор Лоренца
Решением системы Лоренца при определенном сочетании параметров является странный аттрактор (или аттрактор Лоренца) — притягивающее множество траекторий на фазовом пространстве, которое по виду идентично случайному процессу. В некотором смысле аттрактор Лоренца является стохастическими автоколебаниями, которые поддерживаются в динамической системе за счет внешнего источника.
Рассмотрим решение уравнения Ван дер Поля, описывающего электрические колебания в замкнутом контуре, состоящем из соединенных последовательно конденсатора, индуктивности, нелинейного сопротивления и элементов, обеспечивающих подкачку энергии извне. Неизвестная функция времени у(t) имеет смысл электрического тока, а в параметре заложены количественные соотношения между составляющими электрической цепи. Уравнение представлено на рисунке 8.
Рисунок 8 Уравнение Ван дер Поля
Решением уравнения Ван дер Поля являются колебания, вид которых для 1 показан на рисунке 9.
Абзалилов, Д. Ф. Практические задания по высшей математике с применением программы Maxima : учеб. пособие / Д. Ф. Абзалилов [и др.]. – Казань : КФУ, 2012. – 80 с.
Деткова, Ю. В. Система компьютерной алгебры Maxima : учеб. пособие / Ю. В. Деткова. – Орел : ОГУ, 2013. – 63 с.
Кормилицына, Т. В. Построение компьютерных моделей для учебных экспериментов / Т. В. Кормилицына // Учебный эксперимент в образовании. – 2011. – № 2. – С. 44–49.
Маевский, Е. В. Компьютерная математика. Высшая математика в СКМ Maxima : учеб. пособие / Е. В. Маевский, П. В. Ягодовский. – М. : Финансовый университет, 2014. – 196 с.
Малакаев, М. С. Основы работы с системой компьютерной алгебры Maxima : учеб. пособие / М. С. Малакаев [и др.]. – Казань : КФУ, 2012. – 57 с.
Москалев, П. В. Основы математического моделирования в системе Maxima : учеб. пособие / П. В. Москалев, В. П. Шацкий. – Воронеж : Воронежский государственный университет им. Петра I, 2015. –70 с.
Попов, А. С. Свободные математические пакеты в учебном процессе ВУЗа / А. С. Попов // Наука и образование. – 2014. – № 1. – С. 131–133.
Стахин, Н. А. Компьютерная алгебра Maxima. Основы работы : учеб. пособие / Н. А. Стахин. – Томск : ТГПУ, 2013. – 144 с.
Стахин, Н. А. Пример использования компьютерной алгебры Maxima в дисциплине «Компьютерное моделирование» / Н. А. Стахин // Вестник Томского государственного педагогического университета. – 2015. – № 12. –С. 86–92.
Чичкарев, Е. А. Компьютерная математика с Maxima [Электронный ресурс] / Е. А. Чичкарев. – М. : ИНТУИТ, 2016. – URL: http://biblioclub.ru/index.php?page=book_red&id=428974.