Математическая система Maxima

(Окончание. Начало в №3)


Операции математического анализа

Суммы

Для нахождения сумм предназначена функция sum. Синтаксис функции:

Sum(выражение, переменная, нижняя граница изменения переменной, верхняя граница изменения переменной)

 

Например:

Если присвоить последнему аргументу значение системной переменной положительной бесконечности "inf", то это станет признаком отсутствия верхней границы и будет рассчитываться бесконечная сумма. Так же бесконечная сумма будет рассчитываться, если присвоить аргументу "нижний предел изменения переменной" значения системной переменной отрицательной бесконечности "minf". Эти же значения используется и в других функциях математического анализа.

Например:


Произведения

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

Например:


Пределы

Для нахождения пределов используется функция limit.

Синтаксис функции:

limit(выражение, переменная, точка разрыва)

Если аргументу "точка разрыва" присвоить значение "inf", то это будет признаком отсутствия границы.

Например:

Для вычисления односторонних пределов используется дополнительный аргумент, который имеет значение plus для вычисления пределов справа и minus - слева.

Например, выполним исследование непрерывности функции arctg(1/(x - 4)). Эта функция неопределенна в точке x = 4. Вычислим пределы справа и слева:

Как видим, точка x = 4 является точкой разрыва первого рода для данной функции, поскольку существуют границы слева и справа, которые равняются соответственно -PI/2 и PI/2.


Дифференциалы

Для нахождения дифференциалов используется функция diff. Синтаксис функции:

diff(выражение, переменная1, порядок производной для переменной1 [,переменная2, порядок производной для переменной2,…])

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

Например:

Вообще обязательным для функции diff является только первый аргумент. В таком случае функция возвращает дифференциал выражения. Дифференциал соответствующей переменной обозначается через del(имя переменной):

Как видим из синтаксиса функции, пользователь имеет возможность определить одновременно несколько переменных дифференцирования и задать порядок для каждой из них:

Если использовать параметрическую функцию, то форма записи функции изменяется: после имени функции записываются символы ":=", а обращение к функции осуществляется через ее имя с параметром:

Производная может быть вычислена в заданной точке. Это осуществляется так:

Функция diff используется также и для обозначения производных в дифференциальных уравнениях, о чем идет речь ниже.


Интегралы

Для нахождения интегралов в системе используется функция integrate. Для нахождения неопределенного интеграла в функции используются два аргумента: имя функции и переменная, по которой происходит интегрирование. Например:

В случае неоднозначного ответа Maxima может задать дополнительный вопрос:

Ответ должен содержать текст из вопроса. В данном случае, если значение переменной y больше "0", это будет "positive" (положительное), а иначе - "negative" отрицательное). При этом допускается ввод только первой буквы слова.

Для нахождения определенного интеграла в функции следует указать дополнительные аргументы: пределы интеграла:

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

Для нахождения приближенного значения интеграла в численном виде, как отмечалось ранее, следует выделить результат в ячейке вывода, вызывать на ней контекстное меню и выбрать из него пункт "To Float" (преобразовать в число с плавающей точкой).

Способна система вычислять и кратные интегралы. Для этого функции integrate вкладываются одна в другую. Ниже приводятся примеры вычисления двойного неопределенного интеграла и двойного определенного интеграла :


Решения дифференциальных уравнений

По своим возможностями в части решения дифференциальных уравнений Maxima ощутимо уступает, например, Maple. Но Maxima все же позволяет решать обычные дифференциальные уравнения первого и второго порядков, а также их системы. Для этого - в зависимости от цели - используют две функции. Для общего решения обычных дифференциальных уравнений используется функция ode2, а для нахождения решений уравнений или систем уравнений по начальным условиям - функция desolve.

Функция ode2 имеет такой синтаксис:

ode2(уравнение, зависимая переменная, независимая переменная);

Для обозначения производных в дифференциальных уравнениях используется функция diff. Но в этом случае с целью отображения зависимости функции от ее аргумента она записывается в виде 'diff(f(x), x), а сама функция - f(x).

Пример. Найти общее решение обычного дифференциального уравнения первого порядка y' - ax = 0.

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

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

Осуществить решение обычного дифференциального уравнения можно и другим, более простым для пользователя, способом. Для этого следует выполнить команду Уравнения > Solve ODE (Решить обычное дифференциальное уравнение) и в окне "Решить ОДУ" ввести аргументы функции ode2.

