【スマホでPython数学】 第7章 関数f(x)を定義してみる:def(デフ)命令

ここは数学的に気楽に流してもらっても結構です。
ただし、Pythonプラグラム的には基礎的な内容になります。
これまで、Sympyモジュールからいろいろな命令を取り出して使ってきました。このような命令をdef(デフ)命令を使う事で、自分で定義できます。

この章では、xの関数「$${f(x)}$$」を定義することにdef(デフもしくはデファイン)命令を使います。高校生になると、$${y=f(x)}$$というような書き方をします。「$${f(x)}$$」というのは変数$${x}$$によって変化する関数という意味です。

1.def(デフ)命令の型

Pythonの命令はインデント(右に行をずらす)することで、最初の命令の続きであることを示します。そのため、def命令では「def ○○:」で始まり、
次の行からはインデントして書きます。

from sympy import *
var('x')

def f(x):
    return x**2 -3*x +2

returnは入力された値に従って、右の数字(数式)を返すだけです。
ごめんなさい、話を端折りました(笑)。
def命令の後の関数名は自分で好きなように付けて良いです。
カッコの中に変数を入れると、def命令以下の内容に影響します。
変数ということは、どんな数字でも入れられると言うことです(本当は文字でも大丈夫だけど)。ここで定義した$${f(x)}$$関数ではretun命令の右に記載した関数に$${x=3}$$を代入して、$${f(3)}$$の値を求めることができます。

f(3)

$${f(0)}$$や$${f(1)}$$, $${f(-3)}$$も求められます。

print(f(0),f(1),f(-3))

グラフを書いてみて$${f(0)}$$や$${f(1)}$$, $${f(-3)}$$の値が正しいか、確認してみましょう。

plot(f(x),(x,-4,1))

2.def命令で定義した関数に数字を入れてみる

あくまでも紹介なのですが、PythonでSympyモジュールよりもよく使われているモジュールにNumpy(ナンンパイ)Matplotlib(マットプロットリブ・マットプロットライブラリ)というものがあります。ここでは$${f(x)}$$の値に適当な値を入れて、関数を点で表してみます。

from sympy import *
var('x')

def f(x):
    return x**2 -3*x +2

こちらは先ほどのプログラムを流用しています。

import numpy as np
import matplotlib.pyplot as plt

numpyをnp、matplotlibの中のpyplotという命令をpltと省略して読み込んでいます。慣例的にこのような省略形を使うことが多いです。

x = np.linspace(-5,5,10)

これはnumpyの命令で、-5〜5までの数を10分割した数字をxに代入するというプログラムです。
それではこれでmatplotlibを使ってグラフを描いてみましょう。

plt.scatter(x,f(x))
f(x)で定義した関数に対して、-5〜5までの範囲を10分割した値で、点をプロットしてみた。

今度は50分割してみます。

x = np.linspace(-5,5,50)

実はSympyはmatplotlibの美味しいところだけ使わせてもらっています。
数学をする人が簡単にグラフが描けるように調整したSympyのplot命令はPython(matplotlib)に詳しくない人にも優しく作られています。

まとめ

def命令はPythonの基本操作になります。まとめて命令を定義できるので簡単です。Pythonには複数のdef命令をまとめられるclass命令○○.pyというPythonプログラムを書いておけば、いつものimport命令モジュールとして取り込むこともできます。いつか、Pythonを使うようになったら勉強してみてください。

この記事が気に入ったらサポートをしてみませんか?