Python(数学)

2025年2月24日 (月)

[Python]逆双曲線関数を使う

mathモジュールのasinh関数(逆双曲線正弦)、acosh関数(逆双曲線余弦)、atanh関数(逆双曲線正接)をそれぞれ使う。以下、動作例。

スクリプト

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])}")

画面出力

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

2025年2月11日 (火)

[Python]等差数列を作成する

numpyモジュールのarange関数を使う。戻り値はndarrayクラス。初項1、公差2、末項9の等差数列を求めてみる。arangeの第二引数には、「末項+1」の値を指定する必要があることに注意。

>>> 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となるような場合は何も返さない。公差に負数を指定することもできる。引数に与えた数値リテラルによって戻り値の型が自動で決まることに注意。

>>> 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])
無料ブログはココログ

■■

■■■