kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

Программирование в Maxima

Нажмите, чтобы узнать подробности

Программа Maxima распространяется под лицензией GPL и доступна как пользователям ОС Linux, так и пользователям MS Windows. К сожалению, русская версия программы не имеет даже простой справки на русском языке, а немногочисленные статьи, посвященные изучению этой программы, имеющиеся в некотором количестве в Интернете, – не всегда доступны и, зачастую, рассчитаны на уже компьютеризированного пользователя.

Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

Просмотр содержимого документа
«Программирование в Maxima»

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

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

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

ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ ИМЕНИ М. Е. ЕВСЕВЬЕВА»



Физико-математический факультет

Кафедра математики и методики обучения математике



РЕФЕРАТ

Программирование в Maxima



















Афонина В.А


Программа Maxima распространяется под лицензией GPL и доступна как пользователям ОС Linux, так и пользователям MS Windows. К сожалению, русская версия программы не имеет даже простой справки на русском языке, а немногочисленные статьи, посвященные изучению этой программы, имеющиеся в некотором количестве в Интернете, – не всегда доступны и, зачастую, рассчитаны на уже компьютеризированного пользователя.

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

Большинство компьютерных программ, как уже отмечалось, предназначено для вычислений с числовыми выражениями. Как правило, их результаты бывают приближенными, ведь при операциях с вещественными числами происходит их округление. Системы компьютерной математики, избавлены от подобных недостатков. Они способны использовать в процессе вычислений математические теоремы и факты. Так, известное тригонометрическое тождество гласит, что sin2x+cos2x=1 для любого x. Ни один калькулятор не способен применить это тождество в процессе преобразований, в то время как такие программы, как Mathematica или Maxima, предназначенные для символьных вычислений, легко справляются с подобными задачами.

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

В отличие от коммерческой программы Mathematica программа Maxima распространяется под лицензией GNU, что позволяет рекомендовать ее широкому кругу пользователей. У каждой из этих двух программ есть свои сильные и слабые стороны. Удобный графический интерфейс является несомненным достоинством программы Mathematica, в то время как Maxima зачастую дает математически более строгие ответы. Так, например, при вычислении первообразной функции xMaxima просит уточнить значение n, так как при n= – 1 результатом является функция ln x, а при других первообразная равна xn+1/(n+1). Программа Mathematica не уточняет и для такой функции всегда в качестве первообразной выдает значение xn+1/(n+1), хотя если в качестве функции задать 1/x, то получим верный результат – ln x. Другими представителями систем такого рода являются программы MathcadMapleAxiom, GAP, FreeMat, Octave, Scilab, YACAS и другие.

Язык Maxima содержит все необходимые средства для разработки программ: условные инструкции, циклы, массивы.

Вывод данных

Зачастую удобно, чтобы на экран выводился не весь результат работы программы, а только некоторые значения. Для этого необходимо:

1. Отключить вывод на экран результата вычисления выражения, для чего необходимо заменить завершающий символ ; на символ $.

2. Для вывода на экран значения переменной или какой-нибудь другого выражения используется функция print, например, print(i) для вывода значения переменной i.

Блоки команд

Для того, чтобы в теле условной инструкции или цикла выполнить несколько инструкций, необходимо их записать в круглых скобках через запятую, например, блок инструкций для обмена местами переменных a и b может выглядеть так: (t:a, a:b, b:t).

Условная инструкция if

Условная инструкция if имеет следующий синтаксис:

if условие then выражение1 else выражение2

При этом инструкция if возвращает значение одного из двух выражений. Например, присвоить переменной m максимума из двух переменных a и b можно двумя способами:

if ab then m:a else m:b

или

m: if ab then a else b

Вместо одной инструкции можно использовать блок инструкций, как указано выше. Слово else и инструкцию после него можно опустить.

Цикл for

Синтаксис цикла for следующий:

for переменная: начальное_значение step шаг thru конечное значение do выражение

Примеры:

for i:2 step 2 thru 100 do print(i)$

Любые части этой конструкции (step, thru) можно опускать.

При необходимости выполнить несколько инструкций необходимо объединить их в блок.

Цикл while

Синтаксис цикла while следующий:

while условие do выражение

В качестве условий можно использовать операторы сравнения , =, =, # и логические операторы and, or, not.






  1. Загрузка и интерфейсы Maxima

