Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

alternatingseries.mw
I have a double about this alternating series.
According to maple this series converges:

evalf(sum((-1)^(n+1)*(ln(n)/n+1),n=1..infinity))
                          0.3401310963

However limit ln(n)/n + 1 does not equal to zero, it equals 1. Therefore the series should diverge.

Also while I am on the subject of series and limits, why is limit (-1)^n  as n goes to infinity a range between -1-I and 1 + I.

limit((-1)^(n), n=infinity)
                        -1 - I .. 1 + I

 

 

Hello, I am having a bit of difficulty simplifying some calculations in Maple 2019. In short, in order to verify that the tensors that I am trying to use are indeed inverses of each other, I am simply trying to multiply component wise, for example the tensor component e[2,~2] with the tensor component f[~2,2], since they are essentially inverses of each other, i.e. the matrix defining f is actually the inverse of the matrix e, i.e. f=e^(-1), should give back 1 as an answer. Nonetheless, when I attempt to take this simple multiplication Maple does not reduce it, but rather just gives multiplies the terms with no simplification. Is there anything I can do so that Maple may simplify its calculations? I have already tried the "eval" calling sequence but that didn't do the trick, and I fear that when escalating the calculations I will get a bunch of long expressions rather than concise solutions. Thank you for your help in advance,
 

Christoffel_symbols_of_de_Sitter_metric_research.mw

When discussing Maple programming, we often refer to for-loops, while-loops, until-loops, and do-loops (the latter being an infinite loop). But under the hood, Maple has only two kinds of loop, albeit very flexible and powerful ones that can combine the capabilities of any or all of the above, making it possible to write very concise code in a natural way.

Before looking at some actual examples, here is the formal definition of the loops' syntax, expressed in Wirth Syntax Notation, where "|" denotes alternatives, "[...]" denotes an optional part, "(...)" denotes grouping, and Maple keywords are in boldface:

[ for  ] [ from  ] [ by  ] [ to  ]
    [ while  ]
do
    
( end do | until  )
[ for  [ , variable ] ] in 
    [ while  ]
do
    
( end do | until  )

In the first form, every part of the loop syntax is optional, except the do keyword before the body of the loop, and either end do or an until clause after the body. (For those who prefer it, end do can also be written as od.) In the second form, only the in clause is required.

The simplest loop is just:

do
    
end do

This will repeat the forever, unless a break or return statement is executed, or an error occurs.

One or two loop termination conditions can be added:

  • A while clause can be written before the do, specifying a condition that is tested before each iteration begins. If the condition evaluates to false, the loop ends.
  • An until clause can be written instead of the end do, specifying a condition that is tested after each iteration finishes. If the condition evaluates to true, the loop ends.

A so-called for-loop is just a loop to which iteration clauses have been added. These can take one of two forms:

  • Any combination of for (with a single variable), from, by, and to clauses. The last three can appear in any order.
  • A for clause with one or two variables, followed by an in clause.

The following for-loop executes 10 times:

for  from 1 to 10 do
    
end do

However, if the doesn't depend on the value of , both the for and from clauses can be omitted:

to 10 do
    
end do

In this case, Maple supplies an implicit for clause (with an inaccessible internal variable), as well as an implicit "from 1" clause. In fact, all of the clauses are optional, and the infinite loop shown earlier is understood by Maple in exactly the same way as:

for  from 1 by 1 to infinity while true do
    
until false

When looping over the contents of a container, such as a one-dimensional array A, there are several possible approaches. The one closest to how it would be done in most other programming languages is (this example and those that follow can be copied and pasted into a Maple session):

 := Array([,"foo",42]);
for  from lowerbound() to upperbound() do
    print([],[])
end do;

If only the entries in the container are of interest, it is not necessary to loop over the indices. Instead, one can write:

 := Array([,"foo",42]);
for  in  do
    print()
end do;

If both the indices and values are needed, one can write:

 := Array([,"foo",42]);
for ,  in  do
    print([],)
end do;

For a numerically indexed container such as an Array, this is equivalent to the for-from-to example. However, this method also works with arbitrarily indexed containers such as a Matrix or table:

 := LinearAlgebra:-RandomMatrix(2,3);
for ,  in  do
    print([],)
end do;
 := table({1="one","hello"="world",=42});
for ,  in eval() do
    print([],)
