Меню
Разработки
Разработки  /  Информатика  /  Разное  /  Курсовая работа по информатике "Исследование возможностей библиотеки пакетов системы Maxima для решения специальных математических задач"

Курсовая работа по информатике "Исследование возможностей библиотеки пакетов системы Maxima для решения специальных математических задач"

Целью работы является рассмотрение дополнительных подгружаемых пакетов для системы Maxima, их основных свойств, функций и особенностей, используемых для решения математических задач.
28.04.2015

Описание разработки

Введение.

Система Maxima принадлежит классу систем символьной математики. Системы этого класса позволяют проводить аналитические (символьные) вычисления, основанные на рациональной арифметике.

Maxima – система для работы с символьными и численными выражениями, включающая дифференцирование, интегрирование, разложение в ряд, преобразование Лапласа, обыкновенные дифференциальные уравнения, системы линейных уравнений, многочлены, множества, списки, векторы, матрицы и тензоры. Maxima производит численные расчеты высокой точности, используя точные дроби, целые числа и числа с плавающей точкой произвольной точности. Система позволяет строить графики функций и статистических данных в двух и трех измерениях.

Исходный код Maxima может компилироваться на многих системах, включая Windows, Linux и MacOS X. На SourceForge доступны исходные коды и исполняемые файлы для Windows и Linux.

Maxima – потомок Macsyma, легендарной системы компьютерной алгебры, разработанной в начале 60-х в MIT. Это единственная основанная на Macsyma система, все еще публично доступная и имеющая активное сообщество пользователей благодаря своей открытости. Macsyma произвела в свое время переворот в компьютерной алгебре и оказала влияние на многие другие системы, в числе которых Maple и Mathematica.

Работу над Maxima вел Уильям Шелтер с 1982 года и до своей кончины в 2001 году. В 1998 году он получил разрешение на публикацию исходного кода под лицензией GPL. Выживание Maxima стало возможным только благодаря его усилиям и способностям, мы очень благодарны ему за уделенные проекту время и знания эксперта, которые поддерживали код DOE Macsyma актуальным и качественным. После его кончины была сформирована группа пользователей и разработчиков, ставящая своей целью донести Maxima до широкой аудитории.

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

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

Задачи исследования:

1) исследование библиотеки пакетов расширений и составление каталога пакетов;

2) анализ пакетов расширений, предназначенных для решения математических задач;

3) проведение вычислительных экспериментов с эталонными алгоритмами пакетов расширений;

4) составление алгоритмов решений математических задач в пакетах расширений (фракталы, математическая статистика, графика и визуализация).

Методы исследования:

анализ учебной и научной литературы, источников Интернет;

изучение документации к системе Maxima;

проведение компьютерных экспериментов;

обобщение результатов. 

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

1 Назначение и возможности пакетов расширений системы Maxima.

1. 1 Исторические сведения о системе Maxima.

История проекта, известного сейчас под именем Maxima, началась в конце 60-х в Массачусетском технологическом институте, где в рамках проекта MAC была создана программа символьных вычислений, получившая название Macsyma (MAC Symbolic MAnipulation). Языком программирования был выбран Lisp. Как показало время, это был полностью оправданный выбор, поскольку и сейчас этот язык не только существует, но и продолжает развиваться.

Macsyma была первой программой символьных вычислений, и много положений ее идеологии были позже заимствованы известными сейчас коммерческими продуктами Maple и Mathematica. Macsyma была закрытым коммерческим проектом, поскольку его финансировали, в частности, и военные организации, например, Оборонный и энергетический департамент США (Departments of Energy & Defence, DOE & DOD), Агентство перспективных разработок министерства обороны США (DAPRA - Defense Advanced Research Project Agency), на средства которого, кстати, была создана первая сеть национального масштаба ARPANET. Проект с переменной активностью действовал достаточно длительное время.

В 1982 г. профессор Уильям Шелтер на основе кода Macsyma начал создавать собственную версию программы под названием Maxima. В 1998 г. Шелтеру удалось получить от DOE & DOD права на публикацию кода по лицензии GPL.

С этого момента Maxima позиционируется как свободное программное обеспечение с открытым кодом. Сам проект Macsyma прекратил свое существование в 1999 г., но У. Шелтер продолжал заниматься разработкой Maxima вплоть до своей смерти в 2001 г. И после его смерти программа продолжает активно развиваться [1].

Инсталляция Maxima содержит два варианта: консольный (XMaxima) и с графическим интерфейсом (wmMaxima). Система имеет много локализаций, в том числе и русскую. При этом во время инсталляции автоматически выбирается та локализация, языковая раскладка которой по умолчанию является основной.

Вместе с тем следует заметить, что русская локализация последних версий является достаточно несовершенной, в ней отсутствует перевод очень многих команд и текста в окнах. Остается только надеяться, что вопрос локализации - это вопрос только времени.

