title: Quadratic equation solver not working
body: <p>I'm trying to create a quadratic equation solver but it doesn't seem to be working when I put in a coefficient greater than 1? The code and error message is below. Any help is greatly appreciated.</p>
  
  <pre><code>print "Welcome to the quadratic equation solver."
  print "The general quadratic equation = ax^2 + bx + c.\n"
  
  def POS(a,b):
  #This function gives the point at which the quadratic turns
      tp = float((-b)/(a*2))
      return (tp)
  
  #This allows for the user to input the values of the variables
  while True:
      s = raw_input ("Please insert a numerical value for a: ")
      try:
          a = float(s)
          break
      except ValueError:
          print "Please enter a numeric value."
  print ("Well done.\n")
  
  while True:
      s = raw_input ("Please insert a numerical value for b: ")
      try:
          b = float(s)
          break
      except ValueError:
          print "Please enter a numeric value."
  print ("Well done.\n")
  
  while True:
      s = raw_input ("Please insert a numerical value for c: ")
      try:
          c = float(s)
          break
      except ValueError:
          print "Please enter a numeric value."
  print ("Well done.\n")
  
  #This uses the function to give the co-ordinate of the turning point
  print POS(a,b), "is the x-value of the turning point"
  print ((a)*(POS(a,b)**2))+((b)*POS(a,b))+c, "is they y-value of the turning point. \n"
  
  #This tells whether the quadratic is positive or negative
  if a &gt;0:
      print "The quadratic is positive.\n"
  
  if a&lt;0:
      print "The quadratic is negative.\n"
  
  #This determines the root of the quadratic
  root1 = (-b +((b**2) - (4*a*c))**0.5) / (2 * a)
  root2 = (-b -((b**2) - (4*a*c))**0.5) / (2 * a)
  print "The quadratic has a root at x =",root1
  if root1 != root2:
      print "The quadratic has another root at x =",
  
  #This uses the discriminant to determine the nature of the quadratic
  if (b**2)-(4*a*c) == 0:
      print root1
  
  elif (b**2)-(4*a*c) &gt; 0:
      print root1 and root2
  
  elif (b**2)-(4*a*c) &lt; 0:
      print "The quadratic contains no roots"
  
  for x in range(-1000,1000):
      quadratic = (a*x**2)+(b*x)+c
  
  #Determines the derivitive and second derivitive of the quadratic
  print "The derivitive of the quadratic is: ",2*a,"x", "+",b
  print "The second derivitive of the quadratic is"
  
  #Create plot
  X = arange (-1000,1000,1)
  plot(X, quadratic, linewidth=3, label="quadratic")
  
  #Create title and axes label
  title ("Graph of the quadratic")
  xlabel ("x")
  ylabel ("y")
  
  #grid
  grid(True)
  legend()
  show()
  </code></pre>
  
  <p>Error message:</p>
  
  <pre><code>Traceback (most recent call last):
    File "C:\Users\Peter\Downloads\test.py", line 49, in &lt;module&gt;
      root1 = (-b +((b**2) - (4*a*c))**0.5) / (2 * a)
  ValueError: negative number cannot be raised to a fractional power
  </code></pre>