Skip to main content

Soliton Solutions of a Variation of the Nonlinear Schrödinger Equation

  • Conference paper
  • First Online:
Topics from the 8th Annual UNCG Regional Mathematics and Statistics Conference

Part of the book series: Springer Proceedings in Mathematics & Statistics ((PROMS,volume 64))

  • 501 Accesses

Abstract

The nonlinear Schrödinger (NLS) equation is a classical field equation that describes weakly nonlinear wave-packets in one-dimensional physical systems. It is in a class of nonlinear partial differential equations (PDEs) that pertain to several physical and biological systems. In this project we apply a pseudo-spectral solution-estimation method to a modified version of the NLS equation as a means of searching for solutions that are solitons, where a soliton is a self-reinforcing solitary wave that maintains its shape over time. We use the pseudo-spectral method to determine whether cardiac action potential states, which are perturbed solutions to the Fitzhugh–Nagumo nonlinear PDE, create soliton-like solutions. We then use symmetry group properties of the NLS equation to explore these solutions and find new ones.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Brooks, J.: A singular perturbation approach to the Fitzhugh-Nagumo PDE for modeling cardiac action potentials. Masters thesis, East Tennessee State University. E-thesis—http://libraries.etsu.edu/record=b2340298 S1a (2011)

  2. Drazin, P., Johnson, R.: Solitons: An Introduction, p. 15. Cambridge University Press, New York (1989)

    Google Scholar 

  3. Gagnon, L., Winternitz, P.: Lie symmetries of a generalised non-linear Schrodinger equation: I. The symmetry group and its subgroups. J. Phys. A Gen. 21, 1493–1511 (1988)

    MathSciNet  MATH  Google Scholar 

  4. Gottlieb, D., Orzag, S.: Numerical Analysis of Spectral Methods: Theory and Applications. Society for Industrial and Applied Mathematics, Philadelphia (2011)

    Google Scholar 

  5. Grimshaw, R., Khusnutdinova, K.: Nonlinear waves, Lecture Notes for MAGIC:Nonlinear Waves (MAGIC021), Birmingham, England (2011)

    Google Scholar 

  6. Hasegawa, A., Tappert, F.: Transmission of stationary nonlinear optical pulses in dispersive dielectric fibers. I. Anomalous dispersion. Appl. Phys. Lett. 23(3), 142–144 (1973) doi:10.1063/1.1654836

    Article  Google Scholar 

  7. Hornikx, M., Waxler, R.: The extended Fourier pseudospectral time-domain method for atmospheric sound propagation. J. Acoust. Soc. Am. 128(4), 1632–1646 (2010)

    Article  MathSciNet  Google Scholar 

  8. Huang, X., Zhang, X.: A Fourier pseudospectral method for some computational aeroacoustics problems. Aeroacoustics 5(3), 279–294 (2006)

    Article  Google Scholar 

  9. Infeld, E., Rowlands, G.: Nonlinear Waves, Solitons, and Chaos. Cambridge University Press, New York (1990)

    MATH  Google Scholar 

  10. Popovychh, R.O., Eshraghi, H.: Admissible Point Transformations of Nonlinear Schrodinger 366 Equations, Proceedings of 10th International Conference in MOdern GRoup ANalysis, Larnaca, 167–174 (2005)

    Google Scholar 

  11. Remoissenet, M.: Waves Called Solitons, Concepts and Experiments. Springer, Berlin (1999)

    Book  MATH  Google Scholar 

  12. Sinkala, Z.: Soliton/exciton transport in proteins. Theor. Biol. 241(4), 919–927 (2006) doi:10.1016/j.jtbi.2006.01.028

    Article  MathSciNet  Google Scholar 

  13. Weckesseer, W.: Cookbook/KdV. Retrieved on November 24, 2012, from http://www.scipy.org/Cookbook/KdV (22 February 2003)

  14. Yakushevich, L.V.: Nonlinear Physics of DNA, 2nd rev. edn. Wiley, Garching (2004)

    Google Scholar 

  15. Yang, J.: Nonlinear Waves in Integrable and Nonintegrable Systems. Society for Industrial and Applied Mathematics, Philadelphia (2010)

    Book  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Erin Middlemas .

Editor information

Editors and Affiliations

6.1 Appendix

The following is our code utilizing the pseudo-spectral method in order to solve our perturbed NLS equation. The code was adapted from a Scipy Cookbook KdV example [13].

 import numpy as np

 from scipy.integrate import odeint

 from scipy.fftpack import diff as psdiff

 # from mpl_toolkits. mplot3d import Axes3D

 from matplotlib.collections import PolyCollection

 from matplotlib.colors import colorConverter

 # from mpl_toolkits. mplot3d import axes3d

import matplotlib.pyplot as plt

def shr_exact(x, c):

   ””” Profile of the exact solution to the KdV for a

   single soliton on the real line. ”””

   # u =1.2*1/( np. cosh (1.2*( x +20)))

      +np.exp(8j*(x))*0.8*1/(np.cosh(.8*x))

   eps = 2.0

   delta = 0.8

   beta = eps

   gamma = 1/eps

   u =(np.exp(−delta*x))/(1+np.exp(−x))

      +(np.exp(−delta*(x+20)))/(1+np.exp(−(x+20)))

      *np.exp(3j*(x))

  # u = np. exp (− delta *( beta *( x )))* np. exp (0 j *( x ))/

      (1+np.exp(−(beta*(x))))

  # u = np. exp (− delta *( beta * x ))/(1+ np. exp (−( beta * x )))

   u = gamma*u

   u = np.array(u, dtype=np.complex64)

   u = np.array([u.real,u.imag])

   u = u.flatten()

   return u

