给定一个示例公式'y=2x+1
'当我们知道具有定义的“function
”的x时,我们可以得到y,例如在python中
def y(x): return 2*x + 1
x : 1 2 3 4 5 ...
y : 3 5 7 9 11 ...
我可以逆转吗?给出数据样本并得到近似公式?
x : 1.001 2.12 3.1 4.001 5.021 ...
y : 3.002 5.23 7.2 9.002 11.32 . ..
当然,很容易通过坐标绘制所有点并将这些点链接起来得到近似公式,然后在人们解决这个问题时猜测结果,但是如何通过编程实现呢?
任何关键字都可以搜索或者libs可以使用?
谢谢。
=====
非常感谢大家。在搜索了你分享的信息之后,这是一个没有简单解决方案的BIGG ... G区域-_-!。
从技术上讲,我意识到我需要的是polynomial fitting
“Polynomial regression/ Polynomial interpolation/ polynomial approximation
......
我将赞扬Gerard,再次感谢所有人的帮助。
答案 0 :(得分:1)
为了确保我理解您的问题,您想要检索适合您数据的行的等式,对吗?
如果这是您的问题,您可以使用包polyfit
中的numpy
。
import numpy as np
x = [1.001, 2.12, 3.1, 4.001, 5.021]
y = [3.002, 5.23, 7.2, 9.002, 11.32]
np.polyfit(x, y, 1)
返回的值为:
array([ 2.05658156, 0.88110544])
这意味着该等式是:
y = 2.05658156x + 0.88110544
答案 1 :(得分:1)
在这里我会说问题看起来更像polynomial interpolation 在python中你有很多lib处理它,例如高级scipy.interpolate 或者你可以做到这一点"手工"比如these examples
无论如何,你需要一些数学!
答案 2 :(得分:0)
可能你需要NumPy和SciPy包。例如,请参阅SciPy的Linear Regression
文档:http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.linregress.html