end do;

(The second example requires the call to eval due to last-name evaluation of tables in Maple, a topic for another post.)

As with a simple do-loop, a while and/or until clause can be added. For example, the following finds the first negative entry, if any, in a Matrix (traversing the Matrix in storage order):

 := LinearAlgebra:-RandomMatrix(2,3);
for ,  in  do
    # nothing to do here
until  < 0;
if  < 0 then
    print([],)
end if;

Notice that the test, < 0, is written twice, since it is possible that the Matrix has no negative entry. Another way to write the same loop but only perform the test once is as follows:

 := LinearAlgebra:-RandomMatrix(2,3);
for ,  in  do
    if  < 0 then
	print([],);
	break
    end if;
end do;

Here, we perform the test within the loop, perform the desired processing on the found value (just printing in this case), and use a break statement to terminate the loop.

Sometimes, it is useful to abort the current iteration of the loop and move on to the next one. The next statement does exactly that. The following loop prints all the indices but only the positive values in a Matrix:

 := LinearAlgebra:-RandomMatrix(2,3);
for ,  in  do
    print(=[]);
    if  < 0 then
	next
    end if;
    print(=);
end do;

(Note that a simple example like this would be better written by enclosing the printing of the value in an if-statement instead of using next. The latter is generally only used if the former is not possible.)

Maple's loop statements are very flexible and powerful, making it possible to write loops with complex combinations of termination conditions in a concise yet readable way. The ability to use while and/or until in conjunction with for means that break statements are often unnecessary, further improving clarity.

Lets say you have this simple list here 

L := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

 

Which command would you use to partion into intervals? 

L_g := [1..2,3..4,5..6,7..8,9..10]

Hello

Although I am (remotely) running the following piece of code in a linux machine with 256 GB of ram, the error msg "Execution stopped: Stack limit reached" comes out 

 

kernelopts(stacklimit);
NestList:= proc(f, x, n::nonnegint)
local R:= rtable(0..n, [x]), k;
   for k to n do R[k]:= simplify(f(R[k-1])) od:
   [seq(R)]
end proc:
n:=34;
yreal:=NestList(y-> 4*y*(1-y),1/8,n):

I have tried to increase stacklimit issuing the command "kernelopts(stacklimit=256000)" but to no avail.  Is there anything else I can do?  A similar code run successfully in a mac with Mathematica. 

Many thanks 

Ed

 

PS. The default kernelopts(stacklimit) shows 8192 on the linux machine and  but 32736 on the mac pro.  I was expecting a higher number on the linux machine.  

 

restart;
with(LinearAlgebra);
G := Matrix([[beta1^2, 0, -beta2^2, 0], [0, beta1*(b^2 - beta1^2), 0, beta2*(b^2 + beta2^2)], [beta1^2*cosh(beta1*l), beta1^2*sinh(beta1*l), -beta2^2*cos(beta2*l), -beta2^2*sin(beta2*l)], [beta1*sinh(beta1*l)*(b^2 - beta1^2), beta1*cosh(beta1*l)*(b^2 - beta1^2), -beta2*sin(beta2*l)*(b^2 - beta2^2), beta2*cos(beta2*l)*(b^2 + beta2^2)]]);
NULL;
NULL;
S := Determinant(G);
S := simplify(S);
S1 := S/(beta1^2*beta2^2);
F := Pi*d^2/4;
Q := F*d^2/8;
u := E/(2*(1 + v));
lambda := sqrt(w^2/c^2);
j := v*d*lambda/sqrt(8);
y1 := 1 - j^2 + sqrt((j^2 - 1)^2 + 4*j^2*u/(c^2*p))/(2*j^2*u/(c^2*lambda^2*p));
y2 := 1 - j^2 - sqrt((j^2 - 1)^2 + 4*j^2*u/(c^2*p))/(2*j^2*u/(c^2*lambda^2*p));
b := 2*(1 + v)*(8/(v^2*d^2) - w^2/c^2);
beta1 := sqrt(y1);
beta2 := sqrt(-y2);
S;
d := 24.8;
c := 5100;
v := 0.34;
l := 2000;
E := 2.1*10^5;
p := 7700;
S;
plot(S, w = 0*2*Pi .. 100000*2*Pi);

# Here I get an error

