Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Doing math with python.ch06

368 Aufrufe

Veröffentlicht am

파이썬으로 풀어보는 수학
챕터 06. 기하학적 형상과 프렉탈 그리기

Veröffentlicht in: Software
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

Doing math with python.ch06

  1. 1. https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch06.ipynb • 원서명 : Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, More! (ISBN 9781593276409) • 지은이 : 아미트 사하(Amit Saha) • 원서 및 관련자료 : https://www.nostarch.com/doingmathwithpython • 번역서 : http://www.acornpub.co.kr/book/doing-math-with-python
  2. 2. 3  figure 객체 얻어오기 - .figure() : 생성 - .gcf() : 현재 figure 객체  axes 객체 얻어오기 - .axes() : 생성 - .gca() : 현재 axes 객체
  3. 3. 4  원 그리기  사각형 그리기
  4. 4. 5
  5. 5. 6 • fig : 현 그림의 객체 • update_radius : 프레임 번호와 프레임마다 갱신하기를 바라는 패치 객체가 전달되어서 원하는 모양으로 변경한 뒤 패치 객체를 리턴 • fargs : update_radius()에게 전달되는 인자들의 목록 (프레임 번호는 제외) • frames : 애니메이션의 프레임 개수. 여기에 적힌 수 만큼 update_radius()를 호출하게 됨 • interval : 프레임 간의 시간 간격 (밀리미터 단위) • repeat : True, False 값을 가질 수 있으며 애니메이션의 반복 유무를 결정. (default는 True)
  6. 6. 7  전체 소스는 상세설명 링크 참조
  7. 7. 8 단순한 구조가 끊임없이 반복되면서 복잡하고 묘한 전체 구조를 만드는 것으로, 즉 자기유사성(self-similarity) 와 순환성(recursiveness)라는 특징을 가지고 있다. – 우리 생활 속 프랙탈 by 박희훈 ( https://prezi.com/gffdwoyxj7qd/presentation
  8. 8. 9  평면상 점 변환 (단순한 프랙탈 예제) P(x, y) -> Q(x+1, y+1)
  9. 9. 10  2개의 룰 중 랜덤 P(x, y) -> Q(x+1, y+1) or Q(x+1, y-1)
  10. 10. 11  random.choice() : 입력된 리스트 중 동일한 확률로 랜덤으로 선택 P(x, y) -> Q(x+1, y+1) or Q(x+1, y-1)
  11. 11. 12  반즐리(Michael Barnsley)의 고사리
  12. 12. 13 5x5 영역에 0 ~ 10의 색분포를 랜덤으로 색칠하는 프로그램 작성 (각각의 점의 색은 검은색을 0 흰색을 10으로 하여 그 사이 값을 가짐)  2차원 List 생성하는 함수
  13. 13. 14  imshow() 함수를 이용하여 이미지 출력
  14. 14. 15  imshow() 주요 인자 - origin : lower인 경우 list2D[0][0] 값이 이미지 상 (0,0)으로 매칭 - extent : 이미지 좌측하단을 (0,0), 우측상단을 (5,5)로 설정 - cmap=cm.Greys_r : 회색스케일의 이미지를 생성 - interpolation=‘nearest’ : 가장 인접한 점과는 같은 색으로 그리지 않도록 설정
  15. 15. https://github.com/DevStarSJ/Study/blob/master/Blog/Python/DoingMathWithPython/DoingMathWithPython.Ch06.ipynb https://www.nostarch.com/doingmathwithpython
  16. 16. 17 1. 먼저 큰 사각형을 하나 그린 다음 2. 사각형 내에 반지름 0.5인 원을 채워 넣으세요.
  17. 17. 18 폴란드 수학자 바츌라프 시어핀스키 (Waclaw Sierpinski)의 정삼각형 프렉탈을 그리세요. (모든 확률은 1/3으로 동일합니다.)
  18. 18. 19 1976년 마이클 헤논(Michael Henon) 함수를 애니메이션으로 작성하세요.
  19. 19. 20  (-2.5, -1.0) ~ (1.0, 1.0) 공간에 각 축을 400x400의 공간으로 나눈 곳에 점을 찍습니다. 1. 2개의 복소수를 생성 z1 = 0 + 0j c = xi + ykj 2. 레이블 iteration을 생성하여 0으로 설정 3. 복소수 z1 = z1^2 + c 4. iteration 값을 1 증가 5. abs(z1) < 2 이며 iteration < max_iteration이면 3단계로 이동, 그렇지 않으면 6단계로 이동 (max_iteration을 1,000으로 설정, 더 커질수록 복잡한 이미지가 생성되나 계산 시간이 길어짐) 6. 점 (xi, yk)의 색상을 iteration으로 설정

×