我创建了一个存储过程,该存储过程基于线性自调整规则来计算财务利差,并且需要2分钟以上的时间才能完成计算。
最终值经过多次迭代,以便对其进行调整和增强,直到找到最佳的优化最终值为止。 参数如下:
@input1 = 100000
@input2 = 40
@input3 = 106833
BEGIN
DeclARE @X decimal(22,6) = 0
DeclARE @Y decimal(22,6) = 0.001
DeclARE @Z decimal(22,6)
DeclARE @r decimal(22,6)
DeclARE @v decimal(22,6)
SET @v = POWER(1/(1+ (@Y/12)),@input2)
SET @r = ((@Y/@input2) * input1) / (1-@v)
IF (@r < @input3)
SET @Z = @Y + ABS((@X - @Y)/2)
ELSE
SET @Z = @Y - ABS((@X - @Y) /2)
SET @X = @Y
SET @Y = @Z
WHILE (ABS(@r - @input3) > 0.001)
BEGIN
SET @v = POWER(1/(1+ (@Y/12)),@input2)
SET @r = ((@Y/@input2) * @input1) / (1-@v)
IF (@r < @input3)
SET @Z = @Y + ABS((@X - @Y)/2)
ELSE
SET @Z = @Y - ABS((@X - @Y) /2)
SET @X = @Y
IF @Y = @Z
BREAK
SET @Y = @Z
END
RETURN (CAST(@Y AS decimal(22,6)) * 100)
END
运行时间= 2分20秒