def shr(u, t, L):

   ””” Differential equations for the KdV equation,

   discretized in x. ”””

   # Compute the x derivatives using the

   pseudo−spectral method.

  # ux = psdiff ( uperiod = L )

   eps = 2.0

   gamma = 1/eps

   n = len(u)

   uxxRe = psdiff(u[0:(n/2)], period=L, order=2)

   uxxIm = psdiff(u[(n/2):n], period=L, order=2)

   uxx = np.array([uxxRe,uxxIm])

   uxx = uxx.flatten()

   absu =np.sqrt(u[0:n/2]**2+u[n/2:n]**2)

   absu = np.array([absu,absu])

   absu = absu.flatten()

   absu2 = u[0:n/2]**2+u[n/2:n]**2

   absu2 = np.array([absu2,absu2])

   absu2 = absu2.flatten()

   # Compute du / dt = − i *( − uxx  2 abs ( u ) u )

   = i * (uxx + 2abs(u)u)

   dudt = (−1*2*absu2)*u + uxx + eps*(3*absu)*u

   idudt= np.array([−1*dudt[(n/2):n], dudt[0:(n/2)]])

   return idudt.flatten()

   # return ( idudt. realidudt. imag )

# Set the size of the domainand create the

discretized grid.

eps = 2.0

beta = eps

L =160.0/beta

N = 256

dx = L/N

x = np.linspace(−L/2, L/2, N)

x1 = np.linspace(−L/beta, L/beta, N)

# Set the initial conditions.

# Not exact for two solitons on a periodic domainbut

close enough...

u0 = shr_exact(x, 0.75) # + kdv_exact ( x −0.65* L0.4)

# Set the time sample grid.

# ps = .01

# alpha = eps **2

Tm = 7

t = np.linspace(0, Tm, 1000)

# t = alpha * t

print ”Computing_the_solution.”

from mpl_toolkits.mplot3d import Axes3D

from matplotlib.collections import PolyCollection

from matplotlib.colors import colorConverter

sol = odeint(shr, u0, t, args=(L,), mxstep=500)

sol = sol[:, 0:N] + 1j *sol[:,N:(2*N) ]

print ”IMshow.”

plt.figure(figsize=(6,5))

plt.imshow(np.abs(sol[::−1, :]), extent=[−L/2,L/2,0,Tm])

plt.colorbar()

plt.xlabel(’x’)

plt.ylabel(’t’)

plt.axis(’normal’)

plt.title(’The_Nonlinear_Schrodinger_on_a_Periodic

Domain’)

# plt. show ()

# print ” Wireframe.”

# fig = plt. figure ()

# ax = fig. add_subplot (111projection =’3 d ’)

# tind = range (0, len ( t ),10)

# xind = range (0, len ( x ),5)

# tt = t [ tind ]

# xx = x [ xind ]

# ux = abs ( sol )[:, xind ]

# uu = ux [ tind,:]

# X, T = np. meshgrid ( xx, tt )

# ax. plot_wireframe ( X, T, uu )

# plt. show ()

print(”WaterFall.”)

# # Redo the sampling

tind = range(0,len(t),30)

xind = range(0,len(x),1)

tt = t[tind]

xx = x[xind]

ux = abs(sol)[:,xind]

# The figure

fig = plt.figure()

ax = fig.gca(projection=’3d’)

cc = lambda arg: colorConverter.to_rgba(arg, alpha=0.6)

verts = []

for i in tind:

   verts.append( zip(xx,ux[i,:]) )

poly = PolyCollection(verts, facecolors = [cc(’b’)])

poly.set_alpha(0.3)

ax.add_collection3d(poly, zs=tt, zdir=’y’)

ax.set_xlabel(’X’)

ax.set_xlim3d(−L/2,L/2)

ax.set_ylabel(’t’)

ax.set_ylim3d(0,Tm)

ax.set_zlabel(’Z’)

ax.set_zlim3d(0,1.1*np.max(abs(sol)))

plt.title(’The_Nonlinear_Schrodinger_on_a_Periodic

Domain’)

plt.show()

plt.figure()

plt.plot(xx, abs(sol[0]))

plt.xlabel(’X’)

plt.ylabel(’Z’)

plt.title(’Solution_at_T_=_0’)

plt.show()

plt.figure()

plt.plot(xx, abs(sol[999]))

plt.xlabel(’X’)

plt.ylabel(’Z’)

plt.title(’Solution_at_Max_Time’)

plt.show()

Diff = np.max(abs(sol[0]))−np.max(abs(sol[999]))

Diff = abs(Diff)

print Diff

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer Science+Business Media New York

About this paper

Cite this paper

Middlemas, E., Knisley, J. (2013). Soliton Solutions of a Variation of the Nonlinear Schrödinger Equation. In: Rychtář, J., Gupta, S., Shivaji, R., Chhetri, M. (eds) Topics from the 8th Annual UNCG Regional Mathematics and Statistics Conference. Springer Proceedings in Mathematics & Statistics, vol 64. Springer, New York, NY. https://doi.org/10.1007/978-1-4614-9332-7_6

Download citation

Publish with us

Policies and ethics