高校数学: 複素数: 複素係数 (複素数と2次方程式) 1: Python3: zip() SymPy: I, solve(), Eq()

Python3 コード

complex_coefficient1.py

#!/usr/bin/env python3


"""(docstring)
"""


import sympy as sym


class MathProblem:
    """(docstring)
    """
    @staticmethod
    def print_math_problem():
        """(docstring)
        """
        print('複素係数の 2 次方程式を解け。\n')


class ComplexCoefficient1:
    """(dostring)
    """
    def __init__(self, expr):
        """(docstring)
        """
        self.__expr = expr

    def complex_coefficient_func1(self):
        """(docstring)
        """
        x = sym.Symbol('x')

        # 方程式 の答え
        ans = sym.solve(self.__expr, x)

        return ans


if __name__ == '__main__':
    MathProblem.print_math_problem()
    print('-'*79)

    x = sym.Symbol('x')

    # 複素数: 虚数: SymPy の I を使用。
    expressions = [2*x**2 - (5+sym.I)*x + 3 - sym.I,
                   (1+sym.I)*x**2 + 2*(1-sym.I)*x - (1+sym.I)]

    idx = range(1, len(expressions)+1)
    for i, expr in zip(idx, expressions):
        print('({0}).\n'.format(i))
        sym.pprint(sym.Eq(expr, 0))
        print('\nx =\n')
        CC1 = ComplexCoefficient1(expr)
        CC1_cc_func1 = CC1.complex_coefficient_func1()
        sym.pprint(CC1_cc_func1)
        print('')
        print('-'*79)

出力

$ python3 complex_coefficient1.py
複素係数の 2 次方程式を解け。

-------------------------------------------------------------------------------
(1).

   2                        
2⋅x  - x⋅(5 + ⅈ) + 3 - ⅈ = 0

x =

⎡1   ⅈ       ⎤
⎢─ - ─, 2 + ⅈ⎥
⎣2   2       ⎦

-------------------------------------------------------------------------------
(2).

 2                                  
x ⋅(1 + ⅈ) + x⋅(2 - 2⋅ⅈ) - 1 - ⅈ = 0

x =

[ⅈ]

-------------------------------------------------------------------------------

参考文献 (数式を参考)

高校数学解法事典 第九版

高校数学解法事典 第九版