数学 - (2025/02/24 (月) 19:09:17) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
** 目次
#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])
}}
** 目次
#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
}}
表示オプション
横に並べて表示:
変化行の前後のみ表示: