Ich erhalte eine Fehlermeldung <RuntimeWarning: invalid value encountered in sqrt>
Ich versuche zu laufen eine quadratische Gleichung in python. Aber es hält mir einen Fehler "RuntimeWarning: invalid value encountered in sqrt".
Hier ist mein code:
import numpy as np
a = 0.75 + (1.25 - 0.75)*np.random.randn(10000)
print a
b = 8 + (12 - 8)*np.random.randn(10000)
print b
c = -12 + 2*np.random.randn(10000)
print c
x0 = (-b - np.sqrt(b**2 - (4*a*c)))/(2 * a)
print x0
Ihr Experte Vorschlag wird äußerst hilfreich sein. Vielen Dank im Voraus
- Wie pro die Ausgabe der Variablen a,b und c und mein Rechenbeispiel. Ich sollte Sie nicht bekommen, eine -ve-Anzahl für den Wert in der b**2 - (4*a*c). Dennoch, es gibt einige 'nan' - Werte.
- Es gibt eine negative Zahl mit dem Wert
-3.1107176892482471
imb**2 - (4*a*c)
. Tatsächlich gibt es viele - Sie haben auf jeden Fall negative Werte. Siehe meine Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist das nicht 100% Python verwandt. Man kann Sie nicht berechnen die Quadratwurzel einer negativen Zahl (beim Umgang mit reellen zahlen ist).
Du nicht alle Vorsichtsmaßnahmen, wenn
b**2 - (4*a*c)
ist eine negative Zahl.Let ' s test, wenn Sie negative Werte:
Wenn Sie hoffen, um komplexe Analysen (arbeiten mit imaginären zahlen definiert durch sqrt(-1)) Sie können den import cmath und verwenden Sie cmath.sqrt(-1) anstelle von numpy.sqrt(-1).
Zum Beispiel, wenn ich die Berechnung des Brechungsindex des materials von permittivität und Permeabilität (durch definition, j beteiligt ist), werde ich das schreiben von Funktionen in python als solche:
Wo e1f etc. sind die zuvor definierten interpolierenden Funktionen, die eine Funktion der einfallenden Frequenz f. Die y daraus entsteht, in der es sich, einen komplexen Wert, der komplexe Brechungsindex, aber ich bin oft nur daran interessiert, den realen Anteil (der Brechungsindex), so dass ist, was zurückgegeben wird.
Hoffe, das hilft