- #1
sigmund
- 23
- 0
Well, maybe this is not a mathematics question after all, but however, I ask it here.
I have to implement a semi-difference scheme in Matlab of the perturbed sine-Gordon equation
[tex]
u_{1,t}=u_2
[/tex]
[tex]
u_{2,t}=u_{1,xx}-\sin(u_1)-\alpha u_2+\gamma.
[/tex]
Here [itex]u_1[/itex] and [itex]u_2[/itex] are functions of [itex]x[/itex] and [itex]t[/itex], and [itex]\alpha[/itex] and [itex]\gamma[/itex] are constants. Solutions are searched in the interval [itex]0\leq x\leq\ell[/itex] and for [itex]t\geq0[/itex].
Discretization gives
[tex]
u_{1i,t}=u_{2i}
[/tex]
[tex]
u_{2i,t}=\frac{1}{(\Delta x)^2}(u_{1(i-1)}-2u_{1i}+u_{1(i+1)})-\sin(u_{1i})-\alpha u_{2i}+\gamma
[/tex]
for [itex]i=2,3,\dots,N-1[/itex].
For [itex]i=1[/itex] and [itex]i=N[/itex] we get
[tex]
u_{11,t}=u_{21}
[/tex]
[tex]
u_{21,t}=\frac{1}{(\Delta x)^2}(2u_{12}-2u_{11}-2\eta\Delta x)-\sin(u_{11})-\alpha u_{21}+\gamma
[/tex]
and
[tex]
u_{1N,t}=u_{2N}
[/tex]
[tex]
u_{2N,t}=\frac{1}{(\Delta x)^2}(2u_{1(N-1)}-2u_{1N}+2\eta\Delta x)-\sin(u_{1N})-\alpha u_{2N}+\gamma
[/tex]
respectively.
Here, the constant [itex]\eta[/itex] comes from the two boundary conditions [itex]u_x(0,t)=\eta[/itex] and [itex]u_x(\ell,t)=\eta[/itex].
I have implemented this into Matlab. The implementation is seen in the attached files sineG.m and sineGsol.m. I believe my implementation is correct, but I do not get the correct solution.
I would like to receive some comments on the implementation. Do you see any errors? It might be that I am plotting the wrong values against each other.
I have to implement a semi-difference scheme in Matlab of the perturbed sine-Gordon equation
[tex]
u_{1,t}=u_2
[/tex]
[tex]
u_{2,t}=u_{1,xx}-\sin(u_1)-\alpha u_2+\gamma.
[/tex]
Here [itex]u_1[/itex] and [itex]u_2[/itex] are functions of [itex]x[/itex] and [itex]t[/itex], and [itex]\alpha[/itex] and [itex]\gamma[/itex] are constants. Solutions are searched in the interval [itex]0\leq x\leq\ell[/itex] and for [itex]t\geq0[/itex].
Discretization gives
[tex]
u_{1i,t}=u_{2i}
[/tex]
[tex]
u_{2i,t}=\frac{1}{(\Delta x)^2}(u_{1(i-1)}-2u_{1i}+u_{1(i+1)})-\sin(u_{1i})-\alpha u_{2i}+\gamma
[/tex]
for [itex]i=2,3,\dots,N-1[/itex].
For [itex]i=1[/itex] and [itex]i=N[/itex] we get
[tex]
u_{11,t}=u_{21}
[/tex]
[tex]
u_{21,t}=\frac{1}{(\Delta x)^2}(2u_{12}-2u_{11}-2\eta\Delta x)-\sin(u_{11})-\alpha u_{21}+\gamma
[/tex]
and
[tex]
u_{1N,t}=u_{2N}
[/tex]
[tex]
u_{2N,t}=\frac{1}{(\Delta x)^2}(2u_{1(N-1)}-2u_{1N}+2\eta\Delta x)-\sin(u_{1N})-\alpha u_{2N}+\gamma
[/tex]
respectively.
Here, the constant [itex]\eta[/itex] comes from the two boundary conditions [itex]u_x(0,t)=\eta[/itex] and [itex]u_x(\ell,t)=\eta[/itex].
I have implemented this into Matlab. The implementation is seen in the attached files sineG.m and sineGsol.m. I believe my implementation is correct, but I do not get the correct solution.
I would like to receive some comments on the implementation. Do you see any errors? It might be that I am plotting the wrong values against each other.
Attachments
Last edited: