Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

If we have following expression

4*beta*c*lambda^2*mu^2+2*beta*c*lambda*mu^3+2*beta*c*lambda*mu^2*nu+beta*c*mu^3*nu-4*c*lambda^2*mu^2*sigma-2*c*lambda*mu^3*sigma-2*c*lambda*mu^2*nu*sigma-c*mu^3*nu*sigma+4*beta*lambda^3*sigma+4*beta*lambda^2*mu*sigma+2*beta*lambda^2*nu*sigma+2*beta*lambda*mu^2*sigma+2*beta*lambda*mu*nu*sigma+beta*mu^3*sigma+beta*mu^2*nu*sigma+4*lambda^2*mu^2*sigma+2*lambda*mu^3*sigma+2*lambda*mu^2*nu*sigma+mu^3*nu*sigma

If I use the command simplify(---,size), it gives

((2*c-2)*lambda-beta+nu*(-1+c))*mu^3+(2*(lambda*(-1+c)-(1/2)*beta))*(2*lambda+nu)*mu^2-2*beta*lambda*(2*lambda+nu)*mu-2*lambda^2*beta*(2*lambda+nu)

which can also be written if i did manually as

beta*mu^3+(2*lambda+nu)*(beta*mu^2+2*beta*lambda*mu+2*beta*lambda^2+(1-c)*(2*lambda+mu)*mu^2)

My question with all learned people is: in Maple, how i can get most simplified and short expression automaticall?

Please help me to understand the Maple.

Thanking you in anticipation.

I need to use gamma as a "free" symbol in pde that I pass to pdsolve, so that the latex comes out as \gamma OK in the solution.

in other words, the pde itself uses the symbol gamma (as it is written in the textbook and I want to keep it the same). This gamma is not the known constant gamma. Something similar to using alpha and beta or x and y. 

But gamma in a known constant in Maple and I am worried this will affect some computation inside pdsolve if I use gamma  as known number in the PDE (even though I think it should not change the result of pdsolve as there are no other numbers in the PDE input, I just wanted to be safe).

I am not able to clear gamma

unassign(gamma)  gives error since it is protected.

Is  there a way around this? Should I use wrap the name with 'gamma'  or `gamma` for example? 

Here is an example

pde := a*diff(w(x,y,z),x)+ b*diff(w(x,y,z),y)+c*diff(w(x,y,z),z)= alpha*x+beta*y+gamma*z+delta;

It is the gamma above I am worried about using in the input. What is the correct way to do this?  

Hello,

I am trying to work with the Physics package to calculate Christoffel symbols. I have just started using Maple today and am coming up against a few hurdles.

I want to change the signature of the metric from (+---) to (-+++). I am typing the following in math mode:

Setup( signature = '-+++')

However, this is returning the following error:

"Error, invalid sum/difference" with my command rewritten within a red box together with the last '+" within another red box. Can you please help me out with this?

Thank you.

 

I am completely new to maple and am stuck in the very beginning trying to use the Physics package to calculate Christoffel symbols. Suppose I have coordinates (t, x, sigma, theta). The metric g_ has coefficients that are functions of (t,x,sigma) i.e. the metric is like

g_ = a(t,x,sigma) dt^2 + b(t,x,sigma)dt dx + dx^2 + dsigma^2 + sigma^2 dtheta^2.

(Should I write dsigma^2 or (d sigma)^2?)

How do I tell maple to treat a, b as functions of (t,x,sigma)?

Thank you.

HI, 

Yesterday I replied  denitsastaicova's question while providing an attached file. 

Surprisingly, I wasn't able to save the worksheet after having executed it. The only way I found to save it was to copy-paste it's content in a new worksheet and save this latter without any execution.
Here is the file
events.mw

For info I'm working with  Standard Worksheet Interface, Maple 2015.2, Mac OS X, December 21 2015 Build ID 1097895
on Mac OS Mojave 10.14.3
If I open this file and execute it (and even if I execute only the commands from the initial restart to the three dsolve), I get this pop-up error message when trying to save it:

Does my worksheet contain some undesired character or is it a bug ?

Hello,

How can write a code for determination of Laplacian in a new form is introduced in maple code (First line).

Thank you.

FOR2
 

``

"L:=(∑)`e__i`/(`h__i`)*(∂)/(∂ `xi__i`).((∑)(∑)`e__k`/(`h__k`)((∂)/(∂ `xi__k`)`U__j`*`e__j`+`U__j`(∂)/( `xi__k`)`U__j`)):"

restart; with(VectorCalculus); with(LinearAlgebra); h__1 := VectorCalculus:-`*`(a, 1/cosh(r)); h__2 := VectorCalculus:-`*`(a, 1/cosh(r)); h__3 := VectorCalculus:-`*`(sinh(r), 1/cos(theta)); U__1 := u__r; U__2 := `u__θ`; U__3 := `u__φ`

"for i from 1 to 3 do  for j from 1 to 3 do  for k  from 1 to 3 do     if i=1 then   `h__i`:=a/(cosh(r)-cos(theta)); `U__i`:=`u__r`;`e__i`:=`e__r`:`xi__i`:=r:     else  if i=2 then  `h__i`:=a/(cosh(r)-cos(theta));`U__i`:=`u__theta`;`e__i`:=`e__theta`:`xi__i`:=theta:  else ;   `h__i`:=a/(cosh(r)-cos(theta));`U__i`:=`u__phi`;`e__i`:=`e__phi`:`xi__i`:=phi:  end if;          if  j=1 then ;  `h__j`:=a/(cosh(r)-cos(theta)); `U__j`:=`u__r`;`e__j`:=`e__r`:`xi__j`:=r:   else if  j=2 then;  `h__j`:=a/(cosh(r)-cos(theta));`U__j`:=`u__theta`;`e__j`:=`e__theta`:`xi__j`:=theta:  else ;   `h__j`:=a/(cosh(r)-cos(theta));`U__j`:=`u__phi`;`e__j`:=`e__phi`:`xi__j`:=phi:  end if;       if k=1 then   `h__k`:=a/(cosh(r)-cos(theta)); `U__k`:=`u__r`;`e__k`:=`e__r`:`xi__k`:=r:   else if i=2 then  `h__k`:=a/(cosh(r)-cos(theta));`U__k`:=`u__theta`;`e__k`:=`e__theta`:`xi__k`:=theta:  else     `h__k`:=a/(cosh(r)-cos(theta));`U__k`:=`u__phi`;`e__k`:=`e__phi`:`xi__k`:=phi:  end if;                   end ;  end ;         end ;               "

Error, unterminated loop

"for i from 1 to 3 do  for j from 1 to 3 do  for k  from 1 to 3 do    if i=1 then `h__i`:=a/(cosh(r)-cos(theta)); `U__i`:=`u__r`;`e__i`:=`e__r`:xi__i:=r:     else  if i=2 then  `h__i`:=a/(cosh(r)-cos(theta));`U__i`:=`u__theta`;`e__i`:=`e__theta`:xi__i:=theta:  else ;   `h__i`:=a/(cosh(r)-cos(theta));`U__i`:=`u__phi`;`e__i`:=`e__phi`:xi__i:=phi:  end if;       if j=1 then ;  `h__j`:=a/(cosh(r)-cos(theta)); `U__j`:=`u__r`;`e__j`:=`e__r`:xi__j:=r:   else if j=2 then;  `h__j`:=a/(cosh(r)-cos(theta));`U__j`:=`u__theta`;`e__j`:=`e__theta`:xi__j:=theta:  else ;   `h__j`:=a/(cosh(r)-cos(theta));`U__j`:=`u__phi`;`e__j`:=`e__phi`:xi__j:=phi:  end if;     if k=1 then `h__k`:=a/(cosh(r)-cos(theta)); `U__k`:=`u__r`;`e__k`:=`e__r`:xi__k:=r:   else if i=2 then  `h__k`:=a/(cosh(r)-cos(theta));`U__k`:=`u__theta`;`e__k`:=`e__theta`:xi__k:=theta:  else `h__k`:=a/(cosh(r)-cos(theta));`U__k`:=`u__phi`;`e__k`:=`e__phi`:xi__k:=phi:  end if;           end ;  end ;     end ;               "

 