Версия, существующая на начало лета 2008 года – 5.15.0, доступна для загрузки с русской версии сайта Maxima http://maxima.sourceforge.net/ru/. С каждой новой версией в Maxima появляются новые функциональные возможности и виды решаемых задач. Пакет Maxima либо входит в Linux- дистрибутив, и при отсутствии программы на компьютере, ее просто нужно доустановить из дистрибутива, либо пакет доступен для скачивания с упомянутого сайта проекта, либо Максиму можно собрать из исходников, лежащих на том же сайте.

Попробуем загрузить ту Максиму, что находится на нашем компьютере и приобрести минимальный начальный опыт, например, следующим образом. Найдем на рабочем столе или в меню задач Терминал (Konsole) и запустим эту программу, после получения приглашения введем maxima. Тем самым мы пытаемся загрузить Максиму из Консоли (её консольный вариант). Maxima тут же напишет нам номер своей версии и название сайта для своего последующего обновления. Добавим 2*2 после выражения в скобках, у нас получится (%i1) 2*2 (мы желаем узнать, знает ли об этом Максима?). Нажав Enter, мы замечаем, что курсор как всегда переместился на строчку ниже, но Максима не сказала нам ни "Да", ни "Нет". В отчаянии мы стучим пальцем по стрелке "Вверх", но курсор вверх не передвигается, однако снова сама собой появляется запись 2*2 (тут же замечаем для себя на будущее, что Maxima запомнила введенный нами текст) (рис. 1).

Рассуждая о том, что нам теперь делать, вспоминаем, что очень часто программисты используют знак (точку с запятой), чтобы один оператор отделить от другого. Добавим к нашему тексту, получим 2*2; и снова упорно надавим Enter. Maxima тут же отвечает, но сама возмущена – пишет (Incorrect syntax: ...) – и указывает нам на нашу некорректность в записи команды в две строчки (рис. 1).

Мы, конечно же, прежде всего, вынуждены "зарубить на носу", что точку с запятой надо ставить обязательно, если мы хотим получить ответ от Максимы. На наше новое немного измененное предложение (%i1) 2*12; (мы попробовали сдвинуть курсор влево и вставили 1 перед двойкой и исправления оказались доступны!). На это повторное предложение: "перемножь эти два числа"

Максима ответила (%o1) 24, но записала это по-своему: номер ответа (%o1) поставила на экране слева, а сам ответ 24 – на самой середине экрана (рис. 1).

Рис. 1. Начало работы в консольной версии Максимы

Ответ на наше более сложное задание: вычислить еπ, которое мы ввели в виде одной строки %e**(%pi), Максима также получила мгновенно, но ответ вывела в 2 строки (в верхней строке Максима записала показатель степени %pi, а ниже и немного левее — основание степенного выражения %e). Из записи ответа видно, что Максима понимает математику, но предпочитает записывать ответ не в виде числа (зачастую, как мы знаем, приближенного), а в символьном виде (точно), однако в консольном варианте других возможностей

– кроме как выводить результат в несколько строк – у Максимы нет. Когда мы повторили наше задание и добавили в новом задании слово numer, Максима вывела нам численный ответ в виде числа с большой точностью – 16 знаков (считать, конечно же, Максима умеет и численно, и весьма точно).


На рис. 2 на наш запрос вида





(%i1) 'integrate(exp(-x^2/2),x,–2,2); оболочка xmaxima вывела ответ в виде 8-ми строк.

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

текстовыхсимволов. Рис. 2. Интерфейс xMaxima Возможности Максимы в консольной версии, как видим, — весьма

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

все математические формулы «рисуются» обычными текстовыми символами – в несколько строк дисплея.

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

Ещё два интерфейса, emaxima и imaxima, реализованы как библиотеки к редактору emacs и будут полезны тем, кто набирает свои работы в формате LaTeX. Четвёртый графический интерфейс к Максиме – это интерфейс к редактору TeXmacs. TeXmacs используется в первую очередь для работы с текстами научной тематики. Для интеграции Максимы с редактором TeXmacs сначала необходимо запустить TeXmacs, затем для подключения Максимы – на панели инструментов программы TeXmacs необходимо нажать на кнопку с изображением монитора и выбрать интерактивную сессию Maxima (рис. 3). Выбор пункта Maxima позволит начать сеанс работы с этой программой. И закончить … , если Maxima плохо интегрирована в редактор TeXmacs (рис. 4).

