我在Anylogic中有一个包含2列的数据库表。我想知道查询dsl代码或sql代码,用于在我的输入与第1列的值进行比较之后以及在进行线性插值之后从column2中的表中选择值。
我在Anylogic中的代码提供了值x2 where (x1 < x2 < x3
),而x2
不在表中。我希望从表格中选择基于y2
的值x2 where (y1 < y2 < y3)
,并且y2
不在表格中。因此,我希望在查找表格后对软件进行插值并返回值y2
,如下所示:
y2= [(x2-x1)*(y3-y1)/(x3-x1)]+y1
x1 | y1
x3 | y2
x4 | y3
x5 | y4
示例:如果我的代码返回x=0.15
,我希望程序插值并从表中返回值y,其中:
y =[[0.15-0.1]*(0.0072-0.0127)/(0.2-0.1)]+0.0127= 0.00995
---x | y
0.1 | 0.0127
0.2 | 0.0072
0.3 | 0.0039
0.4 | 0.0020
0.5 | 0.0010
0.3 | 0
谢谢
答案 0 :(得分:0)
您可以简单地创建一个表函数并将其配置为从数据库加载数据,而不是从内置数据库表中选择值并使用它们进行线性插值。
由于默认情况下选择线性插值作为函数插值类型,因此您只需调用tableFunction(0.15)
即可获得y = 0.00995
的{{1}}。