Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Just curious as to how to find the Mathematics and Engineering dictionary in maple. 

In Maple 12 it was available in the help menu as Dictionary, which then pulled up as a help menu with folders a to z. 

In Maple 2016, I only noticed today, Dictionary is no longer a help option in the pull down menu.  Searching for dictionary brings up some of the files in the help menu but not sorted beautifully as M12.  In fact there is a definition list but it ends at d.

Am I missing something or is there a dictionary fault?

Hi everybody

I have two tables, namely A and B, the entries of wich can also be tables ... and so on.
These two tables have the same structure in the following sense :

Viewing A or B as tree graphs GA and GB :

  1.  the set of the names of the vertices of GA is identical to the set of the names of the vertices of GB
  2. GA and GB have the same connectivities

For instance A and B below share the same structure
A := table([x=table([u=1]), y=table([v=table([p=2]), w=3]) )]
B := table([ x=table([u=4]), y=table([v=table([p=12]), w=3]) )]

But not do A and C
C := table([x=table([u=1]), y=table(v=2, w=3]) )]


Let p(s) some path in GA from its root to some terminal leaf s.
B being "structurally identical" to A, GB also contains p(s)
Returning to the original tables, p(s) corresponds to a multi-index [k1][k2]...[kn] and the "value" of s is then given by A [k1][k2]...[kn]) or, symbolically A[p(s)]

I adopt this definition for "A = B" :
A is said to be equal to B iif the entry of A[p(s)] equals B[p(s)] for all the terminal leaves s
(here equals is intended in the "classical" senses, ie 3=3, {1,2}={2,1}, ...)
 

How can I check if "A=B" in the following sense ?

Thanks in advance

PS : Keeping in mind the analogy between A and GA, I have written a recursive procedure to check if A=B. But it is rather lengthy and I wondered if there could exist some Maple function to do this test ?


 

Hello there. I have a simple differential equation (diff(y(x), x)+1)*exp(y(x)) = 4 , in which I want to got a partial solution (find a value of constant) for y(1)=0. How do I do that? I've checked help on pdsolve function and it's too complicated for me to understand something. Examples do not contain anything such simple as that. Thanks in advance.

I have in mind all the real roots of the equation 2*tan(Pi*t^2)-tan(Pi*t)+tan(Pi*t)*tan(Pi*t^2)^2 = 0.

Maple fails with it:

>RealDomain:-solve(2*tan(Pi*t^2)-tan(Pi*t)+tan(Pi*t)*tan(Pi*t^2)^2 = 0, t);

RootOf(tan(_Z)*tan(_Z^2/Pi)^2-tan(_Z)+2*tan(_Z^2/Pi))/Pi

 Even its numerical solution has gaps.

>Digits := 15; a := Student[Calculus1]:-Roots(2*tan(Pi*t^2)-tan(Pi*t)+tan(Pi*t)*tan(Pi*t^2)^2 = 0, t = -2 .. 2);
Warning, some roots are returned as numeric approximations
 [-1.35078105935821, -1.18614066163451, -1.00000000000000, 0, 

   1.00000000000000, 1.28077640640442, 1.68614066163451,    1.85078105935821]

>nops(a);

8

>b := Student[Calculus1]:-Roots(2*tan(Pi*t^2)-tan(Pi*t)+tan(Pi*t)*tan(Pi*t^2)^2 = 0, t = -2 .. 2, numeric);
 [-1.35078105935821, -1.18614066163451, -1.00000000000000, 

   -0.780776406404415, 0., 1.00000000000000, 1.28077640640442, 

   1.68614066163451, 1.85078105935821, 2.00000000000000]
>nops(b);
                               10


whereas 

>plot(2*tan(Pi*t^2)-tan(Pi*t)+tan(Pi*t)*tan(Pi*t^2)^2, t = -2 .. 2);

shows 14 solutions.

The output of the command

>identify(a);