Впрочем, упомянутые интерфейсы в дистрибутив Alt-Linux не входят. В меню рабочего стола KDE Образование Математика, Прочие Научные и математические, Образование Разработка, входит Графическая оболочка wxMaxima, которую мы и рассмотрим подробнее.

Рис. 3. Запуск Maxima в редакторе TeXmacs

Графическая оболочка wxMaxima (входящая в комплект поставки дистрибутива Alt-Linux) предоставляет пользователю удобный и понятный интерфейс на русском языке и графическое окно для результатов расчета (рис. 5). И, хотя в русскоязычной версии wxMaxima встроенной справки на русском языке пока нет, в сети Интернет непрерывно растет количество статей с примерами использования Maxima.


Рис. 4. Maxima не интегрирована в TeXmacs


На рис. 5 на аналогичный запрос вида (%i1)

' integrate (exp(–x^2/2),x,–2,2); графический интерфейс wxMaxima выводит красивый и привычный вид интеграла, правильное положение дробной черты, да и величина символов, используемых при записи показателя степени, явно меньше (то есть, величина

символов масштабируется) по Рис. 5. Графический интерфейс wxMaxima










  1. Ввод простейших команд в wxMaxima

После запуска wxMaxima появляется окно программы, показанное на рис. 

приготовилась воспринимать команды. Разделителем команд является символ (точка с запятой). После ввода команды необходимо нажать клавишу Enter для ее обработки и вывода результата.

В ранних версиях Maxima и некоторых ее оболочках (например, xMaxima), и в консольной версии наличие точки с запятой после каждой команды строго обязательно. Поэтому настоятельно рекомендуем при использовании Максимы не забывать добавлять точку с запятой после каждой команды.

В случае, когда выражение надо отобразить, а не вычислить, перед ним необходимо поставить знак ‘ (одинарная кавычка). Но этот метод не работает, когда выражение имеет явное значение,

например, выражение sin(π) Максима рассматривает как нуль и при наличии апострофа.

Трудно предусмотреть многообразие возможных вариантов использования Максимы для расчета или преобразования выражений. В сложных случаях, можно попытаться получить справку на английском языке. Для вызова справки достаточно в поле ВВОД написать ? и нажать Enter.

    1. Обозначение команд и результатов вычислений

После ввода каждой команде присваивается порядковый номер. На приведенном ниже рисунке введенные команды имеют номера 1–3 и обозначаются соответственно (%i1), (%i2), (%i3). Результаты вычислений имеют соответственно порядковый номер (%o1), (%o2) и т. д. Где "i" – сокращение от англ. input (ввод), а "o" – англ. output (вывод).

Этот механизм позволяет при дальнейшей записи команд сослаться на ранее записанные, например (%i1)+(%i2) будет означать добавление к выражению первой команды выражения второй с последующим вычислением результата. Также можно использовать и номера результатов вычислений, например, таким образом (%o1)*(%o2).

Для последней выполненной команды в Maxima есть специальное обозначение – %.







Пример: Вычислить значение производной функции

в точке х=1.

Команда (%i9) была выполнена, и был получен результат (%о9). Поэтому следующая команда (%i10) сослалась на уже полученный результат, но уточнила значение переменной х, поэтому команда получала вид (%i10) (%о9), х=1.


    1. Ввод числовой информации

Правила ввода чисел в Maxima точно такие, как и для многих других подобных программ. Целая и дробная часть десятичных дробей разделяются символом точка. Перед отрицательными числами ставится знак минус. Числитель и знаменатель обыкновенных дробей разделяется при помощи символа / (прямой слэш).

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

Здесь Maxima прежде всего действовала по умолчанию. Она сложила дроби 3/7 и 5/3 по правилам арифметики точно: нашла общий знаменатель, привела дроби к общему знаменателю и сложила числители. В итоге она получила 44/21. Лишь после того, как мы попросили её получить численный ответ, она вывела приближенный, с точностью 16 знаков численный ответ 2,095238095238095.



    1. Константы

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

Таблица 1

Названия констант и их обозначение в Maxima




    1. Арифметические операции

Обозначения арифметических операций в Maxima ничем не отличаются от классического представления, используются математические знаки: + – * /.

Возведение в степень можно обозначать тремя способами: ^^ , **.

Извлечение корня степени записывают, как степень ^^(1/n).

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

Например, 6!=1 2 3 4 5 6=120.

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


    1. Переменные

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

Присваивание значения переменной осуществляется с использованием символа: (двоеточие), например x: 5;.

