7080 Reputation

19 Badges

14 years, 12 days

MaplePrimes Activity

These are replies submitted by ecterrab

Could you please (always) attach the worksheet with the contents you show? For that purpose you can use the Green arrow. Besides that, to give values to the _Fn see ?eval, and if you open the help page for Infinitesimals (always check the help pages before using commands) right at the top you see the option specialize_Fn. You may also want to take a look at the help page of CharacteristicQInvariants.

I can't help you with that. Anyway, for the example you indcate, in my opinion the degree is 1, not 2, since it is linear in the highest derivative, the rest of the terms are not relevant regarding the degree (see the examples in the literature referenced in the wiki page you posted).

Provided the DE you pass is of integer degree in the highest order derivatives (could be an ODE or a PDE), the following procedure gives you the degree:

de_degree := proc(de, f::expects(unknown) := NULL)
local de_in_diff_notation, derivatives, diff_ord;

de_in_diff_notation := convert(`if`(de::`=`, (lhs-rhs)(de), de), diff);
derivatives := indets(de_in_diff_notation, specfunc(diff));
if f <> NULL then
    derivatives := select(has, derivatives, f);
if derivatives = {} then return(0) fi;
diff_ord := PDEtools:-difforder(derivatives);
derivatives := select(u -> PDEtools:-difforder(u) = diff_ord, derivatives);
max(map2(degree, de_in_diff_notation, derivatives));


> DE := (1 + diff(y(x, t), x)^2)^(3/2) = diff(y(x, t), x $ 2)*diff(y(x, t), t, t)^3*diff(f(x, t), x $ 3, t $ 3)^2;
> de_degree(DE);


> de_degree(DE, y(x,t));


Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft


In the previous reply by Rouben he gave a beautiful/skilled presentation showing that: given the two PDEs for Q(x, z, t) and W(x, z, t) and the relationships for the auxiliary functions phi(x, z, t) and psi(x, z, t) as the laplacians of Q and W:

"phi(x,z,t)=((&PartialD;)^(2 )W)/((&PartialD;)^( )x^2)+((&PartialD;)^(2 )W)/((&PartialD;)^( )z^2)",
"psi(x,z,t)=((&PartialD;)^(2 )Q)/((&PartialD;)^( )x^2)+((&PartialD;)^(2 )Q)/((&PartialD;)^( )z^2)".

then these two auxiliary functions phi and psi satisfy wave equations with different velocities

"((&PartialD;)^2phi)/((&PartialD;)^( )t^2)=mu/(rho)(((&PartialD;)^2phi)/((&PartialD;)^( )x^2)+((&PartialD;)^2phi)/((&PartialD;)^( )z^2)),"
"((&PartialD;)^2psi)/((&PartialD;)^( )t^2)=(lambda+2 mu)/(rho)(((&PartialD;)^2psi)/((&PartialD;)^( )x^2)+((&PartialD;)^2psi)/((&PartialD;)^( )z^2)),"

Rouben's presentation used two commands, not very well known by most people, that are really powerful - gems of the Maple library: PDEtools:-casesplit  and simplify/siderels  (with respect to side relations)


From those two commands, the least known one is PDEtools:-casesplit. In this presentation I want to show that this command is so powerful and versatile that once you mastered it you can do surprising things. For instance, achieve Rouben's result with a single call to PDEtools:-casesplit, not using any particularly obscure syntax or knowledge, and at the same time decoupling of the systems of equations for Q(x, z, t) and W(x, z, t) requested by madany when he started this thread.

For readability use a compact display for all these functions

PDEtools:-declare((Q, W, phi, psi)(x, z, t))

` Q`(x, z, t)*`will now be displayed as`*Q


` W`(x, z, t)*`will now be displayed as`*W


` phi`(x, z, t)*`will now be displayed as`*phi


` psi`(x, z, t)*`will now be displayed as`*psi


Start entering the equations pde1 and pde2 posted by madany and the relationship, all written on a Maple worksheet by Rouben

pde1 := rho*(diff(Q(x, z, t), t, t, x))+rho*(diff(W(x, z, t), t, t, z))-(lambda+2*mu)*(diff(Q(x, z, t), x, x, x)+diff(Q(x, z, t), x, z, z))-mu*(diff(W(x, z, t), x, x, z)+diff(W(x, z, t), z, z, z)) = 0

