Назад до змісту

Матричные функции

9.1 Вычисление транспонированной матрицы

Для вычисления транспонированной матрицы для матрицы $A$ необходимо выполнить команду transpose(A) или $\mathbf{A\widehat{ } {T}}$.

Доки немає результату

9.2 Вычисление обратной и присоединенной матрицы

Вычисление обратной матрицы

Для вычисления обратной матрицы для матрицы $A$ необходимо выполнить команду inverse(A) или $\mathbf{A\widehat{ } {(-1)}}$.

Доки немає результату

Доки немає результату

Вычисление присоединенной матрицы

Для вычисления присоединенной матрицы для заданной матрицы $A$ необходимо выполнить команду adjoint(A) или $\mathbf{A\widehat{ }{\backslash star}}$.

Доки немає результату

Доки немає результату

9.3 Вычисление определителя матрицы

Для вычисления определителя матрицы A необходимо выполнить команду det(A).

Доки немає результату

Доки немає результату

9.4 Вычисление сопряженной матрицы

Для вычисления сопряженной матрицы необходимо выполнить команду conjugate(A) или $\mathbf {A\widehat{ } { \backslash ast}}$.

Доки немає результату

9.5 Вычисление обобщенной обратной матрицы

Для вычисления обобщенной обратной матрицы Мурра-Пенроуза необходимо выполнить команду genInverse(A) или $\mathbf{A\widehat{ } {+}}$.

Доки немає результату

9.6 Вычисление ядра оператора и эшелонной формы

Вычисление эшелонной формы матрицы

Для вычисления эшелонной формы матрицы A необходимо выполнить команду toEchelonForm(A).

Доки немає результату
Доки немає результату

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

Для вычисления ядра оператора матрицы A необходимо выполнить команду kernel(A).

Доки немає результату

Доки немає результату

9.7 Вычисление характеристического полинома матрицы

Для вычисления характеристического полинома матрицы A, элементы которой из $R[x_1,…,x_m]$, необходимо задать кольцо полиномов $R[x_1,…,x_m]R[t]$ или $R[t,x_1,…,x_m]$, в котором переменная $t$ — это переменная, по которой строится полином, и выполнить команду charPolynom(A). Например,если элементы исходной матрицы из кольца Z[x,y], то можно указать Z[x,y]Z[t] или Z[t,x,y].

Доки немає результату

Доки немає результату

9.8 LDU-разложение

Для вычисления LDU-разложения матрицы $A$, нужно выполнить команду LDU(A).

Результат — это три матриц $[L,D,U]$. Здесь $L$ — нижняя треугольная матрица, $U$ — верхняя треугольная матрица, $D$ — матрица перестановок, умноженная на матрицу, которая является обратной к диагональной матрице. Если элементы матрицы $A$ из коммутативной области $R$, то и элементы матриц $L$, $D^{-1}$, $U$ также принадлежат области $R$.

Доки немає результату

Доки немає результату

Доки немає результату

9.9 Разложение Брюа

Для вычисления разложения Брюа матрицы $A$, нужно выполнить команду BruhatDecomposition(A).

Результат — вектор из трёх матриц $[V,D,U]$. Здесь $V$ и $U$ — верхние треугольные матрицы, $D$ — матрица перестановок, умноженная на матрицу, которая является обратной к диагональной матрице. Если элементы матрицы $A$ из коммутативной области $R$, то и элементы матриц $V$, $D^{-1}$, $U$ также принадлежат области $R$.

Доки немає результату

Доки немає результату

9.10 Решение задач линейного программирования

Пусть задана целевая функция $\sum_{j = 1}^n c_j x_j$ и условия $$\sum_{j = 1}^n a_{ij}x_j\leqslant b_i,\text{ где }i = 1,2,…,m,$$ $$x_j\geqslant 0,\text{ где }j = 1,2,…,n.$$

Определим $m\times n$-матрицу $A = (a_{ij})$, $m$-мерный вектор $b = (b_i)$, $n$-мерный вектор $c = (c_j)$ и $n$-мерный вектор $x = (x_j)$.

Тогда целевую функцию можно записать в виде $c^Tx,$ а условия — в виде $$Ax \leqslant b,$$ $$ x \geqslant 0.$$

Для решения задач линейного программирования нужно выполнить команду SimplexMax или SimplexMin. Результат — вектор $x$.

В зависимости от вида задачи возможны следующие варианты вызова команд.

1. Для решения задачи $$c^Tx \rightarrow max$$ при условиях $$Ax \leqslant b,$$ $$ x \geqslant 0,$$ используем команду SimplexMax(A, b, c).

Если целевую функцию надо минимизировать, т.е. $$c^Tx \rightarrow min,$$ то используем команду SimplexMin(A, b, c).

Пример.

Максимизировать $$3x_1 + x_2 + 2x_3$$ при условиях $$ x_1 + x_2 + 3x_3 \leqslant 30, 2x_1 + 2x_2 + 5x_3 \leqslant 24, 4x_1 + x_2 + 2x_3 \leqslant 36, x_1, x_2, x_3 \geqslant 0. $$

Доки немає результату

2. Для решения задачи $$c^Tx \rightarrow max$$ при условиях $$A_1 x \leqslant b_1,$$ $$A_2 x = b_2,$$ $$ x \geqslant 0,$$ используем команду SimplexMax(A_1,A_2, b_1, b_2, c).

Если целевую функцию надо минимизировать, т.е. $$c^Tx \rightarrow min,$$ то используем команду SimplexMin(A_1,A_2, b_1, b_2, c).

Пример.

Максимизировать $$7x_1 + x_3 - 4x_4$$

при условиях $$ x_1 - x_2 + 2x_3 - x_4 \leqslant 6, 2x_1 + x_2 - x_3 = -1, x_1, x_2, x_3, x_4 \geqslant 0. $$

Доки немає результату

3. Для решения задачи $$c^Tx \rightarrow max$$ при условиях $$A_1 x\leqslant b_1,$$ $$A_2 x = b_2,$$ $$A_3 x\geqslant b_3,$$ используем команду SimplexMax(A_1,A_2, A_3,b_1, b_2, b_3,c).

Если целевую функцию надо минимизировать, т.е. $$c^Tx \rightarrow min,$$ то используем команду SimplexMin(A_1,A_2, A_3,b_1, b_2, b_3, c).

Пример.

Максимизировать $$x_1 + x_2$$

при условиях $$ 4x_1 - x_2 \leqslant 8, 2x_1 + x_2 \leqslant 10, -5x_1 + 2x_2 \geqslant -2, x_1, x_2 \geqslant 0. $$

Доки немає результату

4. Для решения задачи общего вида, как и в предыдущем пункте, $$c^Tx \rightarrow max$$ можно обойтись четырьмя параметрами. Можно задать матрицу $A$, вектор $b$, целевую функцию $c$ и использовать команду SimplexMax(A,signs,b,c), где массив целых чисел $signs$ определяет знаки сравнения: -1 обозначает меньше или равно , 0 обозначает равно и 1 обозначает больше или равно. Должно быть в $signs$ столько же чисел, сколько элементов в векторе $b$.

Если целевую функцию надо минимизировать, т.е. $$c^Tx \rightarrow min,$$ то используем команду SimplexMin(A,signs,b,c).

Пример.

Минимизировать $$-2x_1-4x_2-2x_3$$ при условиях $$ -2x_1 + x_2 + x_3 \leqslant 4, - x_1 + x_2 + 3x_3 \leqslant 6, x_1 - 3x_2 + x_3 \leqslant 2, x_1, x_2, x_3 \geqslant 0. $$ In:

Доки немає результату

Назад до змісту