Базовая функциональность системы значительно расширяется специализированными пакетами, предназначенными для работы с размерными величинами, дополнительными функциями для работы с матрицами, работы с графами и т. п. Они есть в составе инсталляции системы и для работы с ними пользователю необходимо во время работы просто загрузить нужный пакет [3]. 

Весь материал - в документе.

Содержимое разработки

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ

ИНСТИТУТ ИМЕНИ М.Е.ЕВСЕВЬЕВА»



ФИЗИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ


КАФЕДРА ИНФОРМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ






КУРСОВАЯ РАБОТА

По информатике



Исследование возможностей библиотеки пакетов системы Maxima для решения специальных математических задач





Автор курсовой работы: Жарко Д. Д., студент IV курса группы МДИ-110 очной формы обучения.


Специальность: 050202 «Информатика» с дополнительной специальностью 050201.65 «Математика»


Руководитель: Т. В. Кормилицына, канд. физ.-мат. наук, доцент








Саранск 2014



Содержание


Введение…………………………………………………………………………...3

1 Назначение и возможности пакетов расширений системы Maxima……………………………………………………………………………..5

1.1 Исторические сведения о системе Maxima…………………………….5

1.2 Структура систем символьной математики и назначение пакетов расширений………………………………………………………………………..6

2 Исследование возможностей библиотеки пакетов системы Maxima для решения специальных математических задач…………………………………......................................................................8

2.1 Пакет расширений для моделирования фракталов и алгоритмы решения задач……………………………………………………………………..8

2.2 Пакеты расширения визуализации решений математических задач и алгоритмы решения задач……………………………………………………….16

2.3 Пакеты расширения для решения задач математической статистики и алгоритмы решения задач…………………………………………………….…17

Заключение……………………………………………………………………….21

Список использованных источников…………………………………………...23

Приложение………………………………………………………………………24



Введение



Система Maxima принадлежит классу систем символьной математики. Системы этого класса позволяют проводить аналитические (символьные) вычисления, основанные на рациональной арифметике.

Maxima – система для работы с символьными и численными выражениями, включающая дифференцирование, интегрирование, разложение в ряд, преобразование Лапласа, обыкновенные дифференциальные уравнения, системы линейных уравнений, многочлены, множества, списки, векторы, матрицы и тензоры. Maxima производит численные расчеты высокой точности, используя точные дроби, целые числа и числа с плавающей точкой произвольной точности. Система позволяет строить графики функций и статистических данных в двух и трех измерениях.

Исходный код Maxima может компилироваться на многих системах, включая Windows, Linux и MacOS X. На SourceForge доступны исходные коды и исполняемые файлы для Windows и Linux.

Maxima – потомок Macsyma, легендарной системы компьютерной алгебры, разработанной в начале 60-х в MIT. Это единственная основанная на Macsyma система, все еще публично доступная и имеющая активное сообщество пользователей благодаря своей открытости. Macsyma произвела в свое время переворот в компьютерной алгебре и оказала влияние на многие другие системы, в числе которых Maple и Mathematica.

Работу над Maxima вел Уильям Шелтер с 1982 года и до своей кончины в 2001 году. В 1998 году он получил разрешение на публикацию исходного кода под лицензией GPL. Выживание Maxima стало возможным только благодаря его усилиям и способностям, мы очень благодарны ему за уделенные проекту время и знания эксперта, которые поддерживали код DOE Macsyma актуальным и качественным. После его кончины была сформирована группа пользователей и разработчиков, ставящая своей целью донести Maxima до широкой аудитории.

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

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

Объект исследования – система компьютерной математики Maxima.

Предмет исследования – возможности пакетов расширений системы Maxima для решения математических задач.

Задачи исследования:

1) исследование библиотеки пакетов расширений и составление каталога пакетов;

2) анализ пакетов расширений, предназначенных для решения математических задач;

3) проведение вычислительных экспериментов с эталонными алгоритмами пакетов расширений;

4) составление алгоритмов решений математических задач в пакетах расширений (фракталы, математическая статистика, графика и визуализация).

Методы исследования:

  • анализ учебной и научной литературы, источников Интернет;

  • изучение документации к системе Maxima;

  • проведение компьютерных экспериментов;

  • обобщение результатов.

1 Назначение и возможности пакетов расширений системы Maxima


1.1 Исторические сведения о системе Maxima


История проекта, известного сейчас под именем Maxima, началась в конце 60-х в Массачусетском технологическом институте, где в рамках проекта MAC была создана программа символьных вычислений, получившая название Macsyma (MAC Symbolic MAnipulation). Языком программирования был выбран Lisp. Как показало время, это был полностью оправданный выбор, поскольку и сейчас этот язык не только существует, но и продолжает развиваться.

