我試圖解決Julia中的大量(50)非線性聯立方程。目前,我只是試圖用2個方程來獲得正確的語法等。但是,我已經嘗試了各種軟件包/工具 - NLsolve,nsolve在SymPy和NMP中的JuMP(我忽略了目標功能,只是輸入平等約束) - 沒有太大的運氣。我想我應該集中精力讓它在一個工作。我會很感激任何有關選擇軟件包的建議,如果可能的話。非線性方程組Julia
下面是我試圖在NLsolve中使用它(在mcpsolve模式下使用它,以便我可以對我正在求解的變量x [1]和x [2])施加約束,這些變量是失業率,零和1):
using Distributions
using Devectorize
using Distances
using StatsBase
using NumericExtensions
using NLsolve
beta = 0.95
xmin= 0.73
xmax = xmin+1
sigma = 0.023
eta = 0.3
delta = 0.01
gamma=0.5
kappa = 1
psi=0.5
ns=50
prod=linspace(xmin,xmax,ns)
l1=0.7
l2=0.3
wbar=1
r=((1/beta)-1-1e-6 +delta)
## Test code
function f!(x, fvec)
ps1= wbar + (kappa*(1-beta*(1-sigma*((1-x[1])/x[1]))))
ps2= wbar + (kappa*(1-beta*(1-sigma*((1-x[2])/x[2]))))
prod1=prod[1]
prod2=prod[50]
y1=(1-x[1])*l1
y2=(1-x[2])*l2
M=(((prod1*y1)^((psi-1)/psi))+((prod2*y2)^((psi-1)/psi)))
K=((r/eta)^(1/(eta-1)))*M
pd1=(1-eta)*(K^eta)*(M^(-eta))*prod1
pd2=(1-eta)*(K^eta)*(M^(-eta))*prod2
fvec[1]=pd1-ps1
fvec[2]=pd2-ps2
end
mcpsolve(f!,[0.0,0.0],[1.0,1.0], [ 0.3, 0.3])
我收到此錯誤信息:
任何建議都非常歡迎!我很欣賞這些公式非常難看,所以讓我知道是否有任何進一步的簡化有用(我已經嘗試過!)。
此處打開的問題:https://github.com/EconForge/NLsolve.jl/issues/19 –