/ / розв’язування нижньої трикутної матриці з використанням найменш квадратного модлаба [дублікат] - матлаб, алгебра, найменший квадрат

рішення нижчої трикутної матриці з використанням найменшого квадратного методу MATLAB [дублікат] - MATLAB, алгебра, найменші квадрати

Чи можу я запитати про різницю рішення x двома наступними способами в Matlab:

Шлях 1: x = Ab

Шлях 2: x = inv((A.").*A)*(A."*b)

(p.s: перевернута матриця є зворотною)

Я думаю, що ці два способи мають дати те самерезультатів, але я не можу досягти цієї відповідності. Я хочу застосувати найменшу квадратну моду. Однак вона включає в себе багато різних типів матриць (транспонування, інвертування, а потім декілька), і під час написання на мові Matlab у мене виникає плутанина.

Дуже дякую за ваші коментарі!

Відповіді:

1 для відповіді № 1

Формула найменшого квадрата, яка є

введіть опис зображення тут

написано неправильно. В останньому b<-->y в той час як p<-->x.

Всередині inv() функціонувати продукт між A." і A не є елементом, продуманим.
Також, згідно з правилом PEMDAS, неправильно приєднуватися A." і b всередині дужки, надаючи такому терміну пріоритет стосовно попереднього.

На закінчення, формула Matlab для LS:

x=inv((A.")*A)*(A.")*b;

Нарешті, ви можете також спростити вищевказану формулу за допомогою pinv() функція, яка оцінює псевдоінверсію Мура-Пенроуза, тобто inv((A.")*A)*(A."). Справді pinv(A) призведе до того ж результату, що і inv((A.")*A)*(A.") і тому ви можете переписати рішення LS як

x=pinv(A)*b;