ecterrab

14560 Reputation

24 Badges

20 years, 86 days

MaplePrimes Activity


These are answers submitted by ecterrab

Hi Mac
In brief, right after 'with(Physics:-Vectors)' enter 'Setup(geometricdifferentiation = false)', and then the flow will be as you expected (already verified that with the worksheet you posted). For details see ?Physics:-Setup, where geometricdifferentiation is explained, or with more details see ?Physics[Vectors][diff].

Alternatively, you can perform the same computation without canceling geometricdifferentiation: you'd need to indicate to dchange also the change rule for the dependent variable of your problem (convenient in general), that is E1_(x,y,z,t), so your input line for dchange would be:

TR := {x = r*cos(theta), z = r*sin(theta), E1_(x,y,z,t) = R(r)*exp(I*(-k*y+omega*t))};

PDEtools:-dchange(TR, -(diff(E1_(x, y, z, t), x, x))-(diff(E1_(x, y, z, t), y, y))-(diff(E1_(x, y, z, t), z, z)) = -mu*epsilon*(diff(E1_(x, y, z, t), t, t)), [r, theta, R(r)], simplify);

This is a better approach, keeps geometridifferentiation working, and removes the need of that posterior subs that you do in the worksheet.

Regarding updating Physics in Maple 17.02, have no doubt, it is convenient: you will have access to many improvements as well as most of Maple 18 developments, and bug fixes. The place were you get the update is always the same: the Maplesoft R&D page for Physics. There you see a link to the Maple 18 updates that happened so far (the library in this link does not work for Maple 17) and another link for the latest update for Maple 17, dated March/18/2014.

Edgardo S. Cheb-Terrab
Physics, Maplesoft

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

Hi Mac,
This is yet another solution for Maples before Maple 18:

> unprotect(intat):
> Intat := setattribute('Intat', '_syslib'):
> protect(intat):

That will just make Intat fully inert and resolve your issue the same way as the other 'workarounds', though in this case it is more a solution than a workaround. And for Maple 18, this will be available in a couple of days on the webpage with updates to the DE and mathematical functions libraries.

Edgardo S. Cheb-Terrab
Physics, Maplesoft

Hi
Indeed, Alejandro is right when saying that Intat is not entirely inert: it checks arguments, from a time (actually, 1996) when inert routines were under discussion. I will remove this check of arguments.

Then you can also use %intat (so: the active lowercase command preceeded by the %) instead of Intat, and if that doesn't work, it needs to be fixed. I have not tried with your example, but am cooking an update on DEs and Mathematical Functions to be released this week and can include a fix for this too if it doesn't work (please let me know).

Then there is the use of single versus double quoting or use of value: generally speaking, double quoting or double calls to value should not be necessary, but if you use %Intat (so the uppercase preceeded by %) you will naturally need double calls to value, the same way if you use %Int instead of %int, for example as in value(value(%Int(x,x))).

The message I am trying to pass is that the real issues are to be fixed, not worked around. The fixes are easy to accomplish and can be available to everybody as soon as this week (CAVEAT: they only work in Maple 18).

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