[1/4-(1/4)*sqrt(41), 1/4-(1/4)*sqrt(33), -1, 0, 1, 1/4+(1/4)*sqrt(17), 1/4+(1/4)*sqrt(33), 1/4+(1/4)*sqrt(41)]

suggests a closed-form expression for the roots.

i want to write the result of a calculation to a file in a way that i can be able to call them later. for example :


restart;
n := 40; h := 40;
a := h*i/(2*n);

sys1 := [diff(x(t), t) = 2*t+1, diff(y(t), t) = 1+5*t, x(0) = 1, y(1) = 0];


for i from 0 by .5 to 1 do res := dsolve(sys1, numeric); res(a) end do;
 


i would like to write just the values of t and y(t) to a file/vector or whatever.

Thx in advance

Dear sir

 

In my ode problem i do not know that how to set range (eta) from -2 to 2 please can  you help me.

Consider the following expression obtained from the solve command: Note that this uses the two variable arctan function.

p:=arctan((-cos(theta)^3-(1/2)*cos(theta)^2-(1/2)*cos(theta)*((2*cos(theta)+1)*(2*cos(theta)-3)*(cos(theta)+1)^2)^(1/2)+2*cos(theta)-(1/2)*((2*cos(theta)+1)*(2*cos(theta)-3)*(cos(theta)+1)^2)^(1/2)+3/2)^(1/2), -(1/2)*cos(theta)-1/2-(1/2)*((2*cos(theta)+1)*(2*cos(theta)-3)*(cos(theta)+1)^2)^(1/2)):

#ploting the expression shows a non-zero value at theta = Pi,  however if I convert p to a function using


f:=unapply(p,theta):


# then f(Pi);  gives a value of 0

#On the other hand maximize(p,theta=3*Pi/4..5*Pi/4,location); shows a non-zero value of 4*Pi/5 at theta = Pi,  which agrees with the plot of p, namely, it returns:

-arctan((10-2*5^(1/2))^(1/2)/(5^(1/2)+1))+Pi,

{[{theta = Pi}, -arctan((10-2*5^(1/2))^(1/2)/(5^(1/2)+1))+Pi]}

Is this a bug? Or what?

Thanks, 

Edwin

Hello

I wonder whether someone out there would give some ideas on how to implement a problem involving monomials (or polynomials if you wish).

dx/dt=f(x,y,z), dy/dt=g(x,y,z) and dz/dt=h(x,y,z) where f, g and h are polynomial functions of x,y,z.   

For instance, I need a test that returns false in:

a) dx/dt=f(x,z), dydt=anything, dz/dt=h(x,z) or 

b) dx/dt=f(x,y), dydt=g(x,y), dz/dt=anything.

c) dx/dt=anything, dy/dt=g(y,z), dz/dt=h(y,z)

that is, if two derivatives are related only between themselves, a false should be returned.  An example where a false should be returned is

[x*y*theta[5]+x*theta[2], x*y*theta[15], x*theta[22]+y*theta[23]+z*theta[24]] = [f(x,y),g(x,y),h(x,y,z)] where theta[5] .. theta[24]  are the coefficients.  

Many thanks.

Ed

PS. I am trying to avoid "for" in the solution in case I need to add another derivative but could not come up with a solution. In that case I need to test 3 variables instead of 2 and then 2 variables (as in the examples).

For my fdiff graph, it seems that the cirtical points appear to be jaggered or not smooth. Anyone nows what seem to be the problem? i tried increasing the numpoints but it did not work:( I am open to all opinions. Thanks:)

 

fyp2.mw

Hi, 

 I use Maple/MapleSim 2016. I have a question about how to save compiled modules as an one set. (Picture below describes my question.)

I use the Maple command "GetCompiledProc" to obtain the compiled module of MapleSim Model. And then, in some cases, I need to make a lot of compiled modules by using one MapleSim model.

(Usually, I make different compiled modules which contain different parameters to others)

For the convenience of using different compiled modules, I want to make these contained in one set whose name is "ModelSet". ("Case1 -> Case2" in the picture)

