Python 3 で数学を。

Python 3 とライブラリで数学の問題を解いていきます。統計学や機械学習はときどき。

SymPy

解析学 (微分積分)。定積分。(Python 3: class (クラス), アンパック、SymPy: integrate(), latex(), Integral())

使用する数式 上の数式は以下で作成 (SymPy: latex(), Integral()) >>> import sympy as sym >>> print(sym.latex(sym.Integral(x**2, (x, 1, 3)))) \int_{1}^{3} x^{2}\, dx >>> print(sym.latex(sym.Integral(3*x**2, (x, 2, 3)))) \int_{2}^{3} 3 x^{2}\,…

順列。並べ方・作り方の場合の数。(Python 3: reversed(), アンパック。sympy.functions.combinatorial.numbers, nP())

使用するライブラリ SymPy Python 3 コード permutations4.py #!/usr/bin/env python3 """(docstring) """ from sympy.functions.combinatorial.numbers import nP def print_math_problems(): """(docstring) """ print("""問題: 以下の各問いに答えよ。 (1…

順列。順列の計算。(含む階乗)。(Python 3: アンパック、スライス、 SymPy: sympy.functions.combinatorial.numbers, nP(), factorial())

使用するライブラリ SymPy Python 3 コード permutations3.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym from sympy.functions.combinatorial.numbers import nP def print_math_problems(): """(docstring) """ print("""問題: 以下…

合成数。(Python 3, Sympy: composite())

使用するライブラリ SymPy Python 3 コード composite_numbers1.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problem(): """(docstring) """ print("""問題: 最小の合成数から 100 番目の合成数までを示せ。 """) def…

累乗数。(Python 3, Sympy: perfect_power())

使用するライブラリ SymPy Python 3 コード perfect_powers1.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problem(): """(docstring) """ print("""問題: 0 から 100 までの整数に累乗数があれば示せ。 """) def solu…

三角関数。不等式。(Python 3, SymPy: sin(), cos(), tan(), pprint(), solve())

使用するライブラリ SymPy Python 3 コード trigonometric_functions6.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problems(): """(docstring) """ print("""問題: 以下の不等式を解け。 (1) sin θ > √3 / 2 (2) cos…

確率。確率分布。期待値。サイコロ。(Python 3, SymPy: sympy.stats, Die(), density(), dict, E())

使用するライブラリ SymPy Python 3 コード dice1.py #!/usr/bin/env python3 """(docstring) """ from sympy.stats import Die, density, E def print_math_problems(): """(docstring) """ print("""問題: (1) (六面体の) サイコロの確率分布を求めよ。 (2…

三角関数。方程式。(Python 3, SymPy: Symbol(), Eq(), Rational(), sin(), cos(), tan(), sqrt(), pprint(), solve())

使用するライブラリ SymPy Python 3 コード trigonometric_functions5.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problems(): """(docstring) """ print("""問題: 以下の方程式を解け。 (1) sin θ = 1/2 (2) cos θ …

解析学 (微分積分)。臨界点 (停留点)。(Python 3, SymPy: solve(), diff())

使用するライブラリ SymPy Python 3 コード critical_points1.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problems(): """(docstring) """ print("""問題: 以下の関数の臨界点 (停留点) を求めよ。 (1) x^3 - 2x + 1…

素数。整数nの前にある素数。(Python 3, SymPy: prevprime())

使用するライブラリ SymPy Python 3 コード prime_numbers5.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problem(): """(docstring) """ print("""問題: 素数を含む 3 から 100 までの整数の前にある素数を示せ。 """…

素数。素数判定。Trueか、Falseか。(Python 3, SymPy: isprime())

使用するライブラリ SymPy Python 3 コード prime_numbers4.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problem(): """(docstring) """ print("""問題: 整数 0 から 100 までの数を素数かどうか判定せよ。 """) def …

素数。ある整数nの次にある素数は何か。(素数を含むある整数nよりも大きい最初の素数は何か) (Python 3, SymPy: nextprime())

使用するライブラリ SymPy Python 3 コード prime_numbers3.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problem(): """(docstring) """ print("""問題: ある整数 n の次にある素数は何か示せ。 (換言: 素数を含むあ…

素数。素数をランダムに作成・生成。(Python 3, SymPy: randprime())

使用するライブラリ SymPy Python 3 コード prime_numbers2.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problem(): """(docstring) """ print("""問題: 2 から 101 までの素数をランダムに 100 個作成せよ。 """) de…

数列。リュカ数列。ルカ数列。ルーカス数列。(Python 3: リスト内包表記, SymPy: lucas())

使用するライブラリ SymPy Python 3 コード lucas_numbers1.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problem(): """(docstring) """ print("""問題: リュカ数列 1, 3, 4, 7, 11, 18, 29, 47, 76, 123 を作成せよ…

組合せ。組合せの計算。(Python 3, SymPy: sympy.functions.combinatorial.numbers, nC())

使用するライブラリ SymPy Python 3 コード combinations2.py #!/usr/bin/env python3 """(docstring) """ from sympy.functions.combinatorial.numbers import nC def print_math_problems(): """(docstring) """ print("""問題: 以下の計算をせよ。 (1) 8C…

順列。異なるものの順列。(Python 3, SymPy: sympy.functions.combinatorial.numbers, nP())

使用するライブラリ SymPy Python 3 コード permutations2.py #!/usr/bin/env python3 """(docstring) """ from sympy.functions.combinatorial.numbers import nP def print_math_problems(): """(docstring) """ print("""問題: (1) 6P3 (2) 10P2 (3) a, b…

代数式。代数式の計算。(Python 3, SymPy: symbols(), subs())

使用するライブラリ SymPy Python 3 コード algebraic_expressions1.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problems(): """(docstring) """ print("""問題: 以下の代数式を計算せよ。 (1) 5x - 4 ただし、x = 1…

関数。グラフ。(微分積分。解析学) (Python 3, SymPy: plot())

使用するライブラリ SymPy Python 3 コード plotting_functions1.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problems(): """(docstirng) """ print("""以下の各関数のグラフをかけ。 (1) x^2 + 1 (2) x^3 (3) 2x^3 …

解析学 (微分積分)。微分、導関数 (Python 3: class (クラス), SymPy: diff(), Rational())

使用するライブラリ SymPy Python 3 コード cls_sym_diff.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym class MathProblems: """(docstring) """ @staticmethod def print_math_problems(): """(docstring) """ print("""以下の各関数…

2次関数 (二次関数)。2次方程式 (二次方程式) の応用 (Python 3, SymPy: solve(, dict=True), Eq())

使用するライブラリ SymPy Python 3 コード quadratic_functions2.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problems(): """(docstirng) """ print("""以下の 2 次方程式の応用問題を解け。 (1) ある数 x から 3 …

2次関数 (二次関数)。2次方程式 (二次方程式)。2次方程式 (二次方程式) の解法 (だが、解の公式は使用しない)。(Python 3: class (クラス), SymPy: solve(, dict=True), sqrt())

使用するライブラリ SymPy Python 3 コード quadratic_functions1.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym # (@staticmethod の要不要の議論は、『Fluent Python』が参考になる)。 class MathProblems: """(docstring) """ @stat…

1次関数 (一次関数)。グラフ (Python 3, SymPy: plot(), Abs(), Symbol(, real=True))

使用するライブラリ SymPy Python 3 コード linear_functions2.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problems(): """(docstirng) """ print("""以下の関数のグラフをかけ。 (1) y = |x| (2) y = x + 1 - |x| (…

1次関数 (一次関数)。グラフ、定義域、値域 (Python 3: main(), max(), SymPy: plot(), subs(), Rational())

使用するライブラリ SymPy Python 3 コード linear_functions1.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def print_math_problems(): """(docstirng) """ print("""定義域が -1 < x <= 2 のとき、以下の関数のグラフをかき、 その…

線形代数。行列式 (Python 3, SymPy: det())

使用するライブラリ SymPy Python 3 コード sym_det.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def sym_det(mat): """(docstirng) """ return mat.det() if __name__ == '__main__': a, b, c, f, g, h = sym.symbols('a b c f g h'…

微分積分 (解析学)。微分、導関数 (Python 3, SymPy: diff())

使用するライブラリ SymPy Python 3 コード sym_diff.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def sym_diff(fx): """(docstring) """ return sym.diff(fx) if __name__ == '__main__': x = sym.Symbol('x') # f(x) = x^2 fx1 = x…

線形代数。連立1次方程式 (連立一次方程式)。解の存在 (Python 3, SymPy: solve(), Eq())

使用するライブラリ SymPy Python 3 コード simultaneous_linear_equations.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def simultaneous_linear_equations(expr): """(docstirng) """ return sym.solve(expr) if __name__ == '__ma…

線形代数。行列の積。AB = BA を満たすとき、x、y を求める。(Python 3, SymPy: Matrix(), 演算子 *, Eq())

使用するライブラリ SymPy Python 3 コード AB_eq_BA.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def AB_eq_BA(): """(docstring) """ x, y = sym.symbols('x y') A = sym.Matrix([[2, 3, 1], [1, 1, 2], [1, 1, 1]]) B = sym.Matri…

線形代数。行列の相等 (Python 3: values(), SymPy: Matrix(), Eq())

使用するライブラリ SymPy Python 3 コード eq_mat.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def eq_mat(): """(docstirng) """ u, v, w, x, y, z = sym.symbols('u v w x y z') A = sym.Matrix([[x, y, z], [u, v, w]]) B = sym.…

分数方程式 (Python 3, SymPy: Eq(), solve())

使用するライブラリ SymPy Python 3 コード fractional_equation.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def fractional_equation(): """(docstirng) """ x = sym.Symbol('x') lhs = (2/(x-1)) + 1 rhs = 4/(x**2-1) lhs_eq_rhs…

三角関数。y = 2sinx, y = 1/2cosx のグラフ。(Python 3, Sympy: sin(), cos(), plot(), xlim)

使用するライブラリ SymPy Python 3 コード plotting_asinx_acosx.py #!/usr/bin/env python3 """(docstring) """ import sympy as sym def plotting_asinx_acosx(): """(docstirng) """ x = sym.Symbol('x') y1 = 2*sym.sin(x) print(y1) sym.pprint(y1) sy…