Julia:NLsolve 提供不同的解决方案,每个 运行 有时 returns NaN?
Julia: NLsolve providing different solution each run and sometimes returns NaN?
我正在尝试从论文 Zhu, H. (2014) 中复制一些 matlab 代码作为我硕士论文的一部分。暗池会损害价格发现吗?
我有两个方程组,我使用 Julia 中的“NLsolve”包求解。
问题是 NLsolve returns f[1] 的不同解决方案每次我 运行 代码有时它 returns 一个“NaN”。
我不确定是什么原因造成的?
这是一段代码摘录:
using NLsolve;
function G(x)
min(1,x/C)
end;
function Ginv(x)
min(C,x*C)
end;
function F(x)
1-exp(-x/2)
end;
μᵤ = 60;
σᵤ = sqrt(μᵤ);
a = [0 0];
b = [3*μᵤ 3*μᵤ];
r_bar = 0.91;
μ_bar = 20;
C = 2;
x₀ = [μ_bar, 1.0];
function f_temp!(x,f)
f[1] = μ_bar*F((1-G(1))*μᵤ*x[2]/(x[1]+(1-G(1))μᵤ))-x[1]
f[2] = 1-x[1]/(x[1]+(1-G(1))μᵤ)-r_bar
end;
x = nlsolve(f_temp!, x₀)
此致,
拉斯穆斯
您在 f_temp!
中的参数顺序错误。使用:
function f_temp!(f, x)
f[1] = μ_bar*F((1-0.5)*μᵤ*x[2]/(x[1]+(1-0.5)μᵤ))-x[1]
f[2] = 1-x[1]/(x[1]+(1-0.5)μᵤ)-r_bar
end;
一切都会好起来的。
我正在尝试从论文 Zhu, H. (2014) 中复制一些 matlab 代码作为我硕士论文的一部分。暗池会损害价格发现吗?
我有两个方程组,我使用 Julia 中的“NLsolve”包求解。 问题是 NLsolve returns f[1] 的不同解决方案每次我 运行 代码有时它 returns 一个“NaN”。
我不确定是什么原因造成的?
这是一段代码摘录:
using NLsolve;
function G(x)
min(1,x/C)
end;
function Ginv(x)
min(C,x*C)
end;
function F(x)
1-exp(-x/2)
end;
μᵤ = 60;
σᵤ = sqrt(μᵤ);
a = [0 0];
b = [3*μᵤ 3*μᵤ];
r_bar = 0.91;
μ_bar = 20;
C = 2;
x₀ = [μ_bar, 1.0];
function f_temp!(x,f)
f[1] = μ_bar*F((1-G(1))*μᵤ*x[2]/(x[1]+(1-G(1))μᵤ))-x[1]
f[2] = 1-x[1]/(x[1]+(1-G(1))μᵤ)-r_bar
end;
x = nlsolve(f_temp!, x₀)
此致, 拉斯穆斯
您在 f_temp!
中的参数顺序错误。使用:
function f_temp!(f, x)
f[1] = μ_bar*F((1-0.5)*μᵤ*x[2]/(x[1]+(1-0.5)μᵤ))-x[1]
f[2] = 1-x[1]/(x[1]+(1-0.5)μᵤ)-r_bar
end;
一切都会好起来的。