2017-03-24 1 views
0

This is the value I want to calculate. 다음과 같이 작성했습니다. 여기서 나는 허수입니다. 파이썬과 네트워크를 사용하고 있습니다. 누군가 도움을줍니다.파이썬에서 수학 공식 작성하기

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()) 

I가 얻을 오류 출력 : 런 파일에서

"" "파일", "라인 (1), ('C : /Users/Bhawesh/Desktop/workingdirectory/bookpractice.py' 파일 : C : \ Users \ Bhawesh \ Anaconda2 \ lib \ site-packages \ spyder \ utils \ site \ sitecustomize.py "866 행, in runfile execfile (파일 이름, 네임 스페이스)

파일 "C : \ Users \ Bhawesh \ Anaconda2 \ lib \ site-pac 실행 파일 (컴파일 스크립트 텍스트, 파일 이름, 'exec'), glob, loc)

파일 "Cages/spyder \ utils \ site \ sitecustomize.py"줄 87, 파일 "C :/Users/Bhawesh/Desktop /workingdirectory/bookpractice.py ", 줄 18, g.nodes_iter())의 i에 대한 b = abs ((g.node [i] [ 'theta'] * (1j)) cmath.exp g.number_of_nodes())

형식 오류 : 부동는 "" "필요

+2

문제점 : – AChampion

+2

다음 번에 코드를 4 칸 들여 쓰기하여 제대로 포맷하십시오. – Carcigenicate

답변

0

파이썬의 sqrt 작업이 음의 정수를 지원하지 않습니다. 그러나 numpy는 복소수로 작동합니다. 허수 $ i $는 파이썬에서 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 : float가 필요합니다" –

+0

아마도 오류 메시지 이외의 정보를 제공합니다. 그 정보는 실제로 문제가 무엇인지 알아내는 것과 관련이 있습니다. 질문을 편집하고 전체 추적을 포함하십시오. – Joel