2013-11-15 5 views
1

Я должен рассчитать:Как вычислить квадрат обратной матрицы в Matlab

gamma=(I-K*A^-1)*OLS; 

где I единичная матрица, K и A диагональные матрицы одинакового размера, и OLS является обычным минимум квадратная оценка параметров.

Я это в Matlab с помощью:

gamma=(I-A\K)*OLS; 

Однако я тогда должен рассчитать:

gamma2=(I-K^2*A-2)*OLS; 

рассчитать это в Matlab с помощью:

gamma2=(I+A\K)*(I-A\K)*OLS; 

Правильно ли это?

Кроме того, я просто хочу, чтобы вычислить дисперсию OLS параметров:

формула достаточно проста:

Var(B)=sigma^2*(Delta)^-1; 

Где sigma постоянная и Delta диагональная матрица, содержащая собственные.

Я попытался сделать это следующим образом:

Var_B=Delta\sigma^2; 

Но он приходит домой, говоря размеры матрицы должны договориться?

Просьба сообщить, как рассчитать Var(B) в Matlab, а также подтвердить правильность моих других расчетов.

ответ

1

В целом, умножение матрицы не коммутирует, что делает A^2 - B^2 не равным (A+B)*(A-B). Однако ваш случай особенный, потому что в уравнении вы имеете единичную матрицу. Таким образом, ваш метод поиска gamma2 действителен.

'Var_B = Delta \ sigma^2' не является действительным выражением mldivide. См. Документацию. Попробуйте Var_B=sigma^2*inv(Delta). Функция inv возвращает обратную матрицу. Хотя эта функция также может применяться в вашем выражении, чтобы найти gamma или gamma2, использование оператора \ более рекомендуется для лучшей точности и более быстрого вычисления.

Смежные вопросы