(Окончание. Начало в №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:
- ic1(результат работы функции ode2, начальное значение независимой переменной в виде x = x0, значение функции в точке x0 в виде y = y0). Предназначена для решения дифференциального уравнения первого порядка с начальными условиями.
- ic2(результат работы функции ode2, начальное значение независимой переменной в виде x = x0, значение функции в точке x0 в виде y = y0, начальное значение для первой производной зависимой переменной относительно независимой переменной в виде (y,x) = dy0). Предназначена для решения дифференциального уравнения второго порядка с начальными условиями
- 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" (Статистика).
Панель содержит ряд инструментов, сгруппированных в четыре группы.
- Статистические показатели (описательные статистики):
- mean (средняя арифметическая);
- median (медиана);
- variance (дисперсия);
- deviation (среднее квадратичное отклонение).
- Тесты.
- Построение пяти типов графиков:
- гистограмма (Histogram). Используется в первую очередь в статистике для изображения интервальных рядов распределения. Во время ее построения по оси ординат откладывают части или частоты, а на оси абсцисс - значения признака;
- диаграмма рассеяния (диаграмма корреляции, поле корреляции, Scatter Plot) - график по точкам, когда точки не соединяются. Используется для отображения данных для двух переменных, одна из которых является факторной, а другая - результативной. С ее помощью осуществляется графическое представление пар данных в виде множества точек ("тучи") на координатной плоскости;
- ленточная диаграмма (Bar Chart) - график в виде вертикальных столбцов;
- секторная, или круговая, диаграмма (Pie Chart). Такая диаграмма разделена на несколько сегментов-секторов, площадь каждого из которых пропорциональна их части;
- коробочная диаграмма (коробка с усами, шкатулка с усами, Box Plot, box-and-whisker diagram). Именно она чаще всего используется для изображения статистических данных. Информация такого графика является очень содержательной и полезной. Он одновременно отображает несколько величин, которые характеризуют вариационный ряд: минимальное и максимальное значение, среднюю и медиану, первый и третий квартиль.
- Инструменты для считывания или создания матрицы. Для использования инструментов палитры необходимо иметь начальные данные в виде матрицы - одномерного массива. Его можно создать в документе с текущей сессией и в дальнейшем подставлять его название как входные данные в окнах инструментов палитры аналогично решению уравнений с помощью панели общих математических действий (General Math). Можно и непосредственно задавать в данные в окнах ввода входных данных. В этом случае они вводятся в принятом в системе виде, то есть в квадратных скобках и через запятую. Понятно, что первый вариант является значительно лучшим, поскольку он требует только одноразового введения данных.
Кроме панели, все статистические инструменты могут быть использованы также и с помощью соответствующих функций.
Валерий ФЕТИСОВ