2010-11-26 29 views
3

有沒有人有此算法的代碼?任何基於C的編程語言都可以,但我更喜歡C#。Excel GoalSeek算法

我可以嘗試實現它,但我敢肯定,我不是第一個......

編輯:這不是功課,這是一個「給我德codez」問題:DI只是不」不想重新發明輪子

+2

我不明白這個問題出了什麼問題。 – 2011-09-14 00:02:27

回答

8

GoalSeek最有可能使用Bisection method

在數學二分法是 反覆平分的間隔的求根方法,然後選擇子區間,其中 根必須說謊進一步處理。這是一種非常簡單和強大的方法,但它也相對較慢。因此,通常使用 來獲得對於解決方案的粗略近似,然後將該解作爲更快速收斂方法的起點。 1方法 也稱間隔減半方法,2二進制搜索法 方法[3]或二分法。[4]

我發現了一個C#實現此處Bisection-based XIRR implementation in C#

3

有在看:

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);