2016-03-21 13 views
0

Ich habe derzeit Probleme zu verstehen, wie imaginäre Zahlen erscheinen, wenn ich die quadratische Gleichung mache. Meine Aufgabe besteht darin, die quadratische Gleichung zu erstellen und imaginäre Zahlen zu erhalten, aber es ist extrem schwierig, dorthin zu gelangen. jede Hilfe, die Sie anbieten können, wäre großartig!Wie bekomme ich imaginäre Zahlen ohne Verwendung von cmath bei der Berechnung der quadratischen Gleichung?

Hier ist der Code i zur Zeit haben:

import math 

    print "Hello, please insert 3 numbers to insert into the quadratic equation." 

a = input("Please enter the first value: ") 

b = input("Please enter the second value: ") 

c = input("Please enter the third value: ") 

rootValue = b**2 - 4*a*c 

if rootValue < 0: 

    print (-b-(rootValue)**(.5))/(2 * a) 

if rootValue > 0: 
    print ((-b + (rootValue)**(1/2)) /(2 * a)) 

if rootValue == 0: 
    print -b/(2*a) 

bitte helfen !!! Ich bin gerade so festgefahren. Ich denke, Sie müssen etwas mit dem Problem tun, wenn rootValue < 0; aber ich bin mir nicht sicher, wie ich das machen soll. Ich darf auch nicht 'import cmath' verwenden, ich soll es so machen, dass du das einfach so machen kannst.

Antwort

0

Es gibt ein paar Probleme mit Ihrem Code neben der Darstellung komplexer Zahlen. Denken Sie daran, dass, wenn rootValue <> 0 gibt es ALWAY zwei Wurzeln: (-b +/- sqrt (rootValue)/2a

  1. Es spielt keine Rolle, ob die rootValue positiv oder negativ ist, gibt es noch zwei Wurzeln Sie verzweigen sich und stellen nur jeweils eine der beiden Wurzeln dar. Keine Notwendigkeit für die ersten beiden if-Anweisungen
  2. Um den rootValue-Komplex so zu erstellen, dass Sie komplexe Ergebnisse erhalten, wenn Sie die Quadratwurzel verwenden, setzen Sie sie gleich zu komplex (b 2 - 4 * a * c, 0) oder zu (b 2 - 4 * a * c, 0) + 0j.
  3. Sie wollen Dinge auf die 0,5-Power für jeden der beiden erhöhen Wurzeln, NICHT th e (1/2) power, wie Sie es in einer Anweisung getan haben
  4. Der Vollständigkeit halber möchten Sie vielleicht den Fall a = 0 behandeln.

Wenn Sie immer noch Probleme haben, lassen Sie es uns wissen.