첫 줄리아
소개
이 기사는 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 대단하다! 나중에 처음 실행할 때는 상당히 시간이 걸리지 만 두 번째 이후에는 빠르기 때문에 괜찮습니다.
Reference
이 문제에 관하여(첫 줄리아), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masayoshi361/items/39292ddf1ae23ce1ad07
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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 대단하다! 나중에 처음 실행할 때는 상당히 시간이 걸리지 만 두 번째 이후에는 빠르기 때문에 괜찮습니다.
Reference
이 문제에 관하여(첫 줄리아), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masayoshi361/items/39292ddf1ae23ce1ad07
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using Plots
using LinearAlgebra
size = 10000
mat=randn(Float32, size, size)
for i in 1:size
for j in i+1:size
mat[i, j]=mat[j, i]
end
end
@time eigenvalues = eigvals(mat)
histogram(eigenvalues, bins = range(-200, 200, step=4), label="eigenvalues")
Julia는 Python 라이크에 쓸 수 있어 매우 사용하기 쉽고 좋다고 생각합니다. 라고 생각했습니다만, np.linalg.eigvals로 해 보았더니 죽을 만큼 시간이 걸렸습니다...라고 하는 것으로 julia 대단하다! 나중에 처음 실행할 때는 상당히 시간이 걸리지 만 두 번째 이후에는 빠르기 때문에 괜찮습니다.
Reference
이 문제에 관하여(첫 줄리아), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masayoshi361/items/39292ddf1ae23ce1ad07텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)