0
|
3346 Views
|
2 Replies
|
0 Total Likes
View groups...
Share
GROUPS:

# NDSolve: graph of the partial derivative?

Posted 10 years ago
 Hi everybody!I worked some time using Wolfram Mathematica, but now I'm dealing with a problem I don't know how to solve.The question is the following: I use NDSolve trying to find the numerical approximation to the exact solution of PDE. Then I need to draw a graph, where the partial derivative of this solution is used, but I don't know how to do that. In Help it is written, that if sol - is the numerical solution of ODE, then y'/.sol gives the numerical approximation to the derivative, but as I understand, such a trick doesn't work with PDEs. R = 1000; V = 0.1; sol = NDSolve[{D[A[t, x, y, z], t] +       V*Sin[z]*Exp[-z/R]*D[A[t, x, y, z], x] == (1/R)*      D[A[t, x, y, z], z, z], A[0, x, y, z] == Sin[x] + Sin[y],     A[t, 0, y, z] == A[t, 2*Pi, y, z],     A[t, x, 0, z] == A[t, x, 2*Pi, z]},    A, {t, 0, 10}, {x, 0, 2*Pi}, {y, 0, 2*Pi}, {z, 0, 10}] Manipulate[ Plot3D[A[t, x, y, z] /. First[sol], {t, 0, 10}, {x, 0, 2*Pi}], {y, 0,   2*Pi}, {z, 0, 10}]v1[t_, x_, y_, z_] :=   Exp[-t/R]*(V*Sin[z] - A[t, x, y, z] /. First[sol]);Manipulate[ Plot3D[v1[t, x, y, z], {t, 0, 10}, {x, 0, 2*Pi}], {y, 0, 2*Pi}, {z,   0, 10}]In the last but one line instead of A[t,x,y,z]/.First I'd like to get D[A[t,x,y,z],x]/.First, but such a command doesn't work.Thanks beforehand!
2 Replies
Sort By:
Posted 10 years ago
 Hi, you need to use Evaluate[] function, see example below: (* your code *) R = 1000; V = 0.1; sol = NDSolve[{D[A[t, x, y, z], t] +       V*Sin[z]*Exp[-z/R]*D[A[t, x, y, z], x] == (1/R)*      D[A[t, x, y, z], z, z], A[0, x, y, z] == Sin[x] + Sin[y],     A[t, 0, y, z] == A[t, 2*Pi, y, z],     A[t, x, 0, z] == A[t, x, 2*Pi, z]},    A, {t, 0, 10}, {x, 0, 2*Pi}, {y, 0, 2*Pi}, {z, 0, 10}](* added *)nsol = Evaluate[A[t, x, y, z] /. sol][[1, 0]]; (* this can be used to get some values *)nsol[0, 0, 0, 0]nsol[0, Pi/2, 0, 0]nsol[0, Pi/2, Pi/2, 0](* plotting *)Plot[nsol[x, 0, 0, 0] /. x -> t, {t, 0, 10}](* plot par. der. vs. t *)Plot[D[nsol[x, 0, 0, 0], x] /. x -> t, {t, 0, 10}]I.M.
Posted 10 years ago