「数学」の編集履歴(バックアップ)一覧に戻る
数学 - (2025/02/24 (月) 19:09:17) のソース
** 目次 #contents ** 絶対値を求める abs関数を使う。mathモジュールの関数ではなく、組み込み関数であることに注意。 #highlight(){{ >>> abs(10) 10 >>> abs(-20) 20 >>> abs(3.3) - abs(-3.3) 0.0 }} ** 平方根を求める mathモジュールのsqrt関数を使う。 #highlight(){{ >>> import math >>> math.sqrt(2) 1.4142135623730951 >>> math.sqrt(3) 1.7320508075688772 >>> math.sqrt(4) 2.0 >>> math.sqrt(-2) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: math domain error }} ** 累乗を求める ~**演算子かpow関数を使う。pow関数はmathモジュールの関数ではなく、組み込み関数であることに注意。 #highlight(){{ >>> 2 ** 3 8 >>> 2 ** 0.5 1.4142135623730951 >>> 2 ** -4 0.0625 >>> -3 ** 3 -27 >>> pow(2, 3) 8 >>> pow(2, 0.5) 1.4142135623730951 >>> pow(2, -4) 0.0625 >>> pow(-3, 3) -27 }} ** 等差数列を作成する numpyのlinspaceメソッドを使う。 #highlight(){{ >>> import numpy as np >>> print(np.linspace(0, 12, 2)) [ 0. 12.] >>> print(np.linspace(0, 12, 3)) [ 0. 6. 12.] >>> print(np.linspace(0, 12, 4)) [ 0. 4. 8. 12.] >>> print(np.linspace(0, 12, 5)) [ 0. 3. 6. 9. 12.] >>> print(np.linspace(0, 12, 6)) [ 0. 2.4 4.8 7.2 9.6 12. ] }} ** 等差数列を作成する numpyモジュールのarange関数を使う。戻り値はndarrayクラス。初項1、公差2、末項9の等差数列を求めてみる。arangeの第二引数には、「末項+1」の値を指定する必要があることに注意。 #highlight(){{ >>> import numpy as np >>> type(np.arange(1, 9 + 1, 2)) <class 'numpy.ndarray'> >>> np.arange(1, 9 + 1, 2) array([1, 3, 5, 7, 9]) >>> n = np.arange(1, 9 + 1, 2) >>> n[0] 1 >>> print(n) [1 3 5 7 9] >>> type(n[0]) <class 'numpy.int32'> }} 以下の例のとおり第二引数の値を超えない値まで項が求まり、小数を指定することもできる。三つの値の組合せで項数が0となるような場合は何も返さない。公差に負数を指定することもできる。引数に与えた数値リテラルによって戻り値の型が自動で決まることに注意。 #highlight(){{ >>> np.arange(2.2, 3.3, 0.2) array([2.2, 2.4, 2.6, 2.8, 3. , 3.2]) >>> d = np.arange(2.2, 3.3, 0.2) >>> type(d[1]) <class 'numpy.float64'> >>> np.arange(1, 10 + 1, 2) array([1, 3, 5, 7, 9]) >>> np.arange(20, 10, 2) array([], dtype=int32) >>> np.arange(20, 10, -1) array([20, 19, 18, 17, 16, 15, 14, 13, 12, 11]) }} ** 逆双曲線関数を使う mathモジュールのasinh関数(逆双曲線正弦)、acosh関数(逆双曲線余弦)、atanh関数(逆双曲線正接)をそれぞれ使う。以下、動作例。 スクリプト #highlight(){{ import math d = [-0.8, -0.4, 0, 0.4, 0.8] for i in range(len(d)): print(f"asinh({d[i]:4}) = {math.asinh(d[i])}") d = [1, 2, 3, 4, 5] for i in range(len(d)): print(f"acosh({d[i]:4}) = {math.acosh(d[i])}") d = [-0.8, -0.4, 0, 0.4, 0.8] for i in range(len(d)): print(f"atanh({d[i]:4}) = {math.atanh(d[i])}") }} 画面出力 #highlight(){{ asinh(-0.8) = -0.732668256045411 asinh(-0.4) = -0.39003531977071526 asinh( 0) = 0.0 asinh( 0.4) = 0.39003531977071526 asinh( 0.8) = 0.732668256045411 acosh( 1) = 0.0 acosh( 2) = 1.3169578969248166 acosh( 3) = 1.762747174039086 acosh( 4) = 2.0634370688955608 acosh( 5) = 2.2924316695611777 atanh(-0.8) = -1.0986122886681098 atanh(-0.4) = -0.42364893019360184 atanh( 0) = 0.0 atanh( 0.4) = 0.42364893019360184 atanh( 0.8) = 1.0986122886681098 }}