0

我在 Anylogic 中有一个包含 2 列的数据库表。在将我的输入与第 1 列的值进行比较并进行线性插值之后,我想知道查询 dsl 代码或用于从 column2 中的表中选择一个值的 sql 代码。我在 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

谢谢

4

1 回答 1

0

您可以简单地创建一个表函数并将其配置为从数据库加载数据,而不是从内置数据库表中选择值并对其进行线性插值。

由于默认选择线性插值作为函数插值类型,您只需调用tableFunction(0.15)get y = 0.00995for即可x = 0.15

于 2016-07-26T13:56:19.320 回答