2. Two Linear Equations in Two Unkonwns. 1차 연립방정식 |
|||||
---|---|---|---|---|---|
작성자 | 김인수 | 등록일 | 25.09.10 | 조회수 | 1 |
첨부파일 | |||||
------------------------------------------------------------------------------------- import numpy as np import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Malgun Gothic' plt.rcParams['axes.unicode_minus'] = False # 마이너스 기호 깨짐 방지
def solve_and_plot(a1, b1, c1, a2, b2, c2): """ a1*x + b1*y = c1 a2*x + b2*y = c2 """ # 계수 행렬과 상수항 A = np.array([[a1, b1], [a2, b2]]) B = np.array([c1, c2])
# 해 구하기 (교점) try: sol = np.linalg.solve(A, B) x_sol, y_sol = sol print(f"교점: (x, y) = ({x_sol:.2f}, {y_sol:.2f})") except np.linalg.LinAlgError: print("해가 없거나 무수히 많습니다 (평행하거나 일치).") return
# 그래프 그리기 x_vals = np.linspace(-10, 10, 400)
# 직선1: a1*x + b1*y = c1 → y = (c1 - a1*x)/b1 if b1 != 0: y1_vals = (c1 - a1*x_vals) / b1 plt.plot(x_vals, y1_vals, label=f"{a1}x + {b1}y = {c1}") else: plt.axvline(x=c1/a1, color='blue', label=f"{a1}x = {c1}")
# 직선2: a2*x + b2*y = c2 → y = (c2 - a2*x)/b2 if b2 != 0: y2_vals = (c2 - a2*x_vals) / b2 plt.plot(x_vals, y2_vals, label=f"{a2}x + {b2}y = {c2}") else: plt.axvline(x=c2/a2, color='red', label=f"{a2}x = {c2}")
# 교점 표시 plt.scatter(x_sol, y_sol, color='black', zorder=5) plt.text(x_sol+0.3, y_sol, f"({x_sol:.2f}, {y_sol:.2f})", fontsize=10)
# 그래프 꾸미기 plt.axhline(0, color='gray', linewidth=0.5) plt.axvline(0, color='gray', linewidth=0.5) plt.legend() plt.grid(True, linestyle='--', alpha=0.6) plt.title("두 직선의 그래프와 교점") plt.xlabel("x") plt.ylabel("y") plt.show()
# ============================ # 예시 실행 # 식: 2x + 3y = 13, x - y = 1 solve_and_plot(2, 3, 13, 1, -1, 1) --------------------------------------------------------------------------------------
|
이전글 | 전국학생통계포스터대회 준비 프로젝트 |
---|---|
다음글 | 1. Exponents 지수법칙 |