How to solve a highly nonlinear PDE

Posted 10 years ago
5417 Views
|
4 Replies
|
0 Total Likes
|
 I have a highly nonlinear PDE, in a formD[f[x,y],x]^2==Gwhere f[x,y] is the function I wanna solve. G is some function of f[x,y], D[f[x,y],x], x and y.So,there are two solutions:D[f[x,y],x]=-Sqrt[G],and D[f[x,y],x]=+Sqrt[G]after specify some initial conditions, I can first solve the first one (- sign), numerically. then at some point, this solution terminates because of singularies or something else (the solution, which is a interpolating function, will turn from a real value to a complex value). The terminating point is a line y0=y0. At this point I want to change the equation to the (+ sign) one, with the new initial conditions given by f[x,y0[x]].How can I do the above steps?Especially, first, how can I get this terminating line y0=y0; second, how can I specify f[x,y0] as the new initial conditions?By the way, how to make Mathematica solve PDE only in real number field?
4 Replies
Sort By:
Posted 10 years ago
 Without any more information, I think the best way forward is to extract the solutions with both roots. You can then write a short function which chooses the correct root based on whether it is returning a real result or not.  A simple example of the kind of problem you are looking to solve would be helpful in demonstrating how to work with it.
Posted 10 years ago
 Because there is in general no closed form solution for non-linear PDE/ODE, you want to be very specific about the actual function that you are dealing with. A good idea is to give a set of real values for demonstration.
Posted 10 years ago
 By default, NDSolve, or NDSolveValue, will solve numerically in complex numbers. how can I restrict in real numbers?
Posted 10 years ago
 This is not the same as FindRoot, which only works on the real domain. Differential equation by default needs complex numbers, even for simple second-order linear systems, I do not understand why you want to work on real domain only.