我正在编写一个程序,可以执行从Brix规模到其他一些单位的单位转换。
该程序通过向用户显示比例来工作,并允许用户单击比例以选择Brix测量。我使用的范围介于1和1之间。 30.
问题是,规模不是线性的。随着Brix数量越来越高,每个增量之间的空间越大,所以我需要找出线性方程,这样我就可以将用户输入的y位置转换为刻度上的数字。
我制作了下面的图表来显示白利糖度值和用户点击的y位置之间的相关性(以像素为单位):
Brix | PosY
=====|=====
0 | 0
1 | 10
5 | 50
10 | 100
12 | 123
15 | 155
16 | 167
19 | 201
21 | 225
24 | 262
26 | 287
28 | 314
30 | 340
基本上,考虑到PosY,我需要能够找出白利糖度。如何确定要使用的等式?
答案 0 :(得分:1)
对于非线性情况下的插值,人们通常使用三次样条拟合和插值。根据您所需的准确度,您可以通过分段线性拟合来实现;也就是说,在连续的点对之间进行独立的线性插值。
答案 1 :(得分:0)
嗯,您的数据“几乎”是线性的:
Brix(PosY) := 0.092 * PosY
如果你真的想要一个更好的近似值(我认为这是不可能的),你可以尝试:
Brix(PosY) := 0.10370203*Posy + 0.051016908*Cos[(227.63841*Posy)] -
0.056852482*Cos[(0.10305045*Posy)] - 4.6300302*10^-5*Posy^2
给出了:
我通过 Eureqa
使用最小二乘法得到了最后一个