[일반인을 위한] K-MOOC
인공지능을 위한 기초수학 입문
(Introductory Mathematics for Artificial Intelligence)
이상구 with 이재화, 함윤미, 박경은
I. 인공지능에 필요한 기초수학
Week 1. 함수의 그래프와 방정식의 해
이 장에서는 함수의 그래프를 그리고 방정식의 해를 구하는 방법을 간단히 살펴본다.
1.1 함수와 그래프
두 변수
와
에 대하여
의 값에 따라
의 값이 유일하게 결정되는 관계를 함수(function)라고 하며,
로 표기한다.
함수 f는 다음 그림과 같이
의 값을 넣으면,
의 값이 나오는 상자와 같이 생각할 수 있다.

이때, 함수 f에 넣을 수 있는
의 값들의 집합을 f의 정의역(domain)이라 하고,
에 대응되는
의 값들의 집합을 f의 치역(range)이라 한다.
그리고 함수
에 대하여
의 값과 그에 대응하는 함숫값
의 순서쌍
를 좌표로 하는 모든 점을 좌표평면 위에 나타낸 것을 그 함수의 그래프(graph)라고 한다.
고등학교 과정에서 다루는 함수는 다항함수, 유리함수, 삼각함수, 지수함수와 로그함수 등이다. 각 함수를 알아보고 파이썬 기반 Sage 코드를 활용하여 그들의 그래프를 그려보자.
1.2 다항함수 (polynomial function, 다항식으로부터 유도되는 함수)
가
에 관한 다항식인 함수를 다항함수라 한다. 대표적인 다항함수는 다음과 같다.
(1) 일차함수 ![]()
(2) 이차함수 ![]()
(3)
차 다항함수 ![]()
Note : “일차함수 y = mx + b 에서
은 직선의 기울기,
는
절편이다.”
[열린문제] 다른 교재에서 찾은 몇 가지 다항함수의 개형을 그리시오.
!안내! http://matrix.skku.ac.kr/KOFAC/ 에서 실습하세요.
1.3 유리함수 (rational function, 두 다항함수의 비(ratio)로 표현되는 함수)
유리함수는
가
에 관한 유리식
(여기서
와
는 다항식)인 함수를 말한다.
예를 들어,
,
등이 있다.
[참고] 유리함수는
,
인
값에서 점근선이 생긴다. 따라서 점근선 주변에서는
의 값이 너무 크거나 또는 너무 작을 수 있어
Sage로 그래프를 그릴 때에 모양이 이상해진다. 이때는 ymin = c, ymax = d와 같은 옵션을 주어
범위에서만 그림이 그려지도록 하는 것이 좋다. 또한 detect_poles = 'show' 옵션을 이용하여 점근선을 구별해줄 수도 있다.
1.4 삼각함수 (trigonometric functions, 각의 크기에 따라 변화하는 삼각비를 나타내는 함수)
대표적인 삼각함수는 다음과 같다.
(1)
(2) ![]()
(3) ![]()
삼각함수는 주기가 있어서 일정한 패턴이 반복된다.
과
의 주기는
이고,
의 주기는
이다.
과
는
부터
까지의 값을 취할 수 있으나
는 모든 실수를 값으로 취할 수 있다. 그리고
는
에서 점근선을 갖는다.
[열린문제]
그래프의 개형을 그리시오.
!안내! http://matrix.skku.ac.kr/KOFAC/ 에서 실습하세요.
1.5 지수함수(exponential function)와 로그함수(logarithmic function)
임의의 실수
에 대하여
(여기서
)을
를 밑(base)로 하는
의 지수함수(exponential function)라고 한다.
지수함수
는
일 때 증가함수,
일 때 감소함수이다.
임의의 실수
에 대하여
(여기서
)를 밑(base)이
이고 진수(exponent)가
인 로그함수(logarithmic function)라고 한다.
로그함수는 지수함수의 역함수로
일 때 증가함수,
일 때 감소함수이다. 로그함수
는
인 범위에서만 존재한다.
[열린문제] 앞에서 배운 함수들 중 학습한 함수의 합성함수를 만들고, 그래프를 그리시오.
!안내! http://matrix.skku.ac.kr/KOFAC/ 에서 실습하세요.
- 대칭 그래프 문제풀이 (곽*현) http://youtu.be/BNKUzSohiD8
- 다양한 함수의 그래프 문제풀이 (장*영) http://youtu.be/x0E0ZMxZ3Og
- 그래프의 변환 문제풀이 (임*정) http://youtu.be/vx7GCWY68Zw

