Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Компьютерная математика с Maxima

Покупка
Артикул: 826676.01.99
Доступ онлайн
1 000 ₽
В корзину
Курс посвящен различным аспектам использования системы компьютерных вычислений Maxima для решения математических, физических и технических задач. Maxima - развитие коммерческой системы Macsyma, разрабатывавшейся в Массачусетском технологическом институте с 1968 по 1982 г. Это была первая универсальная система символьных вычислений и одна из первых систем, основанных на знаниях. Многие из идей, впервые реализованных в Macsyma, впоследствии были использованы в Mathematica, Maple и других системах. Maxima имеет широкий набор средств для проведения аналитических вычислений. Пакет включает также некоторые численные методы, имеет развитые средства построения графических иллюстраций. Курс предназначен для широкого круга пользователей с различным уровнем подготовки, в первую очередь школьников и студентов младших курсов высших учебных заведений.
Чичкарёв, Е. А. Компьютерная математика с Maxima : краткий учебный курс / Е. А. Чичкарёв. - Москва : ИНТУИТ, 2016. - 325 с. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2140199 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов

                                    
Компьютерная математика с Maxima

2-е издание, исправленное

Чичкарёв Е.А.

Национальный Открытый Университет “ИНТУИТ”
2016

2

Компьютерная математика с Maxima/ Е.А. Чичкарёв - М.: Национальный Открытый Университет
“ИНТУИТ”, 2016

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

(c) ООО “ИНТУИТ.РУ”, 2015-2016
(c) Чичкарёв Е.А., 2015-2016

3

Введение.Возникновение и развитие систем компьютерной
математики

Введение

Данная книга посвящена открытым программным средствам, позволяющим провести
весь цикл разработки какой-либо математической модели: от поиска и просмотра
необходимой литературы до непосредственного решения задачи (аналитического и/или
численного) и подготовки отчёта или статьи к печати. В ней предпринята попытка
объяснить, что система аналитических вычислений Maxima и (если необходимо)
вычислительная среда Octave — хороший выбор для проведения любой учебной задачи
или серьёзного исследования, где требуется математика — от курсовой работы до
научной или инженерной разработки высокого класса. С помощью этих пакетов проще
готовить и выполнять задания, устраивать демонстрации и гораздо быстрее решать
исследовательские и инженерные задачи.

В настоящее время компьютерные программы этого класса (проприетарные — Maple,
Mathematica, MATLAB, MathCad и др., или с открытым кодом) находят самое широкое
применение в научных исследованиях, становятся одним из обязательных компонентов
компьютерных технологий, используемых в образовании.

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

Для школьников системы компьютерной математики (СКМ) являются незаменимым
помощником в изучении математики, физики, информатики, освобождая их от
рутинных расчётов и сосредотачивая их внимание на сущности метода решения той
или иной задачи. Применение СКМ позволяет решать целый спектр новых трудоёмких,
но интересных задач: от упрощения громоздких алгебраических выражений,
аналитического решения уравнений и систем с параметрами, графических построений,
до анимации графиков и пошаговой визуализации самого процесса решения.
Учащимся предоставляется возможность выполнять более содержательные задания и
получать наглядные результаты. Это способствует закреплению знаний и умений,
приобретённых ими при изучении других школьных дисциплин, помогает в полной
мере проявлять свои творческие и исследовательские способности.

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

4

для проведения расчётов по всевозможным техническим дисциплинам студентаминематематиками широко используется пакет MatCad, в основе которого лежит ядро
Maple. При некотором навыке и наличии документации связка Maxima+TexMacs или
ядро Maxima+интерфейс wxMaxima вполне разумная замена MathCad в Unix-среде. А
наличие универсального интерфейса в виде TexMacs или Emacs позволяет объединять
в одном документе расчёты, выполненные в Maxima, Octave, Axiom и т.п.

Для научных работников и инженеров СКМ незаменимое средство анализа постановки
всевозможных задач моделирования. Под системами компьютерной математики
понимают программное обеспечение, которое позволяет не только выполнять
численные расчёты на компьютере, но и производить аналитические (символьные)
преобразования различных математических и графических объектов. Все широко
известные математические пакеты: Maple, Matlab, Matematica, позволяют проводить
как символьные вычисления, так и использовать численные методы. В настоящее
время такие системы являются одним из основных вычислительных инструментов
компьютерного моделирования в реальном времени и находят применение в
различных областях науки. Они открывают также новые возможности для
преподавания многих учебных дисциплин, таких как алгебра и геометрия, физика и
информатика, экономика и статистика, экология. Применение СКМ существенно
повышает производительность труда научного работника, преподавателя вуза, учителя.

