python - Python 最佳拟合曲线以最小化最大偏差
问题描述
如何最好地拟合两组曲线(x、y 坐标)以最小化它们之间的最大偏差?可能存在一个功能,但我找不到任何合适的东西。我确实认为 Chebycev 是正确的方法,但是从我从 scipy 中尝试过的方法来看,它并没有达到我想要做的。
#Shortened example curves
import matplotlib.pyplot as plt
nX = [-0.0187700, 0.0311900, 0.0811400, 0.1311000, 0.1410600, 0.2309700, 0.2809200, 0.3308600, 0.3807900, 0.4307300]
nY = [-1.9880000, -1.9859500, -1.9836300, -1.9815700, -1.9757700, -1.9766800, -1.9744000, -1.9720200, -1.9693900, -1.9670100]
oX = [-0.0187100, 0.0312500, 0.0812100, 0.1311600, 0.1811100, 0.2310600, 0.2810100, 0.3309500, 0.3808900, 0.4308300]
oY = [-1.9893900, -1.9873300, -1.9852100, -1.9830500, -1.9808300, -1.9785500, -1.9762300, -1.9738500, -1.9714100, -1.9689300]
maxDev = 0
for i in range(len(nX)):
dev = ((nX[i]-oX[i])*(nX[i]-oX[i])) + ((nY[i]-oY[i])*(nY[i]-oY[i]))
if dev > maxDev:
maxDev = dev
pointNo = i
print(pointNo, maxDev)
plt.figure()
plt.plot(nX, nY, 'ko')
plt.plot(oX, oY, 'r-')
plt.plot(oX[pointNo], oY[pointNo], 'x') #best-fit so that this error gets as small as possible?
plt.show()
我希望这个例子足以解释我想要完成的事情。甚至这里根本不合适。还有,如何检索 X、Y 平移和旋转值?
解决方案
推荐阅读
- python - Selenium Webdriver exucatable_path
- python - Bigquery 分区日期 Python
- ruby-on-rails - 在 Rails 系统测试中如何设置服务器端口?
- python - 从 python 套接字 udp 接收逗号分隔的字节
- php - 根据输入更新特定数据库?
- uiscrollview - UIStackView 我可以用自动调整大小而不是自动布局来添加它吗
- python - AttributeError:'FileField' 对象没有属性'save' - Flask - WTForms
- apache-kafka - KafkaConnect Rest API 基本身份验证问题
- html - iframe 内的图像重新调整了封面导航
- java - Java:快速查找的堆栈