2017-10-10 63 views
1

朱莉婭是否有一個函數與Excel中的求解器函數類似,我可以提供和方程,它會解決未知變量?如果沒有,有人知道Excel解算器功能背後的數學嗎? 我不期待任何人解決方程,但如果它有幫助:朱莉婭是否有辦法解決未知變量

Price =(Earnings_1 /(1 + r)^ 1)+(Earnings_2 /(1 + r)^ 2)++(Earnings_3/(1 + r)^ 3)+(Earnings_4 /(1 + r)^ 4)+(Earnings_5 /(1 + r)^ 5)+((Earnings_5)(RiskFreeRate)^5)(1-RiskFreeRate))

已知變量有:Price,All Earnings和RiskFreeRate。我只是想弄清楚如何解決r。

+1

https://github.com/JuliaOpt/JuMP.jl ?? ?? –

回答

2

將此寫爲f(r) = 0的表達式,即將Price減去另一邊。現在這是一個尋根問題。如果你只有一個變量你正在解決(看起來是這樣),那麼Roots.jl是一個不錯的選擇。

fzero(f, a::Real, b::Real) 

將搜索例如ab之間的解決方案,以及文檔對算法,更多的選擇,當你不知道的範圍入手,並只給例如初始條件。

此外,KINSOL in Sundials.jl是很好的,當你知道你開始接近多維根。對於多維且需要一些穩健的初始條件,我建議使用NLsolve.jl

1

沒有什麼開箱即可。根本發現本身就是一門科學。

幸運的是,你的函數對r有一個解析一階導數。這意味着你可以使用牛頓拉夫森,這將是非常穩定的你的功能。

我相信你知道你的函數在r = -1時表現不好。

+0

Julia擁有非常分散的軟件包生態系統,但相當一致。本質上,所有功能都以包的形式提供,即使是真正基本的類型(如數據幀)也是如此。所以「開箱即用」並不是描述茱莉亞可用性的好方法。 –

+1

@ MichaelK.Borregaard:這就是說(你是專家,而不是我),根本發現是一門非常廣泛的科學,在決定解決方案技術之前,你必須親密地瞭解你的功能。有一些通用算法可以很好地完成工作(例如,在Microsoft Excel中用於搜索目標的LSGRG),但強大的通用解決方案尚未出現。 – Bathsheba