Запрошенное поведение
Я хотел бы решить неквадратную матрицу с помощью python.Матрица имеет два линейно зависимых вектора.
Текущее состояние
Сначала я попытался использовать numpy.linalg.solve()
, но это работает только для квадратных матриц.В других сообщениях StackOverflow рекомендуется использовать numpy.linalg.lstsq()
.
выпуск
Однако я не понимаю, как правильно реализовать numpy.linalg.lstsq()
.Функция правильно решает последний параметр, но не остальные параметры.Один пост рекомендует это решение , которое я тоже не понимаю.
Должен ли я каким-то образом реализовать цикл?
Может ли кто-нибудь предоставить мне пример кода?Как решить эту матричную проблему, используя python?
Мой текущий код
import numpy as np
# defining a linear equation system E=F with
# | -2 * x1 - 4 * x2 + 1 * x3 - 9 * x4 + 0 * x5 = +5 |
# | 3 * x1 + 6 * x2 + 0 * x3 + 12 * x4 + 3 * x5 = +15 |
# | 1 * x1 + 2 * x2 + 1 * x3 + 3 * x4 + 1 * x5 = -17 |
# | -5 * x1 - 4 * x2 + 1 * x3 - 9 * x4 + 0 * x5 = +14 |
E=np.array(
[
[-2,-4,1,-9,0],
[3,6,0,12,3],
[1,2,1,3,1],
[-5,-10,3,-23,1]
]
)
F=np.array(
[3,15,-17,14]
)
solutionNonSquare = np.linalg.lstsq(E, F)
print('the solution vector is: {x1, x2, x3, x4, x5}=')
print(solutionNonSquare)
Письменное матричное решение