Error, (in plot) incorrect first argument (-HFloat(2.757556062608314e294)-HFloat(2.757556062608314e294)*I)*(HFloat(2.757556062608314e294)-HFloat(2.757556062608314e294)*I+(HFloat(2.918216722364015e-174)+HFloat(7.045198389075166e-174)*I)*(HFloat(1.2899139595562734e220)+HFloat(1.2899139595562734e220)*I+(HFloat(2.345679734289597e162)+HFloat(9.71612358926469e161)*I)*(.3015529528-0.1030372934e-6*w^2)^2)+(HFloat(2.739493386336394e-116)+HFloat(2.739493386336394e-116)*I)*(HFloat(1.5009648027561687e-231)-HFloat(2.757556062608314e294)*I+(-HFloat(5.478986772672788e-116)+HFloat(5.478986772672788e-116)*I)*(.3015529528-0.103 ... HFloat(2.739493386336394e-116)*I)*(.3015529528-0.1030372934e-6*w^2)^4)

w1 := fsolve(S, w = 0*2*Pi .. 100000*2*Pi);

# Here I get an error 

Error, (in fsolve) Digits cannot exceed 38654705646
 

I want to substitute the solution back into the original equation.  I get caught up in RootOf and have to manually do the substitutions.

F := [x^2+y+z-1, y^2+x+z-1, z^2+x+y-1];

soln1 := solve(F);

for s in soln1 do

subs(s,F)

end do;

The 4th soln has RootOf.

soln2 := solve(_Z^2 + 2*_Z - 1);

for s in soln2 do

evala(subs({x=s,y=s,z=s},F))

end do;

How do I do this all in one step?


I was starting to set up a curved axisymmetric metric using the Physics package and came across an error message that I could not resolve. I was actually writing the metric in the form given after output line (5) in the code attcahed below. This returned the error message:

Error, (in Physics:-Setup) invalid subscript selector

Then I started fiddling and discovered that somehow braces and order of coefficients are making a difference in the metric. I have written the flat space metric in three different ways after output line (2). The difference is only in the coefficient of the last $d\phi^2$ term. For some reason, $r^2 (sin(\theta))^2$ is shown as $r (sin(\theta))^4$ in output line (3). Removing the brackets around $sin(theta)$ or writing $r^2$ after it is resolving the problem. Is this in someway related to the whole square operation? Can you please help me understand why this is happening?

The original error message I was getting went away after I similarly changed the order of coefficients in the second term of the curved metric to get output (6). Here again, there was a whole square operation!

Thank you!

 

restart

with(Physics)

[`*`, `.`, Annihilation, AntiCommutator, Antisymmetrize, Assume, Bra, Bracket, Cactus, Check, Christoffel, Coefficients, Commutator, CompactDisplay, Coordinates, Creation, D_, Dagger, Decompose, Define, Dgamma, Einstein, EnergyMomentum, Expand, ExteriorDerivative, Factor, FeynmanDiagrams, Fundiff, Geodesics, GrassmannParity, Gtaylor, Intc, Inverse, Ket, KillingVectors, KroneckerDelta, LeviCivita, Library, LieBracket, LieDerivative, Normal, Parameters, PerformOnAnticommutativeSystem, Projector, Psigma, Redefine, Ricci, Riemann, Setup, Simplify, SpaceTimeVector, StandardModel, SubstituteTensor, SubstituteTensorIndices, SumOverRepeatedIndices, Symmetrize, TensorArray, Tetrads, ThreePlusOne, ToFieldComponents, ToSuperfields, Trace, TransformCoordinates, Vectors, Weyl, `^`, dAlembertian, d_, diff, g_, gamma_]

(1)

Setup(signature = `-+++`, coordinates = (X = [t, r, theta, phi]))

`* Partial match of  'coordinates' against keyword 'coordinatesystems'`

 

`Default differentiation variables for d_, D_ and dAlembertian are: `*{X = (t, r, theta, phi)}

 

`Systems of spacetime Coordinates are: `*{X = (t, r, theta, phi)}

 

[coordinatesystems = {X}, signature = `- + + +`]

(2)

Setup(g_ = -dt^2+dr^2+r^2*dtheta^2+r(sin(theta))^4*dphi^2)

[metric = {(1, 1) = -1, (2, 2) = 1, (3, 3) = r^2, (4, 4) = r(sin(theta))^4}]

(3)

Setup(g_ = -dt^2+dr^2+r^2*dtheta^2+sin(theta)^2*r^2*dphi^2)

[metric = {(1, 1) = -1, (2, 2) = 1, (3, 3) = r^2, (4, 4) = sin(theta)^2*r^2}]

(4)

Setup(g_ = -dt^2+dr^2+r^2*dtheta^2+sin(theta)^2*r^2*dphi^2)

[metric = {(1, 1) = -1, (2, 2) = 1, (3, 3) = r^2, (4, 4) = sin(theta)^2*r^2}]

(5)

Setup(g_ = -exp(2*nu(r, theta))*dt^2+(exp(2*psi(r, theta)))(dphi-omega(r, theta)*dt)^2+(exp(2*mu(r, theta)))(dtheta)^2+exp(2*lambda(r, theta))*dr^2)

Error, (in Physics:-Setup) invalid subscript selector

 

Setup(g_ = -exp(2*nu(r, theta))*dt^2+(dphi-omega(r, theta)*dt)^2*exp(2*psi(r, theta))+exp(2*mu(r, theta))*dtheta^2+exp(2*lambda(r, theta))*dr^2)

[metric = {(1, 1) = -exp(2*nu(r, theta))+omega(r, theta)^2*exp(2*psi(r, theta)), (1, 4) = -omega(r, theta)*exp(2*psi(r, theta)), (2, 2) = exp(2*lambda(r, theta)), (3, 3) = exp(2*mu(r, theta)), (4, 4) = exp(2*psi(r, theta))}]

(6)

``


 

Download qstn.mw

Is it italic when copied and pasted?  Is it bold when copied from maple 8?  I just ahve not been able to work it out.

The only way that I can think of doing it is by multiplying by a tetrad.  Even then it does not work well see my worksheet:  The Dirac Equation in Robertson-Walker spacetime.

Factorise

   

into your Maple worksheet and copy and paste the Maple output into the answer box below.

I have a recursive function that spits out recursive formulates "evaluated inertly" so bascially it produces a formula simply like a symbolic formula(doesn't reduce the addition of values though).

 

What I would like is to color code each recursive step

e.g.,

F := proc(n)
    local i,k:
    if n <= 0 then return 1; end if:
    F(n-2) %+ F(n-1):
end proc:

F(5);

value(F(5));
 

so I would like to cover each part of the recursion differently so it is easier to see, maybe even use the previous colors so one can visualize the nestings of the recursion. (e.g., F(n-2) takes the previous formals color and tweaks it towards the red and and F(n-1) takes the porevious formulas color and tweaks it towards green)
(this would then pass an RGB value that(default, say blue) to the functions above).

 

Any way to accomplish this?

 

 

 

 

For the following system, the parameters D_1,D_2,D_3,D_4,D_5,D_6,S are all positive, How can I get all the  equilibrium  and their stability.

diff(x1,t)=fS;diff(x2,t)=fV;diff(x3,t)=fC;diff(x4,t)=fR;

fS := -D2*x1*x2-D1*x1-x1*x3+S; fV := D2*x1*x2-D4*x2+x1*x3; fC := -D6*x3*x4-D5*x3+x2; fR := D6*x3*x4-x4

Hello everyone

First day using Maple and I've been given the following task: 

Design a function rangetolist(intrange) which expects an expression intrange of the type .., i.e., of the form m..n as its argument and converts it to the list
[m,m+1,...n] Also test what happens if m is larger than n. Hint: This readily works using seq
.

I can't quite seem to get it working, online resources haven't been too helpful in resolving the issue unfortunately. 

Here is my attempt 

rangetolist := (x::range) -> seq(i = op(1, x), i .. op(nops(x), x), 1);
 
which gives me this error:  Error, (in rangetolist) unable to execute seq
 
Very grateful for any constructive input, thanks :)

 

 

Hi , I have a system of equations and initial or boundary conditions. My.question how to solve these equations and their conditions together? And I can’t use dsolve because my result system doesn’t contain any derivative. In addition I couldn’t use fsolve because I don’t know how to collect the system and the conditions to solve together as a one system , and some examples contains equations morethan number of variables.... please can you advice me a solution 

thanks 

First 576 577 578 579 580 581 582 Last Page 578 of 2218