在这篇文章之后,我决定将Julia与GNU Octave进行比较,结果与julialang.org中的加速结果不一致.
我编译了Julia和GNU Octave CXXFLAGS='-std=c++11 -O3'
,结果我得到了:
a=0.9999;
tic;y=a.^(1:10000);toc
Elapsed time is 0.000159025 seconds.
tic;y=a.^(1:10000);toc
Elapsed time is 0.000162125 seconds.
tic;y=a.^(1:10000);toc
Elapsed time is 0.000159979 seconds.
Run Code Online (Sandbox Code Playgroud)
-
tic;y=cumprod(ones(1,10000)*a);toc
Elapsed time is 0.000280142 seconds.
tic;y=cumprod(ones(1,10000)*a);toc
Elapsed time is 0.000280142 seconds.
tic;y=cumprod(ones(1,10000)*a);toc
Elapsed time is 0.000277996 seconds.
Run Code Online (Sandbox Code Playgroud)
tic();y=a.^(1:10000);toc()
elapsed time: 0.003486508 seconds
tic();y=a.^(1:10000);toc()
elapsed time: 0.003909662 seconds
tic();y=a.^(1:10000);toc()
elapsed time: 0.003465313 seconds
Run Code Online (Sandbox Code Playgroud)
-
tic();y=cumprod(ones(1,10000)*a);toc()
elapsed time: 0.001692931 seconds
tic();y=cumprod(ones(1,10000)*a);toc()
elapsed time: 0.001690245 seconds
tic();y=cumprod(ones(1,10000)*a);toc()
elapsed …
Run Code Online (Sandbox Code Playgroud) 假设我们在X上给出了先验(例如X~高斯)和前向算子y = f(x).假设我们通过实验进一步观察到y,并且该实验可以无限期地重复.假设输出Y是高斯(Y~高斯)或无噪声(Y~Delta(观察)).
如何根据观察结果不断更新我们对X的主观知识水平?我用PyMC尝试了以下模型,但似乎我遗漏了一些东西:
from pymc import *
xtrue = 2 # this value is unknown in the real application
x = rnormal(0, 0.01, size=10000) # initial guess
for i in range(5):
X = Normal('X', x.mean(), 1./x.var())
Y = X*X # f(x) = x*x
OBS = Normal('OBS', Y, 0.1, value=xtrue*xtrue+rnormal(0,1), observed=True)
model = Model([X,Y,OBS])
mcmc = MCMC(model)
mcmc.sample(10000)
x = mcmc.trace('X')[:] # posterior samples
Run Code Online (Sandbox Code Playgroud)
后部没有收敛到xtrue.
在Python中我们可以做到:
def foo(*args, **kargs):
return bar(*args, **kargs)
Run Code Online (Sandbox Code Playgroud)
是否有可能在Julia中转发位置和关键字参数?
假设我有一条曲线y
和另外两条曲线u
,l
它们是向量的形式。如何绘图:
plot(y, lab="estimate")
plot!(y-l, lab="lower bound")
plot!(y+u, lab="upper bound")
Run Code Online (Sandbox Code Playgroud)
也就是说,一个不对称的置信区间?我知道如何使用此处ribbon
解释的选项绘制对称情况。
假设我有一个抽象基类:
abstract type B end
Run Code Online (Sandbox Code Playgroud)
以及许多具体的子类型:
struct C1{T,V} <: B end
struct C2{T,V} <: B end
...
Run Code Online (Sandbox Code Playgroud)
如何以优雅的方式为所有子类型定义一个方法?
result_type(::C1{T,V}) = T
result_type(::C2{T,V}) = T
...
Run Code Online (Sandbox Code Playgroud)
该subtypes
函数似乎不包含参数类型T
,V
我正在尝试查询,是否有一个干净的解决方案?
for C in subtypes(B)
# how to define result_type for C?
end
Run Code Online (Sandbox Code Playgroud) julia ×4
benchmarking ×1
mcmc ×1
octave ×1
plots.jl ×1
probability ×1
pymc ×1
python ×1
syntax ×1