Macsyma была первой программой символьных вычислений, и много положений ее идеологии были позже заимствованы известными сейчас коммерческими продуктами Maple и Mathematica. Macsyma была закрытым коммерческим проектом, поскольку его финансировали, в частности, и военные организации, например, Оборонный и энергетический департамент США (Departments of Energy & Defence, DOE & DOD), Агентство перспективных разработок министерства обороны США (DAPRA - Defense Advanced Research Project Agency), на средства которого, кстати, была создана первая сеть национального масштаба ARPANET. Проект с переменной активностью действовал достаточно длительное время.

В 1982 г. профессор Уильям Шелтер на основе кода Macsyma начал создавать собственную версию программы под названием Maxima. В 1998 г. Шелтеру удалось получить от DOE & DOD права на публикацию кода по лицензии GPL. С этого момента Maxima позиционируется как свободное программное обеспечение с открытым кодом. Сам проект Macsyma прекратил свое существование в 1999 г., но У. Шелтер продолжал заниматься разработкой Maxima вплоть до своей смерти в 2001 г. И после его смерти программа продолжает активно развиваться [1].

Инсталляция Maxima содержит два варианта: консольный (XMaxima) и с графическим интерфейсом (wmMaxima). Система имеет много локализаций, в том числе и русскую. При этом во время инсталляции автоматически выбирается та локализация, языковая раскладка которой по умолчанию является основной. Вместе с тем следует заметить, что русская локализация последних версий является достаточно несовершенной, в ней отсутствует перевод очень многих команд и текста в окнах. Остается только надеяться, что вопрос локализации - это вопрос только времени.

Базовая функциональность системы значительно расширяется специализированными пакетами, предназначенными для работы с размерными величинами, дополнительными функциями для работы с матрицами, работы с графами и т. п. Они есть в составе инсталляции системы и для работы с ними пользователю необходимо во время работы просто загрузить нужный пакет [3].



1.2 Структура систем символьной математики и назначение пакетов расширений


Современные универсальные системы имеют следующую типовую структуру:


Рисунок 1. – Структура универсальной системы символьной математики.


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

Ядро математических систем тщательно оптимизируется, поскольку от скорости его работы зависит скорость вычислений, выполняемых данной системой компьютерной математики. Этому способствует и предварительная компиляция ядра. Доступ пользователя в ядро с целью его модификации, как правило, исключен. Объем ядра может достигать нескольких мегабайт. Пишется ядро на языке реализации системы – чаще всего это С или С++ (лишь с системе Derive использован язык искусственного интеллекта MuLISP) и компилируется на фирме – разработчике системы.

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

Функции и процедуры, включенные в ядро, выполняются предельно быстро. С этой точки зрения в ядро было бы выгодно включать как можно больше вычислительных средств. Однако это невольно приводит к замедлению поиска нужных средств из-за возрастания их числа, увеличению времени загрузки ядра и к другим нежелательным последствиям. Поэтому объем ядра ограничивают, но к нему добавляют библиотеки более редких процедур и функций, к которым обращается пользователь, если в ядре не обнаружена нужная процедура или функция. Некоторые системы допускают модернизацию библиотек и их расширение силами самих пользователей [10].

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

Справочная система обеспечивает получение оперативных справок по вопросам работы с СКМ с примерами такой работы. В справочные системы нередко включают и такой материал, как математические таблицы, формулы для нахождения производных и интегралов, алгебраические преобразования и т. д. Большинство справочных систем написаны на английском языке, что затрудняет их применение нашими пользователями [7].


2 Исследование возможностей библиотеки пакетов системы Maxima

для решения специальных математических задач


2.1 Пакет расширений для моделирования фракталов и алгоритмы решения задач


C помощью пакета fractals автора Jos’e Ram’ırez Labrador можно строить известные фракталы:

– треугольник Серпинского, фракталы. Дерево. Папоротник;

– множество Мандельброта и множества Жюлиа;

– снежинки Коха;

– отображения Пеано: кривые Серпинского и Гильберта.

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

Рассмотрим функции этого пакета.

Команда sierpinskiale(𝑛) – возвращает массив из координат 𝑛 − 1 случайной точки, принадлежащей треугольнику Серпинского, получающемуся рандомизированным алгоритмом.

Функции этой СИФ:

Команда fernfale(𝑛) – возвращает массив из координат 𝑛 1 случайной точки, принадлежащей древовидному аттрактору СИФ, получающемуся рандомизированным алгоритмом (здесь вероятности выбора функции зависят от коэффициентов сжатия).

Функции этой СИФ:

Команда mandelbrot_set(𝑥, 𝑦) – возвращает число 𝑛 ≤ 29 итераций, для которого |𝑓𝑥+𝑦i(𝑛)(0)| ≥ 100, либо число 30, если за 29 итераций орбита точки 0 осталась внутри круга |𝑧| . Напомним, множеству Мандельброта ℳ принадлежат точки 𝑐 = 𝑥 + 𝑦i, для которых орбита нуля ограничена [6].

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