Конечным продуктом исследования выступают публикации, подготовка,
распространение и использование которых в настоящее время требует
квалифицированного применения компьютера. Это касается редактирования текста,
изготовления графических материалов, ведения библиографии, размещения
электронных версий в Интернете, поиска статей и их просмотра. Де-факто сейчас
стандартными системами подготовки научно-технических публикаций являются
различные реализации пакета ТеХ и текстовый редактор Word. Кроме того,
необходимы минимальные знания о стандартных форматах файлов, конверторах,
программах и утилитах, используемых при подготовке публикаций.

1.1 Определение систем компьютерной алгебры

История математики насчитывает около трёх тысячелетий и условно может быть
разделена на несколько периодов. Первый — становление и развитие понятия числа,
решение простейших геометрических задач. Второй период связан с появлением
“Начал” Евклида и утверждением хорошо знакомого нам способа доказательства
математических утверждений с помощью цепочек логических умозаключений.

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

Мы живём во время начала нового периода развития математики, который связан с
изобретением и применением компьютеров. Прежде всего, компьютер предоставил
возможность производить сложнейшие численные расчёты для решения тех задач,

5

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

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

Компьютерная алгебра — область математики, лежащая на стыке алгебры и
вычислительных методов. Для неё, как и для любой области, лежащей на стыке
различных наук, трудно определить чёткие границы. Часто говорят, что к
компьютерной алгебре относятся вопросы слишком алгебраические, чтобы
содержаться в учебниках по вычислительной математике, и слишком вычислительные,
чтобы содержаться в учебниках по алгебре. При этом ответ на вопрос о том, относится
ли конкретная задача к компьютерной алгебре, часто зависит от склонностей
специалиста.

1.1.1 Недостатки численных расчётов

Большинство первых систем компьютерной математики (Eureka, Mercury, Excel, Lotus123, MathCad для MS-DOS, PC MatLab и др.) предназначались для численных расчётов.
Они как бы превращали компьютер в большой программируемый калькулятор,
способный быстро и автоматически (по введённой программе) выполнять
арифметические и логические операции над числами или массивами чисел. Их
результат всегда конкретен — это или число, или набор чисел, представляющих
таблицы, матрицы или точки графиков. Разумеется, компьютер позволяет выполнять
такие вычисления с немыслимой ранее скоростью, педантичностью и даже точностью,
выводя результаты в виде хорошо оформленных таблиц или графиков.

Однако результаты вычислений редко бывают абсолютно точными в математическом
смысле: как правило, при операциях с вещественными числами происходит их
округление, обусловленное принципиальным ограничением разрядной сетки
компьютера при хранении чисел в памяти. Реализация большинства численных
методов (например, решения нелинейных или дифференциальных уравнений) также
базируется на заведомо приближённых алгоритмах. Часто из-за накопления
погрешностей эти методы теряют вычислительную устойчивость и расходятся, давая
неверные решения или даже ведя к полному краху работы вычислительной системы —
вплоть до злополучного “зависания”.

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

6

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

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

1.1.2 Отличия символьных вычислений от численных

Термин “компьютерная алгебра” возник как синоним терминов “символьные
вычисления”, “аналитические вычисления”, “аналитические преобразования” и т. д.
Даже в настоящее время этот термин на французском языке дословно означает
“формальные вычисления”.

В чём основные отличия символьных вычислений от численных и почему возник
термин “компьютерная алгебра”?

Когда мы говорим о вычислительных методах, то считаем, что все вычисления
выполняются в поле вещественных или комплексных чисел. В действительности же
всякая программа для ЭВМ имеет дело только с конечным набором рациональных
чисел, поскольку только такие числа представляются в компьютере. Для записи целого
числа отводится обычно 16 или 32 двоичных символа (бита), для вещественного – 32
или 64 бита. Это множество не замкнуто относительно арифметических операций, что
может выражаться в различных переполнениях (например, при умножении достаточно
больших чисел или при делении на маленькое число). Ещё более существенной
особенностью вычислительной математики является то, что арифметические операции
над этими числами, выполняемые компьютером, отличаются от арифметических
операций в поле рациональных чисел.

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

