from pylab import polyfit, polyval, plot, grid, xlabel, ylabel, show
x1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
y1 = [2, 3, 1, 5, 4, 3, 2, 4, 5, 9]
x2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
y2 = [8, 7, 8, 5, 4, 3, 4, 3, 2, 1]
m1, b1 = polyfit(x1, y1, 1)
yp1 = polyval([m1, b1], x1)
plot(x1, yp1)
m2, b2 = polyfit(x2, y2, 1)
yp2 = polyval([m2, b2], x2)
plot(x2, yp2)
plot(x1, yp1)
plot(x2, yp2)
grid(True)
xlabel('x')
ylabel('y')
show()
我试图用上面的代码对同一个图上的一些数据进行两次线性拟合。最佳拟合的直线正好相交,我对这个交点很感兴趣。我怎样才能从python得到这一点,然后把它画在图上呢?在
换句话说,我想在yp1
和{
这是一个简单的数学问题,并不是Python特有的问题。在
有两个方程和两个未知数(两条直线相交点的纵坐标
xs
和坐标ys
)。在你可以用矩阵的形式,得到一个方程组,然后用
numpy.linalg.solve
很容易地解决这个问题。在转换包括重新排列这些方程的项,例如:
^{pr2}$矩阵公式现在应该变得很明显:
这很容易用执行线性代数的库来解决,比如
numpy.linalg
(您要导入的内容的一个子集)。在关于解线性方程组的更多信息,我建议通过阅读任何基础数学书籍来更新知识。A primer当然在维基百科上也有。在
相关问题 更多 >
编程相关推荐