Если необходимо удалить значение переменной (очистить ее), то применяется метод kill:

kill(x) – удалить значение переменной x;

kill(all) – удалить значения всех используемых ранее переменных.

И кроме того, метод kill начинает новую нумерацию для исполняемых команд (обратите внимание, что ответом на команду (%i3), приведенную выше, оказался ответ с номером ноль (%o0) done, и далее нумерация команд продолжилась с единицы).

    1. Математические функции

В Maxima имеется достаточно большой набор встроенных математических функций. Вот некоторые из них (табл.2). Следует иметь ввиду, что некоторые названия функций отличаются от названий, используемых в отечественной литературе: Вместо tg – tan, вместо ctg – cot, вместо arcsin – asin, вместо arccos

– acos, вместо arctg – atan, вместо arcctg – acot, вместо ln – log, вместо cosec – csc.


    1. Правило записи функций

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





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

  1. Русская версия сайта Maxima http://maxima. sourceforge.net/ru/ (редактор Алексей Бешéнов), он же на http://iais.kemsu.ru/odocs/lisp/maxima/index.htm

  2. Лекция «Системы компьютерной алгебры» http://www. intuit.ru/department/se /pinform/8/ (Автор: Е.А. Роганов)

  3. Системы компьютерной алгебры статья на сайте Denis Kirienko http://server.179.ru /tasks/maxima/1.html

  4. Википедия о Maxima: http://ru.wikipedia.org/wiki/Maxima (дает ссылку введение в Maxima)

  5. Введение в Максима (ссылка из Википедии) http://lib.custis.ru/index.php/ Maxima (очень кратко)

  6. Перевод на русский язык статьи Роберта Додиера, Коротко о Maxima http://beshenov .ru/maxima/minimal-maxima.pdf

  7. Основы работы в Maxima/wxMaxima. Maxima — максимум свободы символьных вычислений http://iais.kemsu.ru/odocs/lisp/maxima /maxima- tarnavsky-1.html

  8. Дистанционное обучение от Mandriva.ru Основы работы в математическом пакете Maxima (Тьютор Тихон Тарнавский) http://etraining. mandriva.ru /index.php

  9. http://www.pmtf.msiu.ru/chair31/students/spichkov/maxima2.pdf (Методическое пособие по изучению математического пакета Maxima) Математический практикум с применением пакета Maxima. (PDF)

  10. Сборник типовых расчетов по высшей математике: Учебное пособие для технических вузов (под ред. Миносцева В.Б.) Изд. 4-е, перераб. М: 2004 – Изд–во: МГИУ – 582 с.





Получите в подарок сайт учителя

Предмет: Математика

Категория: Прочее

Целевая аудитория: Прочее

Скачать
Программирование в Maxima

Автор: Афонина Виктория Андреевна

Дата: 17.06.2020

Номер свидетельства: 553508

Похожие файлы

object(ArrayObject)#852 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(237) "Имитационное моделирование в Maxima. Возможности математического пакета Maxima. (графический интерфейс Maxima, основные принципы работы)."
    ["seo_title"] => string(80) "imitatsionnoe_modelirovanie_v_maxima_vozmozhnosti_matematicheskogo_paketa_maxima"
    ["file_id"] => string(6) "553598"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1592488034"
  }
}
object(ArrayObject)#874 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(237) "Имитационное моделирование в Maxima. Возможности математического пакета Maxima. (графический интерфейс Maxima, основные принципы работы)/"
    ["seo_title"] => string(80) "imitatsionnoe_modelirovanie_v_maxima_vozmozhnosti_matematicheskogo_paketa_maxi_1"
    ["file_id"] => string(6) "553599"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1592490362"
  }
}
object(ArrayObject)#852 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(42) "Программирование в Maxima"
    ["seo_title"] => string(25) "programmirovanie_v_maxima"
    ["file_id"] => string(6) "553508"
    ["category_seo"] => string(10) "matematika"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1592396590"
  }
}
object(ArrayObject)#874 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(42) "Программирование в Maxima"
    ["seo_title"] => string(27) "programmirovanie_v_maxima_1"
    ["file_id"] => string(6) "553509"
    ["category_seo"] => string(10) "matematika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1592396754"
  }
}
object(ArrayObject)#852 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(42) "Программирование в Maxima"
    ["seo_title"] => string(27) "programmirovanie_v_maxima_2"
    ["file_id"] => string(6) "554396"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1593622459"
  }
}


Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Проверка свидетельства