2014 dxdy logo

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

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




 
 Матлаб: как найти лин.оператор для заданых входа и выхода?
Сообщение16.09.2021, 20:26 
Даны две матрицы $A$ и $B$, каждый столбец каждой из которых является циклическим сдвигом одного и того же образующего вектор-столбца. Например:
$A=$\begin{pmatrix}
&1, 2, 2& \\
&0, 1, 2& \\
&1, 0, 1&  \\
&2, 1, 0& \\
&2, 2, 1&  \\
\end{pmatrix}$$ $B=$\begin{pmatrix}
&0,1,1& \\
&1,0,2& \\
&2,1,2&  \\
&2,2,1& \\
&1,2,0&  \\
\end{pmatrix}$$
Как найти матрицу $X$ такую, что $XA=B$?

 
 
 
 Re: Матлаб: как найти лин.оператор для заданых входа и выхода?
Сообщение16.09.2021, 23:11 
Аватара пользователя
maximkarimov в сообщении #1531819 писал(а):
Как найти матрицу $X$ такую, что $XA=B$?
Решить систему из 25-ти линейных уравнений?

 
 
 
 Re: Матлаб: как найти лин.оператор для заданых входа и выхода?
Сообщение16.09.2021, 23:20 
Интересует реализация соответствующей функции в среде Матлаб.

 
 
 
 Re: Матлаб: как найти лин.оператор для заданых входа и выхода?
Сообщение17.09.2021, 15:18 
Разобрался. Может кому пригодится:
код: [ скачать ] [ спрятать ]
Используется синтаксис Matlab M
function [X] = getLO(A,B,mode)
% находим линейный оператор X такой, что  X*A=B
% mode==0 - в символьном виде, иначе приближенные численные значения
% ==== Algorithm ============
X = sym('x', [size(A,1) size(A,1)]);
% составляем и решаем систему уравнений
eqns=X*A==B;
S=solve(eqns,X);
% вытаскиваем решения из структуры и формируем результат
if size(A,1)==1 && size(A,2)==1
    X=S;
elseif size(A,1)>1
    C = struct2cell(S);
    c=sym(zeros(1,size(C,1)));
    for i=1:length(c)
        c(i)=C{i};
    end
    X=reshape(c, size(A,1), size(A,1));
else
    X=nan;
end
if mode~=0
    X=double(X);
end
end
 

Решение для заданных выше матриц $A$ и $B$:
Используется синтаксис Matlab M
X =
 
[   1,    0,  -1, 0, 0]
[   1,    0,   0, 0, 0]
[ 2/3, -1/3, 4/3, 0, 0]
[ 1/3, -2/3, 5/3, 0, 0]
[   1,   -1,   0, 0, 0]

 
 
 [ Сообщений: 4 ] 


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