I tried this, but it did not work. Please see the attached (simple) model and the Maple worksheet in that model.

[TS]CompiledMoule_Practice.msim

For example, I want to use Model1(Compiled module 1) by loading that module from the ModelSet[1]. (Similarly, Model2 by loading ModelSet[2].)

However, when I load one of them, it is not the compiled module, but just a "symbol". It does not work as a compiled module any more.

Is there any way to make the "ModelSet" as I want? In fact, I tried to make the type of ModelSet as vector, list, and set, but all of them did not work. 

I appreciate any idea you may have.

> restart;
> with(plots);
> n := [0, .5, 1, 5]; pr := .71; p := 0; l := [1, 2, 3]; b := 0; s := 0; L := [green, blue, black, gold];
                         [green, blue, black, gold]
> R1 := 2*n/(n+1);
                              2 [0, 0.5, 1, 5]
                             ------------------
                             [0, 0.5, 1, 5] + 1
for j from 1 to nops(l) do; for j from 1 to nops(n) do        R1 := 2*n[j]/(1+n[j]);        R2 := 2*p/(1+n[j]); sol1 := dsolve([diff(diff(diff(f(eta),eta),eta),eta)+f(eta)*diff(diff(f(eta),eta),eta)+R1*(1-diff(f(eta),eta)^2) = 0, (1/pr)*diff(diff(theta(eta),eta),eta)+f(eta)*diff(theta(eta),eta)-R2*diff(f(eta),eta)*theta(eta) = 0, f(0) = 0, (D(f))(0) = l+b*((D@@2)(f))(0), (D(f))(-2) =1, theta(0) = 1+s*(D(theta))(0), theta(-2) = 0], numeric, method = bvp); fplt[j]:= plots[odeplot](sol1,[eta,diff(diff(f(eta),eta),eta)],color=["blue","black","orange"]);         tplt[j]:= plots[odeplot](sol1, [eta,theta(eta)],color=L[j]); fplt[j]:= plots[odeplot](sol1,[eta,diff(f(eta),eta)],color=L[j]);      od:od:

 


Error, (in dsolve/numeric/bvp) unable to store 'Limit([eta, 2*eta, 3*eta]+eta^2*[.250000000000000, .500000000000000, .750000000000000]-.250000000000000*eta^2, eta = -2., left)' when datatype=float[8]
> plots:-display([seq(fplt[j], j = 1 .. nops(n))], color = [green, red], [seq(fplt[j], j = 1 .. nops(l))]);

> sol1(0);

Dear sir

In the  above problem i tried to write a nested program but its not executing and showing the error as Error, (in dsolve/numeric/bvp) unable to store 'Limit([eta, 2*eta, 3*eta]+eta^2*, i want the plot range from -2 to 2 but taking only 0 to -2 ,and -2.5 to 3 but taking only 0 to 1

Hi,

I want to write my first module, and I failed!  I create an instance of the class (module?)

myList := TestModule(3);                    # works.

But I've no acess to the members, since I use export! What's wrong?

myList:-get_n;
myList:-set_n(20);
myList:-run();

Error, `myList` does not evaluate to a module
Error, `myList` does not evaluate to a module
Error, `myList` does not evaluate to a module


# *****************************************************************************

TestModule := module()
    export get_n, set_n, run;
    local  n, result, ModuleApply, profileRun;
    option package;
    description "A testmodule";

    # Constructor
    ModuleApply := proc(n)
        print("Calling of Module Apply...");
         thismodule:-n := n;
         result := [];
         profileRun();
         return result;
     end proc:


    # Implementation of member run
     run := proc()
         print("Calling of run...");
         dummy := [];
         for i from 1 to 20000 do
            dummy := [op(dummy), i]
         end do;
         result := TRUE;
    end proc;
    
    # Implementation of member runprofile;
     profileRun := proc()
          print("Call of profileRun...");
          CodeTools[Profiling]:-Profile(run);
           run();
           CodeTools[Profiling]:-PrintProfiles(run);
           CodeTools[Profiling]:-UnProfile(run);
     end proc;

     # getter
     get_n := proc()
         n;
     end proc;

     # setter
     set_n := proc(n)
         thismodule:-n := n;
     end proc;
     
