Как я могу решить , где и и в наименьших квадратов чувствовать в MATLAB?Как решить матрицу в Matlab?
Итак, я хотел бы получить минимизирующий результат .
Как я могу решить , где и и в наименьших квадратов чувствовать в MATLAB?Как решить матрицу в Matlab?
Итак, я хотел бы получить минимизирующий результат .
Перепишите количество, чтобы свести к минимуму, как
||Xa - b||^2
=
(определение нормы Фробениуса)
Tr{(Xa - b) (Xa - b)'}
=
(выражения расширения матрицы продукта)
Tr{Xaa'X' - ba'X' - Xab' + bb'}
=
(линейность оператора следа)
Tr{Xaa'X'} - Tr{ba'X'} - Tr{Xab'} + Tr{bb'}
=
(след транспонированной матрицы = след матрицы)
Tr{Xaa'X'} - 2 Tr{ba'X'} + Tr{bb'}
где '
обозначает оператор транспонирования (поскольку все вовлеченные матрицы являются вещественными, транспонированные и сопряженные транспозиции одинаковы). Теперь, если вы обратитесь к разделу 2.5 из Matrix Cookbook, вы обнаружите, что
Tr{Xaa'X'}
является 2Xaa'
(см уравнения 111),Tr{ba'X'}
является ba'
(см уравнения 104) ,Tr{bb'}
является 0
(поскольку это выражение не зависит от X
).(Дифференциация выполняется относительно матрицы X
).
Таким образом, матрица, которая сводит к минимуму количества процентных удовлетворяет
2Xaa' = 2ba'
Xaa' = ba'
Таким образом, вы можете использовать оператор матрицы правого деления от Matlab, /
, вычислить X
:
X = b * a'/(a * a');
Да, я думаю, что ваш ответ и мой (выше в комментариях) на самом деле то же самое ... – SemtexB
@SemtexB Наши решения должны быть одинаковыми, если 'b * a'' и' a * a'' коммутируют. – Jubobs
Я сначала транспонировал и использовал mldivide, тогда как вы не транспонировали и не использовали mrdivide, поэтому он должен быть таким же, не так ли? http://de.mathworks.com/help/matlab/ref/mldivide.html http://de.mathworks.com/help/symbolic/mrdivide.html – SemtexB
Является ли матрица нормы используется в «|| Ca-b ||^2» 2-норме? – Jubobs
@ Jubobs: Я думаю, это не имеет значения, так как мы конечномерны и, следовательно, каждая норма эквивалентна друг другу. Поэтому мы можем выбирать любую норму, которую хотим. 2-нормальна, но, например, норма Фробениуса должна также работать. – SemtexB
Ну, если вы разделите квадрат нормы Фробениуса 'C a - b' wrt на' C' (используйте [кулинарная книга] [http://www.math.uwaterloo.ca/~hwolkowi/matrixcookbook.pdf)), вы обнаружите, что матрица 'C', которая минимизирует эту величину в наименьшем квадрате, может быть вычислена в MATLAB с помощью' b * a '/ (a * a') '. – Jubobs