Maxima позволяет решать дифференциальные уравнения второго порядка. Для этого также применяют функцию ode2. Для обозначения производных в дифференциальных уравнениях используется функция diff, в которой добавляют еще один аргумент - порядок уравнения: 'diff(f(x), x, 2). Например решение обычного дифференциального уравнения второго порядка a·y'' + b·y' = 0 будет иметь вид:

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

  1. ic1(результат работы функции ode2, начальное значение независимой переменной в виде x = x0, значение функции в точке x0 в виде y = y0). Предназначена для решения дифференциального уравнения первого порядка с начальными условиями.
  2. ic2(результат работы функции ode2, начальное значение независимой переменной в виде x = x0, значение функции в точке x0 в виде y = y0, начальное значение для первой производной зависимой переменной относительно независимой переменной в виде (y,x) = dy0). Предназначена для решения дифференциального уравнения второго порядка с начальными условиями
  3. bc2(результат работы функции ode2, начальное значение независимой переменной в виде x = x0, значение функции в точке x0 в виде y = y0, конечное значение независимой переменной в виде x = xn, значение функции в точке xn в виде y = yn). Предназначена для решения краевой задачи для дифференциального уравнения второго порядка.

Подробно с синтаксисом этих функций можно ознакомиться в документации к системе.

Выполним решение задачи Коши для уравнения первого порядка y' - ax = 0 с начальным условием y(п) = 1.

Приведем пример решения краевой задачи для дифференциального уравнения второго порядка y''+y=x с начальными условиями y(o) = 0; y(4)=1.

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

В таких случаях Maxima или выдает сообщение об ошибке (как в данном примере) или просто возвращает значение "false".

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

Синтаксис функции:

desolve(дифференциальное уравнение, переменная);

Если осуществляется решение системы дифференциальных уравнений или есть несколько переменных, то уравнение и/или переменные подаются в виде списка:

desolve([список уравнений], [переменная1, переменная2,...]);

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

Начальные значения для переменной предоставляются функцией atvalue. Эта функция имеет такой синтаксис:

atvalue(функция, переменная = точка, значение в точке);

В данном случае предусматривается, что значения функций и (или) их производных задаются для нуля, потому синтаксис функции atvalue имеет вид:

atvalue(функция, переменная = 0, значение в точке "0");

Пример. Найти решение дифференциального уравнения первого порядка y'=sin(x) с начальным условием.

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

Это позволяет осуществить проверку решения для конкретного начального значения. Действительно, подставляя в полученный результат значение y(0) = 4, как раз и получаем y(x) = 5 - cos(x).

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

Приведем пример решения системы дифференциальных уравнений с начальными условиями y(0) = 0; z(0) = 1.


Обработка данных

Статистический анализ

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

Самым простым способом расчета статистических описательных статистик является использование палитры "Statistics" (Статистика).

Панель содержит ряд инструментов, сгруппированных в четыре группы.

  1. Статистические показатели (описательные статистики):
    • mean (средняя арифметическая);
    • median (медиана);
    • variance (дисперсия);
    • deviation (среднее квадратичное отклонение).
  2. Тесты.
  3. Построение пяти типов графиков:
    • гистограмма (Histogram). Используется в первую очередь в статистике для изображения интервальных рядов распределения. Во время ее построения по оси ординат откладывают части или частоты, а на оси абсцисс - значения признака;
    • диаграмма рассеяния (диаграмма корреляции, поле корреляции, Scatter Plot) - график по точкам, когда точки не соединяются. Используется для отображения данных для двух переменных, одна из которых является факторной, а другая - результативной. С ее помощью осуществляется графическое представление пар данных в виде множества точек ("тучи") на координатной плоскости;
    • ленточная диаграмма (Bar Chart) - график в виде вертикальных столбцов;
    • секторная, или круговая, диаграмма (Pie Chart). Такая диаграмма разделена на несколько сегментов-секторов, площадь каждого из которых пропорциональна их части;
    • коробочная диаграмма (коробка с усами, шкатулка с усами, Box Plot, box-and-whisker diagram). Именно она чаще всего используется для изображения статистических данных. Информация такого графика является очень содержательной и полезной. Он одновременно отображает несколько величин, которые характеризуют вариационный ряд: минимальное и максимальное значение, среднюю и медиану, первый и третий квартиль.
  4. Инструменты для считывания или создания матрицы. Для использования инструментов палитры необходимо иметь начальные данные в виде матрицы - одномерного массива. Его можно создать в документе с текущей сессией и в дальнейшем подставлять его название как входные данные в окнах инструментов палитры аналогично решению уравнений с помощью панели общих математических действий (General Math). Можно и непосредственно задавать в данные в окнах ввода входных данных. В этом случае они вводятся в принятом в системе виде, то есть в квадратных скобках и через запятую. Понятно, что первый вариант является значительно лучшим, поскольку он требует только одноразового введения данных.

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

Валерий ФЕТИСОВ

Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Читайте также