Хотя предлагается документ linalg.lstsq . Мне все еще трудно понять, так как это не совсем подробно.
x: {(N,), (N, K)} ndarray
Решение наименьших квадратов. Если b двумерно, решения находятся в K столбцах x.
остатков: {(1,), (K,), (0,)} ndarray
Суммы остатки; квадрат евклидовой 2-нормы для каждого столбца в b - a * x. Если ранг a
rank: int
Rank матрицы a.
s: (min (M, N),) ndarray
Особые значения a.
Я пытался наблюдать за выводом. Но я только выясняю, что ранг равен 2. В остальном, я не понимаю, почему это так.
x = np.array([0, 1, 2, 3])
y = np.array([-1, 0.2, 0.9, 2.1])
A = np.vstack([x, np.ones(len(x))]).T
print(A)
print('-------------------------')
print(np.linalg.lstsq(A, y, rcond=None))
Дает
[[0. 1.]
[1. 1.]
[2. 1.]
[3. 1.]]
-------------------------
(array([ 1. , -0.95]), array([0.05]), 2, array([4.10003045, 1.09075677]))
Я не понимаю, что кортежи "(N,), (N, K), (1,), (K,), (0,), (M, N)", представляют в документе.
Например, np.linalg.lstsq(A, y, rcond=None)[0]
будет array([ 1. , -0.95])
Как это относится к {(N,), (N, K)}?