Prev: How do make the output of Graphics[ ] print out in "Inch" units ?
Next: Slight changes of the existing StyleSheet
From: peter on 10 Jun 2010 08:07 Hello Steve thanks for your detailed answer to my query. [ Incidentally I should apologise for the inexplicable profusion of equal signs in my postings, I'm almost afraid to type another one. ] I noticed that another maths package was able to arrive, with a little prompting, at the correct solution and wondered if I was missing something obvious using Mathematica. I'll study your comments closely, many thanks Peter On 9 June 2010 12:19, schochet123 <schochet123(a)gmail.com> wrote: > 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, wher= e = > 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==y= 0, > 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...(a)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 > > > |