Excel Goal Seek算法

时间:2010-11-26 10:10:55

标签: c# .net algorithm excel

有没有人拥有此算法的代码?任何基于C语言的编程语言都可以,但我更喜欢C#。

我可以尝试实施它,但我确定我不是第一个......

编辑:这不是家庭作业,这是一个“gimme teh codez”的问题:D我只是不想重新发明轮子

3 个答案:

答案 0 :(得分:10)

GoalSeek最有可能使用Bisection method

  

数学中的二分法是一种根发现方法   重复平分一个间隔,然后选择一个子区间   根必须进行进一步处理。这是一个非常简单和强大的   方法,但它也相对较慢。因此,它经常是   用于获得随后使用的溶液的粗略近似   作为更快速融合方法的起点。1方法   也称为区间对分方法,2二进制搜索   方法,[3]或二分法。[4]

我在这里找到了一个C#实现:Bisection-based XIRR implementation in C#

答案 1 :(得分:7)

看看:

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

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

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

答案 2 :(得分:0)

尝试https://www.nuget.org/packages/Budoom.GoalSeek/

样品用量:

var sc = new SomeCalculation(); //implements interface Budoom.IGoalSeek

var goalSeek = new Budoom.GoalSeek(sc);
var goalSeekResult = goalSeek.TrySeek();

或使用静态方法并将计算函数传递给它,如下所示:

var goalSeekResult = Budoom.GoalSeek.TrySeek(Calculate);