pde2 := rho*(diff(Q(x, z, t), t, t, z))-rho*(diff(W(x, z, t), t, t, x))-(lambda+2*mu)*(diff(Q(x, z, t), x, x, z)+diff(Q(x, z, t), z, z, z))+mu*(diff(W(x, z, t), x, x, x)+diff(W(x, z, t), x, z, z)) = 0

relationship := phi(x, z, t) = diff(W(x, z, t), x, x)+diff(W(x, z, t), z, z), psi(x, z, t) = diff(Q(x, z, t), x, x)+diff(Q(x, z, t), z, z)

Construct now a system with the four equations, not just pde1 and pde2

sys := [pde1, pde2, relationship]

Now think: we want Q and W expressed as functions of psi and phi, plus equations for them not involving Q or W. According to the help page of casesplit, that can be achieved with a ranking of the form [{Q, W}, {phi, psi}]. In addition, we want Q and W decoupled, so according to the help page, for that purpose, your ranking should be of elimination type with respect to Q and W, explained in the page it should then be written as "[Q, W, {psi, phi}]."

That is all.

PDEtools:-casesplit(sys, [Q, W, {phi, psi}])

`casesplit/ans`([diff(diff(diff(Q(x, z, t), t), t), x) = (mu*(diff(phi(x, z, t), z))+lambda*(diff(psi(x, z, t), x))+2*mu*(diff(psi(x, z, t), x))-rho*(diff(diff(diff(W(x, z, t), t), t), z)))/rho, diff(diff(diff(Q(x, z, t), t), t), z) = (lambda*(diff(psi(x, z, t), z))+2*mu*(diff(psi(x, z, t), z))-mu*(diff(phi(x, z, t), x))+rho*(diff(diff(diff(W(x, z, t), t), t), x)))/rho, diff(diff(Q(x, z, t), x), x) = psi(x, z, t)-(diff(diff(Q(x, z, t), z), z)), diff(diff(W(x, z, t), x), x) = phi(x, z, t)-(diff(diff(W(x, z, t), z), z)), diff(diff(psi(x, z, t), x), x) = (-lambda*(diff(diff(psi(x, z, t), z), z))-2*mu*(diff(diff(psi(x, z, t), z), z))+rho*(diff(diff(psi(x, z, t), t), t)))/(lambda+2*mu), diff(diff(phi(x, z, t), x), x) = (-mu*(diff(diff(phi(x, z, t), z), z))+rho*(diff(diff(phi(x, z, t), t), t)))/mu], [])


Note the derivatives displayed compactly, indexed, due to using PDEtools:-declare in (1). The last two equations of (2) above are, precisely, the wave equations for phi and psi, shown by Rouben, and the first four equations are the decoupled version of the system presented by madany, where W satisfies an equation not involving Q, that is, W[x, x] = phi-W[z, z], and the other equations express Q as a function of the rest, all of which have been decoupled (that is the meaning of sequential decoupling, at the root of how dsolve and pdsolve work).



Download mw_(reviewed).mw

Edgardo S. Cheb-Terrab
Physics, Differential Equations an Mathematical Functions, Maplesoft

Before using any command, always give a look to the help page. The second argument you are passing is not according to the help page. By the way this example doesn't need second argument, and the decoupling is sequential, as explained in the help page; ie you will get a subsystem that only involves Q, and assuming you can solve it, there is another subsystem involving W and Q: put there the value you obtain for Q by solving the first subsystem. In this example, the subsystem for Q consists of a single 4th order PDE.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