load(fractals)$

plot3d(mandelbrot_set, [x, -2.5, 1], [y, -1.5, 1.5],

[gnuplot_preamble, "set view map"],[grid, 150, 150])$

Здесь опция grid указывает на то, что область изменения координат [−2.5, 1] ×[−1.5, 1.5] должна быть разделена на 150×150 точек (𝑥, 𝑦), в которых будет вычисляться функция mandelbrot_set(x,y). Опция gnuplot_preamble используется для интерпретации значения функции mandelbrot_set(x,y) как цвета точки (x,y).

Команда julia_set(𝑥, 𝑦) – возвращает число 𝑛 ≤ 29 итераций, для которого |𝑓𝑐(𝑛)(𝑥+𝑦i)| ≥100, либо число 30, если за 29 итераций орбита точки 𝑥 + 𝑦i осталась внутри круга |𝑧| . Здесь число 𝑐 по умолчанию задается переменной julia_parameter:%i. Напомним, заполняющему множеству Жюлиа принадлежат точки 𝑥+𝑦i, орбита которых ограничена. Применять эту команду можно так:

load(fractals)$

plot3d(julia_set, [x, -2, 1], [y, -1.5, 1.5],

[gnuplot_preamble, "set view map"],[grid, 150, 150])$

Автор данного пакета советует опробовать этот код на специальных числах.

Команда julia_parameter: − 0.745 + 0.113002i, −0.39054 − 0.58679i, −0.15652 + 1.03225i, −0.194 +0.6557i, 0.011031 − 0.67037i.

Команда julia_sin(𝑥, 𝑦) – то же, что и предыдущая команда, только для функции 𝑓(𝑧) = 𝑐 sin 𝑧. Автор рекомендует параметр julia_parameter:1+0.1*%i$.

