Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

This procedure calculate the equations of motions for Euclidean space and Minkowski space  with help of the Jacobian matrix.

Procedures
Calculation the equation of motions for Euclidean space and Minkowski space

"EQM := proc(eq, g,xup,xa,xu , eta ,var)"

Calling Sequence

 

EQM(eq, g, xup, xa, xu, eta, var)

Parameters

 

parameterSequence

-

eq, g, xup, xa, xu, eta, var

eq

out

equation of motion

g

out

metric

xup

out

velocitiy vector

xa

in

position vector

xu

in

vector of the independet coortinates

eta

in

signature matrix for Minkowski space

var

in

independet variable

 

``

 Procedur Code

 

restart; with(linalg); EQM := proc (eq, g, xup, xa, xu, eta, var) local J, Jp, xdd, l, xupp, ndim; ndim := vectdim(xu); xup := vector(ndim); xupp := vector(ndim); for l to ndim do xup[l] := diff(xu[l](var), var); xupp[l] := diff(diff(xu[l](var), var), var) end do; J := jacobian(xa, xu); g := multiply(transpose(J), eta, J); g := map(simplify, g); Jp := jacobian(multiply(J, xup), xu); Jp := map(simplify, Jp); xdd := multiply(inverse(g), transpose(J), eta, Jp, xup); xdd := map(simplify, xdd); xdd := map(convert, xdd, diff); eq := vector(vectdim(xupp)); for l to ndim do eq[l] := xupp[l]+xdd[l] = 0 end do end proc

``

Input

 