Hi
Just gave a look and updated the Maplesoft webpage: this issue related to having to apply Simplify twice to obtain zero is fixed. So now Simplify((16) - (14)) returns zero in one go and the same for Simplify((rhs((17)) - rhs((15))).

Edgardo S. Cheb-Terrab
Physics, Maplesoft

Hi Markiyan

In cases like this one (fractional powers and some other ones) one approach is to transform your problem into one that is a bit more general, solve that one, then try restricting the solutions to solve the original problem - sometimes you only need to select the solution that is useful.

For example, you starting expression is

y^2+y^3+(y^3-x^2-3*x*y)^(1/4) <= 5*x*y;

Isolate the radical

isolate(%, (y^3-x^2-3*x*y)^(1/4));

Now map both sides to the power 4

map(u -> u^4, %);

Solve this more-general problem:

solve(%, allsolutions);  # bunch of solutions here

And, I haven't tried, but either one of these already solves your problem or from their remainder (obtained after substituting the solution into the original problem and simplifying) you could see how to particularize it further.

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

Looking closer, the simplification works fine. You say that "equation (16) should correspond to equation (14)" and that is indeed the case. One way to verify that is to take the difference (16) (14) and perform the summation over all the repeated indices:

Vacuum_Solutions_reviewed.mw

Edgardo S. Cheb-Terrab
Physics, Maplesoft

Hi Mac,
There is no addBasis command, the three coordinate systems with which the Physics :-Vectors package works are fixed, as explained in ?Physics,Vectors : [x, y, z], [rho, phi, z], [r, theta, phi]. I do have in mind implementing arbitrary basis, but it is not high in the list of priorities, mainly because these three systems of coordinates cover most applications & textbooks, swapping two coordinates in the basis definition does not really change the geometry (the existing system is mostly as good for that purpose), and there are various other things - new functionality - that look more relevant or having higher positive impact if implemented.

Regarding Physics being open: it is as open as any other Maple program. You can see the routines and change them if you want. More important: Physics (starting with Maple 17) comes with a library of more than 100 dedicated-physics-programming commands, plus approx 70 physics-dedicated-types, basically all the routines used to write Physics, that allow you to extend the package in different ways if you are willing to program. Various of these "programming" routines are also useful at interactive level. Details are in the help page (available online) ?Physics,Library

But you need to update your Maple, Mac. Have in mind that the Physics package duplicated its size for Maple 16, then again for Maple 17, and mostly one more time for Maple 18, not to mention that by now more than 40 updates were posted in the Maplesoft R&D Physics webpage after Maple 18 got released.

Edgardo S. Cheb-Terrab
Physics, Maplesoft

Hi Mac,

The problem in old maples is that assuming replaces the cartesian coordiante x with a local one and then the Nabla operator in Physics differentiates as in diff(local_x, global_x) = 0. This has been fixed in previous Maples - it works fine in Maple 18, and also in Maple 17 + the Physics update. This is what I receive in Maple 18:

 

"Maple Initialization loaded..."

(1)

restart:with(Physics[Vectors]);
Setup(mathematicalnotation = true);

[`&x`, `+`, `.`, ChangeBasis, Component, Curl, DirectionalDiff, Divergence, Gradient, Identify, Laplacian, Nabla, Norm, Setup, diff]

 

[mathematicalnotation = true]

(2)

# Maxwell's eqn
M4 := `&x`(Nabla, B1_(x, y, z, t)) = mu*epsilon*(diff(E1_(x, y, z, t), t));

Physics:-Vectors:-Curl(B1_(x, y, z, t)) = mu*epsilon*(diff(E1_(x, y, z, t), t))

(3)

eval(subs(B1_(x,y,z,t)=Bxx(x,y,z,t)*_i+Bzz(x,y,z,t)*_k,M4));

(diff(Bzz(x, y, z, t), y))*_i+(diff(Bxx(x, y, z, t), z)-(diff(Bzz(x, y, z, t), x)))*_j-(diff(Bxx(x, y, z, t), y))*_k = mu*epsilon*(diff(E1_(x, y, z, t), t))

(4)

eval(subs(B1_(x,y,z,t)=Bxx(x,y,z,t)*_i+Bzz(x,y,z,t)*_k,M4)) assuming real;

(diff(Bzz(x, y, z, t), y))*_i+(diff(Bxx(x, y, z, t), z)-(diff(Bzz(x, y, z, t), x)))*_j-(diff(Bxx(x, y, z, t), y))*_k = mu*epsilon*(diff(E1_(x, y, z, t), t))

(5)

The above is in Maple 18, but you can reproduce it in Maple 17 as well including the update of Physics available on the Maplesoft R&D Physics webpage.

 

In brief: you need to update your Maple.

 

NULL

 

Download Maxwell_testMaple18.mw

Edgardo S. Cheb-Terrab
Physics, Maplesoft

Hi

I am not sure I understand your problem, but if what you want is to solve 

ee := A*cos(x)+R*i*sin(x) = B*exp(-x)+C*exp(x);

For A, B, C, R independent of x, and such that ee is true for arbitrary values of x, as far as I can tell the problem has no solution but for the trivial solution. The command in Maple that performs this computation is PDEtools:-Solve. Check its help page for details. The input/output for your example is as follows:

PDEtools:-Solve(ee, {A, B, C, R}, independentof = x);

                                                  {A = 0, B = 0, C = 0, R = 0}


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

@John Fredsted 

We included the fix to this problem in the latest update for Maple 17, that also includes all the changes in the package till March 18 2014, and with this we close the updates for Maple 17. This update is available for download as usuai on the Maplesoft R&D Physics webpage (note that there are two links: one for the ongoing updates in Maple 18, these do not work in Maple 17, and another link, Physics-61.3.mla.zip, with the latest update for Maple 17).

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

@Carl Love 
I see, you are correct Carl, and yes, the MeijerG function of two arguments (not talking about its list of parameters) does not exist as such in Maple. It is however easy to translate in some cases, for example in the one posted:

MeijerG[{{0, 1/2}, {}}, {{0, 1}, {-1, -1}}, 10, 1/2] = MeijerG[{{0, 1/2}, {}}, {{0, 1}, {-1, -1}}, 10^(1/2)] 

and the rhs above exists in Maple.

I will fix the convert facility regarding this - one more for the next update of the Mathematical functions code.

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

Hi

You ask on how to implement this function in Maple. But the MeijerG function is already implemented in Maple, you do not need to implement it. Please give a look at ?MeijerG.

Regarding your question about Matlab, or comment about the output of the Mathematica command Integrate, note please that in this forum we work with Maple, not Matlab nor Mathematica, so perhaps it is better if you ask those question in Matlab or Mathematica forums?

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

Hi
If all what you want is to indicate that {a, b} are real then Physics:-Setup(realobjects = {a, b}) will suffice for the `is` command, and through it everything else in the library (including conjugate), recognize these are real objects. You can also use the standard assume facility, as in assume(a, real) assume(b, real) but that changes who a and b are and that may or not be convenient in general (it frequentiy is not).

So for example Setup(quantumoperator = {a, b}, real = {a, b}) will do what you want to do, then expand(conjugate(k1*a+k2*conjugate(b))) returns as you expect/mentioned in your question.

Note also that you can indicate Setup(hermitianoperator = {a,b}) for the case of a = Dagger(a); generally speaking you can set a quantumoperator, hermitianoperator and unitaryoperator.

The types of operators that you can set as well as the realobjects are all explained in ?Physics:-Setup. 

Finally, note that entering Physics:-Setup(); so without any arguments, you open an applet that shows all the Physics setup at once, and directly in the applet you can specify quantum, hermitian and unitary operators as well as realobjects.

Edgardo S. Cheb-Terrab
Physics, Maplesoft

Generally speaking, the command for changing variables in sums is PDEtools:-dchange, for example:

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

First 48 49 50 51 52 53 54 Last Page 50 of 60