I have the following program that moves a wave on a string with fixed ends. The program solves the wave equation given a initial condition wave. The initial condition is a triangle wave splitting into two pulses.(adsbygoogle = window.adsbygoogle || []).push({});

Here is the code written in Python:

Here is the plot:Code (Python):

from numpy import *

from matplotlib.pyplot import *

N = 201 # Number of mass points

nT = 1200 # Number of time points

mi = 0.02

m = [mi]*(N) # mass array of points on string

m[-1] = 0.02

m[0] = 0.02

ki = 10.

k = [ki]*(N) # Spring constant

k[-1] = 0

k[0] = 0

dx = 0.295

kappa = ki*dx

my = mi/dx

c = sqrt(kappa/my) # velocity

print c

dt = 0.9*dx/c # Courier

x = arange( N )*dx

t = arange( N )*dt

y = zeros( [N, nT ] )

#Initial condition with t= 0

for i in range(N-1):

if (70 <= i <= 99):

y[i,0] = (i - 69.)/30

elif (100 <= i <= 128):

y[i,0] = ((129 - i)/30.)

else:

y[i,0] = 0.

#Wave equation

for j in range(nT-1):

for i in range(N-1):

if j == 0:

y[i,j+1] = 2*y[i,j] - y[i,j] + (dt**2/m[i])*(k[i-1]*y[i+1,j] - 2*k[i-1]*y[i,j] + k[i]*y[i-1,j] )

else:

y[i,j+1] = 2*y[i,j] - y[i,j-1] + (dt**2/m[i])*( k[i-1]*y[i+1,j] - 2*k[i-1]*y[i,j] + k[i]*y[i-1,j] )

cla()

ylim(-1,1)

plot(x,y[:,j-2])

pause(0.001)

I want to make changes to my program so the one triangle wave pulse moves to the right and gets reflected instead of splitting up in two opposite moving pulses. How can I change my initial conditions to make this possible? I want something like this:

EDIT:I am not sure if the pictures was correctly added!

**Physics Forums | Science Articles, Homework Help, Discussion**

Dismiss Notice

Join Physics Forums Today!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# Python Wave on string: How can I create a traveling triangle pulse?

Have something to add?

Draft saved
Draft deleted

**Physics Forums | Science Articles, Homework Help, Discussion**