set symbols to work as constant parameters - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Physics : Physics/Parameters

Physics[Parameters] - set symbols to work as constant parameters

Calling Sequence

Parameters( )

Parameters(a, b, ...)

Parameters

a, b, ...

-

names

Description

• 

The Parameters command allows you to define the parameters of a theory in such a way that no functionality can be attached to them. For example, if m is defined as a parameter through Parameters(m), then mt returns m, without any functionality.

• 

To know which names are defined as parameters at some point in a session, call Parameters() without any arguments; the result is a set with the required information.

• 

The cancellation of a parameter definition can be done by unassigning the variable. The unassignment is automatically taken into account in all subsequent calculations, as well as in any Parameters() requests for information.

Examples

with(Physics):

Setup(mathematicalnotation = true);

mathematicalnotation=true

(1)

F := k * x;

Fkx

(2)

Notice that functionality has been attached to k automatically.

F(t);

ktxt

(3)

diff((3), t);

k.txt+ktx.t

(4)

In a model where k is a constant, the above, withⅆkⅆt, is undesired. You would like to be able to define F in the simple way it has been done, and then have Ft return a result with k, not kt. This situation is addressed by the Parameters command. For example:

Parameters(k);

k

(5)

In this way, instead of the undesired result kt, you now have the constant k defined as a parameter, with no functionality attached.

F(t);

kxt

(6)

diff((6), t);

kx.t

(7)

A typical use for the Parameters command is when computing equations of motion departing from a Lagrangian or a Hamiltonian (the Energy). Consider a harmonic oscillator of mass m, and k is a constant parametrizing the restoring force. The Energy (Hamiltonian) in terms of the momentum p and position q is given by:

Parameters(m, k);

k,m

(8)

H := p^2/(2*m) + 1/2*k*q^2;

Hp22m+kq22

(9)

where in the above, p and q represent functions of time, while m and k represent constant parameters. Because m and k have been set by the Parameters command, no functionality is attached to them.

H(t);

pt22m+kqt22

(10)

Now you can compute the Hamilton equations directly.

eq[1] := diff(q(t), t) = diff(H(t), p(t));

eq1q.t=ptm

(11)

eq[2] := diff(p(t), t) = -diff(H(t), q(t));

eq2p.t=kqt

(12)

It is now easy to see that the Energy of this oscillator is a constant; that is, it does not depend on t: differentiate the Energy (the Hamiltonian H), and introduce the equations of motion that were previously derived.

diff(H(t), t);

ptp.tm+kqtq.t

(13)

eval((13), [eq[1], eq[2]]);

0

(14)

The same computation can be performed without using Parameters. Define H as a mapping, then you must use more complicated syntax to specify the parameters. See the last example in the help page for D for a demonstration of this method.

To query about the objects defined as parameters at any moment, enter the Parameters command with no arguments.

Parameters();

k,m

(15)

To unset the symbol k as a parameter, it suffices to unassign it.

k := 'k';

kk

(16)

Now k is not in the list of parameters, and it depends on t in the function H.

Parameters();

m

(17)

H(t);

pt22m+ktqt22

(18)

 

See Also

Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Physics[*], Physics[diff]