[Python] 코딩으로 연립방정식을 풀어보자!! (1) - Pycharm
안녕하세요, 오늘은 코딩으로 연립 방정식을 풀어보려고 합니다.
우리는 중학교 정도되면 연립방정식을 배웁니다. 방정식의 해를 찾는 방법을 공부하는데요, 여기서 저는 코딩으로 방정식의 해를 찾아 볼겁니다. 공부하는 학생들이 코딩을 통해 연립방정식의 개념을 이해는데 도움이 됐으면 합니다.
지금 시작합니다.!!
코딩으로 문제를 풀어야 하기 대문에 PyCharm 을 설치하고 필요한 패키지를 설치해 보도록 하겠습니다.
PyCharm 설치는 아래 링크로, 보고 오시면 좋을 것 같습니다.
2022.07.14 - [Python] - [Python] 가상환경에서 자유롭게 코딩하기 - PyCharm 설치편!!
[Python] 가상환경에서 자유롭게 코딩하기 - PyCharm 설치편!!
안녕하세요, 오늘은 PyCharm 설치 방법에 대해 알려드리겠습니다. 코딩 초보자라면! 전문가처럼 보이고 싶다면! 지금 당장 PyCharm 을 설치해 보세요. 여러분도 전문가가 될수 있습니다.!! 설치 방법
all-knowledge-of-the-world.tistory.com
다음은 필요한 패키지를 설치해 볼건데요, 설치 방법을 모른다면 아래 링크를 추천 드립니다.
2022.08.12 - [Python] - [Python] Package 설치 그리고 확인 까지 - PyCharm
[Python] Package 설치 그리고 확인 까지 - PyCharm
안녕하세요! 오늘은 PyCharm 환경에서 Package 설치 방법을 알아 보겠습니다. Package (패키지) 란, 전세계 Python 고수님들이 만든 모듈이라 생각하시면 좋을 것 같습니다. 정말 유용한 모듈이고, 코딩을
all-knowledge-of-the-world.tistory.com
필요한 패키지는 numpy, scipy, matplotlib 입니다.
numpy 패키지는 array() 코드를 사용하기 때문입니다.
scipy 패키지는 오늘의 핵심 코드 optimize() 코드를 사용하기 때문입니다. 이 코드로 오늘 방정식의 해를 찾을 예정입니다.
그리고 마지막 패키지 matplotlib 은 방정식과 해를 그래프로 보기 위한 패키지 입니다.
이제 문제를 풀어 볼까요!!
1. 문제
y1 = x2 +2
y2 = x+5
문제는 "두 가지 방정식의 값(y1과 y2)이 같아지는 x를 찾아라" 입니다. "연립 방정식의 해를 찾아라!! "를 다르게 표현 것이고, 이와 같이 생각한다면 코딩으로 해를 찾을 수 있습니다.
먼저, 두 방정식을 이해하기위해 그래프로 나타내 보겠습니다.
아래와 같이 패키지를 연결시켜 줬습니다.
import matplotlib.pyplot as plt import numpy as np from scipy.optimize import minimize from scipy.optimize import Bounds |
그래프를 그리기 위해 "matplotlib" 패키지를 연결했습니다. 그리고 "numpy" 도 연결했습니다.
그리고 뒤에서 사용할 패키지도 연결했습니다.
여기서, optimize 란 "최적화를 수행해라!!" 라는 뜻인데, 쉽게 말하면 "어떤것을 찾아라" 라는 뜻입니다. 여기에는 두가지 개념이 있습니다. "최대값을 찾아라!!" 또는 "최소값을 찾아라!!" 입니다. 이번 문제에서는 "최소값을 찾아라" 를 사용하기 때문에 "최소화" 라는 "minimize" 선택했습니다. 그리고 해를 찾을 때 범위를 설정해 주기 위해 "Bounds" 도선택 했습니다.
다음은 방정식을 코딩하겠습니다.
그래프도 그려야 하기 때문에 먼저, "x"의 범위를 "numpy" 패키지를 이용해 -5 ~ 6 으로 설정했습니다. 즉, x라는 배열(array) 은 -5 ~ 6 사의 값은 가지고 있습니다.
x = array([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5])
x = np.array(range(-5, 6)) y1 = (x**2) + 2 y2 = x + 5 |
방정식 y1, y2도 코딩했습니다. '승수' 표현은 ( ** ) 입니다.
다음은 그래프 출력을 코딩하겠습니다.
아래와 같이 코딩해주세요
#---- 그래프 설정 ------ # 축 이름 설정 plt.xlabel ('x axis') plt.ylabel ('y axis') # 그래프 스타일 plt.grid(color = "gray", alpha=.5, linestyle='--') # 방정식 그리기 plt.plot(x, y1, label='y1') plt.plot(x, y2, label='y2') # 그래프 보기 plt.show() |
x축 이름은 'x axis', y축 이름은 'y axis' 이렇게 만들어 줬습니다.
그래프 스타일은 색상은 회색, 투명도 5, 스타일은 선으로 선택 했습니다. 이차 방정식은 곡선이지만, '--' 선택 됐기 때문에 꺾여 보일 겁니다.
그리고 각각의 방정식에 라벨을 붙여서 그래프를 그렸습니다.
메뉴바에서 "Run" 클릭하고 실행해 봤습니다.
두 방정식이 나타났습니다. 서로 겹쳐 있네요.
서로 만나는 두 점(노랑, 빨강)이 있습니다. 즉, 방정식의 해(x)가 2개라는 것이죠.
다음편에서는 두 방정식의 값(y) 이 같아지는 두개의 x 값을 찾아 보겠습니다.
오늘은 여기 까지 입니다.
지금 까지 코딩한 코드는 아래에 있으니 보고 따라해 보세요.!!
#. 전체 코드
import matplotlib.pyplot as plt import numpy as np from scipy.optimize import minimize from scipy.optimize import Bounds x = np.array(range(-5,6)) y1 = (x**2) + 2 y2 = x + 5 #---- 그래프 설정 ------ # 축 이름 plt.xlabel ('x axis') plt.ylabel ('y axis') # 그래프 스타일 plt.grid(color = "gray", alpha=.5, linestyle='--') # 방정식 그리기 plt.plot(x, y1, label='y1') plt.plot(x, y2, label='y2') plt.show() |