2017-03-24 338 views
0

This is the value I want to calculate. 我寫它如下,在這裏我是虛數。我使用python和networkx.Can有人幫助。在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()) 

錯誤輸出,我得到的是:

「」「文件 」「,1號線,在 運行文件( 'C:/Users/Bhawesh/Desktop/workingdirectory/bookpractice.py', wdir ='C:/ Users/Bhawesh/Desktop/workingdirectory')

文件「C:\ Users \ Bhawesh \ Anaconda2 \ lib \ site-packages \ spyder \ utils \ site \ sitecustomize.py」,第866行,在運行文件 execfile(文件名,命名空間)

文件「C:\ Users \ Bhawesh \ Anaconda2 \ lib \ site-pac kages \ spyder \ utils \ site \ sitecustomize.py「,第87行,在execfile中 exec(compile(scripttext,filename,'e​​xec'),glob,loc)

文件」C:/ Users/Bhawesh/Desktop/workingdirectory/bookpractice.py「第18行 b = abs((g.node [i] ['theta'] *(1j))for g.nodes_iter()))/ g.number_of_nodes())

類型錯誤:一個浮動需要 「」」

+2

問題是什麼? – AChampion

+2

下一次,請將您的代碼縮進4格以正確格式化。 – Carcigenicate

回答

0

Python的sqrt操作不支持負整數。然而,numpy的工作複雜的數字。虛數$ i $由Python中的1j給出。所以你將不得不將你的公式轉換爲:

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

你也可以使用標準庫的'cmath'模塊來獲得一個可以處理複數的'exp'函數(不需要像'numpy'這樣的外部庫)。 – Blckknght

+0

總是得到以下錯誤:「TypeError:需要一個浮點數」 –

+0

它可能會提供一些信息,而不僅僅是錯誤消息。這些信息實際上與確定問題的相關性有關。請編輯你的問題,幷包括完整的回溯。 – Joel