![]() |
|
![]() ![]() ![]() |
|
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
есть матричное уравнение, все матрицы 3х3, надо найти M, А и B известны.
пните в нужную сторону |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
A*M-M*B=0
Далее решаем систему уравнений C*D=0 D=(m00,m01,m02,m10,m11,m12,m20,m21,m22); |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
а С чему равно?
|
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
Pavia, далеко не всё так просто. Вообще по виду уравнение не имеет решений в общем случае, кроме тривиального М = 0.
Может это поможет: http://en.wikipedia.org/wiki/Sylvester_equation Хотя форма другая всё-таки. Это сообщение отредактировал(а) W4FhLF - 5.8.2012, 20:20 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
entrix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 25.4.2010 Репутация: нет Всего: нет |
Смотрите GNU Octave, там есть соответствующая функция syl:
Solve the Sylvester equation A X + X B + C = 0 using standard lapack subroutines. For example: syl ([1, 2; 3, 4], [5, 6; 7, 8], [9, 10; 11, 12]) ⇒ [ -0.50000, -0.66667; -0.66667, -0.50000 ] http://www.gnu.org/software/octave/doc/int...#index-syl-2110 |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
похоже, то что нужно.
попробую в Mathematica. |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
попробовал в Mathematica выдало все нули, ну т.е. тривиальное решение.
может что то сделал не правильно? мне всё таки надо наверно сперва доказать, что существует решение отличное от тривиального. |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
это обычное однородное линейное уравнение, как и сказал Pavia
так что можно просто построить матрицу (9*9) и посмотреть на её определитель -------------------- qqq |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
вы походу перепутали
A*X=B*X и A*X=X*B тут Х так просто не выразить Это сообщение отредактировал(а) mrgloom - 6.8.2012, 12:52 |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 5 Всего: 121 |
maxim1000, умножение матриц операция не коммутативная.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
mrgloom |
|
||||||||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
http://math.stackexchange.com/questions/17...vester-equation
проверяю на существование не тривиального решения через первый критерий
выдает {} матрицы задавал как
так же пробовал
хотелось бы узнать как по матрице A
можно найти хотя бы 1 матрицу B которая будет удовлетворять вышеописанному условию? так же пробовал через другое эквивалентное условие.
хотя возможно оно выглядит так
вопрос опять же остается, хотелось бы узнать как по матрице A
можно найти хотя бы 1 матрицу B которая будет удовлетворять вышеописанному условию? |
||||||||||||||
|
|||||||||||||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
а этого и не нужно просто записать каждый коеэффициент левого произведения и каждый коэффициент правого произведения, ну и приравнять 9 уравнений 9 неизвестных все уравнения линейные тот факт, что произведение некоммутативно, приведёт разве что к тому, что формулы будут разные и разные наборы неизвестных будут слева и справа, но для СЛАУ это не так важно -------------------- qqq |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
дело в том, что эти 9 уравнений не решить как обычную СЛАУ.
т.к. хотя бы для примера AX-XB первая строчка зависит от x11,x12,x13,x21,x31 AX первая строчка зависит от x11,x21,x31 возможно AX-XB=0 как то и переписывается в виде типа P*X=C но как построить матрицы P,C ? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
да почему??? даже если в каждом уравнении будут участвовать все 9 неизвестных, менее линейной система не станет на всякий случай уточню, систему будет представлена уже матрицей 9*9 (т.к. 9 неищвестных и 9 уравнений) Это сообщение отредактировал(а) maxim1000 - 7.8.2012, 10:06 -------------------- qqq |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
да, я кажется понял.
вместо системы 3х3*3х3 получаем 9х9*1х9 A*X-X*B=new_A*new_Xr=0 я это вручную сделал, а вот как записать формулу для матрицы 9х9 в общем виде? потом загнал в LeastSquares и получил опять тривиальное решение =0. |
|||
|
||||
maxim1000 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
так вручную в коде и записать, 9 уравнений - не так уж и много ну и в процессе можно обнаружить какую-нибудь закономерность, может, код сократится
зачастую под решением СЛАУ подразумевается нахождение конкретного вектора здесь задача решить однородную систему, если есть какие-то нетривиальные решения, то их есть целое линейное подпространство, надо какие-нибудь специализированные методы смотреть -------------------- qqq |
||||
|
|||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
складывается впечатление, что закономерность какая то непростая. там проблема в том, что не тривиальное решение существует только когда, выполняется условие, которое зависит от матриц А,В. Матрицу А я могу варьировать(но там есть некоторые ограничения), а матрица В неким образом всё таки зависит от матрицы А. и матрица В определена с погрешностью. так вот непонятно можно ли подобрать матрицу А таким образом, чтобы у уравнения АХ=ХВ существовало отличное от тривиальное решение? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
для существования нетривиального решения матрицы 9*9 должна быть вырождена
так что можно определитель приравнять нулю хотя, конечно, аналитически с формулой определителя 9*9 работать неудобно, но можно попробовать как-то численно... -------------------- qqq |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
и что получится полином 9 степени от 18 параметров? и как его решать?
|
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
насколько я понимаю, B предполагается известной, нужно найти A тогда будет полином от 9 параметров (элементы B будут просто числами) честно говоря, на вскидку, алгоритм нахождения нулей этого полинома я не предложу, но, возможно, что-то и есть... кроме того, наверное, на A есть какие-то ограничения, иначе можно просто взять A=B, тогда единичная матрица в качестве X вполне себе подходит на роль нетривиального решения -------------------- qqq |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
а такую систему можно как AX=B представить? |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
что если поставить задачу так.
я знаю координаты точек u,v после преобразования, а до преобразования x,y не знаю, но знаю что расстояние между точками сохраняется. пример имею 5 одних и тех же четырехугольников до и после ![]() ![]() возможно ли имея такую информацию найти неизвестное преобразование? |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
Судя по картинкам, у меня складывается впечатление, что это не афинное преобразование.
Больше похоже на вот это вот. Подозреваю, что там нужны несколько другие методы... -------------------- qqq |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
ну да перспективное, но ни задаются одной формулой
у афинного просто последняя строка 0 0 1 |
|||
|
||||
baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
перейдите к размерности на 1 больше, получите аффинное. судя по рисунку, это не так. может, имеется в виду соотношение расстояний? (и это естественно, т.к. в данном случае имеем только поворот в 3D) Добавлено через 6 минут и 43 секунды
что еще известно? |
||||
|
|||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
вы наверно не поняли, я знаю что расстояния между точками до преобразования были одинаковые, а после они конечно разные ибо искажение. пример было 2 одинаковых по длине отрезка но с разными координатами х1,у1,х2,у2 и х3,у3,х4,у4 (этих координат я не знаю) , но знаю что длины отрезков одинаковые, а так же знаю какие координаты точек после преобразования соответствуют точкам отрезков. Это сообщение отредактировал(а) mrgloom - 10.8.2012, 14:58 |
|||
|
||||
mrgloom |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
попробовал решить с числами, не смог дождаться результата.
попробовал переписать без деления, тоже самое.
попробовал для афинных преобразований m31=m32=0 (убрал 2 переменные и убрал 2 уравнения) получил почему, то что не решений
|
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |