我想知道 Julia 中是否有 numpy.linalg.lstsq() 的替代函数。该函数返回线性矩阵方程的最小二乘解。从 NumPy 堆栈访问元素的正确语法?
Python 示例:
import numpy as np
A = np.vstack([x, np.ones(len(x))]).T
m, c = np.linalg.lstsq(A, y, rcond=None)[0]
m, c
(1.0 -0.95) # may vary
输出图表:
Python 引用:https://numpy.org/doc/stable/reference/generated/numpy.linalg.lstsq.html
最佳答案
在这种情况下,您可以只使用 Julia Base 中的 \
:
julia> A = [rand(10) ones(10)]
10×2 Matrix{Float64}:
0.637746 1.0
0.296172 1.0
0.795938 1.0
0.611058 1.0
0.737017 1.0
0.992014 1.0
0.914031 1.0
0.522682 1.0
0.3607 1.0
0.934141 1.0
julia> y = A * [1, -1] + rand(10) ./ 10
10-element Vector{Float64}:
-0.34049611405598046
-0.6368145973747783
-0.10597203750574954
-0.2950574213524233
-0.19571807260629853
0.020902316863572645
-0.07310077005612584
-0.40758393396440784
-0.6137424837773662
-0.05149257027230776
julia> A \ y
2-element Vector{Float64}:
0.9582937347300398
-0.9216908912065571
关于numpy - 如何在 Julia 中找到线性矩阵方程的最小二乘解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66650772/