i

i

(1)

j

j

(2)

``


 

Download FOR2

 

 

Maple does not simplify the expression A*[sin(x)]^2+A*[cos(x)]^2=A, where A is any expression.

How can I make it do so? 

 

Thanks,

Maple 17 64-bit on Windows 8

Hello. How to connect 2 point of segment with animation? I know only one way to do this. We need connect P and Q. We need to create intermediate points like:

for i from 1 to 100
q[i]:=i/100*P+(1-i/100)*Q

It seems to me that this option consumes a lot of resources.

Is there another way to do this with the Maple?
Thanks

I have thought that   D(y)(0)=C1  and  eval(diff(y(t),t),t=0)=C1  mean exactly the same thing which is derivative of y wr.t. "t" evaluated at specific point t=0 is C1.

If you agree they are exactly the same thing, then why dsolve works with both forms used for initial conditions if the option 'series' is not used.

When using the 'series' option, dsolve stops working when using  eval(diff(y(t),t),t=0) form? All else is the same.

ode:=diff(y(t),t$2)+3*diff(y(t),t)+2*y(t)=0;
bc_form_1:=y(0)=C1,eval(diff(y(t),t),t=0)=C2;
bc_form_2:=y(0)=C1,D(y)(0)=C2;
sol1:=dsolve([ode,bc_form_1],y(t));
sol2:=dsolve([ode,bc_form_2],y(t))

Both the above work

But now when I use the 'series' option, the first form stops working!

ode:=diff(y(t),t$2)+3*diff(y(t),t)+2*y(t)=0;
bc_form_1:=y(0)=C1,eval(diff(y(t),t),t=0)=C2;
bc_form_2:=y(0)=C1,D(y)(0)=C2;
sol1:=dsolve([ode,bc_form_1],y(t),'series');
sol2:=dsolve([ode,bc_form_2],y(t),'series')

 

 

Is this a bug? 

Just updated to Maple 2019.1  on windows 10.

The code is from the book(SDE). I think P.n := evalm( P.(n-1)&*P0) causes the problem. I have never seen this kind of the structure before ( I did some coding with C and Java). Could you explain that? P0, P1, P2,,,, using for n from 1 to 10. Is "." between P and n the dot (period)? Thank you in advance.

restart

N := 2; A := -N; B := N

q := .3; p := .5; sa := .9; sb := .1; r := 1-p-q

with(linalg)

dimP := 2*N+1

P := matrix(dimP, dimP, [`$`(0, dimP*dimP)])

P[1, 1] := sa; P[1, 2] := 1-sa; P[dimP, dimP] := sb; P[dimP, dimP-1] := 1-sb

for i from 2 to dimP-1 do P[i, i-1] := q; P[i, i] := r; P[i, i+1] := p end do

P0 := P

for n to 10 do P.n := evalm(`&*`(P.(n-1), P0)) end do

print(P10)

P10

(1)

``


 

Download TransitionMatix.mw

I have this very ugly ODE system which I solve with "dsolve, numeric, complex=true". It works ok but I'd really like to be able to use events. The problem is that the solution of the system has very small (~10^(-Digits)) imaginary part and as we know "events" works only for real ODEs.

My question is does anyone know a way to force dsolve to solve the ODE as a real system? In Mathematica, there is the function "chop" which does the trick. In Maple, I tried with fnormal and also by forcing some terms to be real but that makes it hit a singularity at 0.01 which doesn't exist when it integrates it as a complex system. In Mathematica, it integrates ok with "chop" without any random singularities. 

