Julia-如果给定依赖项,则查找自变量

Julia-如果给定依赖项,则查找自变量,julia,Julia,我在julia中有一个函数,它计算给定某些参数(S,K,m,y,sigma)的看跌期权价格 在给定一定价格的情况下,是否有可能“反转”函数以找出西格玛 谢谢大家! 不,这将要求每个价格只对应于一个单一的西格玛水平,例如,你的函数是单调的。你不能保证 但是你可以做的是让Julia迭代优化你的函数,这样你就能找到导致函数输出和价格之间差异最小的sigma值。Julia中有几个包用于这类事情,请看Optim.jl。例如,本页: 您的函数不是单变量函数,但通过将值赋给您不估计的变量,很容易做到这一点:

我在julia中有一个函数,它计算给定某些参数(S,K,m,y,sigma)的看跌期权价格

在给定一定价格的情况下,是否有可能“反转”函数以找出西格玛


谢谢大家!

不,这将要求每个价格只对应于一个单一的西格玛水平,例如,你的函数是单调的。你不能保证

但是你可以做的是让Julia迭代优化你的函数,这样你就能找到导致函数输出和价格之间差异最小的sigma值。Julia中有几个包用于这类事情,请看Optim.jl。例如,本页:

您的函数不是单变量函数,但通过将值赋给您不估计的变量,很容易做到这一点:

f(σ) = OptionBlackSFs(2,3,4,5,σ,6) - input_price
然后传递给Optim,它将求解使
f
的输出尽可能接近0的输入。 更好但稍微复杂一点的语法可能是

let S = 2, K = 3, m = 4, y = 5, δ = 6, input_price = 100
  global f(σ) = OptionBlackSFs(S,K,m,y,σ,δ) - input_price
end

这是一道数学题。最好的方法是写下这些计算结果,然后用手将它们颠倒过来。如果这不可能,你可以开始考虑这个方程的数值解。
let S = 2, K = 3, m = 4, y = 5, δ = 6, input_price = 100
  global f(σ) = OptionBlackSFs(S,K,m,y,σ,δ) - input_price
end