Could you please edit your post showing the expected simplified form, either in Maple notation or in Mathematica notation (copy an paste suffices, but not in LaTex (forces a manual conversion to Maple or Mathematica which is prone to mistakes). Thanks.

Also, why are you doing this with DifferentialGeometry? It is really much simpler using Physics.

Edgardo S. Cheb-Terrab
Physics, Differential Equations, and Mathematical Functions, Maplesoft


Regarding 2.: only the tensors that are "single letter" have an underscore at the end so that these single letters can be used for other purposes. These include g_, d_, D_, l_, n_, m_, gamma_, and then for consistency also D3_ gamma3_ from the ThreePlusOne package.

Regarding 1., the D_ operator is displayed with Nabla. Try D_[mu](A[nu](X)) to see that in the output. And how do you make it look that way in the input? Type it literally, as D_[mu](A[nu](X)), then right-click that input, and choose 2D - Math -> Convert To -> 2D Math input, and there you are. In the case of a procedure like the one you see after (23), I do it in two steps: first as said, and after I have the right math look of the formula I placed the cursor at the beginning and typed T ->.

I'm glad to hear you are having a pleasant experience with the Physics package. This project aimed at partly transforming the arduous sensation of some physics algebraic computations into smooth gliding. It takes some time for your brain to get convinced, but as soon as that happens, it is fantastic how the imagination unleashes (computations become a pleasure). We are not all there yet, but each year getting closer, and for me listening to questions and providing feedback is key in the development process.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft


Your question is not clear to me. There are four coordinates, could be any symbols, say X = (x1, x2, x3, x4).

IMPORTANT: note that, in Maple, `[]` is the selection operator. Given a list X := [a, b, c, d], there is no meaning for X[0]. So to make the notation X[0] work in the computer as we do with paper and pencil we need to map X[0] into X[n] for some n that is a positive integer. This is relevant for tensors, say the metric g_[mu,nu], because the order of lines and columns in the matrix representation is according to the ordering of the coordinates, and here again, in the context of a computer, there is no meaning to "the 0th column" of a matrix. Lines and columns are associated to positive integer numbers.

So suppose that the signature is `+ + + -`. The different sign is the last one, in position 4, and that is the timelike position . Thus the mapping we use (as in textbooks or paper and pencil) is that the value 0 for the index always points to the  timelike position, and so for this signature X[0] = X[4], and X[1..3] are the spacelike coordinates, and in the case of the metric g_[0, 0] = g_[4, 4], meaning you get the component in line 4 and column 4 of the matrix representation for g_.

If the signature is  `- + + +` then X[0] = X[1] (the timelike coordinate for this signature) and X[2..4] are the three spacelike coordinates and g_[0, 0] = g_[1, 1], you see this in the matrix representation of the metric (enter g_[]).

To see this mapping at work for the coordinates, use SpacetimeVector[0](X) with the two different settings of the signature.

If you prefer to avoid having to select the coordinate with a number and forget about this subtlety of what is the timelike position in the signature, you can always Setup(usecoordinatesastensorindices = true). Suppose your coordinates are [t, x, y, z], or [x, y, z, t] it doesn't matter: you can now index directly with the coordinates themselves, as in Christoffel[t,t,t] to get its value.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

Hi, when posting a question, always try to see your question through the eyes of the people you are directing the question, for instance, whether you are providing enough information for someone to reproduce your problem in order to give you some useful feedback. Reading your question, for me, there is not enough information. I don't know what you are doing, but if you repost with details then try to give all that is necessary to reproduce your problem entirely and without ambiguity.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft.


Could you please post a worksheet with the formulation of the problem up to what you can do it? (You can create the worksheet, then upload it using the green arrow).

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

@Mariusz Iwaniuk 

The error you show in Run_code_2 is fixed by installing the Physics Updates v.353. The PDE problem itself is not solved in this moment, but it is solvable - we will work on this one and a couple of other ones as soon as there is a window of time.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

Do you mean a non-symmetric metric?


I believe I identified the issue (an advanced library from the development repository interferring in my computer). So my understanding is that by installing v.350 of the Physics Updates this problem (unexpected error interruption) stops happening. As usual please post again if this change doesn't correct the problem.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

What version of Maple are you using? Could you please input > version(); and show the output? Thanks

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

@Rouben Rostamian  

The pdsolve command is programmed to solve systems of PDEs, so this problem posted is the kind of problem it handles. When the system is inconsistent, it will tell you. By the way, I cannot reproduce the problem mentioned by Mac Dude: the system is solved right away (see the answer by tomleslie).

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

The PDE system to be solved, whose solution are the Killing vectors, is of course the same - no matter what package you use. The PDE solver is also the same, Maple's pdsolve. Some relevant options to tackle the problem, however, are not available in both packages. The Physics:-KillingVectors command has more options, regarding how to tackle the system, providing only the PDE system without tackling, and also regardng the format of the output, that it is wysiwyg. Those differences may be relevant if your problem is tough (as I understood from your original post that it is your case). The rest is a matter of preference.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Funcftions, Maplesoft.

1 2 3 4 5 6 7 Last Page 1 of 38