I'm currently trying separating the system into real and imaginary parts, but considering how ugly the system is, it may not be so simple (and so far, it doesn't work). So something to trick dsolve would come handy.

Thanks in advance.

How can plot two  and bipolar figures as attached and extract their data.

Thank You.

I have reinstalled Maple 2019 several times, including its latest update. But when trying to graph the following:

plot(sin(x), x = -2*Pi .. 2*Pi)

But I get this:

Error, (in plot) expected a range but received x = -2*Pi .. 2*Pi

And if I enter:

sin(x)

The result is:

2.73949338633639*10-116 + 2.73949338633639*10-116*I

When trying this:

plot3d(x*exp(-x^2 - y^2), x = -2 .. 2, y = -2 .. 2, color = x)

I get this:

And if I try it with Graph Theory:

with(GraphTheory);
G := Graph({{a, b}, {a, c}, {b, c}});
G := Graph 1: an undirected unweighted graph with 3 vertices and 3 edge(s)

DrawGraph(G)

Error, (in GraphTheory:-DrawGraph) invalid input: modp received I, which is not valid for its 2nd argument, m
 

I do not know what is the reason for this anomalous behavior of Maple 2019, it will be some software bug or it will be an error caused by my computer...
I would like to know if this problem happens to other people or just to me. Any help or guidance on this problem will be greatly appreciated.


Best regards

 

We occasionally get asked questions about methods of Perturbation Theory in Maple, including the Lindstedt-Poincaré Method. Presented here is the most famous application of this method.

Introduction

During the dawn of the 20th Century, one problem that bothered astronomers and astrophysicists was the precession of the perihelion of Mercury. Even when considering the gravity from other planets and objects in the solar system, the equations from Newtonian Mechanics could not account for the discrepancy between the observed and predicted precession.

One of the early successes of Einstein's General Theory of Relativity was that the new model was able to capture the precession of Mercury, in addition to the orbits of all the other planets. The Einsteinian model, when applied to the orbit of Mercury, was in fact a non-negligible perturbation of the old model. In this post, we show how to use Maple to compute the perturbation, and derive the formula for calculating the precession.

In polar coordinates, the Einsteinian model can be written in the following form, where u(theta)=a(1-e^2)/r(theta), with theta being the polar angle, r(theta) being the radial distance, a being the semi-major axis length, and e being the eccentricity of the orbit:
 

# Original system.
f := (u,epsilon) -> -1 - epsilon * u^2;
omega := 1;
u0, du0 := 1 + e, 0;
de1 := diff( u(theta), theta, theta ) + omega^2 * u(theta) + f( u(theta), epsilon );
ic1 := u(0) = u0, D(u)(0) = du0;


The small parameter epsilon (along with the amount of precession) can be found in terms of the physical constants, but for now we leave it arbitrary:
 

# Parameters.
P := [
    a = 5.7909050e10 * Unit(m),
    c = 2.99792458e8 * Unit(m/s),
    e = 0.205630,
    G = 6.6740831e-11 * Unit(N*m^2/kg^2), 
    M = 1.9885e30 * Unit(kg), 
    alpha = 206264.8062, 
    beta = 415.2030758 
];
epsilon = simplify( eval( 3 * G * M / a / ( 1 - e^2 ) / c^2, P ) ); # approximately 7.987552635e-8


Note that c is the speed of light, G is the gravitational constant, M is the mass of the sun, alpha is the number of arcseconds per radian, and beta is the number of revolutions per century for Mercury.

We will show that the radial distance, predicted by Einstein's model, is close to that for an ellipse, as predicted by Newton's model, but the perturbation accounts for the precession (42.98 arcseconds/century). During one revolution, the precession can be determined to be approximately
 

sigma = simplify( eval( 6 * Pi * G * M / a / ( 1 - e^2 ) / c^2, P ) ); # approximately 5.018727337e-7


