给定数据样本,通过编程推导出近似公式?
given data samples, deducing approximate formula by programming?
给定一个示例公式 'y=2x+1
' 当我们知道 x 具有定义的 'function
' 时,我们可以得到 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 . ..
当然,很容易通过坐标画出所有的点,link这些点得到近似公式然后在人们解决这个问题时猜测结果,但是如何通过编程来实现呢?
有什么关键字可以搜索或者libs可以用吗?
谢谢。
=====
非常感谢大家。在用您分享的信息搜索了一下后,这是一个没有简单解决方案的 BIGG...G 区域 -_-!.
从技术上讲,鉴于 Polynomial regression/ Polynomial interpolation/ polynomial approximation
......
的不同,我意识到我需要的应该是“polynomial fitting
”
我会把功劳归功于杰拉德,再次感谢大家的帮助。
可能您需要 NumPy 和 SciPy 包。例如,请参阅 Linear Regression
文档 SciPy:http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.linregress.html
为了确保我理解您的问题,您想检索适合您的数据的直线方程,对吧?
如果这是你的问题,你可以使用包 numpy
中的 polyfit
。
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
在这里我会说这个问题看起来更像 polynomial interpolation
在 python 中,您有许多处理此问题的库,例如高级 scipy.interpolate
或者你可以 "by hand" 像 these examples
无论如何,你都需要一些数学知识!
给定一个示例公式 'y=2x+1
' 当我们知道 x 具有定义的 'function
' 时,我们可以得到 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 . ..
当然,很容易通过坐标画出所有的点,link这些点得到近似公式然后在人们解决这个问题时猜测结果,但是如何通过编程来实现呢?
有什么关键字可以搜索或者libs可以用吗?
谢谢。
=====
非常感谢大家。在用您分享的信息搜索了一下后,这是一个没有简单解决方案的 BIGG...G 区域 -_-!.
从技术上讲,鉴于 Polynomial regression/ Polynomial interpolation/ polynomial approximation
......
polynomial fitting
”
我会把功劳归功于杰拉德,再次感谢大家的帮助。
可能您需要 NumPy 和 SciPy 包。例如,请参阅 Linear Regression
文档 SciPy:http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.stats.linregress.html
为了确保我理解您的问题,您想检索适合您的数据的直线方程,对吧?
如果这是你的问题,你可以使用包 numpy
中的 polyfit
。
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
在这里我会说这个问题看起来更像 polynomial interpolation 在 python 中,您有许多处理此问题的库,例如高级 scipy.interpolate 或者你可以 "by hand" 像 these examples
无论如何,你都需要一些数学知识!