Re: PDE, laplace, exact, should be simple...
- To: mathgroup at smc.vnet.net
- Subject: [mg110222] Re: PDE, laplace, exact, should be simple...
- From: schochet123 <schochet123 at gmail.com>
- Date: Wed, 9 Jun 2010 07:19:51 -0400 (EDT)
- References: <hu4sbb$1gn$1@smc.vnet.net>
Depending on the generality you are trying to achieve, this problem is very far from simple. If all one wanted was to obtain the solution Sin[Pi x] Sinh[Pi y]/ Sinh[Pi] for the specific problem {D[u[x, y], {x, 2}] + D[u[x, y], {y, 2}] == 0 , u[0, y] == 0, u[x, 0] == 0, u[1, y] == 0, u[x, 1] =Sin[x]} then one could define myDSolve[D[u[x, y], {x, 2}] + D[u[x, y], {y, 2}] == 0 , u[0, y] == 0, u[x, 0] == 0, u[1, y] == 0, u[x, 1] ==Sin[Pi x]},u,{x,y}]={{u= - >Function[{x,y}, Sin[Pi x]Sinh[Pi y]/Sinh[Pi] ]}} Why can't the built-in DSolve find that answer? I am not from Wolfram, but it seems to me that DSolve doesn't attempt to find check whether specific functions are solutions, because there are infinitely many equations that have explicit solutions and looking for all of them would take too long. As a simple example, consider a homogeneous linear variable-coefficient single ODE in the variable x. Whenever the sum of all the coefficients equals zero then E^x is a solution. You can easily add an appropriate set of boundary conditions that make E^x be the unique solution. However, if the ODE is complicated enough then Mathematica will not find that solution. If it were to look for such solutions, then why not look for the solutions E^(2 x) or E^(k x) for arbitrary k or arbitrary polynomial solutions, or ... The upshot is that DSolve uses a set of algorithms that solve entire classes of problems. What class of problems does the above problem belong to? 1) If you want to solve the 2-D Laplace equation on any rectangle with Dirichlet boundary conditions (u= something) on all sides, with three conditions of the form u==0 and the fourth of the form u==f, where = f is c Sin[k( x-x0)]] or c Sin[k (y-y0)] and vanishes at the endpoints of the boundary interval, then you need to check that the boundary conditions are given for two values of each variable, that three of the four conditions say that u equals zero, and that the fourth is of the above form. You can then write a function myDSolve that will give the solution u[x_,y_]=f[x] Sinh[k (y-y0)]/Sinh[k (y1-y0)] where the boundary value f is taken on at y==y1, and the value zero at y==y0, except that you may need to switch the roles of x and y. 2) If you want to solve the Laplace equation in arbitrary dimensions then there are analogous but more complicated formulas. 3) If you have nonzero boundary values on all sides then in dimension d the solution will be a sum of 2^d terms of the above form. So it should be possible to write a Mathematica program that will find solve problems of generality 1-3. However: 4) If you want to allow the boundary data f to be an arbitrary smooth function that vanishes at the endpoints of the boundary interval then you need to calculate its Fourier Sine coefficients and form an infinite series of solutions of the above form. In general Mathematica will not be able to calculate Integrate[f[x] Sin[k x],{x,0,Pi}] to obtain those coefficients. Moreover, even when Mathematica does calculate the above integral, substituting specific values for k may yield 0/0 and hence give the answer Indeterminate. For example try calculating the general formula for the Fourier Sine coefficients on the interval [0,Pi] of the function f[x_]= x Sin[3 x]. For this particular function it is easy to see that this problem occurs only for k==3, but in general it is probably not possible to determine what the bad values of k are. 5) If you want to allow more general boundary conditions and more general PDEs you will find that in general you cannot calculate explicitly the appropriate eigenfunctions to use in the series expansion, at which point you are stuck. So (Disclaimer once again: I am not from Wolfram so this is just a guess) the reason DSolve does not find your solution is apparently that generality levels 1-3 seem too specific to bother implementing, while levels 4-5 are too difficult. Steve On Jun 2, 9:05 am, peter lindsay <plinds... at googlemail.com> wrote: > forgive the simplicity of this: > > D[u[x, y], {x, 2}] + D[u[x, y], {y, 2}] == 0 > > BCs={u[0, y] == 0, u[x, 0] == 0, u[1, y] == 0, u[x, 1] == == > Sin[=F0 x]} > > DSolve etc, etc, etc... > > A solution is Sin[Pi x] Sinh[Pi y] > > How can I get mathematica to come up with this gem ? > > thanks, and sorry again for any stupidity on my part > > Peter Lindsay
- Follow-Ups:
- Re: PDE, laplace, exact, should be simple...
- From: peter <plindsay.0@gmail.com>
- Re: PDE, laplace, exact, should be simple...