БлогNot. Mathcad: найти коммутативную матрицу для заданной

Mathcad: найти коммутативную матрицу для заданной

Матрицы A и B перестановочны (коммутативны), если A*B = B*A.

Например, нам нужно по заданной матрице

`
    | a   b |
A = |       |
    | c   d |

найти элементы матрицы B той же размерности

`
    | e   f |
B = |       |
    | g   h |

то есть, подобрать такие e, f, g, h, что A*B = B*A.

Так как эта система уравнений имеет бесконечно много решений (соответственно, перестановочная с данной матрица определена с точностью до постоянного множителя), один элемент искомой матрицы надо зафиксировать, например, положив e=1. В остальном всё решится в символьном виде обычным блоком Given-Find:

поиск перестановочной матрицы в символьном виде (Mathcad)
поиск перестановочной матрицы в символьном виде (Mathcad)

А вот с дополнительными ограничениями вида "a,b,...,h не равны 0", или "определители A и B не равны 0", ничего не выйдет. Mathcad просто возьмёт "ближайшее" решение, состоящее из всех нулей.

Сказанное не значит, что Mathcad найдёт "наиболее короткое" или ещё в каком-то смысле "лучшее" решение задачи, имеющей бесконечное множество вариантов ответа. Например, такую простую перестановочную матрицу как

`
    | a-d   b |
B = |         |
    |  c    0 |

он не найдёт, если поставить до Given оператор h:=0 и искать значения e, f, g. Будут выданы всё те же нули, как "ближайшее подходящее" решение.

Если же матрица A задана не символьно, а в числах, всё ещё тривиальней (для удобства использован "дробный" формат при выводе матриц):

поиск перестановочной матрицы в аналитическом виде (Mathcad)
поиск перестановочной матрицы в аналитическом виде (Mathcad)

 Скачать этот пример в архиве .zip с документом Mathcad 15 .xmcd (21 Кб)

23.12.2015, 01:00 [14473 просмотра]


теги: числа mathcad

К этой статье пока нет комментариев, Ваш будет первым