<실습실> 코딩으로 '함수와 그래프' 정복하기 http://www.polymath.co.kr/contents/view/1383?page=1
다양한 함수의 그래프 http://matrix.skku.ac.kr/cal-book/part1/CS-Sec-1-3.htm
1.6 방정식의 해(solution)
방정식이란 미지수
값에 따라서 등식이 성립하기도 하고 성립하지 않기도 하는 등식(
)을 말한다. 고등학교에서 다루는 방정식으로는
일차방정식, 이차방정식, 삼차방정식 등의 다항방정식과 유리방정식, 무리방정식, 삼각방정식, 지수방정식, 로그방정식 등이 있다.
이런 방정식의 해를 구하는 것은 인공지능은 물론 모든 수학에서 가장 중요한 문제이다. 우리는 코드를 활용하여 그래프를 그리고 (근사)해를 구하는 방법을 간단히 복습하도록 한다.
예제 1. 다음 방정식의 해를 구하시오.
(1)
(2) ![]()
(3)
(4)
(5) ![]()
!안내! Sage의 solve 명령어를 이용하여 해결한다. 이때 방정식의 등호는 두 개(==)를 입력해야 한다. 만일 solve 명령어가 입력한 방정식을 그대로 보여준다면,
이는 solve가 해결하지 못하는 방정식이므로 수학적 지식을 이용하여 동치인 다른 방정식으로 바꾸거나 인수분해를 통해
여러 방정식으로 분리하는 등의 과정이 필요하다. (Sage는 복소수 범위의 해도 구한다.)
풀이.
(1) 인수분해
,
또는
.
(2) 같은 방식으로 (중근을 포함) 4개의 해를 구한다.
(3)
을 정리한
의 양변을 제곱하면
을 얻는다.
즉
을 만족해야 하므로
이 해가 된다. 이때, 조건에 부합하는 해를 고르는 센스가 필요하다.
(4)
을 인수분해하면
이므로
두 방정식
,
을 풀어도 된다.
여기서 옵션(to_poly_solve = 'force')을 각각의 방정식에 적용하면 일반각을 얻을 수 있다. 아래의 예에서 z6, z7, z9는 임의의 정수를 의미한다.
(5)
을 정리하면
![]()
![]()
따라서
만이 해가 된다. ■
solve 명령어로 해결하지 못하는 방정식은 근사해를 구하면 된다. 예를 들어, 다음과 같이 방정식이 있다고 하자.
![]()
먼저 solve 명령어를 활용해보자. 그러면 다음을 얻는다.
즉,
,
와 같이 제공된 근사해는 우리가 원하는 해가 아니다.
이는 기존의 solve 명령어가 잘 해결하지 못하는 방정식이기 때문이다. 이런 경우는 그래프를 그려서 쉽게
더 정확한 근사해를 구할 수 있다. 위의 식의 경우 항을 모두 왼쪽으로 옮겨 다음과 같이 쓸 수 있다.
![]()
따라서 함수
의 그래프를 그려
축과 만나는
값을 찾으면 된다. 이를 위해 적당한 범위에서 함수의 그래프의 개형을 그린 후 확대해 보면 다음과 같다.
즉,
와
사이에 근이 있음을 알 수 있다. 따라서 범위를 점점 좁혀서 그래프를 그려가면서 근사해를 감각적으로 구할 수 있다.
또한 각각의 해 근처에서, find_root 명령어를 사용하여, 근사해를 모두 구할 수 있다.
먼저
사이에 있는 해를 구하면
같은 방법으로 그래프에서 본 1과 1.5 사이의 해는 다음 명령어로 구할 수 있다.
따라서 근사해는 약
,
임을 알 수 있다. 이 값이 보통 우리가 원하는 필요한 해이다.
[오늘 살펴본 내용을 활용하면 여러분은 이제 그동안 배운 모든 함수의 그래프를 그릴 수 있으며,
그간 배운 대부분의 방정식에 대한 해(근사 값)를 쉽게 구할 수 있다.]
Copyright @ 2020 SKKU Matrix Lab. All rights reserved.
Made by Manager: Prof. Sang-Gu Lee and Dr. Jae Hwa Lee
