2

감쇠 진자의 위상 평면의 gif를 만들었습니다. 통합을 위해 DifferentialEquations.jl 패키지를 사용하고 플로팅 및 애니메이션을 위해 pyplot 백엔드와 패키지 Plots.jl 및 ImageMagick.jl을 사용합니다. 그렇게하기 위해, 초기 값에 대한 함수를 통합하고, 각각의 함수를 많은 시간 동안 통합하여 gif의 형태로 최종 플롯을 만드는 작은 조각을 얻습니다. 코드는 다음과 같습니다.줄리아의 불일치 세분화 오류

using DifferentialEquations 
using Plots ; default(size=(1000,700)) 
pyplot() 
using ImageMagick 

x = linspace(0.0,50.0,101) 
tfinal = collect(x) 
b = 0.2 
p = plot() 
u0vals = ([pi,-2.41],[2.0*pi,-2.41],[-2.0*pi,-3.0],[-2pi,3.0]) 
anim = @animate for j=1:endof(tfinal) 
    for i=1:endof(u0vals) 
     f = function(t,u,du) 
     du[1] = u[2] 
     du[2] = -b*u[2] -sin(u[1]) 
     end 
     u0 = u0vals[i] 
     tspan=(0.0,tfinal[j]) 
     prob = ODEProblem(f, u0, tspan) 
     sol = solve(prob) 
     plot!(p, sol, vars=(1,2),arrow=true,legend = false, titlefont=font(15, "cursive"),title = "STRO Figure 6.7.7", linewidth=1,linecolor=:"black",xlims=(-15.0,10.0),border=false,ticks=nothing,grid=false) 
    end 
end 
gif(anim, "STRO_6_7_7_GIF_.gif",fps=5) 

이 코드는 처음 실행했을 때 좋았습니다. 그러나 다시 실행하려고 시도한 tfinal 및이를 보여 : signal (11): Segmentation fault: 11 (julia에서 메시지의 첫 번째 줄). 그런 다음 초기 코드를 다시 실행하려고 시도하고 동일한 메시지가 나타납니다. 줄리아와 컴퓨터를 다시 시작한 후에 나는 같은 메시지를 얻습니다. 나는 tfinal을 다시 바꿨고 모든 것이 다시 작동했습니다. tfinal 나는 사용하고 싶었습니다. 나는 원하는 출력을 가지고있다. 그러나 그것은 julia "반응"이 내 코드와 일치하지 않는다는 사실을 귀찮게합니다. 필요한 경우 전체 오류를 붙여 넣을 수는 있지만 길다.

편집 : 여기에 귀하의 시간 범위는 사소한 때문에 분할 오류가 있었다 전체 오류 메시지

signal (11): Segmentation fault: 11 
while loading no file, in expression starting on line 0 
ode_interpolation at /Users/pacagal/.julia/v0.5/OrdinaryDiffEq/src/dense/generic_dense.jl:134 
[inlined] 
InterpolationData at /Users/pacagal/.julia/v0.5/OrdinaryDiffEq/src/interp_func.jl:20 
unknown function (ip: 0x32b584519) 
macro expansion at /Users/pacagal/.julia/v0.5/DiffEqBase/src/solutions/solution_interface.jl:72 [inlined] 
apply_recipe at /Users/pacagal/.julia/v0.5/RecipesBase/src/RecipesBase.jl:238 
unknown function (ip: 0x32b5808c6) 
jl_call_method_internal at /Users/osx/buildbot/slave/package_osx10_9 x64/build/src/./julia_internal.h:189 [inlined] 
jl_apply_generic at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/gf.c:1942 
jl_apply at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia.h:1392 [inlined] 
jl_f__apply at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/builtins.c:547 
_process_userrecipes at /Users/pacagal/.julia/v0.5/Plots/src/pipeline.jl:73 
_plot! at /Users/pacagal/.julia/v0.5/Plots/src/plot.jl:171 
unknown function (ip: 0x32b57bbed) 
jl_call_method_internal at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia_internal.h:189 [inlined] 
jl_apply_generic at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/gf.c:1942 
#plot!#266 at /Users/pacagal/.julia/v0.5/Plots/src/plot.jl:151 
jl_call_method_internal at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia_internal.h:189 [inlined] 
jl_apply_generic at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/gf.c:1942 
jl_apply at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia.h:1392 [inlined] 
jl_f__apply at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/builtins.c:547 
#plot! at ./<missing>:0 
jl_call_method_internal at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia_internal.h:189 [inlined] 
jl_apply_generic at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/gf.c:1942 
macro expansion; at ./REPL[10]:11 [inlined] 
macro expansion; at /Users/pacagal/.julia/v0.5/Plots/src/animation.jl:154 [inlined] 
anonymous at ./<missing> (unknown line) 
unknown function (ip: 0x32b5566ff) 
jl_call_method_internal at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia_internal.h:189 [inlined] 
jl_toplevel_eval_flex at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/toplevel.c:569 
jl_toplevel_eval_in_warn at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/builtins.c:590 
eval at ./boot.jl:234 
jlcall_eval_19752 at /Applications/Julia-0.5.app/Contents/Resources/julia/lib/julia/sys.dylib (unknown line) 
jl_call_method_internal at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia_internal.h:189 [inlined] 
jl_apply_generic at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/gf.c:1942 
eval_user_input at ./REPL.jl:64 
unknown function (ip: 0x3192d9e66) 
jl_call_method_internal at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia_internal.h:189 [inlined] 
jl_apply_generic at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/gf.c:1942 
macro expansion at ./REPL.jl:95 [inlined] 
#3 at ./event.jl:68 
unknown function (ip: 0x3192d30df) 
jl_call_method_internal at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia_internal.h:189 [inlined] 
jl_apply_generic at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/gf.c:1942 
jl_apply at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/./julia.h:1392 [inlined] 
start_task at /Users/osx/buildbot/slave/package_osx10_9-x64/build/src/task.c:253 
Allocations: 40525029 (Pool: 40521241; Big: 3788); GC: 71 

