2017-03-24 4 views
0

This is the value I want to calculate. Ich schreibe es wie folgt, hier ist ich die imaginäre Zahl.Ich benutze Python und networkx.Kann jemand helfen.Schreiben Sie math Formel in Python

import math 
import matplotlib 
matplotlib.use('TkAgg') 
from pylab import * 
import cmath 
import networkx as nx 
import random as rd 
import numpy as np 

g=nx.karate_club_graph() 
for i in g.nodes_iter(): 
    g.node[i]['theta']=1 

a=abs((cmath.exp((g.node[i]['theta']*(1j)) for i in g.nodes_iter()))/g.number_of_nodes()) 

Der Fehlerausgang, die ich erhalte, ist:

"" "Datei "" Linie 1 in runfile ('C: /Users/Bhawesh/Desktop/workingdirectory/bookpractice.py', wdir = 'C:/Benutzer/Bhawesh/Desktop/Arbeitsverzeichnis')

Datei "C: \ Benutzer \ Bhawesh \ Anaconda2 \ lib \ Site-Pakete \ Spyder \ utils \ site \ sitecustomize.py", Zeile 866, in runfile execfile (Dateiname, Namespace)

Datei "C: \ Benutzer \ Bhawesh \ Anaconda2 \ lib \ site-pac KAGes \ spyder \ utils \ site \ sitecustomize.py "Linie 87, in execfile exec (kompilieren (scripttext, Dateiname 'exec'), glob, loc)

Datei" C:/Users/Bhawesh/Desktop /workingdirectory/bookpractice.py ", Zeile 18, in b = abs ((cmath.exp ((g.knoten [i] ['theta'] * (1j)) für i in g.nodes_iter()))/g.number_of_nodes())

Typeerror: ein Schwimmer ist erforderlich ""“

+2

Was ist das Problem? – AChampion

+2

Wenn Sie das nächste Mal den Code um 4 Leerzeichen einrücken, formatieren Sie ihn korrekt. – Carcigenicate

Antwort

0

Pythons sqrt Betrieb unterstützt nicht negativen ganzen Zahlen. Numpy funktioniert jedoch mit komplexen Zahlen. Die imaginäre Zahl $ i $ wird von 1j in Python gegeben. Also müssen Sie Ihre Gleichung umwandeln in:

a=abs((np.exp((g.node[i]['theta']*(1j)) for i in g.nodes_iter()))/g.number_of_nodes()) 
+0

Sie können auch das 'cmath'-Modul der Standardbibliothek verwenden, um eine' exp'-Funktion zu erhalten, die mit komplexen Zahlen arbeitet (ohne eine externe Bibliothek wie 'numpy' zu benötigen). – Blckknght

+0

Immer den folgenden Fehler erhalten: "TypeError: ein Float ist erforderlich" –

+0

Es gibt wahrscheinlich ein wenig mehr Informationen als nur die Fehlermeldung. Diese Information ist tatsächlich relevant, um herauszufinden, was das Problem ist. Bitte bearbeiten Sie Ihre Frage und fügen Sie das vollständige Traceback hinzu. – Joel