end module;

 

Dear all!

Hope everything going fine with you. I am facing problem to integrate the attached file in this file we need the result of z[1] and others like y[1]. I am waiting your quick answer.

Help.mw

With my best regards and sincerely.

Muhammad Usman

School of Mathematical Sciences 
Peking University, Beijing, China

Email: muhammadusman@pku.edu.cn

Mob #: 0086-13001903838

 

Dear All

I am stucked at converting an differential expression in Jet notations. Maple is giving error as  expression contains composite derivatives. Please see attached file.


 

with(PDEtools, D_Dx, declare, ToJet, FromJet):

DepVars := [alpha(x, y, t), beta(x, y, t), xi(x, y, t), tau(x, y, t), eta(x, y, t), U(xi(x, y, t), tau(x, y, t), eta(x, y, t))]

[alpha(x, y, t), beta(x, y, t), xi(x, y, t), tau(x, y, t), eta(x, y, t), U(xi(x, y, t), tau(x, y, t), eta(x, y, t))]

(1)

alias(alpha = alpha(x, y, t), beta = beta(x, y, t), xi = xi(x, y, t), tau = tau(x, y, t), eta = eta(x, y, t), U = U(xi(x, y, t), tau(x, y, t), eta(x, y, t)))

alpha, beta, xi, tau, eta, U

(2)

declare(alpha, beta, xi, tau, eta, U)

alpha(x, y, t)*`will now be displayed as`*alpha

 

beta(x, y, t)*`will now be displayed as`*beta

 

xi(x, y, t)*`will now be displayed as`*xi

 

tau(x, y, t)*`will now be displayed as`*tau

 

eta(x, y, t)*`will now be displayed as`*eta

 

U(xi(x, y, t), tau(x, y, t), eta(x, y, t))*`will now be displayed as`*U

(3)

u := U*beta+alpha

beta*U+alpha

(4)

diff(u, x)

(diff(beta, x))*U+beta*((D[1](U))(xi, tau, eta)*(diff(xi, x))+(D[2](U))(xi, tau, eta)*(diff(tau, x))+(D[3](U))(xi, tau, eta)*(diff(eta, x)))+diff(alpha, x)

(5)

ToJet((diff(beta, x))*U+beta*((D[1](U))(xi, tau, eta)*(diff(xi, x))+(D[2](U))(xi, tau, eta)*(diff(tau, x))+(D[3](U))(xi, tau, eta)*(diff(eta, x)))+diff(alpha, x), DepVars)

Error, invalid input: PDEtools:-ToJet expects its 2nd argument, DepVars, to be of type Or(`PDEtools/F(...)`, name, And(Or(list({name, `PDEtools/F(...)`}), set({name, `PDEtools/F(...)`})), satisfies(proc (SL) options operator, arrow; evalb(0 < nops(SL)) end proc))), but received [alpha(x, y, t), beta(x, y, t), xi(x, y, t), tau(x, y, t), eta(x, y, t), U(xi(x, y, t), tau(x, y, t), eta(x, y, t))]

 

I guess ToJet is not working in case of composite function.

But how I can  display derivatived (D[1](U))(xi, tau, eta)as U[xi]


 

Download Composite_Derivative.mw

I have written a C++ program which I feed in an input from Maple which has been converted using the CodeGeneration package in Maple and stored in a text file. For it to be processed in C++ I need to remove the cg = at the start of the Maple output expression. An example of this is as follows:

C(x^2+y^2+z^2);

cg = x * x + y * y + z * z

C++ cannot process the cg= at the start of the string and so I have found ways around it by using Bash or C++ itself to remove or ignore the cg = but I was wondering if it was possible to just not have Maple print it to begin with?

- Yeti

First 1033 1034 1035 1036 1037 1038 1039 Last Page 1035 of 2216