这是我的一个函数,目的是自己手动分割,不同区间采不同的点。
function splitEs(nJ, minHamiltonian, maxHamiltonian)
nJ4 = Int(ceil(0.1*nJ))
println(nJ4)
nJ3 = Int(ceil(0.2*nJ))
println(nJ3)
nJ2 = Int(ceil(0.3*nJ))
println(nJ2)
nJ1 = Int(nJ - nJ2 - nJ3 - nJ4)
println(nJ1)
Es1 = collect(range(1.00*maxHamiltonian+0.00*minHamiltonian, 0.99*maxHamiltonian+0.01*minHamiltonian, length=nJ1+1))[2:end]
println(Es1)
Es2 = collect(range(0.99*maxHamiltonian+0.01*minHamiltonian, 0.95*maxHamiltonian+0.05*minHamiltonian, length=nJ2+1))[2:end]
println(Es2)
Es3 = collect(range(0.95*maxHamiltonian+0.05*minHamiltonian, 0.75*maxHamiltonian+0.25*minHamiltonian, length=nJ3+1))[2:end]
println(Es3)
Es4 = collect(range(0.75*maxHamiltonian+0.25*minHamiltonian, 0.00*maxHamiltonian+1.00*minHamiltonian, length=nJ4+1))[2:end]
println(Es4)
vcat(Es1, Es2, Es3, Es4)
end
然而我nJ=100
时运行结果是这样的:
10
20
30
40
也就是它运行完nJ1
那行,后面生成Es1
就卡住了。
不是很理解。
已经关闭重新打开运行了,到了这里还是卡住。