xa := Vector(3, {(1) = R*sin(`ϕ`)*cos(`ϑ`), (2) = R*sin(`ϕ`)*sin(`ϑ`), (3) = R*cos(`ϕ`)}); xu := Vector(2, {(1) = `ϕ`, (2) = `ϑ`}); eta := Matrix(3, 3, {(1, 1) = 1, (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = 1, (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = 1})

 

EQM(eq, g, xup, xa, xu, eta, t):

Output EOM

 

for i to vectdim(xu) do eq[i] end do;

diff(diff(`ϕ`(t), t), t)-cos(`ϕ`)*sin(`ϕ`)*(diff(`ϑ`(t), t))^2 = 0

 

diff(diff(`ϑ`(t), t), t)+2*cos(`ϕ`)*(diff(`ϑ`(t), t))*(diff(`ϕ`(t), t))/sin(`ϕ`) = 0

(5.1)

Output Line-Element

 

ds2 := expand(multiply(transpose(xup), g, xup));

(diff(`ϕ`(t), t))^2*R^2+(diff(`ϑ`(t), t))^2*R^2-(diff(`ϑ`(t), t))^2*R^2*cos(`ϕ`)^2

(6.1)

Output Metric

 

assume(cos(`ϕ`)^2 = 1-sin(`ϕ`)^2); g := map(simplify, g)

array( 1 .. 2, 1 .. 2, [( 2, 2 ) = (R^2*sin(`ϕ`)^2), ( 1, 2 ) = (0), ( 2, 1 ) = (0), ( 1, 1 ) = (R^2)  ] )

(7.1)

``

``

 

Download bsp_jacobi.mw

Procedures
Calculation the equation of motions for Euclidean space and Minkowski space

"EQM := proc(eq, g,xup,xa,xu , eta ,var)"

Calling Sequence

 

EQM(eq, g, xup, xa, xu, eta, var)

Parameters

 

parameterSequence

-

eq, g, xup, xa, xu, eta, var

eq

out

equation of motion

g

out

metric

xup

out

velocitiy vector

xa

in

position vector

xu

in

vector of the independet coortinates

eta

in

signature matrix for Minkowski space

var

in

independet variable

 

``

 Procedur Code

 

restart; with(linalg); EQM := proc (eq, g, xup, xa, xu, eta, var) local J, Jp, xdd, l, xupp, ndim; ndim := vectdim(xu); xup := vector(ndim); xupp := vector(ndim); for l to ndim do xup[l] := diff(xu[l](var), var); xupp[l] := diff(diff(xu[l](var), var), var) end do; J := jacobian(xa, xu); g := multiply(transpose(J), eta, J); g := map(simplify, g); Jp := jacobian(multiply(J, xup), xu); Jp := map(simplify, Jp); xdd := multiply(inverse(g), transpose(J), eta, Jp, xup); xdd := map(simplify, xdd); xdd := map(convert, xdd, diff); eq := vector(vectdim(xupp)); for l to ndim do eq[l] := xupp[l]+xdd[l] = 0 end do end proc

``

Input

 

t := x[0]/c; xa := Vector(4, {(1) = t, (2) = r*cos(`ϕ`), (3) = r*sin(`ϕ`), (4) = x[3]}); xu := Vector(4, {(1) = x[0], (2) = r, (3) = `ϕ`, (4) = x[3]}); eta := Matrix(4, 4, {(1, 1) = -1, (1, 2) = 0, (1, 3) = 0, (1, 4) = 0, (2, 1) = 0, (2, 2) = 1, (2, 3) = 0, (2, 4) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = 1, (3, 4) = 0, (4, 1) = 0, (4, 2) = 0, (4, 3) = 0, (4, 4) = 1})

 

EQM(eq, g, xup, xa, xu, eta, tau):

Output EOM

 

for i to vectdim(xu) do eq[i] end do;

diff(diff(x[0](tau), tau), tau) = 0

 

diff(diff(r(tau), tau), tau)-(diff(`ϕ`(tau), tau))^2*r = 0

 

diff(diff(`ϕ`(tau), tau), tau)+2*(diff(`ϕ`(tau), tau))*(diff(r(tau), tau))/r = 0

 

diff(diff(x[3](tau), tau), tau) = 0

(5.1)

Output Line-Element

 

ds2 := expand(multiply(transpose(xup), g, xup));

-(diff(x[0](tau), tau))^2/c^2+(diff(r(tau), tau))^2+(diff(`ϕ`(tau), tau))^2*r^2+(diff(x[3](tau), tau))^2

(6.1)

Output Metric

 

assume(cos(`ϕ`)^2 = 1-sin(`ϕ`)^2); g := map(simplify, g)

array( 1 .. 4, 1 .. 4, [( 3, 3 ) = (r^2), ( 3, 4 ) = (0), ( 4, 1 ) = (0), ( 1, 1 ) = (-1/c^2), ( 4, 3 ) = (0), ( 4, 2 ) = (0), ( 2, 2 ) = (1), ( 3, 2 ) = (0), ( 3, 1 ) = (0), ( 2, 4 ) = (0), ( 1, 4 ) = (0), ( 1, 2 ) = (0), ( 2, 3 ) = (0), ( 4, 4 ) = (1), ( 2, 1 ) = (0), ( 1, 3 ) = (0)  ] )

(7.1)

``

``

 

Download bsp_jacobi_minkowski.mw

Hello,

I have still some difficulties to conduct some specific trigonometric simplications but which are very common in mechanism study.

The equations are in the form :

sin(gamma0(t))*cos(beta0(t)) = -(sin(psi[1](t))*cos(theta[1](t))*cos(gamma[1](t))+sin(psi[1](t))*sin(theta[1](t))*sin(gamma[1](t))-cos(theta[1](t))*cos(psi[1](t))*sin(gamma[1](t))+cos(psi[1](t))*sin(theta[1](t))*cos(gamma[1](t)))*cos(beta[1](t))

I would like to obtain this equation after simplifications :

sin(gamma0(t))*cos(beta0(t)) = cos(beta[1](t))*sin(gamma[1](t)-theta[1](t)-psi[1](t))

I try to make a procedure to automatize the simplification of this kind of trigonometric equation.

Strangely, I noticed that the simplification is done only if there is a minus before the combine function. The simplification works but the result is wrong because i didn't obtain the good sign.

For you information, I try to make these simplifications with MMA and the FullSimplify function of MMA gives directly the expected result that is to say :

I'm sure that it shoud exist a good way to conduct this kind of simplications in Maple.

Can you help me to correct my procedure so to obtain the good result and be enough general, adaptative ? 

Code here and attached in this post :

Initialisation
restart:
with(LinearAlgebra):
with(Student[MultivariateCalculus]):
with(plots):
with(MathML):
with(ListTools):
constants:= ({constants} minus {gamma})[]:
`evalf/gamma`:= proc() end proc:
`evalf/constant/gamma`:= proc() end proc:
unprotect(gamma);
Angular Constraint equations
eq_liaison:=sin(gamma0(t))*cos(beta0(t)) = -(sin(gamma[1](t))*sin(psi[1](t))*sin(theta[1](t))-sin(gamma[1](t))*cos(theta[1](t))*cos(psi[1](t))+cos(gamma[1](t))*sin(psi[1](t))*cos(theta[1](t))+cos(gamma[1](t))*cos(psi[1](t))*sin(theta[1](t)))*cos(beta[1](t)); 
Traitement
TrigoTransform2:= proc(Eq)
local S,S1,tt,pp,Eq2,ListVariables,ListVariablesMod,Subs,size,rhsEq2,lhsEq2;
#Construit une liste à plat#
ListVariables:=indets(Eq, function(identical(t)));
ListVariables:=[op(ListVariables)];
ListVariablesMod:=map(f->cat(op(0,f),_),ListVariables);
Subs:=ListVariables=~ListVariablesMod;
#Variables Changement#
Eq2:=Eq:
print("Equation traitée=",Eq2): 
Eq2:=subs(Subs, Eq2);
print("Equation après subs=",Eq2): 
#Trigonometric transformations#
lhsEq2:=applyrule([
cos(u::anything)*cos(v::anything)-sin(u::anything)*sin(v::anything)=cos(u+v), 
cos(u::anything)*sin (v::anything)+sin(u::anything)*cos(v::anything)=sin(u+v), 
sin(u::anything)*sin(v::anything)-cos(u::anything)*cos(v::anything)=-cos(u+v), 
-sin(v::anything)*cos(u::anything)-sin(u::anything)*cos(v::anything)=-sin(u+v)], simplify(lhs(Eq2), size));
print("Equation lhsEq2 première analyse=",lhsEq2):
rhsEq2:=applyrule([
cos(u::anything)*cos(v::anything)-sin(u::anything)*sin(v::anything)=cos(u+v), 
cos(u::anything)*sin (v::anything)+sin(u::anything)*cos(v::anything)=sin(u+v), 
sin(u::anything)*sin(v::anything)-cos(u::anything)*cos(v::anything)=-cos(u+v), 
-sin(v::anything)*cos(u::anything)-sin(u::anything)*cos(v::anything)=-sin(u+v)], simplify(rhs(Eq2), size));
print("Equation rhsEq2 première analyse=",rhsEq2):
try
lhsEq2:=(trigsubs(2*combine(lhsEq2))[])/2;
print("Equation lhsEq2=",lhsEq2):
catch:
lhsEq2:=lhs(Eq2);
end try;
try
rhsEq2:=(trigsubs(-2*combine(rhsEq2))[])/2;
print("Equation rhsEq2=",rhsEq2):
catch:
rhsEq2:=rhs(Eq2);
end try;
Eq2:= lhsEq2=rhsEq2;
#Variables Changement#
Eq2:=subs(map(t->rhs(t)=lhs(t),Subs),Eq2) 
end proc:
TrigoTransform2(eq_liaison);

TrigoTransformEqAng2_anglais.mws

Thanks a lot for your help.

Hello,

A small question : what does [] mean at the end of a function or a list ? 

constants:= ({constants} minus {gamma})[]:

lhsEq2:=(trigsubs(2*combine(lhsEq2))[])/2;

Thank you for your help

Hi all,

Please help to plot radial solution "U" in n-sphere of radius "R"   such that

R in [0,1] and "t" is a parameter varying in [-1,0[. I started with

restart; n:=3: Sn:=2*Pi^2:
R0:=(n+2)*sqrt(8*Pi/2*Sn); p:=-2*n/(n+2):
U := unapply(piecewise(R<R0, (-t)^p*(R0^2-R^2)/(n+2), 0), R);

Thanks in advance.

For the iterators package on Maple 2016 the graphic below was used.  Because it was used, it had to have been created with Maple, right?

Was that done with Maple?  If so, how?

 

Hi all,

 

I have recentry constructed Fourier amplitude and Fouier Power graphs which are plotted against the frequency of the oscillations, like the picture below.

 

I would like to change the frequency scale along the x axis into a period scale in order to Fourier analyse future ODE systems in  terms of period rather than frequency.

But I unsure how to manipulate my code to do so.

 

Any help would be much apreciated, and the Maple file that I am using is attached.

 

Thanks in advance!

 

Fourier_with_Period.mw

 

 

Hi, I'm having trouble with print doing strange things:


a:=1235
                1235

b:=751
                751


p:=1601
                1601



print(The solution `to` a^x = b (`mod ` p) is x = 1323)

                              1601 The solution to (1235^x) = 751 mod is x = 1323


Why has the 1601 gone to the beginning, and how do I make it go to the correct place?

Also is it possible to remove the brackets from around 1235^x?

And is it possible to make the brackets (that I have put in) go around the `mod` p?

EDIT:

If I do: print(The solution `to` a^x = b (`mod ` ,p) is x = 1323)

I get:  The solution to (1235^x) = 751 (mod, 1601) is x = 1323

So is there a way to just remove the comma on the output?


Thanks.

Hello,

In my code, I need to use 2 packages :
- with(LinearAlgebra)
- with(ListTools)

Problem :
It seems that the package with(ListTools) creates some troubles/ conflicts when I use some functions of the LinearAlgebra package such as DotProduct.

Here a small example to illustrate my issue

with(LinearAlgebra):
with(Student[MultivariateCalculus]):
with(plots):
with(MathML):
DotProduct(<0,0,l>, <0,0,l>, conjugate = false);

--> This code works

with(LinearAlgebra):
with(Student[MultivariateCalculus]):
with(plots):
with(MathML):
with(ListTools):
DotProduct(<0,0,l>, <0,0,l>, conjugate = false);

--> This code doesn't work

I try to replace the line with the DotProduct by the following line but it still doesn't work

with(LinearAlgebra):-DotProduct(<0,0,l>, <0,0,l>, conjugate = false));

 

How can I do to use in my code both packages (LinearAlgebra and ListTools) ?

Thanks a lot for your help

Hello :-),

 

How can I differentiate the follwing function:

Cq = Cao*k1*t / [(1+k1*t)*(1+k2*t)]

If want to find the maximum:

dCq/dt = 0

I can solve if of course by hand. The solution is t=1/sqrt(k1*k2)

I tried it with maple, but I got a strange result (see picture). How can I use maple to get the right result?

 

Thank you very much!

 

Consider the following lines:

eqs := {x - a*y,y - a*x};
sol := solve(eqs,y);

In general, sol will be NULL, but if a2=1 then the equations can be solved. How can such side relations be implemented in connection with solving?

PS: The above example is of course a grossly simplified one.

Note added: Perhaps it would be prudent to mention that the variable 'a' above is intended to be a symbolic place holder for some operator acting on some functions x,y, and having square equal to the identity map; it is not simply some algebraic number. The equations should thus be solved for x,y using a2=1, without having assigned anything to 'a' itself. For the simple example above, this can be done using the function eliminate, as suggested by Axel Vogt, but for more complicated cases, its success seems quite unlikely: for one thing, how can one determine, by looking at the set of equations, which variables can or should be eliminated?

I am using maple 13 to get the result of the einstein field equations,

 

with(tensor)

...

Estn := Einstein(metric, RICCI, RS);

displayGR(Einstein, Estn);

 

How can I put the result on an array element, so I can use it later on?

 

 

The following integral appears in the recent SEEMOUS 2016 competition:
Int( arctan(x) * ln(1+1/x^2), x = 0..infinity );

Maple 2015 can compute it, but with a little help.
What about Maple 2016?

How can I get maple to express the end result more compact/dense. Like for example in the picture, why can the program not just sum up all the fractions and everything in one number?

 

 when send email to technical support of maple?

i would like to encrypt email content with maple public key in gmail

Magnet lattices for particle accelerators (the sequence of focusing and bending magnets and drift sections making up a beam line) are often designed numerically using computer codes like MAD that model each beam-line element using either a matrix description or numeric integration, or some other algorithm. The Lattice package for Maple—recently published in Maplesoft's Application Center—allows modelling such beam lines using the full algebraic power of Maple. In this way, analytic solutions to beam-optics problems can be found in order to establish feasibility of certain solutions or study parameter dependencies. Beam lines are constructed in an intuitive way from standard beam-optical elements (drifts, bends, quadrupoles etc.) using Maple's object-oriented features, in particular Records which represent individual elements or whole beam lines. These Records hold properties like the first-order transport matrices, element length and some other properties plus, for beam lines, the elements the line is composed of. Operations like finding matched Twiss (beam-envelope) functions and dispersion are implemented and the results can be plotted. The Lattice package knows about beam matrices and can track such matrices as well as particles in a beam. The tracking function (map) is implemented separately from the first-order matrices thus allowing nonlinear or even scattering simulations; at present sextupole elements, compensating-wire elements and scattering-foil elements take advantage of this feature. Standard textbook problems are programmed and solved easily, and more complicated ones are readily solved as well €”within the limits set by Maple's capabilities, memory and computing time. Many investigations are possible by using standard Maple operations on the relevant properties of the beam lines defined. An interesting possibility is, e.g., using Maple's mtaylor command to truncate the transfer map of a beam line to a desired order, making it a more manageable function.

The package can output a beam-line description in MAD8 format for further refinement of the solution, cross-checking the results and possibly more detailed tracking.

Developed initially for my own use I have found the package useful for a number of accelerator design problems, teaching at the US Particle Accelerator School as well as in modelling beam lines for experiments I have been involved in. Presently at Version 1.0 the package still has limits; esp. the higher-order descriptions are not yet as complete as desirable. Yet already many practical design problems can be tackled in great detail. The package is backwards compatible to Maple 15. It can be found in the Application center together with help database files (old and new style) and a Users Guide.

An example showing the flavor of working with the package is attached (FODO_example.mw). It analyzes a FODO cell, the basic cell used in many ring accelerators.

Uli Wienands, aka Mac Dude

First 1134 1135 1136 1137 1138 1139 1140 Last Page 1136 of 2224