Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

python 수학이해하기

9,363 views

Published on

파이썬을 위한 수학 이해하기

Published in: Software

python 수학이해하기

  1. 1. PYTHON MATHEMATICS 이해하기 Moon Yong Joon 1
  2. 2. 1. 대수 기초 2.함수 기초 3. 선형대수 기초 4.관계 기초 목차 2
  3. 3. 5. 그래프 기초 6. 삼각함수 7. 지수/로그 기초 8. 수열 기초 목차 3
  4. 4. 9. 집합 기초 10. 미분/적분 기초 11. 확률과 통계 기초 목차 4
  5. 5. 1.대수 기초 Moon Yong Joon 5
  6. 6. 주요 기호 Moon Yong Joon 6
  7. 7. 그리스 문자 Α/α(알파) Β/β(베타) Γ/γ(감마) Δ/δ(델타) Ε/ε(엡실론) Ζ/ζ(제타) Η/η(에타) Θ/θ(쎄타) Ι/ι(요타) Κ/κ(카파) Λ/λ(람다) Μ/μ(뮤) Ν/ν(뉴) Ξ/ξ(크시) Ο/ο(오미크론) Π/π(피) Ρ/ρ(로우) Σ/σ(씨그마) Τ/τ(타우) Υ/υ(윕실론) Φ/φ(휘) Χ/χ(키 또는 카이) Ψ/ψ(프시) Ω/ω(오메가) 7
  8. 8. 집합기호 8
  9. 9. 명제기호 9
  10. 10. 수 Moon Yong Joon 10
  11. 11. 수11
  12. 12. 수 자연수, 정수, 유리수, 무리수, 실수로 확장되는 수의 관계 12
  13. 13. 정수13
  14. 14. 정수 정수(整數, integer)는 자연수(1, 2, 3, ...)와 이들 의 음수(−1, −2, −3, ...)와 0으로 이루어진 수 체계이다. 정수는 자연수와 마찬가지로 가산 무 한 집합이며, 덧셈, 뺄셈, 곱셈에 대하여 닫혀 있 어 환을 이룬다. 14
  15. 15. 유리수15
  16. 16. 유리수 유리수(有理數, rational number)는 두 정수의 분수 형태(단 분모는 반드시 0이 아니다)로 나타 낼 수 있는 실수를 말한다. 유리수는 (0으로 나누는 것을 제외한) 사칙연산 (덧셈, 뺄셈, 곱셈, 나눗셈)에 대해 닫혀있는 '최소 의' 집합이기도 하다 16
  17. 17. 무리수17
  18. 18. 무리수 무리수(無理數, irrational number)는 두 정수의 비의 형태로 나타낼 수 없는 실수를 말한다. 즉, 분수로 나타낼수없는 소수이다. 18
  19. 19. 실수19
  20. 20. 실수 실수 [實數, real number] 정수의 몫으로 정의되 는 유리수의 범위에서는 대소의 순서를 정할 수 있으며, 사칙연산을 자유로이 할 수 있다. 그러나 이 범위에서는 역시 불완전한 점이 많다. 이를테면, 단위의 길이를 가지는 정사각형의 대 각선의 길이(x=2의 근)는 유리수로 나타낼 수 없 다. 이와 같은 결함을 보완하기 위하여 유리수에 무 리수를 첨가하여 수의 범위를 실수까지 확장한 것이다. 20
  21. 21. 복소수21
  22. 22. 복소수 복소수(複素數, complex number)는 다음 꼴로 나타낼 수 있는 수 이다. a+bi 이 때 a, b는 실수이고 i는 허수단위로 i2=-1을 만족한다. 실수 a를 그 복소수의 실수부, 실수 b 를 복소수의 허수부라고 부른다. 모든 실수는 복소수에 포함된다. 왜냐하면 모든 실수는 허수부가 0인 복소수로 표시할 수 있기 때 문이다. 22
  23. 23. 복소수 연산 복소수(複素數, complex number)는 다음 꼴로 23 나눗셈
  24. 24. 항등원,역수24
  25. 25. 항등원 항등원(恒等元)은 집합의 어떤 원소와 연산을 취 해도, 자기 자신이 되는 원소를 말한다. 쉽게 말해 서, 1개의 양을 전혀 달라 보이는 다른 양과 같게 만드는 수학적 관계를 말한다고 생각하면 된다. 25
  26. 26. 반수: 덧셈 반수(反數)는 그 수를 더했을 때 0이 되는 수를 말 한다. 예를 들면 7의 경우 -7에 7을 더하면 0이 되므로 7의 반수는 -7이다. 다르게 말하면 어떤 양수 n의 반수는 그와 절댓값 이 같은 음수라고 할 수 있으며 그 역도 성립한다. 정수, 유리수, 실수, 복소수는 음수가 있기 때문에 모두 반수가 있다. 26
  27. 27. 역수 : 곱셈 어떤 수의 역수(逆數,reciprocal) 또는 곱셈 역원 (-逆元, 영어: multiplicative inverse)은 그 수와 곱해서 1, 즉 곱셈 항등원이 되는 수를 말한다. x의 역수는 1/x 또는 x -1로 표기한다. 곱해서 1이 되는 두 수를 서로 역수 27
  28. 28. 절대값28
  29. 29. 절댓값은 거리의 개념이므로 반드시 0또는 양수이어야하며, 만약 실수 a가 음수라면, a에 (-1)을 곱해 양수화 절대값 absolute value 어떤 실수 a를 수직선에 대응시켰을 때, 수직선의 원점에서 실수 a까지의 거리를 의미한다. 이것을 기호로 |a|로 표시. 29
  30. 30. 비율30
  31. 31. 비율 비(比, ratio)는 어떤 수가 다른 한 수의 몇 배인지 를 나타내는 관계이다. 이 배수를 비율(比率, ratio)이라고 한다. 원주율 원의 지름에 대한 원주의 비율. 백분율 수를 100과의 비로 나타내는 것. 31
  32. 32. PYTHON SYMPY 수, 심벌, 전개식, 해 구하기 처리 Moon Yong Joon 32
  33. 33. Symbolic mathematics33
  34. 34. sympy 모듈 이란 SymPy는 symbolic mathematics을위한 python 라이브러리입니다. SymPy는 가능한 한 간단하게 코드를 유지하는 것은 이해하기 쉽게 확장 할 수있는 a full- featured computer algebra system (CAS)처리 34
  35. 35. sympy 구조 SymPy는 symbolic mathematics를 처리하기 위 해 다양한 객체들로 구성해서 평가해 수학처럼 문제를 푸는 체계 35 Sympy는 정의한 것은 pi도 하나의 인스턴스 객체 이므 로 이 값을 처리를 위해서는 평가(evalf)를 해야 함
  36. 36. sympy 객체 Sympy객체를 변수에 할당해서 사용하지만 별도 의 객체로 역할 함 36 Symbol로 정의할 때 들어간 문자열의 실 제 name이고 할당 된 참조변수는 symbol 객체가 할당 된 변수라 이름이 달 라도 됨
  37. 37. Symbol 객체 이해37
  38. 38. sympy 구조 SymPy는 symbolic mathematics를 처리하기 위 해 다양한 객체들로 구성되며 이를 평가해 수학 처럼 문제를 푸는 체계 38 Sympy는 정의한 것은 pi도 하나의 인스턴스 객체 이므 로 이 값을 처리를 위해서는 평가(evalf)를 해야 함
  39. 39. 수 타입 체계39
  40. 40. 정수 : sympy 정수(整數, integer)는 자연수(1, 2, 3, ...)와 이들 의 음수(−1, −2, −3, ...)와 0으로 이루어진 수 체계이다. 40
  41. 41. 유리수 : sympy 유리수(有理數, rational number)를 분자(p)와 분모(q)로 관리 41
  42. 42. 실수 1 : sympy 실수 [實數, real number] 42
  43. 43. 실수 2 : sympy Sympify로 sympy 숫자 타입을 확인 43
  44. 44. 복소수 : sympy Sympify로 sympy 숫자 타입을 확인 44
  45. 45. 무한대 처리45
  46. 46. 무한대/pi를 심벌 처리 sympy는 oo로 무한대, pi로 파이 상수를 관리 46
  47. 47. Sympy symbol 정의47
  48. 48. symbol 처리 Sympy 는 명확히 수학적인 심벌을 표시 x = Symbol(’x’)는 심벌을 하나 정의 a, b, c = symbols(’a, b, c’)는 심벌을 여러 개 정의 48
  49. 49. symbol 처리 : 변수에 타입주기 symbols 정의시 이 변수에 들어갈 데이터 타입 을 부여할 수 있음 49
  50. 50. symbol 처리 : 함수명 symbols 정의시 cls 파라미터에 Function을 부 여하면 함수 변수가 됨 50
  51. 51. 전개식 처리51
  52. 52. expand 메소드 : 전개식 처리 표현식도 별도의 타입을 가지므로 expand메소 드를 사용하면 표현식이 전개됨 52
  53. 53. expand 함수 : 전개식 처리 표현식도 별도의 타입을 가지므로 expand메소 드를 사용하면 표현식이 전개됨 53 곱셈 전개시 동일 항에 대한 곱셈부 분도 전개가 필요 하며 force=True 처리
  54. 54. 해 구하기54
  55. 55. Solve 함수 : 해 구하기 표현식을 solve 함수에 넣으면 해를 구해 줌 55
  56. 56. PYTHON NUMBER DATA TYPE Moon Yong Joon 56
  57. 57. Numeric Type57
  58. 58. 숫자타입 숫자에 대한 객체를 관리하는 데이터 타입 Numberic Types int float long(2.x) complex 숫자타입도 하나의 객체이므로 1 이 생성 되면 동일한 context 내에서는 동일한 객체 id를 가지고 사용 58
  59. 59. 숫자타입 – 기본 연산자 및 함수 숫자 타입에 기본으로 처리 되는 함수, operator Operation Result Notes x + y sum of x and y x - y difference of x and y x * y product of x and y x / y quotient of x and y x // y (floored) quotient of x and y x % y remainder of x / y -x x negated +x x unchanged abs(x) absolute value or magnitude of x int(x) x converted to integer long(x) x converted to long integer float(x) x converted to floating point complex(re,im) a complex number with real part re, imaginary part im. im defaults to zero. c.conjugate() conjugate of the complex number c divmod(x, y) the pair (x // y, x % y) pow(x, y) x to the power y x ** y x to the power y 59
  60. 60. Numeric Type(int)60
  61. 61. 숫자타입 - int int 타입 내의 operator 처리 내장 메소드 및 속 성들 61
  62. 62. 숫자타입 – int 예시 int 내부 속성에 대한 처리 real : int는 숫자를 관리하고 bit_length() : 이진수로 변환시 bit 길이 denominator : 분모 numerator : 분자 62
  63. 63. 숫자타입 – long 타입 python3버전에서는 통합되어 관리 Notes Python 2 Python 3 ① x = 1000000000000L x = 1000000000000 ② x = 0xFFFFFFFFFFFFL x = 0xFFFFFFFFFFFF ③ long(x) int(x) ④ type(x) is long type(x) is int ⑤ isinstance(x, long) isinstance(x, int) 63
  64. 64. Numeric Type(float)64
  65. 65. 숫자타입 - float float 타입 내의 operator 처리 내장 메소드 및 속성들 65
  66. 66. 숫자타입 – float 예시 float 내부 속성에 대한 처리 • real : float는 숫자를 관리하고 • hex() : 16진수로 변환 • fromhex() : hex() 결과의 문자 열을 float로 전환 • is_integer() : 실수 중 소수점 이 하 값이 0일 경우 true • as_integer_ratio() : 현재 값을 denominator : 분모, numerator : 분자로 표시 66
  67. 67. Numeric Type(complex)67
  68. 68. 숫자타입 - complex float 타입 내의 operator 처리 내장 메소드 및 속성들 68
  69. 69. 숫자타입 – complex 예시 complex 내부 속성에 대한 처리 • real : float는 숫자를 관리하고 • imag: 허수부문 • conjugate () : 켤레복소수 구 하기 69
  70. 70. 분수계산하기70
  71. 71. 숫자타입 – fractions 표시 fractions 모듈을 이용해서 분수를 계산. Float 타입과 계산시에는 float 타입으로 전환 됨 71
  72. 72. 숫자타입 – fractions 연산 fractions 모듈을 이용해서 분수를 계산. Float 타입과 계산시에는 float 타입으로 전환 됨 72
  73. 73. 거듭제곱 /제곱근 Moon Yong Joon 73
  74. 74. 거듭제곱74
  75. 75. 거듭제곱 거듭제곱은 이항 연산으로, 하나의 수를 여러 번 곱하는 연산을 의미한다. 기호로는 an 으로 표기 하며, 이때 a를 밑, n을 지수라고 한다. 75
  76. 76. 거듭제곱의 지수 표현 거듭제곱은 지수가 음수이면 기존 거듭제곱이 역 수가 되가 분수인 경우는 제곱근 표현이 됨 지수가 음수인 경우 지수가 분수인 경우 76
  77. 77. 거듭제곱의 성질 거듭제곱은 반복적인 곱하기와 나누기 처리를 하 므로 아래의 성질을 준수 77
  78. 78. 제곱근78
  79. 79. 제곱근 x의 제곱근(제곱根)은 제곱하여 x가 되는 실수를 가리키며, 특히 이 가운데 양의 제곱근을 sqrt(x) 라고 표기하고 "제곱근 x"(루트 x)라고 읽는다. 79
  80. 80. 제곱근의 지수 표현 제곱근 x를 수치적인 표현으로는 지수 표현을 분 수식으로 나타내면 됨 x1/2로 표현 80
  81. 81. 일반적으로 실수 x에 대하여 값이 부호는 +/-를 가짐 제곱근의 부호 표현 제곱근의 부호 81
  82. 82. 제곱근 x에 대한 수의 성질 제곱근의 값 표현 제곱근의 표현 제곱근의 값 자연수 x에 대해 결과값 은 자연수이거나 무리수이 다 음이 아닌 실수 x가 제곱 근 내부의 제곱은 x가 됨 82
  83. 83. 제곱근 두수 x,y에 대한 곱셈과 나눗셈 처리 방식 제곱근의 성질 제곱근의 곱셈 제곱근의 나눗셈 83
  84. 84. PYTHON 거듭제곱 /제곱근 Moon Yong Joon 84
  85. 85. 거듭제곱85
  86. 86. 밑 a, 지수 b에 대한 거듭 제곱을 구하는 것은 math.pow 함수와 연사자 **를 사용 거듭제곱 86
  87. 87. 제곱근87
  88. 88. 밑a이고 지수가 b일 경우 math.sqrt함수는 root2에 대한 값만 처리 하므로 **/pow에서 분 수를 이용해서 제곱근을 구함 제곱근 88
  89. 89. 기수법 Moon Yong Joon 89
  90. 90. 기수법90
  91. 91. 기수법 기수법(記數法, numeral system)은 수를 시각적으 로 나타내는 방법으로, 기수법을 통해서 나타나는 각 각의 숫자는 다른 수들과 구별되는 표기 방식을 가진 다. 91
  92. 92. 진법92
  93. 93. 이진법 이진법(二進法, binary)은 두 개의 숫자만을 이용 하는 기수법이다. 관습적으로 0과 1의 기호를 쓰 며 이들로 이루어진 수를 이진수라고 한다. 93
  94. 94. 팔진법 팔진법 (octal number system , 八進法 ) 은 8을 밑으로 하는 기수법이다. 0부터 7까지의 숫자를 사용한다. 이진법 표기의 3자리와 팔진법 한 자리 가 일대일 대응 94
  95. 95. 십진법 십진법(十進法, 열올림법)은 10을 기수로 한 기수 법이다. 자리수로 0, 1, 2, 3, 4, 5, 6, 7, 8, 9를 쓴다. 95
  96. 96. 십육진법 십육진법(十六進法, hexadecimal)은 16을 밑으로 하는 기수법이다. 보통 0부터 9까지의 수와 A에서 F 까지의 로마 문자를 사용하고, 이때 대소문자는 구별 하지 않는다. 이진법 표기의 4자리와 십육진법 한 자 리가 일대일 대응하며, 2진수가 많이 쓰이는 컴퓨터 에서 2진수를 대신해 많이 쓰이고 있다. 96
  97. 97. PYTHON 기수법 Moon Yong Joon 97
  98. 98. 진법표현98
  99. 99. 진법 표현 bin, oct, hex를 이용해서 이진법, 팔진법, 16진 법을 표현함 99
  100. 100. Bit 연산100
  101. 101. 비트연산자 : and, or, xor Operator Description & Binary AND 서로 같은 비트가 있는 경우만 표시 | Binary OR 서로 같은 경우 또는 다른 경우도 전 부 표시 ^ Binary XOR 다른 경우만 표시 101
  102. 102. 비트연산자 : ~, <<, >> Operator Description ~ Binary Ones Co mplement 1의 보수 구하기 << Binary Left Shift 좌축으로 비트 이동. >> Binary Right Shi ft 우축으로 비트이동. 102
  103. 103. 대수의 법칙 Moon Yong Joon 103
  104. 104. 연산 우선순위104
  105. 105. 연산 우선순위 연산자에 대한 우선순위는 PEMDAS로 처리 105
  106. 106. 교환법칙106
  107. 107. 수학에서, 집합 S 에 이항연산 * 이 정의되어 있을 때, S의 임의의 두 원소 a, b 에 대해 a * b = b * a가 성립하면, 이 연산은 교환법칙(交換法則, commutative law)을 만족한다고 한다 교환법칙을 만족하는 연산의 예를 들어보면 다음과 같다.  유리수, 실수, 복소수에서 덧셈과 곱셈.  행렬, 벡터의 덧셈  집합의 교집합, 합집합 연산 교환법칙 수학에서 순서와 상관없이 다른 항을 바꿔 계산 해도 동일한 값이 나오는 법칙 107
  108. 108. 교환법칙 : 덧셈과 곱셈 수학에서 순서와 상관없이 다른 항을 바꿔 계산 해도 동일한 값이 나오는 법칙 108
  109. 109. 결합법칙109
  110. 110. 수학에서 결합법칙(結合 法則, associated law)은 한 식에서 연산 이 두 번 이상 연속될 때, 앞쪽의 연산을 먼저 계산한 값과 뒤쪽의 연산을 먼저 계산한 결과가 항상 같을 경우 그 연산은 결합법칙을 만족한다고 한다. 결합법칙을 만족하는 연산의 예를 들어보면 다음과 같다.  실수와 복소수, 사원수의 덧셈과 곱셈은 결합법칙이 성립한 다.  최대공약수와 최소공배수 함수는 결합법칙을 만족한다.  행렬 곱셈은 결합법칙을 만족한다. 결합법칙 연산이 두 번 이상 연속될 때 연산을 묶어서 처리 110
  111. 111. 결합법칙 연산이 두 번 이상 연속될 때 연산을 묶어서 처리 111
  112. 112. 분배법칙112
  113. 113. 집합 S와 S에 대해 닫혀있는 이항 연산 *가 정의되어 있을 때, S의 임의의 원소 a, b, c에 대해 a * (b + c) = (a * b) + (a * c)가 성립 하면 좌분배법칙이, (b + c) * a = (b * a) + (c * a)가 성립하면 우 분배법칙이 성립한다고 하며 양쪽모두 성립할 경우 집합 S에서 연 산 *에 대해 분배법칙이 성립한다고 한다. 분배법칙을 만족하는 연산의 예를 들어보면 다음과 같다.  임의의 자연수, 정수, 유리수, 실수, 복소수의 곱셈 ×은 덧 셈 +에 대해 분배법칙이 성립한다.  합집합 연산 ∪은 교집합 연산 ∩에 대해 분배법칙이 성립하 고, 교집합 연산 ∩은 합집합 연산 ∪에 대해 분배법칙이 성 립한다. 또한, 교집합 연산은 대칭자 연산에 대해 분배법칙 이 성립한다. 분배법칙 수학에서 이항연산 *와 묶음이 있을 경우 분배하 면 동일한 처리값이 나오는 법칙 113
  114. 114. 분배법칙 수학에서 순서와 상관없이 다른 항을 바꿔 계산 해도 동일한 값이 나오는 법칙 114
  115. 115. 서로소115
  116. 116. 공약수/최대공약수 공약수, 최대공약수, 서로소 용어 정의 공약수 두 개 또는 그 이상의 자연수가 있을 때 그 자연수들의 공통인 약수. 최대공약수 공약수들 중에서 가장 큰 수.12의 약수={1,2,3,6,12} 16의 약수={1,2,4,8,16} 18의 약수={1,2,3,6,9,18} 에서 12와 16의 공약수 → 1,2,4 → 최대공약수는 4 12, 16, 18의 공약수 → 1,2 → 최대공약수는 2 서로소 공약수가 1 하나 뿐인 두 자연수 사이의 관계 (예) 8의 약수={1,2,4,8}, 9의 약수={1,3,9}에서 8과 9의 공약수는 1 한 개 뿐이므로 8과 9는 서로소 116
  117. 117. 서로소 최대공약수가 1인, 둘 이상의 양의 정수들은 서로 소(relatively prime)이라고 불린다. 두 정수가 1 이외에 양의 공약수를 가지지 않으면 서로소이다. 117
  118. 118. 대입118
  119. 119. 대입 대입(代入, substitution) 또는 변수변환(變數變 換, change of variables)은 수식의 특정 변수를 일정한 값 또는 다른 수식으로 치환하는 행위 119
  120. 120. 분모의 유리화120
  121. 121. 분모의 유리화 유리화(Rationalization)는 무리수가 있는 분수에 서, 분모 부분을 유리수로 바꾸는 과정을 말한다 121 분모와 분자에 분모를 곱하면 무리수가 유리 수로 변경됨
  122. 122. PYTHON 연산자와 OPERATOR 모듈의 대수의 법칙 Moon Yong Joon 122
  123. 123. 연산자 구조123
  124. 124. 연산자와 special method python 문법의 연산자는 각 type class 내부에 대 응하믄 special method가 존재 연산자 Special Method 각 타입별로 연산자는 special method와 매칭 124
  125. 125. 연산자 우선순위 순위 구분 Operator Description 0 그룹 ( ) Parentheses (grouping) 1 함수 f(args...) Function call 2 참조 x[index:index] Slicing 3 참조 x[index] Subscription 4 참조 x.attribute Attribute reference 5 산술 ** Exponentiation(제곱) 6 비트 ~x Bitwise not 7 부호 +x, -x Positive, negative 8 산술 *, /, % Multiplication, division, remainder 9 산술 +, - Addition, subtraction 10 비트 <<, >> Bitwise shifts 11 비트 & Bitwise AND 12 비트 ^ Bitwise XOR 13 비트 | Bitwise OR 14 비트 in, not in, is, is not, <, <=, >, >=,<>, !=, == Comparisons, membership, identity 15 논리 not x Boolean NOT 16 논리 and Boolean AND 17 논리 or Boolean OR 18 함수 lambda Lambda expression 125
  126. 126. 부호변환126
  127. 127. 부호연산 숫자 객체에 대한 부호 변환하는 연산 Operation 연산자 Function Method Negation (Arithmetic) - a neg(a) x.__neg__() Positive + a pos(a) x.__pos__() 127
  128. 128. 부호변환 예시 숫자 타입의 부호를 변환 128
  129. 129. 산술 연산129
  130. 130. 산술연산 : 정방향 숫자 객체들에 대한 수학적인 산술연산 Operation 연산자 Function Method addition x + y add(a, b) x.__add__(y) subtraction x - y sub(a, b) x.__sub__(y) multiplication x * y mul(a, b) x.__mul__(y) division x / y div(a, b) x.__div__(y) division x / y truediv(a, b) x.__truediv__(y) floor division x // y floordiv(a, b) x.__floordiv__(y) modulo (remainder) x % y mod(a, b) x.__mod__(y) floor division & modulo divmod(x, y) N/A x.__divmod__(y) raise to power x ** y pow(a, b) x.__pow__(y) 130
  131. 131. 산술연산 예시: operator 모듈 Operator 모듈을 import해서 사용 131
  132. 132. 산술연산 예시: int method Int class 내의 special method 이용해 계산 132
  133. 133. 산술연산 예시: 연산자 python 문법의 연산자 이용 133
  134. 134. 산술연산 : 역방향 수학적인 산출연산에 대한 역방향 메소드 제공 계산 결과는 정방향과 동일 Operation 연산자 Function Method addition x + y add(a, b) y.__radd__(x) subtraction x - y sub(a, b) y.__rsub__(x) multiplication x * y mul(a, b) y.__rmul__(x) division x / y div(a, b) y.__rdiv__(x) division x / y truediv(a, b) y.__rtruediv__(x) floor division x // y floordiv(a, b) y.__rfloordiv__(x) modulo (remainder) x % y mod(a, b) y.__rmod__(x) floor division & modulo divmod(x, y) N/A y.__rdivmod__(x) raise to power x ** y pow(a, b) y.__rpow__(x) 134
  135. 135. 산술연산 역방향 예시 사칙연산이 정방향이나 역방향이나 계산은 동일 135
  136. 136. 비트 연산136
  137. 137. 비트연산 설명 비트연산에 대해서는 실제 숫자의 비트를 가지고 연 산 Operation 연산자 설명 left bit-shift x << y y만큼 왼쪽으로 bit 이동 : 산식은 (x * (2** y) ) right bit-shift x >> y y만큼 오른쪽으로 bit 이동 : 산식은 (x // (2** y) ) bitwise and x & y x와 y이 동일한 비트값만(1 또는 0) 남고 동일하지 않으면 0 처리 bitwise xor x ^ y x와 y에서 서로 대응되지 않는 값만 남김 bitwise or x | y x와 y에서 1이 있는 값은 1로 처리 0이 동일한 경우 0 처리 Bitwise Inversion ~ a a의 비트를 반대로 표시 137
  138. 138. 비트연산 python 연산자,operator 모듈내의 함수와 int 메소 드간의 관계 Operation 연산자 Function Method left bit-shift x << y lshift(a, b) x.__lshift__(y) right bit-shift x >> y rshift(a, b) x.__rshift__(y) bitwise and x & y and_(a, b) x.__and__(y) bitwise xor x ^ y xor(a, b) x.__xor__(y) bitwise or x | y or_(a, b) x.__or__(y) Bitwise Inversion ~ a invert(a) x.__invert__() 138
  139. 139. 비트 연산 예시 비트연산 139
  140. 140. augmented operator140
  141. 141. augmented operator python에서는 할당연산자와 일반연산자를 축약해 서 사용 X += Y X = X+ Y 141
  142. 142. 사칙연산 사칙연산 Operation 연산자 Function Method addition x += y iadd(a, b) x.__iadd__(y) subtraction x -= y isub(a, b) x.__isub__(y) multiplication x *= y imul(a, b) x.__imul__(y) division x /= y idiv(a, b) x.__idiv__(y) division x /= y itruediv(a, b) x.__itruediv__(y) floor division x //= y ifloordiv(a, b) x.__ifloordiv__(y) modulo (remainder) x %= y imod(a, b) x.__imod__(y) raise to power x **= y ipow(a, b) x.__ipow__(y) 142
  143. 143. 증가비트연산 비트연산과 할당연산을 같이 사용 Operation 연산자 Function Method left bit-shift x <<= y ilshift(a, b) x.__ilshift__(y) right bit-shift x >>= y irshift(a, b) x.__irshift__(y) bitwise and x &= y iand_(a, b) x.__iand__(y) bitwise xor x ^= y ixor(a, b) x.__ixor__(y) bitwise or x |= y ior_(a, b) x.__ior__(y) 143
  144. 144. 논리연산144
  145. 145. 논리연산 논리연산은 boolean 값을 비교해서 처리 Operation Syntax Function Method and Logical AND a and b NA NA or Logical OR a or b NA NA Negation (Logical) not a not_(a) NA 145
  146. 146. 논리연산 예시 논리연산 146
  147. 147. 방정식/ 부등식 Moon Yong Joon 147
  148. 148. 방정식148
  149. 149. 방정식 방정식(方程式, equation)은 식에 있는 특정한 문 자의 값에 따라 참/거짓이 결정되는 등식이다. 이때, 방정식을 참이 되게 하는 특정 문자의 값을 해 또는 근이라 한다. 149 항등식 방정식 X의 해는 2,3
  150. 150. 상수항 상수항은 다항식이나 방정식에서 변수 또는 미지 수를 포함하지 않은 항이다. 예를 들면, 다항식 a0xn+a1xn-1+…+an-1x+an 에서는 변수 x를 포함하지 않은 항 an을, 또 방정 식 a0xn+a1xn-1+…+an-1x+an=0에서는 미지 수 x를 포함하지 않은 항 an을 상수항이라 한다. 150
  151. 151. 다항방정식 일차방정식, 이차방정식, 삼차방정식, 고차방정 식 등과 같이 미지수에 대한 다항식으로만 이루 어진 방정식을 다항 방정식이라고 한다 151 다항 방정식 정의 다항 방정식 해
  152. 152. 일차방정식152
  153. 153. 일차방정식 일차방정식(Linear equation) 또는 선형 방정식 은 최고차항의 차수가 1인 방정식을 뜻한다. 153 a0x1+a1x0 a0 = a a1 = b n=1 일 경우
  154. 154. 일차방정식 풀이 일차방정식에서 상수를 좌변으로 이항한 후에 변 수앞에 있는 계수로 양변을 나누면 x 값을 정함. 154
  155. 155. 이차방정식155
  156. 156. 이차방정식 이차 방정식(二次方程式, quadratic equation)이 란, 최고차항의 차수가 2인 다항 방정식을 뜻한다 156 a0x2+a1x1+a2x0 a0 = a a1 = b a2 = c n=2 일 경우
  157. 157. 이차방정식의 해 이차 방정식은 아래처럼 상수항을 이용해서 근의 공식으로 해를 구할 수 있음 157 근의공식
  158. 158. 부등식158
  159. 159. 부등식 부등식(不等式, inequality)은 두 수에 대한 크기 비교를 나타내는 식이다. 부등식은 두 수 및 그 사 이의 부등호(不等號, inequality sign)로 구성된 다. 159
  160. 160. 추이적관계 임의의 세 원소 a, b, c에 대하여 정의된 이항관 계이 추이적 관계(推移的關係,transitive relation) 라 함 160
  161. 161. PYTHON SYMPY 방정식 Moon Yong Joon 161
  162. 162. 수식값 부여162
  163. 163. 수식평가 : +/- 수식을 만들고 subs, evalf, replace로 평가하 기 163
  164. 164. 수식평가 : *, / 수식을 만들고 subs, evalf, replace로 평가하 기 164
  165. 165. 방정식 풀기165
  166. 166. 방정식 풀기 2차 방정식을 전개는 expand 함수로 처리하고 해는 solve 함수로 구함 166
  167. 167. PYTHON 관계연산 Moon Yong Joon 167
  168. 168. 관계연산168
  169. 169. 관계연산 python 내의 객체 간의 순서와 동등 관계를 처리하 는 연산자 Operation 연산자 Function Method Ordering a < b lt(a, b) x.__lt__(y) Ordering a <= b le(a, b) x.__le__(y) Equality a == b eq(a, b) x.__eq__(y) Difference a != b ne(a, b) x.__ne__(y) Ordering a >= b ge(a, b) x.__ge__(y) Ordering a > b gt(a, b) x.__gt__(y) 169
  170. 170. 인수분해/전개 Moon Yong Joon 170
  171. 171. 곱셈공식171
  172. 172. 곱셈 공식(-公式, multiplication) 다항식의 곱셈을 할 때 빠르고 편리하게 계산할 수 있도록 한 공식이다. 곱셈 공식의 양변을 바꾸 면 인수분해 공식이 된다. 172
  173. 173. 피타고라스 정리 피타고라스 정리를 이용해서 하나의 변수를 제곱 근 곱셈공식으로 전환해서 처리. 173
  174. 174. 제곱근 연산 제곱근 연산도 곱셈 공식을 이용해서 결과를 처 리 174
  175. 175. 인수분해175
  176. 176. 인수분해 인수 분해(因數分解, factorization)는 곱이 정의 된 집합내의 어떤 원소를 다른 원소들의 곱으로 표현하는 것을 가리킨다 176
  177. 177. 인수분해 공식 인수 분해 주요 공식 177
  178. 178. 인수분해 예시 인수 분해 주요 공식을 이용한 처리 예시 178
  179. 179. 이항정리179
  180. 180. 이항정리 이항정리(二項定理, binomial theorem)는 이항 다항식 x+y의 거듭제곱 (x+y)n에 대해서, 전개 한 각 항 xkyn-k의 계수 값을 구하는 정리 180
  181. 181. 이항정리 : 전개 다항식 (a+b)3의 전개식에서 각 항의 계수를 조 합의 수를 이용하여 나타내는 방법 (a+b)3=(a+b)(a+b)(a+b) =aaa+aab+aba+abb+baa+bab+bba+bbb =a3+3a2b+3ab2+b3 =a3+3C1a2b+3C2ab2+b3 3C1 = 3P1/1! = 3!/2!/1! = 3 3C2 = 3P2/2! = 3!/1!/2! = 3 181
  182. 182. 이항정리 : 파스칼 방식 다항식 (a+b)3의 전개식에서 각 항의 계수를 조 합의 수를 이용하여 나타내는 방법 182
  183. 183. PYTHON SYMPY 인수분해/전개 Moon Yong Joon 183
  184. 184. 공통요소 제거184
  185. 185. cancel 함수 : 공통요소 제거 분모와 분자의 공통요소를 제거하는 함수는 cancel로 처리 185
  186. 186. 인수분해186
  187. 187. factor 함수 인수분해는 factor 함수를 사용하고 전개는 expand 함수를 사용하고 해는 solve함수를 사용 함 187
  188. 188. factor 함수 : modulus 인수분해를 위한 파라미터를 modulus로 사용하 면 인수분해 불가함 방정식을 조건에 따라 인수 분해 함 188
  189. 189. factor 함수 :가우시안정수 가우스 정수(Gauß整數, Gaussian integer)는 실 수부와 허수부가 모두 정수인 수이다. (a+bi)(a-bi)=a2+b2 로 표현이 가능한 수 189 = (0+i)(0 –i) = -i*I = -(i)**2 = 1 X**2+1은 인수분 해가 안되어서 가 우시안 수로 인수 분해
  190. 190. factor 함수 : extension 인수분해를 위한 값을 배정해서 처리 190
  191. 191. 2.함수 기초 Moon Yong Joon 191
  192. 192. 함수 Moon Yong Joon 192
  193. 193. 함수193
  194. 194. 사상 사상(寫像, 영어: morphism)은 수학적 구조를 보 존하는 함수의 개념을 추상화한 것이다. 사상이라는 용어는 영어 map에 대응하기도 하는 데, 이 경우 맥락에 따라 함수(function)와 사상 (morphism) 모두의 의미로 사용될 수 있다. 194
  195. 195. 함수란? 함수(函數, function) f:X→Y란 집합X와 집합 Y의 원소 사이에 주어진 다음 성질을 만족하는 대응 으로 정의된다. 195
  196. 196. 정의역 어떤 함수의 공역(共域, codomain) 또는 공변역 (共變域)은 이 함수의 값들이 속하는 집합이다. 196
  197. 197. 공역/치역 어떤 함수의 정의역(定義域, domain)은 그 함수의 값이 정의된 집합이다. 함수의 치역(値域, range)이라고 하는 것은 함수의 모든 "출력"값의 집합 197
  198. 198. 함수의 종류198
  199. 199. 단사 함수란? 단사(injective) 또는 일대일(one-to-one)이라 하고 일대일인 함수를 단사함수(injection) 또는 일대일 함수(one-to-one function)이라 한다 199
  200. 200. 전사 함수란? 공역의 모든 원소에게 정의역의 적어도 하나의 원소 를 대응시킨다면(즉, 치역이 공역과 같다면) 전사 (surjective) 또는 X에서 Y 로(onto)의 함수라 한다. 전사인 함수를 전사함수(surjection)이라 한다. 200
  201. 201. 전단사 함수란? f:X→Y가 전사이고 단사일 때 f를 전단사(bijective) 라 한다. 전단사인 함수를 전단사함수(bijection) 또 는 일대일 대응(one-to-one correspondence)라 한 다. one-to-one & onto라고도 많이 사용한다. 201
  202. 202. 초월함수 초월함수(超越函數)란 대수함수와 대조적으로, 계수만으로 이루어진 다항식을 만족시키지 않는 함수이다. 초월함수란 유한한 가감승제의 대수 연산으로 표 현할 수 없기 때문에 대수적인 것을 초월하는 함 수이다. 초월함수의 예로 로그함수, 삼각함수 등이 있다. 202
  203. 203. 역함수203
  204. 204. 역함수 f:X→Y 함수에 대한 대응관계가 반대로 되는 것을 역함수 즉 f -1: Y → X. 204
  205. 205. 항등함수 항등함수와 함수를 합성하면 결과는 함수와 같다. 함수와 역함수를 합성하면 항등함수가 나옴 205 =
  206. 206. 함수의 합성206
  207. 207. 함수합성 function composition 함수의 합성(函數의合成, function composition)은 한 함수의 공역이 다른 함수의 정의역과 일치하는 경 우 두 함수를 이어 하나의 함수로 만드는 연산이다. 이렇게 얻어진 함수를 합성 함수(合成函數 composite function)라고 한다. 207
  208. 208. 교환법칙 함수의 교환법칙은 반드시 성립하지 않는다. 208
  209. 209. 결합법칙 함수합성의 결합법칙은 성립한다. 209
  210. 210. PYTHON MAPPING DATA TYPE 210
  211. 211. mapping Type211
  212. 212. Mapping 타입-dictionary Key/Value로 원소를 관리하는 데이터 타입이며 요소들은 변경가능함 참조 container Name 1 값 Name 2 contain er 참조 참조 : : Dictionary Type 212
  213. 213. Mapping 타입 - dict dict 내의 속성과 메소드들 213
  214. 214. Mapping 타입 – 사용자 클래스 정 의 사용자 클래스 내부에서 dict type 사용하기 214
  215. 215. Hash 처리215
  216. 216. key 값은 hash mapping 타입은 기본 hash 처리가 되는 경우 만 키값을 사용 tuple 내의 리스트 등 mutable이 들어오면 hash를 만들 수 없어 에 러 처리됨 216
  217. 217. dict 생성217
  218. 218. Map 타입 - 생성 직접 만들거나 dict 생성자를 통해 생성. 항상 key/value 쌍을 구성해야 함 218
  219. 219. dict 접근219
  220. 220. Mapping - Accessing Elements Key/Value로 원소를 관리하므로 Key를 index 로 원소를 검색 220
  221. 221. Mapping - Updating Elements 새로운 key에 할당하면 추가하고 기존 key로 변 경하면 기존 값을 변경함 새로운 key에 할당: 기 존에 없으므로 추가 기존 key에 할당: 기존 에 있는 값을 변경 221
  222. 222. Mapping - Delete Elements 원소 하나만 삭제, 모든 원소들을 삭제, dict instance 삭제 기존 원소 하나 삭제 Dict 삭제 모든 원소 삭제 222
  223. 223. dict 내장함수 처리223
  224. 224. Mapping– dict 지원 내장함수 Dictionary 타입에 원소 하나만 삭제, 원소들을 삭제, dictionary instance 삭제 Function Description cmp(dict1, dict2) Compares elements of both dict. len(dict) Gives the total length of the dictionary. This would be equal to the number of items in the dictionary. str(dict) Produces a printable string representation of a dictionary type(dict) Returns the type of the passed variable. If passed variable is dictionary, then it would return a dictionary type. dict(mapping) Converts a map into list. 224
  225. 225. Mapping -dict class 구조 확인 dict 내의 스페셜 메소드를 제외한 내장 속성 확 인 225
  226. 226. dict 메소드 처리226
  227. 227. Mapping -dictionary 메소드 Method Description dict.clear() Removes all elements of dictionary dict dict.copy() Returns a shallow copy of dictionary dict dict.fromkeys() Create a new dictionary with keys from seq and values set to value. dict.get(key, default=None) For key key, returns value or default if key not in dictionary dict.has_key(key) Returns true if key in dictionary dict, false otherwise dict.items() Returns a list of dict's (key, value) tuple pairs dict.keys() Returns list of dictionary dict's keys dict.setdefault(key, default=None) Similar to get(), but will set dict[key]=default if key is not already in dict dict.update(dict2) Adds dictionary dict2's key-values pairs to dict dict.values() Returns list of dictionary dict's values dict.iteritems() Iterable한 items를 만들기 227
  228. 228. dict.get() 사용 dict 내부의 키가 없을 경우 KeyError가 발생하 므로 get()메소드로 읽어서 처리하면 오류발생을 막을 수 있음 Key 조회시 default 값을 설 정할 수 있음 228
  229. 229. dict.setdefault()사용 dict에 내의 원소를 추가하거나 갱신할 때 default 값을 지정해서 처리 가능 229
  230. 230. dict.get/setdefault()사용 dict에 내의 원소를 추가하거나 갱신하고 이를 [] 연산자나 get 메소드로 호출해서 처리 230
  231. 231. dict.update() 사용 dict에 dict을 연결할때 사용하면 키값이 겹칠 경우는 인자로 전달 받은 값으로 갱신됨 231
  232. 232. iteritems/iterkeys/itervalues dict 타입을 iterable로 전환해서 처리하는 메소 드 232
  233. 233. 버전 변경233
  234. 234. 버전변경 keys,items 등이 메소드 결과가 리스트 타입에 서 객체타입으로 변경 Notes Python 2 Python 3 ① a_dictionary.keys() list(a_dictionary.keys()) ② a_dictionary.items() list(a_dictionary.items()) ③ a_dictionary.iterkeys() iter(a_dictionary.keys()) ④ [i for i in a_dictionary.iterkeys()] [i for i in a_dictionary.keys()] ⑤ min(a_dictionary.keys()) no change 234
  235. 235. 메소드 결과 타입 변경 keys, values, items 메소드 리턴타입이 list에 서 dict 타입으로 변경 235
  236. 236. dict.key/values/items() python 버전 변경에서 list 타입이 dict_keys, values,items 타입으로 변경되어 동일한 결과를 인지하려면 list()로 변환 필요 버전에 따 른 변경 236
  237. 237. dict.key/values/items: for문 python 3. 대에서도 for문에서는 실제 값만 처 리됨 237
  238. 238. dict.key: set 연산 python 3. 대에서도 set 연산을 이용해서 처리 가능 238
  239. 239. viewitems/keys/values 처리239
  240. 240. dict.viewitems() 사용 dict 타입 내의 키와 값을 view 타입으로 처리하 는 객체 버전3에서 통합 됨 240
  241. 241. viewitems/viewkeys() dict 타입에서 viewitems/viewkeys 메소드 처 리함 결과로 set 연산을 처리할 수 있음(3버전에 서는 keys()/items() 동일함) 241
  242. 242. dict comprehension242
  243. 243. Dict Comprehension 사전 정의시 값을 정하지 않고 호출 시 사전 내의 값들이 처리되도록 구성 A = {표현식 for (k,v) in sequence if 논리식} 243
  244. 244. Dict Comprehension : 단순 dict 타입에 대한 comprehension 생성 A = {표현식 for i in sequence if 논리식} 244
  245. 245. dict Comprehension : 다중 dict 내의 다중 for문을 이용해서 처리 A = {표현식 for i in sequence for j in sequence if 논리식} 245
  246. 246. PYTHON SYMPY 함수 그래프 Moon Yong Joon 246
  247. 247. plotting247
  248. 248. 1차 함수 그래프 1차 함수를 만들고 plot 함수로 그래프 그리기 248
  249. 249. 2차 함수 그래프 2차 함수를 만들고 plot 함수로 그래프 그리기 249
  250. 250. 여러 개 그래프 그리기250
  251. 251. 두개 함수 그래프 1차,2차 함수를 만들고 plot 함수로 그래프 그 리기 251
  252. 252. 그래프 선 색상 변경하기 plot 함수 결과에 line_color 변수에 색상을 할 당 252
  253. 253. x축 범위253
  254. 254. 1차 함수 그래프 : x축 범위 1차 함수를 만들고 plot 함수에서 (x,-5,5)를 제 공해서 x축 범위를 제한 254