小编Dav*_*nro的帖子

Julia中的基尼系数:高效准确的代码

我正试图在Julia中实施以下公式来计算工资分配的基尼系数:

在此输入图像描述

哪里 在此输入图像描述

这是我正在使用的代码的简化版本:

# Takes a array where first column is value of wages
# (y_i in formula), and second column is probability
# of wage value (f(y_i) in formula).
function gini(wagedistarray)
    # First calculate S values in formula
    for i in 1:length(wagedistarray[:,1])
        for j in 1:i
            Swages[i]+=wagedistarray[j,2]*wagedistarray[j,1]
        end
    end

    # Now calculate value to subtract from 1 in gini formula
    Gwages = Swages[1]*wagedistarray[1,2]
    for i in 2:length(Swages)
        Gwages += wagedistarray[i,2]*(Swages[i]+Swages[i-1])
    end

    # Final step of gini calculation …
Run Code Online (Sandbox Code Playgroud)

statistics inequality distribution julia

7
推荐指数
2
解决办法
639
查看次数

Julia 在循环中更改名称,使用符号变量

我想在循环的每次迭代中更改符号变量的名称,然后使用这些符号变量求解方程,例如:

using SymPy
for i in 1:5
  p{i} = symbols("p"{i}, real=true,positive=true)
  solve(p{i}^2-i^2)
end
Run Code Online (Sandbox Code Playgroud)

因此,我希望创建一系列标量符号变量(因为我认为不可能创建向量值符号变量),每个变量都具有不同的名称 - p1、p2、p3、p4 和 p5 - 然后使用这些在方程求解器中。然而,花括号符号似乎不适用于按照 matlab 在 julia 中命名。快速谷歌没有提出任何明显的答案。有任何想法吗?

symbolic-math sympy julia

5
推荐指数
1
解决办法
1080
查看次数

非线性方程组Julia

我正试图在Julia中解决大量(50)非线性联立方程.目前我只是试图用2个方程来完成这项工作以获得正确的语法等.但是,我尝试了各种各样的软件包/工具 - NLsolve,nsolve in SymPy和NMPpt in JuMP(我忽略了目标)功能,只需输入相等的约束) - 没有太多的运气.我想我应该专注于让它在一个工作.我很感激任何关于包装选择的建议以及可能的代码.

这是我在NLsolve中尝试这样做的方法(在mcpsolve模式下使用它,所以我可以对我正在解决的变量 - x [1]和x [2] - 施加约束 - 这是失业率,因此在0和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 …
Run Code Online (Sandbox Code Playgroud)

python sympy equation-solving julia julia-jump

5
推荐指数
1
解决办法
912
查看次数

NLopt与单变量优化

任何人都知道NLopt是否适用于单变量优化.试图运行以下代码:

using NLopt

function myfunc(x, grad)
    x.^2
end

opt = Opt(:LD_MMA, 1)
min_objective!(opt, myfunc)
(minf,minx,ret) = optimize(opt, [1.234])
println("got $minf at $minx (returned $ret)")
Run Code Online (Sandbox Code Playgroud)

但是得到以下错误消息:

> Error evaluating untitled
LoadError: BoundsError: attempt to access 1-element Array{Float64,1}:
1.234
at index [2]
in myfunc at untitled:8
in nlopt_callback_wrapper at /Users/davidzentlermunro/.julia/v0.4/NLopt/src/NLopt.jl:415
in optimize! at /Users/davidzentlermunro/.julia/v0.4/NLopt/src/NLopt.jl:514
in optimize at /Users/davidzentlermunro/.julia/v0.4/NLopt/src/NLopt.jl:520
in include_string at loading.jl:282
in include_string at /Users/davidzentlermunro/.julia/v0.4/CodeTools/src/eval.jl:32
in anonymous at /Users/davidzentlermunro/.julia/v0.4/Atom/src/eval.jl:84
in withpath at /Users/davidzentlermunro/.julia/v0.4/Requires/src/require.jl:37
in withpath at /Users/davidzentlermunro/.julia/v0.4/Atom/src/eval.jl:53
[inlined code] from /Users/davidzentlermunro/.julia/v0.4/Atom/src/eval.jl:83 …
Run Code Online (Sandbox Code Playgroud)

optimization julia nlopt

3
推荐指数
1
解决办法
373
查看次数