Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в пакет Maxima2

.pdf
Скачиваний:
38
Добавлен:
13.02.2015
Размер:
551.66 Кб
Скачать

Для решения обыкновенных дифференциальных уравнений первого и второго порядка служит функция ode2 (eqn, dvar, ivar) возвращающая, в случае успеха решение уравнения eqn считая dvar независимой, а ivar зависимой переменными. В случае невозможности, по какой-либо причине найти решение функция воз- вращает значение false. Для отображения констант интегрирования в решении уравнения первого порядка используется системная переменная %c, а в решении уравнения второго порядка пара переменных %k1 и %k2.

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

10

Функции ic1 (solution, xval, yval) и ic2 (solution, xval, yval, dval) принимают в качестве аргументов solution решение уравнения, полученное функцией ode2 xval начальная точка, yval и dval значения функции и ее первой производной в начальной точке соответственно.

Для решения краевой задачи служит функция bc2 (solution, xval1, yval1, xval2, yval2), где solution решение уравнения, полученное функцией ode2 а yval1 и yval2 значения функции в точках, xval1 и xval2 соответственно.

Матрицы и линейная алгебра

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

Функция addcol (M, list_1, ..., list_n) добавляет один или несколько столбцов, заданных списками или матрицами к матрице М.

11

В случае несовместимости размеров выдается системное сообщение об ошибке:

Функция addrow (M, list_1, ..., list_n) добавляет одну или несколько строк, заданных списками или матрицами к матрице М.

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

Функция adjoint (M) находит транспонированную матрицу алгебраических дополнений матрицы М.

Функция augcoefmatrix ([eqn_1, ..., eqn_m], [x_1, ..., x_n]) возвращает расши-

ренную матрицу системы линейных алгебраических уравнений [eqn_1, ..., eqn_m]. Слагаемые, не имеющие множителя из списка неизвестных [x_1, ..., x_n] образуют столбец свободных членов.

12

Функция charpoly (M, x) составляет характеристический многочлен матрицы M относительно переменной х.

Решая уравнение, задаваемое этим многочленом, мы можем найти характери- стические числа матрицы:

Функция coefmatrix ([eqn_1, ..., eqn_m], [x_1, ..., x_n]) возвращает матрицу системы линейных алгебраических уравнений [eqn_1, ..., eqn_m] с неизвестными

[x_1, ..., x_n].

Функция col (M, i) возвращает i -й столбец матрицы M. Результат имеет тип

matrix.

Функция columnvector (L) возвращает матрицу-столбец, состоящий из эле- ментов списка L. Синонимом является вызов covect (L). Функция содержится в пакете eigen. Перед обращением к ней пакет должен быть подключен.

13

Функция copymatrix (M) создает копию матрицы M. Это единственный спо- соб, кроме поэлементного копирования, позволяющий создать независимую ко-

пию матрицы в Maxima. Применение оператора присваивания к матрицам

М2:М1 приводит к тому, что произведя изменение элементов матрицы М2

мы изменим и элементы матрицы М1.

Данный принцип работы с матрицами характерен для «старых» языков про- граммирования, таких как Лисп. Пользователям, привыкшим программировать, например, на языке Паскаль следует обращать особое внимание на этот факт.

Функция determinant (M) вычисляет определитель матрицы M.

Попытка вычислить определитель неквадратной матрицы вызовет сообщение об ошибке:

14

Функция diagmatrix (n, x) генерирует диагональную матрицу, размера n на n элементов, на главной диагонали которой находятся значения x.

Функция echelon (M) приводит матрицу M к верхней треугольной форме, нор- мализуя при этом элементы главной диагонали.

Функция eigenvalues (M) находит характеристические числа матрицы M. Си- нонимом является вызов eivals (M). В качестве результата возвращается список, состоящий из двух подсписков. В первом из них содержатся характеристические числа, во втором множители, в соответствующем порядке.

Функция eigenvectors (M) находит собственные векторы матрицы M. Синони- мом является вызов eivects (M). В качестве результата возвращается список, со- стоящий из нескольких подсписков. В первом из них содержатся характеристиче- ские числа, в остальных собственные векторы, в соответствующем порядке.

15

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

Функция ematrix (m, n, x, i, j) генерирует матрицу размера m на n, все элемен- ты которой равны нулю, за исключением элемента с индексами i и j, равного x.

Функция entermatrix (m, n) осуществляет интерактивный поэлементный ввод матрицы. В случае, если m равно n, Maxima дополнительно запрашивает, являет- ся ли матрица диагональной, симметрической, антисимметрической или матри- цей общего вида, после чего следуют приглашения ввода каждого из элементов матрицы. Каждый введенный элемент должен завершаться символом «$» или

«;».

Функция ident (n) генерирует единичную матрицу размера n на n.

16

Функция innerproduct (x, y) находит скалярное произведение двух списков, матриц строк или матриц столбцов одинаковой длины. Синонимом является вы- зов inprod (x, y). Функция содержится в пакете eigen. Перед обращением к ней пакет должен быть подключен.

Функция invert (M) находит обратную матрицу для матрицы M методом ал- гебраических дополнений.

Функция matrixp (expr) возвращает значение true, если выражение expr явля- ется матрицей и false в любом другом случае.

Функция mattrace (M) вычисляет след (сумму элементов главной диагонали) квадратной матрицы M. Функция содержится в пакете nchrpl. Перед обращением к ней пакет должен быть подключен.

17

Функция minor (M, i, j) возвращает минор позиции i, j матрицы M.

Функция rank (M) вычисляет ранг матрицы.

Функция row (M, i) возвращает i -ю строку матрицы M. Результат имеет тип

matrix.

Функция setelmx (x, i, j, M) присваивает значение x элементу M[i, j]. функция возвращает в качестве результата измененную матрицу M, во всем остальном идентична оператору присваивания M[i, j] : x.

Функция submatrix (i_1, ..., i_m, M, j_1, ..., j_n) Генерирует новую матрицу, путем удаления из матрицы M строк с номерами i_1, ..., i_m и столбцов с номера- ми j_1, ..., j_n. Допускаются варианты вызова submatrix (i_1, ..., i_m, M) либо submatrix (M, j_1, ..., j_n), приводящие к удалению только строк или только столбцов соответственно.

Функция transpose (M) в случае, если M матрица, возвращает новую матри- цу, являющуюся транспонированной матрицей M. Если M список, генерирует по

18

этому списку матрицу-столбец. Во всех иных случаях возвращает невычисляемое выражение 'transpose (M).

Функция triangularize (M) приводит матрицу M к верхней треугольной форме. Действие данной функции идентично действию функции echelon (M), за исклю- чением того, что triangularize не нормализует элементы главной диагонали.

Функция uniteigenvectors (M) находит нормализованные собственные векторы матрицы M. Синонимом является вызов ueivects (M). В качестве результата воз- вращается список, состоящий из нескольких подсписков. В первом из них содер- жатся характеристические числа, в остальных собственные векторы, в соответ- ствующем порядке. Функция содержится в пакете eigen. Перед обращением к ней пакет должен быть подключен.

Функция unitvector (х) возвращает нормализованное значение вектора х. Си- нонимом является вызов uvect (х). Функция содержится в пакете eigen. Перед об- ращением к ней пакет должен быть подключен.

19