Julia에서 벡터 필드 그리기

4506 단어 Julia시각화벡터

환경 등



Julia 1.1에 따라 기사를 업데이트했습니다.
julia> versioninfo()

Julia Version 1.1.0
Commit 80516ca202 (2019-01-21 21:24 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, sandybridge)
using Plots
gr(size=(400, 400))
#gr(fmt=:png)

Plots의 디폴트에서는, 그래프는 SVG 형식으로 출력된다. 그러나 그리기 점수가 많아지면 브라우저(Jupyter 클라이언트)의 표시 쪽으로 부하가 걸려 버린다. 그 경우는 PNG 형식으로 변경하면 좋다.

좌표계 만들기



벡터 필드를 그리는 함수 quiver()의 인수는 1 차원 배열입니다. 이에 따라 1차원 좌표계를 만든다.
xe = range(-1, 1, length=15)
ye = range(-1, 1, length=15)

x = repeat(xe, outer=length(ye))
y = repeat(ye, inner=length(xe));
julia> x

225-element Array{Float64,1}:
 -1.0                
 -0.8571428571428571 
 -0.7142857142857143 
  ...
  0.8571428571428571 
  1.0

julia> y

225-element Array{Float64,1}:
 -1.0
 -1.0
 -1.0
  ...
  1.0
  1.0

벡터 필드 만들기


u = y
v = x

벡터 필드 그리기



쉽게 볼 수 있도록 적절한 계수 k를 곱하여 화살표 길이를 조정했습니다.
k = 0.1
quiver(x, y, quiver=(k*u, k*v))



기타 예


u = y
v = -x



배열이 2차원이라면



배열을 1차원으로 열어quiver()에 건네주면 된다.
quiver(x[:], y[:], quiver=(u[:], v[:]))

좋은 웹페이지 즐겨찾기