Re: PDE backward solution problem
- To: mathgroup at smc.vnet.net
- Subject: [mg117094] Re: PDE backward solution problem
- From: schochet123 <schochet123 at gmail.com>
- Date: Wed, 9 Mar 2011 07:02:12 -0500 (EST)
- References: <ikt6ff$cp$1@smc.vnet.net>
Concerning question 3, yes it does help to look at the linearized equations. Linearizing around constant states via Normal[Series[equationsForSolution/.n[j_] -> (c[j] + eps nn[j][#1, #2] &),{eps,0,1}] yields a linear parabolic system. You should therefore expect that the full nonlinear equations will behave like a parabolic system. This means that the answer to question 1 is: No you cannot expect NDSolve to be able to solve the equations backwards in time. To see why, consider the standard parabolic equation D[u[t,x],t]==c^2 D[u[t,x],x,x]. In Fourier space, the solution multiplies each mode E^(I k x) by E^(-c^2 k^2 t). If t is negative then this multiplier is extremely large for large values of k, and even tends to positive infinity as k goes to infinity. Hence the solution does not exist for negative times unless the initial data is chosen in a very special manner, such as having only a finite number of Fourier modes. For a finite difference approximation on a uniform grid we can still describe the solution in terms of Fourier modes, but the highest possible value of k is Pi/h, where h denotes the grid spacing. This highest Fourier mode is the one that takes alternate values 1,-1,1,-1, etc at successive grid points. Solving backwards in time, this mode will be multiplied by E^(c^2 Pi^2 (-t)/h^2), which quickly becomes enormous for (-t) larger than O(h^2). The default NDSolve method uses uniform grids, and seems to select the number of grid points, and hence the value of h, according to the complexity of the initial data, which makes good sense. If a reasonably large number of grid points are used, and/or the value of c is moderately large, then it would not be surprising that the solution can be computed only for (-t) of the order of O(10^(-6)). If you want to see this effect in a simple case, try running NDSolve[{D[u[t, x], t] == -D[u[t, x], x, x], u[t, 1] == u[t, -1], u[0, x] == Sin[Pi x]}, u, {t, 0, 1}, {x, -1, 1}] Although the initial data has been selected to make the solution to the PDE remain nicely behaved, numerical errors produce small coefficients of higher Fourier modes such as the one with k equal to Pi/h, and the enormous growth of that mode soon makes it tremendously larger than the Fourier mode of the true solution. To avoid this problem, can't you simply run the calculation forward in time for a slightly smaller time to make up for the delay.? Steve On Mar 5, 1:23 pm, Arturas.A... at tfai.vu.lt wrote: > I am trying to solve ambipolar diffusion PDE (following approach of > Philip Rosenau and Eli Turkel, Physica Scripta Vol. 31, 207-209, > 1985). Unfortunatelly so far I had no expierence dealing with PDE > solvers. My attempts follows > > The problems start when we try to solve this equations backward in > time. We need this because fitted initial distribution was measured > with some delay. So we want to look how this distribution might look > fraction of second before. Unfortunatelly Mathematica PDE solver refuses = to > solve that way, claiming that singularity had formed. Sure it have to > form at some moment, however time scale looks unrealistic (Mathematica so= lves > backward to 10^-6 s only). So, my questions are > > 1) Does it is possible to get some solution, say 1/1000 fraction of > second before? > > 2) We have small boundary and initial condition mismatch at t=0 (the = > function is not strictly 0 at point x=bp). How similar mismaches > practically are resolved in other similar PDE problems? > > 3) And the naive one. Can this nonlinear problem be classified as > being "elliptic", "parabolic" or some other kind, or this > classification is not possible for general nonlinear PDEs. In other = > words, can linearization in principle help to determine the kind of = > this PDE? Does this would help to choose the right options in Mathematica= ? >