7

Решение проблемы точности вычислений и конечности получаемых численных
результатов в определённой степени даётся развитием систем компьютерной алгебры.
Системы компьютерной алгебры, осуществляющие аналитические вычисления,
широко используют множество рациональных чисел. Компьютерные операции над
рациональными числами совпадают с соответствующими операциями в поле
рациональных чисел. Кроме того, ограничения на допустимые размеры числа
(количество знаков в его записи) позволяет пользоваться практически любыми
рациональными числами, операции над которыми выполняются за приемлемое время.

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

В научных исследованиях и технических расчётах специалистам приходится гораздо
больше заниматься преобразованиями формул, чем собственно численным счётом. Тем
не менее, с появлением ЭВМ основное внимание уделялось автоматизации численных
вычислений, хотя ЭВМ начали применяться для решения таких задач символьных
преобразований, как, например, символьное дифференцирование, ещё в 50-х годах
прошлого века. Активная разработка систем компьютерной алгебры началась в конце
60-х годов. С тех пор создано значительное количество различных систем, получивших
различную степень распространения; некоторые системы продолжают развиваться,
другие отмирают, и постоянно появляются новые.

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

1.2.1 Классификация систем компьютерной математики

В настоящее время системы компьютерной математики (СКМ) можно разделить на
семь основных классов: системы для численных расчётов, табличные процессоры,
матричные системы, системы для статистических расчётов, системы для специальных
расчётов, системы для аналитических расчётов (компьютерной алгебры),
универсальные системы.

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

8

структуре. Тем не менее можно прийти к выводу, что у современных универсальных
СКМ следующая типовая структура:

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

Интерфейс даёт пользователю возможность обращаться к ядру со своими запросами и
получать результат решения на экране дисплея. Интерфейс современных СКМ основан
на средствах популярных операционных систем Windows 95/98/NT и обеспечивает
присущие им удобства работы.

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

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

Ядро, библиотеки, пакеты расширения и справочная система современных СКМ
аккумулируют знания в области математики, накопленные за тысячелетия её развития.

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

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

1.2.2 Задачи систем компьютерной алгебры

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

9

до самых сложных).Такая их особенность использовалось в разных областях знаний.
Развитие компьютерных математических систем привело к появлению отдельного
класса программ, который получил названия Системы Компьютерной Алгебры (CAS).

Главная задача CAS — это обработка математических выражений в символьной форме.
Символьные операции обычно включают в себя: вычисление символьных либо
числовых значений для выражений, преобразование, изменение формы выражений,
нахождение производной одной или нескольких переменных, решение линейных и
нелинейных уравнений, решение дифференциальных уравнений, вычисление пределов,
вычисление определённых и неопределённых интегралов, работа с множествами,
вычисления и работа с матрицами. В дополнение к перечисленному, большинство CAS
поддерживают разнообразные численные операции: расчёт значений выражений при
определённых значениях переменных, построение графиков на плоскости и в
пространстве.

Большинство CAS включают в себя высокоуровневый язык программирования,
который позволяет реализовать свои собственные алгоритмы. Наука которая изучает
алгоритмы, применяемые в CAS, называется компьютерной алгеброй.

1.2.3 Место компьютерной алгебры в информатике

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

Благодаря всему этому специалисты, работающие в информатике, математике и в
прикладных областях, проявляют всё больший интерес к компьютерной алгебре.
Опираясь на противопоставление, можно сказать, что компьютерная алгебра
рассматривает такие объекты, которые имеют слишком вычислительный характер,
чтобы встречаться в книгах по алгебре, и слишком алгебраический характер, чтобы
быть представленными в учебниках по информатике. Многие алгоритмы
компьютерной алгебры можно рассматривать как получисленные (в смысле Кнута).

1.2.4 Взаимосвязь систем компьютерной алгебры и традиционных
математических дисциплин

Отделить компьютерную алгебру от таких математических дисциплин, как алгебра,
анализ или численный анализ, нелегко.

10

Доступ онлайн
1 000 ₽
В корзину