Guest User

Untitled

a guest
Oct 17th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. # 例えば、このような形で与えられる多項式、
  2. # 実際のそれぞれの項の係数は、
  3. # プログラムを実行してみるまでわからない
  4. import sympy as sp
  5. x = sp.Symbol('x')
  6. quad_poly = (x-10)**2 + 10
  7.  
  8. a = sp.Symbol('a')
  9. finding_a_eq = quad_poly - a*x
  10. # こんな関数はないでしょうか。。?
  11. sp.find_double_root(finding_a_eq, x)
  12.  
  13. from sympy import *
  14.  
  15. x = Symbol('x')
  16. quad = (x-10)**2 + 10
  17.  
  18. def find_double_root(quad_poly_ish, var, solve_for):
  19. p = Poly(quad_poly_ish, var)
  20. a = p.coeff_monomial(var**2)
  21. b = p.coeff_monomial(var**1)
  22. c = p.coeff_monomial(var**0)
  23.  
  24. determinant = b**2 - 4*a*c
  25. eq = Eq(determinant, 0)
  26. return solve(eq, solve_for)
  27.  
  28. a = Symbol('a')
  29. arr = find_double_root(quad - a*x, x, a)
  30.  
  31. print arr[0].evalf()
  32. print arr[1].evalf()
  33.  
  34. # => 0.976176963403031
  35. # => -40.9761769634030
Add Comment
Please, Sign In to add comment