>>> def roots(a, b, c):
... D = (b * b - 4 * a * c) ** 0.5
... x_1 = (-b + D) / (2 * a)
... x_2 = (-b - D) / (2 * a)
... return {'x1':x_1, 'x2':x_2}
>>> # x**2 + 5x + 4 = 0の解
>>> roots(1, 5, 4)
{'x1': -1.0, 'x2': -4.0}
>>> # x**2 + 5x + 6 = 0の解
>>> roots(1, 5, 6)
{'x1': -2.0, 'x2': -3.0}
以下の例では、解答を辞書形式で出力したり、ax2+bx+cの様な式でも解答が得られる例も示してあります。
from sympy import Symbol, solve
x = Symbol('x')
expr = x**2 + 5*x + 4
s = solve(expr)
print(s)
# dict=Trueで解答を辞書形式で返却してくれる
d = solve(expr, dict=True)
print(d)
# ax**2+bx+cみたいな式も対応可能
x = Symbol('x')
a = Symbol('a')
b = Symbol('b')
c = Symbol('c')
expr = a*x**2 + b*x + c
# xの解を得る
d = solve(expr, x, dict=True)
print(d)
0 件のコメント:
コメントを投稿