[Proceso completado] 
+0

다른 백엔드를 사용하거나 정말로 PyPlot을 사용하고 싶다면 https://github.com/JuliaPy/PyPlot.jl/issues/234 –

+0

을 참조하십시오. @TomBreloff'plotly()','' plotlyjs()','pgfplots()','inspectdr()'를 사용합니다. 'gr()'은'x = linspace (0.0,50.0,101)'에 대해서만 작동했지만'x = linspace (0.0,50.0,201)'에 대해서는 작동하지 않습니다.'gr()'과'x = linspace (0.0,50.0,101)'그리고 그것은 효과가 없었습니다. – Pau

+0

Windows 버전인가요? ImageMagick에는 Windows에 몇 가지 문제가 있습니다. 전체 오류 메시지를 포함시킬 수 있습니까? 그것이 될 수있는 몇 가지가 있으며, 그것 없이는 알기가 어렵습니다. –

답변

1

입니다.

x = linspace(0.0,50.0,101) 
tfinal = collect(x) 

공지 후 tfinal[1]=0.0 그 첫 번째 시간 범위는 (0.0,0.0) 그래서. 그것이하고 있던 일은 사소한 diffeq 솔루션을 제공 한 다음 경계를 정하기 위해 경계를 잡으려고 시도했지만 경계 검사가 해제되었습니다. 아야. 커밋을 넣으면 다음 패치가 사용자에게 경고하는 오류를 던지게됩니다.

x = linspace(0.0,50.0,101) 
tfinal = collect(x)[2:end] 

이 잘 할 것 :이 문제를 해결하는 방법이 첫 번째 평가시기를 제거하는 것을 의미

.

제공된을 볼 수도 있습니다. 당신이 원하는 순서로 모든 것을 쉽게 애니메이트 할 수 있는지 확실치 않다 : Plots.jl 컨트롤이 더 많이 필요할 수도있다.

+0

그 일을 한 후에도 여전히 효과가 없었기 때문에 Julia와 Homebrew를 삭제하기로 결정했습니다. 이제 변경 사항을 사용하여 완벽하게 작동합니다. 그것은 내가이 질문에서 논평 한 불일치를 여전히 귀찮게한다. 왜 똑같은 코드와 같은 "환경"(다른 것을 실행하지 않거나 그와 같은 것을 실행하지 않는)이 때로는 효과가 있고 때로는 작동하지 않는 경우가 있습니다. 게다가 패키지 ImageMagick을 설치할 수 없다는 사실 (분할 결함을 얻고있었습니다). 당신이 얘기 한 그 한계점에서 발생했을 수 있습니까? – Pau

+1

문제가있는 자작작에 대한 전부는 실수로 내가 생각하는 일부 국가를 변경하기 때문입니다. 내가 링크 된 문제를 보아라. 그러나 그것은 별개의 문제 다. 개발자는 곧 그것을 분류해야한다. –