and so, per century, it is alpha*beta*sigma, which is approximately 42.98 arcseconds/century.
It is worth checking out this question on Stack Exchange, which includes an animation generated numerically using Maple for a similar problem that has a more pronounced precession.

Lindstedt-Poincaré Method in Maple

In order to obtain a perturbation solution to the perturbed differential equation u'+omega^2*u=1+epsilon*u^2 which is periodic, we need to write both u and omega as a series in the small parameter epsilon. This is because otherwise, the solution would have unbounded oscillatory terms ("secular terms"). Using this Lindstedt-Poincaré Method, we substitute arbitrary series in epsilon for u and omega into the initial value problem, and then choose the coefficient constants/functions so that both the initial value problem is satisfied and there are no secular terms. Note that a first-order approximation provides plenty of agreement with the measured precession, but higher-order approximations can be obtained.

To perform this in Maple, we can do the following:
 

# Transformed system, with the new independent variable being the original times a series in epsilon.
de2 := op( PDEtools:-dchange( { theta = phi/b }, { de1 }, { phi }, params = { b, epsilon }, simplify = true ) );
ic2 := ic1;

# Order and series for the perturbation solutions of u(phi) and b. Here, n = 1 is sufficient.
n := 1;
U := unapply( add( p[k](phi) * epsilon^k, k = 0 .. n ), phi );
B := omega + add( q[k] * epsilon^k, k = 1 .. n );

# DE in terms of the series.
de3 := series( eval( de2, [ u = U, b = B ] ), epsilon = 0, n + 1 );

# Successively determine the coefficients p[k](phi) and q[k].
for k from 0 to n do

    # Specify the initial conditions for the kth DE, which involves p[k](phi).
    # The original initial conditions appear only in the coefficient functions with index k = 0,
    # and those for k > 1 are all zero.
    if k = 0 then
        ic3 := op( expand( eval[recurse]( [ ic2 ], [ u = U, epsilon = 0 ] ) ) );
    else
        ic3 := p[k](0), D(p[k])(0);
    end if:

    # Solve kth DE, which can be found from the coefficients of the powers of epsilon in de3, for p[k](phi).
    # Then, update de3 with the new information.
    soln := dsolve( { simplify( coeff( de3, epsilon, k ) ), ic3 } );
    p[k] := unapply( rhs( soln ), phi );
    de3 := eval( de3 );

    # Choose q[k] to eliminate secular terms. To do this, use the frontend() command to keep only the terms in p[k](phi)
    # which have powers of t, and then solve for the value of q[k] which makes the expression zero. 
    # Note that frontend() masks the t-dependence within the sine and cosine terms.
    # Note also that this method may need to be amended, based on the form of the terms in p[k](phi).
    if k > 0 then
        q[1] := solve( frontend( select, [ has, p[k](phi), phi ] ) = 0, q[1] );
        de3 := eval( de3 );
    end if;

end do:

# Final perturbation solution.
'u(theta)' = eval( eval( U(phi), phi = B * theta ) ) + O( epsilon^(n+1) );

# Angular precession in one revolution.
sigma := convert( series( 2 * Pi * (1/B-1), epsilon = 0, n + 1 ), polynom ):
epsilon := 3 * G * M / a / ( 1 - e^2 ) / c^2;
'sigma' = sigma;

# Precession per century.
xi := simplify( eval( sigma * alpha * beta, P ) ); # returns approximately 42.98


Maple Worksheet: Lindstedt-Poincare_Method.mw

Hello everyone! 

I have a naive question... 
I'm traying to construct an array such entries are derivatives of a particular function. In my original problem, the elements of the array are numerous, so build it manual is not an option... A simplification of my task is :

                      


So, as you can see, for some reason Maple doen't chanche the index "i" in my derivative while the cycle is runnin. So all i want to do  is construct an array of the form 

using a cycle. 

Thanks for yout help! 

First 552 553 554 555 556 557 558 Last Page 554 of 2097