첫 줄리아

3686 단어 Julia선형 대수

소개



이 기사는 Julia에 입문하여 며칠의 아마추어가 쓴 것이므로 별로 섬광하지 말아 주세요. 환경 구축은 이 기사

Julia 소개



Mac 환경에서 이야기를 진행하십시오.
공식 사이트 에서 dmg 파일을 다운로드하고 여기 에 쓰여지면 끝입니다. 간단! 덧붙여서 jupyter에서도 사용할 수 있습니다. 자세한 내용은 위의 참고 기사를보십시오. 다음은 jupyter에서 실행하고 있습니다.

Julia에서 반원칙을 입증



물건은 시험으로 Julia에서 위그너의 반원칙을 입증하려고합니다.
반 원칙에 대해서는 여기
따라서 대칭 랜덤 행렬의 고유 값 분포는 반원형입니다.
우선은 랜덤 행렬을 만들어 봅시다. 이번에는 행렬의 크기를 $size=10000$로 했습니다.
Julia에서 각 요소가 표준 정규 분포를 따르는 행렬은 randn 함수를 사용하여 만들 수 있습니다.
using Plots
using LinearAlgebra
size = 10000
mat=randn(Float32, size, size)

이것은 대칭 행렬이 아니기 때문에 일반적으로 for 문을 사용하여 대칭 행렬로 만들었습니다.
for i in 1:size
    for j in i+1:size
        mat[i, j]=mat[j, i]
    end
end

그리고는 고유치를 구할 뿐입니다. LinearAlgebra안에eigvals 함수가 있으므로
@time eigenvalues = eigvals(mat)

@.time은 실행 시간을 측정하는 매크로입니다. 내 환경에서는 약 40s였습니다.
마지막으로 고유 값의 히스토그램을 작성합시다. 이것은 Plots 안의 histogram 함수로 할 수 있습니다.
histogram(eigenvalues, bins = range(-200, 200, step=4), label="eigenvalues")


깨끗한 반원이 보였습니다!

끝에



Julia는 Python 라이크에 쓸 수 있어 매우 사용하기 쉽고 좋다고 생각합니다. 라고 생각했습니다만, np.linalg.eigvals로 해 보았더니 죽을 만큼 시간이 걸렸습니다...라고 하는 것으로 julia 대단하다! 나중에 처음 실행할 때는 상당히 시간이 걸리지 만 두 번째 이후에는 빠르기 때문에 괜찮습니다.

좋은 웹페이지 즐겨찾기