두 개의 행성 객체 사이의 힘 (Newtons Law of Gravity)에 대한 클래스를 작성한 다음 두 개의 대전 된 입자 사이의 쿨롱 법칙에 대한 하위 클래스를 작성해야합니다. 물리학을하지 않는 사람들은 비슷한 기능 (방법)입니다.하위 클래스와 수퍼 클래스가 포함 된 코드의 오류
class Coulomb(Gravity):
def __init__(self, q1, q2):
Gravity.__init__(self, q1, q2)
self.G= 8.99E+9
def force(self, r):
Gravity.force(self, r)
def visualize(self, r_start, r_stop, n = 100):
Gravity.visualize(self, r_start, r_stop, n = 100)
그때 내가이 다음 코드
l = Coulomb(2.63E-9, 8.69E-9) #My two charges q1 and q2
w = l.visualize(0.1, 1) #My start and end points for the linspace
내가 함께 시각화 방법을 사용하여 법을 펜던트 음모 얻으려고
class Gravity:
def __init__(self, m, M):
self.m=m
self.M=M
self.G=6.67428E-11
def force(self, r):
G, m, M = self.G, self.m, self.M
return (G*m*M)/(r**2)
def visualize(self, r_start, r_stop, n = 100):
import matplotlib.pyplot as plt
from numpy import linspace
r = linspace(r_start, r_stop, n)
g = self.force(r)
plt.plot(r,g)
set_title='Gravity force: m=%g, M=%g' % (self.m, self.M)
plt.show()
내 서브 클래스 : 여기 내 코드입니다 물리학 학생, 프로그래머가 아니므로 이것이 완전히 엉망이라고 생각합니다. 그러나 슈퍼 클래스가 역 스퀘어 플롯을 생성하기 위해 자체적으로 작동한다는 것을 알고 있지만 동일한 .py에서 두 세트의 코드로 실행할 때 파일 (위의 순서대로) 나는 두 개의 플로팅 인수가 같은 크기가 아니라는 것을 의미하기 위해 "x와 y가 같은 첫 번째 차원을 가져야 함"이라는 오류 메시지를 받지만 왜 그렇지 않은지 알아 내지 못합니다 . 어떤 도움이라도 대단히 감사하겠습니다.