我在为朱莉娅建造POE乐团时遇到了麻烦.我正在关注这篇论文和其他论文的一部分.
在朱利亚,我计算:
X = randn(dim, dim)
Q, R = qr(X)
Q = Q*diagm(sign(diag(R)))
ij = (irealiz-1)*dim
phases_ens[1+ij:ij+dim] = angle(eigvals(Q))
Run Code Online (Sandbox Code Playgroud)
dim矩阵维度在哪里,irealiz只是实现总数的索引.
我对Q的阶段感兴趣,因为我希望Q是具有适当Haar测量的正交矩阵.如果dim=50和实现的总数是100000,并且由于我正在纠正Q,我应该期望一个平坦的phases_ens分布.然而,除了零和pi处的峰值之外,我获得了平坦的分布.代码有问题吗?
我在chrome上使用ipython notebook 1.1.0(和python 2.7.3).当我使用pylab并申请时
pylab.show()
Run Code Online (Sandbox Code Playgroud)
ipython笔记本冻结"内核忙".我已经看到内核繁忙是ipynb中常见的错误.
在终端上一段时间后我得到了:
ATTENTION: default value of option force_s3tc_enable overridden by environment.
Run Code Online (Sandbox Code Playgroud)
关于要寻找什么的任何想法?
我正在学习一些github功能,我想提出一个拉请求我在其中一个julia包中找到的一些bug.令我困惑的是,如果我在我的本地julia /我没有看到我提交错误修复的本地分支.如果我去〜/ .julia /那里,我可以看到我当地的分店.
在任何情况下,git remote add upstream <url>我应该使用哪个来请求拉票请求票?
如何在Haskell中使用curry和uncurry排除函数?
此外,为什么以下定义在加载时会抛出错误?
curry' :: ((a -> b) -> c) -> a -> b -> c
curry' f = \x y -> f (x, y)
uncurry' :: a -> b -> c -> ((a -> b) -> c)
uncurry' f = \(x,y) -> f x y
Run Code Online (Sandbox Code Playgroud) 我有两个用git跟踪我程序的实例,所以我知道它们是同步的.一个实例在机器A中,另一个在机器B中.
机器A运行正常,但是当我去机器BI时获得以下错误:
ERROR: InexactError()
in setindex! at array.jl:307
in setindex! at array.jl:345
in main at /path/to/main.jl:122
in include at ./boot.jl:246
in include_from_node1 at loading.jl:128
in process_options at ./client.jl:285
in _start at ./client.jl:354
in _start_3B_3587 at /home/usr/julia/usr/bin/../lib/julia/sys.so
while loading /path/to/main.jl, in expression starting on line 265
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它会抛出错误.这两台机器都有Julia的最新主版本:
Version 0.4.0-dev+3322 (2015-02-12 13:56 UTC)
Commit 1ec68b3* (0 days old master)
Run Code Online (Sandbox Code Playgroud)
抛出错误的行是
array2 = zeros(Float64,NHn*2000)
for iRealiz in 1:2000
...
ij = (iRealiz-1)*NHn
egvals_ts, egvecs_ts = eig(timeser)
array2[ij+1:ij+NHn] = egvals_ts
...
end
Run Code Online (Sandbox Code Playgroud)
NHn是矩阵维度.
我广泛使用 julia's linear equation solver res = X\b。由于参数变化,我必须在我的程序中使用它数百万次。这工作正常,因为我使用的是小尺寸(最多30)。现在我想分析更大的系统,直到1000,线性求解器不再有效。
我认为可以有一个解决办法。但是我必须说,有时我的 X 矩阵是密集的,有时是稀疏的,所以我需要对这两种情况都能正常工作的东西。
该b向量是一个全为零的向量,除了一个条目,它总是1(实际上它总是最后一个条目)。此外,我不需要所有的res向量,只需要它的第一个条目。
我遇到了这个问题
julia> Tinit = 0.0
0.0
julia> for ii in 1:10
timeinterval = Tinit:0.05:(Tinit + 0.05)
println(Tinit + 0.05)
for item in timeinterval
println("+++++++++ ", item)
end
Tinit = timeinterval[end]
end
Run Code Online (Sandbox Code Playgroud)
而且由于一些奇怪的原因,我无法获得超过的价值 0.15
在使用函数角度时,我遇到了这个结果:
julia> angle(-1+im*0.0)
3.141592653589793
julia> angle(-1-im*0.0)
-3.141592653589793
Run Code Online (Sandbox Code Playgroud)
这不是错误的,但可能会引起不适,因为通常角度的评估是在区间内(-pi,pi].
从这里我发现在范围构造中无法通过数组函数找到和替换其元素......无论如何怎么做?
假设我想删除的元素2,6,7,8,13,19在range(1, step=1, stop=21)。或者更一般地说,假设a是一个包含范围内数字的随机数组,[1,21]并且想要删除给定范围内的这些元素。
我有一个程序,使用相同版本的 Julia 在两台不同的电脑上运行。我不想给出程序的具体片段,因为一方面有点复杂,另一方面,我觉得一定有一些东西取决于机器而不是我的程序本身。
以下是我在两台机器上得到的一些结果:
1 1.0000000000582077 15.124999999941792
2 1.9999999999417923 27.536972172616515
3 3.000000000523869 45.722282028989866
Run Code Online (Sandbox Code Playgroud)
1 1.0 15.125
2 2.0 27.53697217302397
3 3.0 45.722282028466
Run Code Online (Sandbox Code Playgroud)
问题是舍入误差,我不知道它们是在哪一点引入的,导致结果略有不同。它不可能是格式错误(我在两种情况下使用完全相同的程序),也不可能是机器 epsilon 错误(两种情况下的机器 epsilon 都是>2.220446049250313e-16)。
目前我只能认为我使用的额外软件包,SparseArrays或LinearAlgebra正在FFTW引入此人为错误,但我不确定。
编辑:
好吧,这里是一个最小的例子(也许数组不需要像 [a,a] 一样,其中 a 本身就是一个稀疏数组)。我必须修改我的程序才能隔离问题,因此我下面将讨论的结果与我上面写的结果略有不同。然而,两者都显示了我提到的不可忽视的错误。
using LinearAlgebra
using SparseArrays
using FFTW
const Nsites = 10000
function Opbuild1(::Val{true})
Up = spzeros(Complex{Float64}, Nsites, Nsites)
N = div(Nsites,2)
ii = 1
for p in 0:(N-1)
Up[ii,ii] = exp(-1.0im*p^2*0.25)
Up[ii + N, ii + N] = exp(-1.0im*(p …Run Code Online (Sandbox Code Playgroud)