- #1
kostoglotov
- 234
- 6
An exercise in my text requires me to (in MATLAB) generate a numeric solution to a given second order differential equation in three different ways using a forwards, centered and backwards difference matrix. I got reasonable answers for [itex]\vec{u}[/itex] that agreed with each other (approximately) for the forward and centered cases, but I had problems getting the backwards case to work...I did get it to work, but I want to know if what I did to get it to work was correct or a fluke or incorrect.
Here is the exercise specifically:
imgur link: http://i.imgur.com/d6QDYO1.jpg
I used 10x10 difference matrices in MATLAB, but I will give 4x4 examples here below of the pattern I used in those matrices
Forward difference matrix
[tex]\begin{bmatrix}1 & 0 & 0 & 0\\ -1 & 1 & 0 & 0\\ 0 & -1 & 1 & 0\\ 0 & 0 & -1 & 1\end{bmatrix}[/tex]
Centered difference matrix (with division by [itex]2\Delta x[/itex])
[tex]\begin{bmatrix}1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ -1 & 0 & 1 & 0\\ 0 & -1 & 0 & 1\end{bmatrix}[/tex]
Backward difference matrix
[tex]\begin{bmatrix}-1 & 1 & 0 & 0\\ 0 & -1 & 1 & 0\\ 0 & 0 & -1 & 1\\ 0 & 0 & 0 & -1\end{bmatrix}[/tex]
For the forward and centered, like I said, I got reasonable results that agreed with each other approximately and agree trend wise when graphed.
Tow problems occurred when trying to apply the backwards difference matrix
1) first off, the resulting [itex]\vec{u}[/itex] was some 5 orders of magnitude larger than the resulting [itex]\vec{u}[/itex] obtained in the forward and centered cases.
I thought to myself that since it's a backwards difference, then in the same analogy to calculus, maybe the [itex]\Delta x[/itex] should be negative as well. So to solve the given diff eq I then put the negative signs in the appropriate places. The second order differential term wouldn't have a negative sign in front since its equivalent second different matrix will be divided by [itex](\Delta x)^2[/itex]. This produced a very similar vector to the two solution vectors from forward and centered cases, BUT
2) the solution vector obtained after making the change [itex]\Delta x < 0[/itex] was a "transposed vector" compared to the other two solution vectors. Ie, the first and last, and second and second last, and third and third last, etc entries were swapped around...and I can't figure out why.
If in the backwards case I make [itex]\Delta x < 0[/itex] and apply a "vector transpose" to the solution vector then it agrees roughly with the forward and centered cases.
1) Am I correct about [itex]\Delta x < 0[/itex] for the backwards case?
and 2) why was the solution vector "transposed"?
Here is the exercise specifically:
imgur link: http://i.imgur.com/d6QDYO1.jpg
I used 10x10 difference matrices in MATLAB, but I will give 4x4 examples here below of the pattern I used in those matrices
Forward difference matrix
[tex]\begin{bmatrix}1 & 0 & 0 & 0\\ -1 & 1 & 0 & 0\\ 0 & -1 & 1 & 0\\ 0 & 0 & -1 & 1\end{bmatrix}[/tex]
Centered difference matrix (with division by [itex]2\Delta x[/itex])
[tex]\begin{bmatrix}1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ -1 & 0 & 1 & 0\\ 0 & -1 & 0 & 1\end{bmatrix}[/tex]
Backward difference matrix
[tex]\begin{bmatrix}-1 & 1 & 0 & 0\\ 0 & -1 & 1 & 0\\ 0 & 0 & -1 & 1\\ 0 & 0 & 0 & -1\end{bmatrix}[/tex]
For the forward and centered, like I said, I got reasonable results that agreed with each other approximately and agree trend wise when graphed.
Tow problems occurred when trying to apply the backwards difference matrix
1) first off, the resulting [itex]\vec{u}[/itex] was some 5 orders of magnitude larger than the resulting [itex]\vec{u}[/itex] obtained in the forward and centered cases.
I thought to myself that since it's a backwards difference, then in the same analogy to calculus, maybe the [itex]\Delta x[/itex] should be negative as well. So to solve the given diff eq I then put the negative signs in the appropriate places. The second order differential term wouldn't have a negative sign in front since its equivalent second different matrix will be divided by [itex](\Delta x)^2[/itex]. This produced a very similar vector to the two solution vectors from forward and centered cases, BUT
2) the solution vector obtained after making the change [itex]\Delta x < 0[/itex] was a "transposed vector" compared to the other two solution vectors. Ie, the first and last, and second and second last, and third and third last, etc entries were swapped around...and I can't figure out why.
If in the backwards case I make [itex]\Delta x < 0[/itex] and apply a "vector transpose" to the solution vector then it agrees roughly with the forward and centered cases.
1) Am I correct about [itex]\Delta x < 0[/itex] for the backwards case?
and 2) why was the solution vector "transposed"?