파이썬 2.7을 사용하여 수치 적으로 방정식을 풀려고합니다. 이는 전체 코드입니다 :Python AttributeError : cos
from sympy import *
from sympy import Symbol
from sympy.solvers import nsolve
from scipy import *
from pylab import *
import numpy as np
# Symbols
theta = Symbol('theta')
phi = Symbol('phi')
phi0 = Symbol('phi0')
H0 = Symbol('H0')
# Constants
a = 0.05
b = 0.05**2/(8*pi*1e-7)
c= 0.001/(4*pi*1e-7)
phi0 = 60*pi/180
H0 = -0.03/(4*pi*1e-7)
def m(theta,phi):
return np.array([sin(theta)*cos(phi), sin(theta)*cos(phi), cos(phi)])
def h(phi0):
return np.array([cos(phi0), sin(phi0), 0])
def k(theta,phi,phi0):
return np.vdot(m(theta,phi),h(phi0))
def F(theta,phi,phi0,H0):
return -(a*H0)*k(theta,phi,phi0)+b*(cos(theta)**2)+c*(sin(2*theta)**2)+sin(theta)**4*sin(2*phi)**2
def F_phi(theta,phi,phi0,H0):
return simplify(diff(F(theta,phi,phi0,H0),phi))
def G(phi):
return F_phi(pi/2,phi,phi0,H0)
solution = nsolve(G(phi), phi)
print solution
이것은 내가 가지고있는 역 추적입니다 : 나는 sympy, NumPy와 및 pylab 라이브러리를 사용하고
Traceback (most recent call last):
File "Test.py", line 33, in <module>
solution = nsolve(G(phi), phi)
File "Test.py", line 32, in G
return F_phi(pi/2,phi,phi0,H0)
File "Test.py", line 30, in F_phi
return simplify(diff(F(theta,phi,phi0,H0),phi))
File "Test.py", line 28, in F
return -(a*H0)*k(theta,phi,phi0)+b*(cos(theta)**2)+c*(sin(2*theta)**2)+sin(theta)**4*sin(2*phi)**2
File "Test.py", line 26, in k
return np.vdot(m(theta,phi),h(phi0))
File "Test.py", line 22, in m
return np.array([sin(theta)*cos(phi), sin(theta)*cos(phi), cos(phi)])
AttributeError: cos
. 그래서 저는 cos 함수에 문제가 없습니다. 어떤 도움이 필요합니까?
전체 추적을 포함하십시오. 예외를 발생시키는 속성 액세스가 여기에 없으므로 일부 코드가 누락되었을 수 있습니다. –
죄송합니다. 포함 된 코드가 충분하다고 생각했습니다. 전체 코드와 추적 코드를 포함하도록 게시물을 편집했습니다. – aymenbh
수입을 수정 한 후 IndexError는 아마도 같은 원인으로 인해 사라질 것입니다. 그것은 단지 내가 코멘트에 알려주지 않는 경우! – jorgeca