Команда snowmap(𝑣𝑒𝑟𝑡, 𝑖𝑡𝑒𝑟) – возвращает массив вершин снежинки Ко=-21`.ха после 𝑖𝑡𝑒𝑟 итераций, построенной на сторонах ломаной линий, заданной массивом вершин 𝑣𝑒𝑟𝑡 в виде комплексных чисел. Если первая и последняя вершины совпадают, то ломаная линия замкнута. Результирующее множество расположено слева от ломаной линии, считая в направлении от начала к ее концу. Для построения используется рекурсивный алгоритм. Пример использования:

plot2d([discrete,snowmap([1,exp(%i*%pi*2/3),exp(-%i*%pi*2/3),1],4)])$

plot2d([discrete,snowmap([1,exp(-%i*%pi*2/3),exp(%i*%pi*2/3),1],4)])$

Команда hilbertmap(𝑖𝑡𝑒𝑟) – возвращает массив вершин непрерывной кривой Гильберта, плотно заполняющей плоскую область, после 𝑖𝑡𝑒𝑟 итераций.

plot2d([discrete,hilbertmap(4)])$

Команда sierpinskimap(𝑖𝑡𝑒𝑟) – возвращает массив вершин непрерывной кривой Серпинского, плотно заполняющей плоскую область, после 𝑖𝑡𝑒𝑟 итераций.

plot2d([discrete,sierpinskimap(4)])$

Пакет dynamics. load(dynamics)$

C помощью пакета dynamics можно строить различные графически представления динамических систем и фракталов:

– паутинная диаграмма;

– бифуркационная диаграмма;

– эволюция орбиты одно- и двумерного отображений;

– «игра в хаос»;

– система итерированных функций, заданная аффинными преобразованиями;

– множества Жюлиа, Мандельброта;

В нём реализован метод Рунге-Кутты 4-го порядка для решения систем дифференциальных уравнений.

Данный пакет обладает ограниченными возможностями. Однако рекомендуется изучить его исходный код, находящийся в файле «dynamics.mac». Параметры всех команд этого пакета, приведённых ниже, можно изменить непосредственно в тексте этого пакета или скопировать соответствующий кусок кода в свою рабочую область и изменить его [5].

Для вывода графики команды пакета dynamics используют команду plot2d, поэтому все опции 𝑜𝑝𝑡𝑖𝑜𝑛𝑠 этой команды можно передавать в команды пакета dynamics, например, можно менять графические интерфейсы, различные стили графиков, цвета, менять масштаб осей на логарифмический и т.д. Смотрите список опций команды plot2d в справке по Maxima.

Команда chaosgame([[𝑥1,𝑦1],. . .,[𝑥𝑚,𝑦𝑚]],[𝑥0,𝑦0],b,n,options) – реализует «игру в Хаос»: отмечается точка (𝑥0, 𝑦0),

chaosgame([[0,0],[1,0],[0.5,sqrt(3)/2]], [0.1,0.1],1/2,30000,[style,dots])$





Рисунок 2. – Игра в Хаос.

Команда ifs([𝑟1,...,𝑟𝑚],[𝐴1,...,𝐴𝑚],[[𝑥1,𝑦1],...,[𝑥𝑚,𝑦𝑚]],[𝑥0,𝑦0],n,options) реализует построение аттрактора системы итерированных функций (𝑥0, 𝑦0),

a1:matrix([0.85,0.04],[-0.04,0.85])$

a2:matrix([0.2,-0.26],[0.23,0.22])$

a3:matrix([-0.15,0.28],[0.26,0.24])$

a4:matrix([0,0],[0,0.16])$

p1:[0,1.6]$

p2:[0,1.6]$

p3:[0,0.44]$

p4:[0,0]$

r: [85,92,99,100]$

ifs(r,[a1,a2,a3,a4],[p1,p2,p3,p4],

[5,0],50000,[style,dots])$


Рисунок 3. –Аттрактор системы итерированных функций.

Команда julia(𝑥,𝑦,options) – создаёт изображение множества Жюлиа с параметром 𝑐 =𝑥 + 𝑖𝑦, 𝑥, 𝑦 R, и сохраняет в файле в формате XPM в директорию установки Maxima [8].

Точки вне множества Жюлиа окрашиваются в различные цвета в зависимости от количества итераций, после которых орбита выходит из круга радиуса 2. Максимальное количество итераций определяется опцией levels. Если после заданного количества итераций орбита точки остается внутри круга радиуса 2, точка окрашивается в цвет, заданный опцией color. Все цвета, в которые раскрашиваются точки вне множества Жюлиа, имеют одинаковую насыщенность (𝑠𝑎𝑡𝑢𝑟𝑎𝑡𝑖𝑜𝑛) и яркость (𝑣𝑎𝑙𝑢𝑒), но разные углы оттенка (ℎ𝑢𝑒), равномерно распределённые между ℎ𝑢𝑒 и ℎ𝑢𝑒 + ℎ𝑢𝑒𝑟𝑎𝑛𝑔𝑒.

Доступные опции, дополнительные к опциям пакета plot2d, опишем в конце секции.

julia(-0.11,0.65569999)$










Рисунок 4. – Множество Жюлиа.

Команда mandelbrot(options) создаёт изображение множества Мандельброта и сохраняет в файле в формате XPM. Окрашивание точек происходит по тому же правилу, что и в команде julia.

mandelbrot()$









Рисунок 5. – Множество Мандельброта.

Дополнительные опции команд julia и mandelbrot:

size – задаёт размер изображения в пикселах. При этом size=a (или [size,a])задает квадратное изображение a×a, а [size,a,b]. Если a̸=b, изображение будет выглядеть искаженным. По умолчанию размеры 400×400;

– levels – определяет максимальное число итераций, это число также равно количеству используемых цветов для раскраски точек вне множества. Значение по умолчанию 12. Большие значения требуют большего времени вычислений;

– huerange – задает область углов оттенка (ℎ𝑢𝑒) для раскраски точек вне множества. Значение по умолчанию 360 (это означает, что цвета будут всех оттенков). Если это значение больше 360, область углов оттенка повторяется. Если значение меньше нуля, то углы оттенка будут убывать с количеством итераций;

– hue – задаёт значение оттенка в градусах для первого цвета для окраски точек вне множеств. Значение по умолчанию 300, что отвечает пурпурному цвету (𝑚𝑎𝑔𝑒𝑛𝑡𝑎). Стандартные значения для других цветов: 0 (красный цвет), 45 (оранжевый), 60 (желтый), 120 (зелёный), 180 (голубой, 𝑐𝑦𝑎𝑛), 240 (синий);

– saturation – задаёт насыщенность цвета точек вне множества (в пределах от 0 до1). По умолчанию 0.46;

– value – задаёт яркость цвета точек вне множества (в пределах от 0 до 1). По умолчанию 0.96;

– color – задаёт значение цвета точек множества тремя параметрами: [color,ℎ𝑢𝑒,𝑠𝑡𝑢𝑟𝑎𝑡𝑖𝑜𝑛,𝑣𝑎𝑙𝑢𝑒] (оттенок, насыщенность, яркость). По умолчанию все параметры равны 0, что соответствует чёрному цвету;

– center – задает координаты точки 𝑐 = 𝑥+𝑖𝑦 комплексной плоскости, приходящейся на центр изображения: [center,𝑥,,𝑦]. Значение по умолчанию 𝑥 = 𝑦 = 0 (начало координат находится в середине изображения);

– radius – задаёт радиус наибольшей окружности, умещающейся в изображаемой квадратной области (определяет масштаб изображения). По умолчанию 2;

– filename – задаёт имя файла изображения без расширения. По умолчанию это имя "julia" или "mandelbrot" и файл сохраняется в директорию, в которой установлена Maxima. Если необходимо сохранять файлы в другой директории, следует указать полное имя файла с путём, но без расширения [2].


2.2 Пакеты расширения визуализации решений математических задач и алгоритмы решения задач


Пакет Draw. Загружается пакет с помощью команды load(draw), в который входят:

функция draw2d (опции, explicit (имя_функции, независимая_переменная, min, max), опции) – функция, предназначенная для построения графиков на плоскости с применением большого количества дополнительных опций:

– xrange, yrange – установлены по умолчанию – определяют промежуток изменения значений переменной по осям Ox и Oy. В случае необходимости, можно изменять значений вручную. Например, xrange = [-2, 3];

– grid – в случае, если grid=true, на координатной плоскости выводятся линии сетки;

– title – позволяет выводить заголовок к графику функции. Например, title = "Exponential function";

– xlabel, ylabel – позволяют выводить подписи к осям. Например, ylabel = "Population";

– xtics, ytics – позволяют устанавливать цену деления по осям Ox и Oy, с которой будут наноситься метки на оси. Имеет значение по умолчанию, однако их действием можно управлять вручную. Например, можно задать, чтобы метки по оси Ox наносились на промежутке от -3 до 3 с шагом 0,2: xtics= [ -3, 0.2, 3]. Также можно указать, в каком виде выводить подписи к осям:

– xaxis, yaxis – в случае, если значения этих опций равны true, координатные оси выводятся на экран;

– xaxis_width, yaxis_width – ширина координатных осей (по умолчанию ширина равна 1). Для изменения толщины оси необходимо изменить значение по умолчанию вручную, например, xaxis_width=3;

– xaxis_type, yaxis_type – стиль линии осей Ox и Oy. Допустимые значения: solid и dots;

– xaxis_color, yaxis_color – цвет координатных осей (по умолчанию – черный). Для изменения цвета оси необходимо изменить значение опции вручную, например, xaxis_color = red;

– color – позволяет изменять цвет графика. Например, color=»red» (задается до слова explicit);

– line_width – позволяет изменять толщину линии графика функции (значение по умолчанию – 1);

– line_type – позволяет изменять стиль линии графика функции. Допустимые значения: solid и dots и др.

Заметим, что опции draw могут быть глобальными (тогда в команде draw они стоят после графического объекта) и локальными (тогда их нужно писать перед графическим объектом, поскольку, если таковых несколько, у каждого могут быть свои опции) [1].


2.3 Пакеты расширения для решения задач математической статистики и алгоритмы решения задач


Пакет Maxima включает мощный модуль для линейного и нелинейного оценивания параметров различных моделей с использованием метода наименьших квадратов – пакет lsquares. Основная функция пакета lsquares – это функция lsquares_estimates. Синтаксис вызова:

Lsquares estimates (D,x,e,a) или lsquares estimates (D,x,e,a,initial=L,tol=t)

Функция предназначена для оценки параметров, лучше всего соответствующие уравнению e в переменных x по набору данных D определяются методом методом наименьших квадратов. Функция lsquares_estimates сначала пытается отыскать ищет точное решение, и если это не удаётся, ищет приблизительное решение. Возвращаемое значение – список вида [a = ..., b = ..., c = ...].

Элементы списка обеспечивают минимум среднеквадратичной ошибки. Данные D должны быть матрицей. Каждый ряд - одна запись или один случай, каждый столбец соответствует значениям некоторой переменной. Список переменных x дает название для каждого столбца D (даже для столбцов, которые не входят в анализ). Список параметров содержит названия параметров, для которых отыскиваются оценки. Уравнение e является выражением или уравнением в переменных x и a; если e записано не в форме уравнения, его рассматривают как уравнение e = 0. Если некоторое точное решение может быть найдено при помощи solve, данные D могут содержать и нечисловые значения.

Дополнительные аргументы lsquares_estimates определены как уравнения и передаются дословно функции lbfgs, которая используется, чтобы найти оценки численным методом, когда точный результат не найден. Однако, если никакое точное решение не найдено, у каждого элемента D должно быть числовое значение, в том числе константы (такие как %pi и %e) или числовые литералы (целые числа, rationals, обычные плавания, и bigfloats). Численные расчеты выполнены с обычной арифметикой с плавающей запятой, таким образом все другие виды чисел преобразованы к значениям с плавающей точкой. Для работы с lsquares_estimates необходимо загрузить эту функцию командой load(lsquares) [4].

Пример (точное решение):

Рисунок 6. – Пример решения с помощью lsquares.


Для расчёта невязок для уравнения при подстановке в него данных, содержащихся в матрице, можно использовать функцию lsquares_residuals (D, x, e, a) (смысл параметров тот же, что и для функции lsquares_estimates).

Система Maxima содержит ряд функций для выполнения статистических расчётов (описательной статистики), объединённые в пакет descriptive. Функции, входящие в состав descriptive, позволяют выполнить расчёт дисперсии, среднеквадратичного отклонения, медианы, моды и т.п. Названия функций и краткое описание выполняемых ими действий приведены в таблице [9].

Таблица 1

Функция

Выполняемые действия

Синтаксис вызова и примечания

Mean

Вычисление среднего

mean (list) или mean (matrix)

Geometric_mean

Вычисление среднего геометрического

geometric_mean(list) или geometric_mean(matrix)

Harmonic_mean

Вычисление среднего

гармонического

harmonic_mean(list) или harmonic_mean(matrix)

Cor

Вычисляет корреляционную матрицу

cor (matrix) или cor

(matrix, logical_value);

logical_value равна true

или false (false - при расчёте по ковариационной матрице)

Cov, cov1

Вычисляет ковариационную матрицу

cov1 (matrix), cov

(matrix)

Median

Вычисляет медиану

median (list), median

(matrix)

Std, std1

Вычисляет среднеквадратичное отклонение (корень квадратный из var или var1)

аналогично var

Var, var1

Вычисляет дисперсию случайной величины

var1 (matrix), var

(matrix), var1 (list),

var (list)

Central_moment

Вычисляет центральный

момент порядка k

central_moment (list, k),

central_moment (matrix,

k)

Noncentral_moment

Вычисляет момент порядка k

noncentral_moment (list, k), noncentral_moment

(matrix, k)

Skewness

Вычисление асимметрии

Skewness (list), skewness (matrix)

Kurtiosis

Вычисление эксцесса

kurtosis(list),

kurtosis(matrix)

Quantile

Вычисление p-квантиля

quantile (list, p),quantile

(matrix, p)

Maxi, mini

Выбор наибольшего и наименьшего значения в выборке соответственно

maxi(list), maxi(matrix),

mini(list), mini(matrix)

Mean_deviation,

Median_devation

Сумма абсолютных отклонений от среднего или медианы соответственно

Аналогично mean,

median

Range

Размах вариации выборки

range (list), range

(matrix)

List_correlations

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

list_correlations (matrix),

list_correlations (matrix,

logical_value)logical_value равна true или false (false

- при расчёте по ковари-

ационной матрице)

Subsample

Аналог функции

submatrix


Global_variances

возвращает список, содержащий различные виды дисперсии

global_variances (matrix)

Заключение


Целью данной работы являлось рассмотрение дополнительных подгружаемых пакетов системы Maxima. В процессе исследования были использованы следующие методы: синтез, анализ, классификация, сравнение и обобщение.

В работе были реализованы следующие задачи:

  1. Исследованы библиотеки пакетов расширений и составлен каталог из 34 пакетов.

  2. Проведён анализ 5 – и пакетов.

  3. Для выявления возможности пакетов проведены эксперименты для пакетов lsquares и descriptive.

  4. Изучены специальные функции и составлены алгоритмы решения задач:

    • для fractals 5 задач;

    • для dynamics и draw 5 задач;

    • для пакета descriptive составлена таблица функций.

В ходе изучения материалов по выбранной теме были отобраны 5 пакетов для подробного рассмотрения. C помощью пакета fractals можно строить некоторые фракталы: треугольник Серпинского, фракталы, дерево, папоротник, множество Мандельброта и множества Жюлиа, снежинки Коха, отображения Пеано: кривые Серпинского и гильберта. C помощью пакета dynamics можно строить различные графически представления динамических систем и фракталов: паутинная диаграмма, бифуркационная диаграмма, эволюция орбиты одно – и двумерного отображений, «игра в хаос», система итерированных функций, заданная аффинными преобразованиями, множества Жюлиа, Мандельброта.

В нём реализован метод Рунге-Кутты 4-го порядка для решения систем дифференциальных уравнений. Пакет draw очень распространён так, как является основным пакетом реализации графики в Maxima. Пакет Isquares – это мощный модуль для линейного и нелинейного оценивания параметров различных моделей с использованием метода наименьших квадратов. Пакет Descriptive содержит ряд возможностей для выполнения статистических расчётов (описательной статистики). Функции, входящие в состав descriptive, позволяют выполнить расчёт дисперсии, среднеквадратичного отклонения, медианы, моды и т. п. В Приложении приведён полный список пакетов с кратким описанием их функций.

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

Список использованных источников

1. Губина, Т. Н. Решение дифференциальных уравнений в системе компьютерной математики Maxima: учебное пособие / Т. Н. Губина, Е. В. Андропова – Елец : ЕГУ им. И. А. Бунина, 2009. – 99 с.

2. Документация по текущей версии пакета [Электронный ресурс]. – Режим доступа: http://maxima.sourceforge.net/docs/manual/en/maxima_51. html#SEC257.

3. Компьютерная математика с Maxima – Вики-портал образовательных ресурсов Волгоградского государственного социально-педагогического университета [Электронный ресурс]. – Режим доступа: http://wiki.vspu.ru/users/danisrad/maxima/index.

4. Лабораторный практикум «Основы работы в математическом пакете wxMaxima» [Электронный ресурс]. – Режим доступа: http://pedgazeta.ru/pages/ 2012/05/11/end_1336725923.pdf

5. Математический практикум с применением пакета Maxima [Электронный ресурс]. – Режим доступа: http://www.pmtf.msiu.ru/chair31/ students/spichkov/maxima2.pdf.

6. Система компьютерной алгебры Maxima [Электронный ресурс]. – Режим доступа: http://maxima.sourceforge.net/ru/.

7. Сологаев В. И. Maxima: руководство [Электронный ресурс]. – Режим доступа: http://sologaev2010.narod.ru

8. Статьи Тихона Тарнавского [Электронный ресурс]. – Режим доступа: http://maxima.sourceforge.net/ru/

9. Стахин, Н. А. Основы работы с системой аналитических (символьных) вычислений Maxima / Н. А. Стахин. – М. : 2008. – 86 с.

10. Чичкарёв, Е. А. Компьютерная математика с Maxima / Е. А. Чичкарев. – М.: ALT Linux, 2012. – 384 с.

Приложение


Наименование пакета

Краткое описание функций пакета

Augmented_lagrangian

Минимизация функции нескольких переменных с ограниченным методом неопределённых множителей Лагранжа (используется совмесно с lbfgs)

Bode

Построение диаграмм Боде (узкоспециальный пакет)

Contrib_ode

Дополнительные функции для аналитического решения обыкновенных дифференциальных уравнений

Descriptive

Описательная статистика, оценка параметров распределения (генеральной совокупности) по выборке

diag

Пакет для операций с некоторыми видами диагональных матриц

Distrib

Пакет, содержащий функции для расчёта различных распределений вероятностей и их параметров

(нормальное распределение, распределение Стьюдента и т.п.)

Draw

Интерфейс Maxima-Gnuplot. Предназначен для подготовки иллюстраций полирафического качества

Dynamics

Различные функции, в т.ч. графические, относящиеся к моделированию динамических систем и фракталов

F90

Экспорт кода Maxima в кон на Фортран90

Ggf

Пакет включает единственную функцию, позволяющую оперировать с производящими функциями последовательностей (узкоспециальный пакет)

Graphs

Пакет, включающий функции для работы с графами

Grobner

Функции для того, чтобы работать с базисом Грёбнера (Groebner)

Impdiff

Вычисление производных неявных функций нескольких переменных

Implicit_plot

Графики неявных функций

Interpol

Пакет, включающий функции интерполяции (линейной, полиномами Лагранжа, сплайнами)

Lapack

Функции пакета LAPACK для решения задач линейной алгебры

Lbfgs

Пакет минимизации функций нескольких переменных квазиньютоновским методом (L-BFGS)

Lindstedt

Пакет, рассчитанный на интерпретацию некоторых типов начальных условий для ОДУ, описывающих колебания

Isquares

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

makeOrders

Пакет включает одну функцию для операций с полиномами

Mnewton

Метод Ньютона для решения систем нелинейных уравнений

Numericalio

Чтение и запись файлов (преимущественно с матричными числовыми данными)

Opsubst

Пакет содержит одну функцию opsubst, позволяющую выполнять замену в выражениях (по возможностям мало отличается от subst)

Orthopoly

Пакет, содержащий функции для операций с ортогональными полиномами (Лежандра, Чебышева и

др.)

Plotdf

Пакет, позволяющий строить поле направлений для решения автономных систем (интересный, но довольно узкоспециальный пакет)

Romberg

Пакет, включающий ряд функций для численного интегрирования

Simplex

Пакет, предназначенный для решения задач линейного программирования

Solve_rec

Пакет, содержащий функции для упрощения рекуррентных выражений

Stats

Пакет, включающий функции для статистической проверки гипотез

stirling

Расчёт гамма-функции

Sringproc

Пакет, включающий функции для обработки строк

Unit

Пакет, включающий функции для операций с единицами измерения

zeilberger

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



-80%
Курсы повышения квалификации

Современный урок информатики в условиях реализации ФГОС

Продолжительность 108 часов
Документ: Удостоверение о повышении квалификации
5900 руб.
1180 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Курсовая работа по информатике "Исследование возможностей библиотеки пакетов системы Maxima для решения специальных математических задач" (0.25 MB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт

Учителю!
Огромная база учебных материалов на каждый урок с возможностью удаленного управления
Тесты, видеоуроки, электронные тетради