From: Frank Breitling on 9 Feb 2010 02:45 Hi Bobby, My real equation is D[r^2 k0 T[r]^(5/2) T'[r], r] == 3/2 kB T'[r]-(kB T[r])/n[r] n'[r] where kB and k0 are constants and n[r] is a monotonically decreasing (non analytic) function with n[r]->0 for r->infinity. I think I can't apply your transformation here. But anyways thanks a lot for your thoughts! Frank On 2010-02-08 18:43, DrMajorBob wrote: >> Therefore my question is whether it is possible to solve my simplified >> example using NDSolve or any other non analytic method of Mathematica. > > I solved this with DSolve in my post, but NDSolve also works: > > NDSolve[{y''[r] == 0, y[0] == 50, y[1] == 1/2}, y, {r, 0, 1}] > > {{y->InterpolatingFunction[{{0.,1.}},<>]}} > > If your simplified example is like the real problem, there should be a > way to transform, as I did, and solve. > > Bobby > > On Mon, 08 Feb 2010 03:46:38 -0600, Frank Breitling <fbreitling(a)aip.de> > wrote: > >> Dear Bobby, >> >> Thank you very much for your answer. >> Unfortunately my original problem doesn't allow for an analytic >> solution, since the equation is more complex and involves interpolating >> functions. >> Therefore my question is whether it is possible to solve my simplified >> example using NDSolve or any other non analytic method of Mathematica. >> >> Frank >> >> >> On 2010-02-06 22:42, DrMajorBob wrote: >>> Define y as follows and compute its derivative: >>> >>> Clear[x,y,r] >>> y[r_]=x[r]^2/2; >>> y'[r] >>> >>> x[r] (x^\[Prime])[r] >>> >>> Hence your equations are equivalent to >>> >>> {y''[r]==0, y[0] == 50, y[1] == 1/2} >>> >>> The first equation says that y is linear. Specifically, >>> >>> y[r_] = InterpolatingPolynomial[{{0, 50}, {1, 1/2}}, r] >>> >>> 50 - (99 r)/2 >>> >>> and hence, >>> >>> x[r_] = Sqrt[2 y[r]] >>> >>> Sqrt[2] Sqrt[50 - (99 r)/2] >>> >>> Solving the same thing in Mathematica, we get: >>> >>> Clear[y] >>> DSolve[{y''[r]==0,y[0]==50,y[1]==1/2},y,r] >>> {{y->Function[{r},1/2 (100-99 r)]}} >>> >>> Or, for the original problem: >>> >>> Clear[x, r] >>> DSolve[{D[x[r] x'[r], r] == 0, x[0] == 10, x[1] == 1}, x, r] >>> >>> {{x -> Function[{r}, -I Sqrt[-100 + 99 r]]}} >>> >>> That's the same as the earlier (real-valued) solution, even though it >>> appears to be Complex. >>> >>> Simplify[-I Sqrt[-100 + 99 r] - Sqrt[2] Sqrt[50 - (99 r)/2], >>> r < 100/99] >>> >>> 0 >>> >>> Bobby >>> >>> On Sat, 06 Feb 2010 02:23:21 -0600, Frank Breitling <fbreitling(a)aip.de> >>> wrote: >>> >>>> Hello, >>>> >>>> I was not able to solve the following differential equation with >>>> Mathematica 7.01.0 using: >>>> >>>> NDSolve[{D[x[r]x'[r],r]==0, x[0]==10, x[1]==1}, x, {r,0,1}] >>>> >>>> Since my original problem is inhomogeneous and involves interpolating >>>> functions DSolve is not an option. >>>> >>>> Is there a way to solve this problem using Mathematica? >>>> Any help is highly appreciated. >>>> >>>> Best regards >>>> >>>> Frank >>>> >>> >>> >> > >
From: DrMajorBob on 9 Feb 2010 02:46 I suspect you'll get better responses, now, after posting the actual problem. Bobby On Mon, 08 Feb 2010 12:15:26 -0600, Frank Breitling <fbreitling(a)aip.de> wrote: > Hi Bobby, > > My real equation is > > D[r^2 k0 T[r]^(5/2) T'[r], r] == 3/2 kB T'[r]-(kB T[r])/n[r] n'[r] > > where kB and k0 are constants and n[r] is a monotonically decreasing > (non analytic) function with n[r]->0 for r->infinity. > > I think I can't apply your transformation here. > But anyways thanks a lot for your thoughts! > > Frank > > > On 2010-02-08 18:43, DrMajorBob wrote: >>> Therefore my question is whether it is possible to solve my simplified >>> example using NDSolve or any other non analytic method of Mathematica. >> >> I solved this with DSolve in my post, but NDSolve also works: >> >> NDSolve[{y''[r] == 0, y[0] == 50, y[1] == 1/2}, y, {r, 0, 1}] >> >> {{y->InterpolatingFunction[{{0.,1.}},<>]}} >> >> If your simplified example is like the real problem, there should be a >> way to transform, as I did, and solve. >> >> Bobby >> >> On Mon, 08 Feb 2010 03:46:38 -0600, Frank Breitling <fbreitling(a)aip.de> >> wrote: >> >>> Dear Bobby, >>> >>> Thank you very much for your answer. >>> Unfortunately my original problem doesn't allow for an analytic >>> solution, since the equation is more complex and involves interpolating >>> functions. >>> Therefore my question is whether it is possible to solve my simplified >>> example using NDSolve or any other non analytic method of Mathematica. >>> >>> Frank >>> >>> >>> On 2010-02-06 22:42, DrMajorBob wrote: >>>> Define y as follows and compute its derivative: >>>> >>>> Clear[x,y,r] >>>> y[r_]=x[r]^2/2; >>>> y'[r] >>>> >>>> x[r] (x^\[Prime])[r] >>>> >>>> Hence your equations are equivalent to >>>> >>>> {y''[r]==0, y[0] == 50, y[1] == 1/2} >>>> >>>> The first equation says that y is linear. Specifically, >>>> >>>> y[r_] = InterpolatingPolynomial[{{0, 50}, {1, 1/2}}, r] >>>> >>>> 50 - (99 r)/2 >>>> >>>> and hence, >>>> >>>> x[r_] = Sqrt[2 y[r]] >>>> >>>> Sqrt[2] Sqrt[50 - (99 r)/2] >>>> >>>> Solving the same thing in Mathematica, we get: >>>> >>>> Clear[y] >>>> DSolve[{y''[r]==0,y[0]==50,y[1]==1/2},y,r] >>>> {{y->Function[{r},1/2 (100-99 r)]}} >>>> >>>> Or, for the original problem: >>>> >>>> Clear[x, r] >>>> DSolve[{D[x[r] x'[r], r] == 0, x[0] == 10, x[1] == 1}, x, r] >>>> >>>> {{x -> Function[{r}, -I Sqrt[-100 + 99 r]]}} >>>> >>>> That's the same as the earlier (real-valued) solution, even though it >>>> appears to be Complex. >>>> >>>> Simplify[-I Sqrt[-100 + 99 r] - Sqrt[2] Sqrt[50 - (99 r)/2], >>>> r < 100/99] >>>> >>>> 0 >>>> >>>> Bobby >>>> >>>> On Sat, 06 Feb 2010 02:23:21 -0600, Frank Breitling >>>> <fbreitling(a)aip.de> >>>> wrote: >>>> >>>>> Hello, >>>>> >>>>> I was not able to solve the following differential equation with >>>>> Mathematica 7.01.0 using: >>>>> >>>>> NDSolve[{D[x[r]x'[r],r]==0, x[0]==10, x[1]==1}, x, {r,0,1}] >>>>> >>>>> Since my original problem is inhomogeneous and involves interpolating >>>>> functions DSolve is not an option. >>>>> >>>>> Is there a way to solve this problem using Mathematica? >>>>> Any help is highly appreciated. >>>>> >>>>> Best regards >>>>> >>>>> Frank >>>>> >>>> >>>> >>> >> >> > -- DrMajorBob(a)yahoo.com
From: JH on 13 Feb 2010 05:23 Hi: Perhaps you can try something like: n[r_] := Exp[-3 r]; (* You haven't give an approximate function. At least this is decreasing, and goes to 0 as r goes to inf *) r0 = 0.001; (* You can try an initial point near the origin, as r = 0 is causing a 1/0 error (because of the r^2 factor of T''[r]) *) sol = NDSolve[{(D[r^2 k0 T[r]^(5/2) T'[r], r] == 3/2 kB T'[r] - (kB T[r])/n[r] n'[r]) /. {k0 -> -1.72, kB -> 100}, T[r0] == 10, T'[r0] == -1}, T[r], {r, r0, 1}, AccuracyGoal -> 10] Plot[T[r] /. sol, {r, r0, 1}, AxesOrigin -> {0, 0}, PlotRange -> All] You haven't give any value for k0 nor for kB. My election match with your boundary conditions. If you give an approximate function (polynomial, for instance) for n[r] and the values for k0 and kB perhaps we can give you a better solution. Bye, JH
From: Frank Breitling on 16 Feb 2010 03:50 Hi JH, The problem you are solving is different from mine for it not having Dirichlet boundary conditions. However Udo found the solution as follows: In[1]:= sol = NDSolve[{D[y[x] D[y[x], x], x] == 0, y[0] == 100, y[1] == 10}, y, {x, 0, 1}, Method -> {"Shooting", "StartingInitialConditions" -> {y[0] == 1/1000, y'[0] == -1/100}}] In[2]:= Plot[sol[[1, 1, 2]][x], {x, 0, 1}] See his reply at http://www.mathematica.ch/dmug-archive/2010/msg00023.html .. This is what I was looking for and clearer than at the Wolfram page mentioned above. Cheers Frank
First
|
Prev
|
Pages: 1 2 Prev: a harmless notebook crashes Windows 7: who else had it? Next: parallel table |