Excel GoalSeekalgorithm

有没有人有这个algorithm的代码? 任何基于C的编程语言都可以,但是我更喜欢C#。

我可以尝试去实现它,但是我确定我不是第一个…

编辑:这不是作业,这是一个“给我一个codez”的问题:DI只是不想重新发明轮子

GoalSeek最有可能使用二分法

math中的二分法是一种找根方法,它重复平分一个区间,然后select一个根必须躺下的子区间,以便进一步处理。 这是一个非常简单和强大的方法,但也相对较慢。 正因为如此,它经常被用来获得一个解决scheme的粗略近似,然后用它作为更快速收敛方法的起点。 该方法也称为区间对分方法,二进制search法[3]或二分法[4]。

我在这里find了一个C#实现: 在C#中基于二分的XIRR实现

看一下:

https://www.nuget.org/packages/TridentGoalSeek/

你的algorithm需要实现IGoalSeekAlgorithm接口。 然后用法如下:

var myAlgorithm = new MyAlgorithm(90463.45M, 200); var goalSeeker = new GoalSeek(myAlgorithm); var seekResult = goalSeeker.SeekResult(96178.21M);