Memo

メモ > 技術 > プログラミング言語: Python > 数学とグラフ

■数学とグラフ
[python]算数・数学?~関数と方程式~ - Qiita https://qiita.com/hiroyuki_mrp/items/d4194a6de594c2e0f56f ■基本のグラフ \[y = x \]
import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt x = [0, 1, 2, 3, 4, 5, 6, 7, 8] # Xの範囲 y = x # Yの範囲 plt.figure(figsize=(8, 8), dpi=72) plt.axis('equal') # 縦横のメモリの大きさを揃える plt.xlim(-10, 10) # X軸は-10〜10の範囲を表示する plt.ylim(-10, 10) # Y軸は-10〜10の範囲を表示する plt.xticks(np.arange(-10, 10, 1)) # X軸のグリッド間隔を-10〜10の範囲で1刻みに設定する plt.yticks(np.arange(-10, 10, 1)) # Y軸のグリッド間隔を-10〜10の範囲で1刻みに設定する plt.grid(color='0.8') # 薄いグレーでグリッドを表示する plt.plot(x, y) plt.savefig('graph.png')
■1次関数 \[y = 2x + 3 \]
import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt x = np.arange(-100, 100) y = 2 * x + 3 # 1次関数「y = 2x + 3」のグラフを描画 plt.figure(figsize=(8, 8), dpi=72) plt.axis('equal') plt.xlim(-10, 10) plt.ylim(-10, 10) plt.xticks(np.arange(-10, 10, 1)) plt.yticks(np.arange(-10, 10, 1)) plt.grid(color='0.8') plt.plot(x, y) plt.savefig('graph.png')
■2次関数 \[y = x^{2} + 1 \]
import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt x = np.arange(-100, 100, 0.1) # 0.1刻みにしてグラフをなめらかにする y = x ** 2 + 1 # 2次関数「y = x^2 + 1」のグラフを描画 plt.figure(figsize=(8, 8), dpi=72) plt.axis('equal') plt.xlim(-10, 10) plt.ylim(-10, 10) plt.xticks(np.arange(-10, 10, 1)) plt.yticks(np.arange(-10, 10, 1)) plt.grid(color='0.8') plt.plot(x, y) plt.savefig('graph.png')
■3次関数 \[y = x^{3} + 4 \]
import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt x = np.arange(-100, 100, 0.1) # 0.1刻みにしてグラフをなめらかにする y = x ** 3 + 4 # 3次関数「y = x^3 + 4」のグラフを描画 plt.figure(figsize=(8, 8), dpi=72) plt.axis('equal') plt.xlim(-10, 10) plt.ylim(-10, 10) plt.xticks(np.arange(-10, 10, 1)) plt.yticks(np.arange(-10, 10, 1)) plt.grid(color='0.8') plt.plot(x, y) plt.savefig('graph.png')
■連立方程式 2点 (3, 6) と (4, 12) を通る直線を求める ・「x = 3」のときに「y = 6」となる ・「x = 4」のときに「y = 12」となる なので、1次関数「y = ax + b」に当てはめて 6 = 3a + b 12 = 4a + b となる この連立方程式を解けばいい 以下はプログラムを使わずに解く例 b = 6 - 3a 12 = 4a + 6 - 3a a = 6 6 = 3 * 6 + b b = -12 y = 6x - 12 以下はプログラムを使って解く例 実行して 「ModuleNotFoundError: No module named 'sympy'」 のエラーになる場合、sympyをインストールする必要がある $ pip3.7 install sympy
from sympy import Symbol, solve a = Symbol('a') # 変数を定義(「a」を記号として扱う。通常int型とstr型は一緒に計算できない) b = Symbol('b') # 変数を定義(「b」を記号として扱う。通常int型とstr型は一緒に計算できない) exp1 = 3 * a + b - 6 exp2 = 4 * a + b - 12 ans = solve((exp1, exp2)) # 方程式の解を取得 print(ans) # 解を表示
以下は実行結果 $ python3.7 math.py {a: 6, b: -12}

Advertisement