2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2, 3, 4  След.
 
 матричное уравнение
Сообщение26.07.2012, 17:26 
Как решить уравнения вида

$AX=XB$ или $AXB=X$

матрицы все квадратные одинаковой размерности надо найти элементы матрицы $X$.

 
 
 
 Re: матричное уравнение
Сообщение26.07.2012, 17:51 
Аватара пользователя
Как универсальный вариант - через СЛУ опять-таки: обозначить эл-ты матрицы $X$ за независимые переменные $x_{ij}$. Правда, в общем случае это весьма громоздко.

 
 
 
 Re: матричное уравнение
Сообщение26.07.2012, 19:11 
Аватара пользователя
Гантмахер Ф.Р. Теория матриц.
В пятом издании это — глава VIII "Матричные уравнения", параграф 1 "Уравнение $AX=XB$", страница 193.

 
 
 
 Re: матричное уравнение
Сообщение27.07.2012, 09:28 
Цитата:
Как универсальный вариант - через СЛУ опять-таки: обозначить эл-ты матрицы за независимые переменные . Правда, в общем случае это весьма громоздко.

вы имеете ввиду так?
общее уравнение в матричной форме
$$\begin{pmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{pmatrix}
\begin{pmatrix}
x_{11} & x_{12} & x_{13} \\
x_{21} & x_{22} & x_{23} \\
x_{31} & x_{32} & x_{33}
\end{pmatrix}
=
\begin{pmatrix}
x_{11} & x_{12} & x_{13} \\
x_{21} & x_{22} & x_{23} \\
x_{31} & x_{32} & x_{33}
\end{pmatrix}
\begin{pmatrix}
b_{11} & b_{12} & b_{13} \\
b_{21} & b_{22} & b_{23} \\
b_{31} & b_{32} & b_{33}
\end{pmatrix}
$$
потом получаем 9 уравнений
вот первое для примера
$a_{11}x_{11}+a_{12}x_{21}+a_{13}x_{31}=x_{11}b_{11}+x_{12}b_{21}+x_{13}b_{31}$
но решение такой системы уравнений в mathematica выдает, что все $x_{ij}=0$


Цитата:
Гантмахер Ф.Р. Теория матриц.
В пятом издании это — глава VIII "Матричные уравнения", параграф 1 "Уравнение ", страница 193.

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

-- 27.07.2012, 10:39 --

нашел комментарий по этому поводу.
Изображение
только всё же не понятно, почему выдало всё $0$, если уравнения были записаны в общем виде с переменными $a,b$.

 
 
 
 Re: матричное уравнение
Сообщение27.07.2012, 10:17 
Аватара пользователя
mrgloom_ в сообщении #599943 писал(а):
вы имеете ввиду так?

Да.

mrgloom_ в сообщении #599943 писал(а):
но решение такой системы уравнений в mathematica выдает, что все $x_{ij}=0$

Думаю, это уже проблемы матпакета.

 
 
 
 Re: матричное уравнение
Сообщение27.07.2012, 15:59 
пробую все таки решить это матричное уравнение

если записать полностью, выдает все нули
Код:
Solve[a11*m11 + a12*m21 + a13*m31 == m11*b11 + m12*b21 + m13*b31 &&
  a11*m12 + a12*m22 + a13*m32 == m11*b12 + m12*b22 + m13*b32 &&
  a11*m13 + a12*m23 + a13*m33 == m11*b13 + m12*b23 + m13*b33 &&
  a21*m11 + a22*m21 + a23*m31 == m21*b11 + m22*b21 + m23*b31 &&
  a21*m12 + a22*m22 + a23*m32 == m21*b12 + m22*b22 + m23*b32 &&
  a21*m13 + a22*m23 + a23*m33 == m21*b13 + m22*b23 + m23*b33 &&
  a31*m11 + a32*m21 + a33*m31 == m31*b11 + m32*b21 + m33*b31 &&
  a31*m12 + a32*m22 + a33*m32 == m31*b12 + m32*b22 + m33*b32 &&
  a31*m13 + a32*m23 + a33*m33 == m31*b13 + m32*b23 + m33*b33, {m11,
  m12, m13, m21, m22, m23, m31, m32,m33}]


если положить $m_{33}:=1$ и $8$ неизвестных пишет нет решений (или не знаю как интерпретировать пустой вывод)
Код:
Solve[a11*m11 + a12*m21 + a13*m31 == m11*b11 + m12*b21 + m13*b31 &&
  a11*m12 + a12*m22 + a13*m32 == m11*b12 + m12*b22 + m13*b32 &&
  a11*m13 + a12*m23 + a13 == m11*b13 + m12*b23 + m13*b33 &&
  a21*m11 + a22*m21 + a23*m31 == m21*b11 + m22*b21 + m23*b31 &&
  a21*m12 + a22*m22 + a23*m32 == m21*b12 + m22*b22 + m23*b32 &&
  a21*m13 + a22*m23 + a23 == m21*b13 + m22*b23 + m23*b33 &&
  a31*m11 + a32*m21 + a33*m31 == m31*b11 + m32*b21 + b31 &&
  a31*m12 + a32*m22 + a33*m32 == m31*b12 + m32*b22 + b32 &&
  a31*m13 + a32*m23 + a33 == m31*b13 + m32*b23 + b33, {m11, m12, m13,
  m21, m22, m23, m31, m32}]


если убрать одно уравнение, например первое(но тут непонятно какое уравнение надо убирать и повлияет ли это на ответ?), то выдает решение примерно на страницу.

вообще еще немного о задаче.
по идее $m_{33}=1$ всегда.
потом еще матрицы $A,B$ я определяю лишь примерно, т.е. с погрешностью, возможно ли в таком случае получить адекватный ответ или всё там "разойдется"?

 
 
 
 Re: матричное уравнение
Сообщение27.07.2012, 17:00 
Аватара пользователя
mrgloom_
Там же в ответе может получаться в зависимости от матриц $A, B$ разиличное кол-во решений. Так что как вы хотите, что бы вам матпакет уравнения классифицировал? :?
Попробуйте решить для конкретного примера и $2 \times 2$, например. Можно даже руками.
Кстати, что-нибудь известно про вырожденность матриц $A,B$? Для некоторых случаев, вероятно, можно придумать более простые алгоритмы. Ну и литературу вам посоветовали...

 
 
 
 Re: матричное уравнение
Сообщение30.07.2012, 09:06 
A это матрица поворота, например при повороте на 90 градусов по часовой стрелке она имеет вид
$$\begin{pmatrix}
0 & 1 & 0 \\
1 & 0 & 0 \\
0& 0 & 1
\end{pmatrix}$$

матрицу $A$ мы можем подбирать по вкусу (поворот может быть на любой угол)

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

наглядный пример.
произвольный объект $X$
Изображение
произвольный объект повернутый на $90$ градусов $X\cdot Rot$
Изображение
произвольный объект с искажением $XM$
Изображение
произвольный объект повернутый на $90$ с искажением $X\cdot Rot\cdot M$
Изображение

мы можем получить матрицу перехода от $XM$ к $X\cdot Rot\cdot M$
т.е. у нас запишется уравнение $X\cdot M\cdot L=X\cdot Rot\cdot M\Rightarrow Rot\cdot M=M\cdot L$
$L$-матрица перехода (известна, но с погрешностью т.к. определяется по точкам)
$M$-матрица искажений, которую надо найти
$Rot$-матрица поворота(известна точно)

 
 
 
 Re: матричное уравнение
Сообщение30.07.2012, 12:18 
учитывая ограничения налагаемые на матрицы $A$ и $M$
$A$ - матрица поворота,значит у неё последняя строка $= (0, 0, 1)$
$M$ - матрица перспективного искажения у нее $m_{33}=1$ ( и $b_{33}=1$ кстати тоже)

получаем 3 последних уравнения которые противоречат(или можно какое то выкинуть?)
$m_{31}= m_{31}b_{11}+m_{32}b_{21}+b_{31}$
$m_{32}= m_{31}b_{12}+m_{32}b_{22}+b_{32}$
$0= m_{31}b_{13}+m_{32}b_{23}$
т.е. получается, что решений нет или это просто даёт доп. ограничения на $ b_{ij}$ ?

и как это интерпретировать? т.е. получается по этим двум картинкам невозможно установить прилагаемое искажение $M$?

 
 
 
 Re: матричное уравнение
Сообщение30.07.2012, 14:20 
Аватара пользователя
Скажите, а разве перспективные искажения можно задать просто умножением на некоторую матрицу?
Вот, например, на плоскости квадрат с вершинами $(1,1), (-1,1), (-1,-1), (1,-1)$.
Изображение
Разве существует такое преобразование координат вида $x'=Mx$, при котором этот квадрат отображается в трапецию? Ну, скажем, $(1,1), (-1,1), (-2,-1), (2,-1)$?

 
 
 
 Re: матричное уравнение
Сообщение30.07.2012, 15:07 
наблюдение о том $XRotM\ne XS, \ \text{где} \ S=RotM $
т.е. 2 последовательные операции невозможно проделать за 1 операцию, заменив произведением матриц
и ваш вопрос навёл меня на мысль о том, что матричное уравнение составлено не верно.
т.е. тут не подходит перемножение матриц (оператор как бы не линейный (не знаю как это звучит строго математически))
т.е. в общем виде уравнение надо записывать так
$M[Rot[X]]= L[M[X]]$
а преобразование записываются в такой форме
прямое
$$u= \frac{m_{13} + m_{11}x + m_{12}y}{m_{33} + m_{31}x + m_{32}y};$$
$$v= \frac{m_{23} + m_{21}x + m_{22}y}{m_{33} + m_{31}x + m_{32}y};$$
и обратное
$$
x= -\frac{-(m_{13}m_{22}) + m_{12}m_{23} - m_{23}m_{32}u + m_{22}m_{33}u + m_{13}m_{32}v - m_{12}m_{33}v}{m_{12}m_{21} - m_{11}m_{22} + m_{22}m_{31}u - m_{21}m_{32}u - m_{12}m_{31}v + m_{11}m_{32}v};$$

$$y= -\frac{m_{13}m_{21} - m_{11}m_{23} + m_{23}m_{31}u - m_{21}m_{33}u - m_{13}m_{31}v + m_{11}m_{33}v}{m_{12}m_{21} - m_{11}m_{22} + m_{22}m_{31}u - m_{21}m_{32}u - m_{12}m_{31}v + m_{11}m_{32}v};$$

 
 
 
 Re: матричное уравнение
Сообщение30.07.2012, 15:21 
Аватара пользователя
mrgloom_ писал(а):
т.е. тут не подходит перемножение матриц (оператор как бы не линейный (не знаю как это звучит строго математически))
Совершенно верно. Так и звучит, "оператор нелинейный".

 
 
 
 Re: матричное уравнение
Сообщение30.07.2012, 16:05 
можно составить уравнение для 4-х точек, но оно опять же как то не очень хорошо решается.
какие могут быть рекомендации?


код для солвера математики, дождаться выполнения которого я так и не смог:
Код:
Solve[(b13+(b11 (m13+m11 x1+m12 y1))/(m33+m31 x1+m32 y1)+(b12 (m23+m21 x1+m22 y1))/(m33+m31 x1+m32 y1))/(b33+(b31 (m13+m11 x1+m12 y1))/(m33+m31 x1+m32 y1)+(b32 (m23+m21 x1+m22 y1))/(m33+m31 x1+m32 y1))==
(m13+(m11 (a13+a11 x1+a12 y1))/(a33+a31 x1+a32 y1)+(m12 (a23+a21 x1+a22 y1))/(a33+a31 x1+a32 y1))/(m33+(m31 (a13+a11 x1+a12 y1))/(a33+a31 x1+a32 y1)+(m32 (a23+a21 x1+a22 y1))/(a33+a31 x1+a32 y1))&&
(b23+(b21 (m13+m11 x1+m12 y1))/(m33+m31 x1+m32 y1)+(b22 (m23+m21 x1+m22 y1))/(m33+m31 x1+m32 y1))/(b33+(b31 (m13+m11 x1+m12 y1))/(m33+m31 x1+m32 y1)+(b32 (m23+m21 x1+m22 y1))/(m33+m31 x1+m32 y1))==
(m23+(m21 (a13+a11 x1+a12 y1))/(a33+a31 x1+a32 y1)+(m22 (a23+a21 x1+a22 y1))/(a33+a31 x1+a32 y1))/(m33+(m31 (a13+a11 x1+a12 y1))/(a33+a31 x1+a32 y1)+(m32 (a23+a21 x1+a22 y1))/(a33+a31 x1+a32 y1))&&
(b13+(b11 (m13+m11 x2+m12 y2))/(m33+m31 x2+m32 y2)+(b12 (m23+m21 x2+m22 y2))/(m33+m31 x2+m32 y2))/(b33+(b31 (m13+m11 x2+m12 y2))/(m33+m31 x2+m32 y2)+(b32 (m23+m21 x2+m22 y2))/(m33+m31 x2+m32 y2))==
(m13+(m11 (a13+a11 x2+a12 y2))/(a33+a31 x2+a32 y2)+(m12 (a23+a21 x2+a22 y2))/(a33+a31 x2+a32 y2))/(m33+(m31 (a13+a11 x2+a12 y2))/(a33+a31 x2+a32 y2)+(m32 (a23+a21 x2+a22 y2))/(a33+a31 x2+a32 y2))&&
(b23+(b21 (m13+m11 x2+m12 y2))/(m33+m31 x2+m32 y2)+(b22 (m23+m21 x2+m22 y2))/(m33+m31 x2+m32 y2))/(b33+(b31 (m13+m11 x2+m12 y2))/(m33+m31 x2+m32 y2)+(b32 (m23+m21 x2+m22 y2))/(m33+m31 x2+m32 y2))==
(m23+(m21 (a13+a11 x2+a12 y2))/(a33+a31 x2+a32 y2)+(m22 (a23+a21 x2+a22 y2))/(a33+a31 x2+a32 y2))/(m33+(m31 (a13+a11 x2+a12 y2))/(a33+a31 x2+a32 y2)+(m32 (a23+a21 x2+a22 y2))/(a33+a31 x2+a32 y2))&&
(b13+(b11 (m13+m11 x3+m12 y3))/(m33+m31 x3+m32 y3)+(b12 (m23+m21 x3+m22 y3))/(m33+m31 x3+m32 y3))/(b33+(b31 (m13+m11 x3+m12 y3))/(m33+m31 x3+m32 y3)+(b32 (m23+m21 x3+m22 y3))/(m33+m31 x3+m32 y3))==
(m13+(m11 (a13+a11 x3+a12 y3))/(a33+a31 x3+a32 y3)+(m12 (a23+a21 x3+a22 y3))/(a33+a31 x3+a32 y3))/(m33+(m31 (a13+a11 x3+a12 y3))/(a33+a31 x3+a32 y3)+(m32 (a23+a21 x3+a22 y3))/(a33+a31 x3+a32 y3))&&
(b23+(b21 (m13+m11 x3+m12 y3))/(m33+m31 x3+m32 y3)+(b22 (m23+m21 x3+m22 y3))/(m33+m31 x3+m32 y3))/(b33+(b31 (m13+m11 x3+m12 y3))/(m33+m31 x3+m32 y3)+(b32 (m23+m21 x3+m22 y3))/(m33+m31 x3+m32 y3))==
(m23+(m21 (a13+a11 x3+a12 y3))/(a33+a31 x3+a32 y3)+(m22 (a23+a21 x3+a22 y3))/(a33+a31 x3+a32 y3))/(m33+(m31 (a13+a11 x3+a12 y3))/(a33+a31 x3+a32 y3)+(m32 (a23+a21 x3+a22 y3))/(a33+a31 x3+a32 y3))&&
(b13+(b11 (m13+m11 x4+m12 y4))/(m33+m31 x4+m32 y4)+(b12 (m23+m21 x4+m22 y4))/(m33+m31 x4+m32 y4))/(b33+(b31 (m13+m11 x4+m12 y4))/(m33+m31 x4+m32 y4)+(b32 (m23+m21 x4+m22 y4))/(m33+m31 x4+m32 y4))==
(m13+(m11 (a13+a11 x4+a12 y4))/(a33+a31 x4+a32 y4)+(m12 (a23+a21 x4+a22 y4))/(a33+a31 x4+a32 y4))/(m33+(m31 (a13+a11 x4+a12 y4))/(a33+a31 x4+a32 y4)+(m32 (a23+a21 x4+a22 y4))/(a33+a31 x4+a32 y4))&&
(b23+(b21 (m13+m11 x4+m12 y4))/(m33+m31 x4+m32 y4)+(b22 (m23+m21 x4+m22 y4))/(m33+m31 x4+m32 y4))/(b33+(b31 (m13+m11 x4+m12 y4))/(m33+m31 x4+m32 y4)+(b32 (m23+m21 x4+m22 y4))/(m33+m31 x4+m32 y4))==
(m23+(m21 (a13+a11 x4+a12 y4))/(a33+a31 x4+a32 y4)+(m22 (a23+a21 x4+a22 y4))/(a33+a31 x4+a32 y4))/(m33+(m31 (a13+a11 x4+a12 y4))/(a33+a31 x4+a32 y4)+(m32 (a23+a21 x4+a22 y4))/(a33+a31 x4+a32 y4))&&m33==1,{m11,m12,m13,m21,m22,m23,m31,m32}]

 
 
 
 Re: матричное уравнение
Сообщение30.07.2012, 21:06 
Небольшой комментарий вбок: в Mathematica ответ {} на Solve означает, что решений нет, а похожий на него {{}} означает бесконечное количество решений. Если получилось второе, можно попробовать Reduce или что-нибудь похожее, чтобы одни переменные выражались через другие. Или можно попробовать Solve с указанием меньшего количества переменных, чтобы через остальные их можно было выражать.

 
 
 
 Re: матричное уравнение
Сообщение30.07.2012, 21:15 
Аватара пользователя
mrgloom_ в сообщении #599943 писал(а):
только всё же не понятно, почему выдало всё 0, если уравнения были записаны в общем виде с переменными a,b.

Сказано же, что нетривиальное решение есть только в случае, когда у матриц $A$ и $B$ есть хоть одно общее характеристическое число. Если склероз мне не изменяет, даже для матриц $3 \times 3$ это условие выглядит весьма нетривиально, если его через элементы самих матриц записывать. Возможно, ваш матпакет тупо его ниасилил и решил считать, что оно не выполнено, и дело с концом. Пользуясь матпакетами, не забывайте, что их нам ведь не Яхве даровал на золоченых скрижалях, они же людьми написаны.

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

 
 
 [ Сообщений: 53 ]  На страницу 1, 2, 3, 4  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group