나는 1 차원 문자열을 따라 웨이브 모션을 시뮬레이트하여 다른 웨이브 패킷을 시뮬레이션하는 프로그램을 만들고 있습니다. 웨이브 모션을 기술한다고 주장하는 "Python Scripting for Computational Science"라는 책에서 프로그램을 발견했습니다.하지만 책을 구현하는 방법이 확실하지 않습니다. (책은 Google 도서에 있었으며 텍스트는 이전/이후에 표시되지 않습니다. 암호).파이썬 : 문자열을 따라 1D 웨이브 모션을 시뮬레이트하는 프로그램 작성
예를 들어, "f"는 x와 t의 함수이고 "I"는 x의 함수이지만 웨이브를 생성하려면 실제로 어떤 함수가 필요한지 이해합니다.
I=
f=
c=
L=
n=
dt=
tstop=
x = linespace(0,L,n+1) #grid points in x dir
dx = L/float(n)
if dt <= 0: dt = dx/float(c) #max step time
C2 = (c*dt/dx)**2 #help variable in the scheme
dt2 = dt*dt
up = zeros(n+1) #NumPy solution array
u = up.copy() #solution at t-dt
um = up.copy() #solution at t-2*dt
t = 0.0
for i in iseq(0,n):
u[i] +0.5*C2*(u[i-1] - 2*u[i] +u[i+1]) + \
dt2*f(x[i], t)
um[0] = 0; um[n] = 0
while t<= tstop:
t_old = t; t+=dt
#update all inner points:
for i in iseq(start=1, stop= n-1):
up[i] = -um[i] +2*u[i] + \
C2*(u[i-1] - 2*u[i] + u[i+1]) + \
dt2*f(x[i], t_old)
#insert boundary conditions
up[0] = 0; up[n] = 0
#updata data structures for next step
um = u.copy(); u = up.copy()
정말 구체적인 질문이 필요합니다. "나는이 코드를 책에서 복사했고 그게 무슨 뜻인지 전혀 모르겠다."라고 StackOverflow에서 물어 보는 것은 좋은 질문이 아닙니다. 책의 코드가 무엇을 말하는지 알고 싶다면 실제로 책을 읽고 읽으십시오. – Amber
글쎄, 나는 책을 얻을 수 없다. 도서관은 그것을 가지고 있지 않다. $ 55.96의 가격표는 그것을 사게한다.하지만 도움이된다면 내 질문을 단순화했다. 나는 정말로 단지 두 가지 기능만을 원합니다 (I와 f). 고마워, 앰버. – user1322973
웨이브 방정식에 대한 연구를하고 싶습니까? 더 구체적으로 [1 차원 웨이브 방정식] (https://en.wikipedia.org/wiki/Wave_equation#Scalar_wave_equation_in_one_space_dimension)? 당신은 그것을 구현하기 전에 이것의 배후에있는 수학을 이해할 필요가 있습니다. –