如何线性插值?
如果我们有两个点 [math] (x_0,y_0) [/math]和[math] (x_1,y_1) [/math] ,那么线性插值是两点之间的直线。对于区间[math]
(x_0,x_1) [/math]内的值x, 它对应的值 y 可由以下关系式得到: [math]\frac{y
- y_0}{x - x_0} = \frac{y_1 - y_0}{x_1 - x_0}[/math] 。化简后可得: [math]y = y_0 + (y_1-y_0)\frac{x -
x_0}{x_1-x_0} [/math]。
如何在QuantPlus中线性插值?
这里我们用到两个函数,qpInterpolation函数构建插值方法对象,qpInterpolationInterpolate函数用来插值。qpInterpolation函数所需参数如下:
ObjectId:对象名称;
Interpolation
Type:插值方法,如linear;
XArray:自变量,如时间;
YArray:因变量,如零利率;
qpInterpolationInterpolate函数所需参数如下:
ObjectId:对象名称;
XArray:用来插值的自变量,如时间;
AllowExtrapolation:是否允许外插;
此外,我们也可以用qpInterpolationIsInRange函数来判断我们需要插值的自变量是否在原始数据提供的自变量范围中,比如原始数据的自变量是时间,从2011年1月至2011年12月,那么2012年1月就不在范围内,qpInterpolationIsInRange函数返回false。
qpInterpolationIsInRange函数参数如下:
ObjectId:已创建的对象名称;
XArray:用来插值的自变量,如时间;
事例中插得零利率曲线如下:
Attachments
- linear interpolation (25 kB)