MaplePrimes Questions

1. How to generate times series data that have some logic law

but do not include distributive law?

Hi @ all,

I was wondering if there is a way to display every character that i type in maple math input without any kind of automatic text editing (neither adding nor removing characters).

I find it very cumbersome to read and edit the modified input (afaik just from looking at a simple piece of printed (black and white on pamper) code it is impossible to destinguish atomic variables and indexed variables due to automatic text edit of the input to lower script in both cases).

 

Example 1: "True" Low Script (Not indexed variable!)
> a__1 :=3:

When I type this in 2-D Math Input (or Maple Input) the cursor jumps to lower script (atomic variable) after the second underscore which is not what i want to happen. After evaluating the expression it is very neat to see the "1" as lower sript but not during typing. Any mode or something to achieve this?

2. Example: Use a loop for dynamic variable creation (not because it is smart to do so but to illustrate my problem with maple input and automated text edit)

> for i from 1 to 4 do:
> x__||i:=1:
> end do:

I can not type this directly in any kind of maple input I have found. The concatenate symbol will be interpreted as subscript without escaping the automatically entered "atomic variable" mode which causes an error. After I use the arrow key to type "||i" outside "atomic variable mode" the loop variable i is not used as index anymore but instead appended to x as a number. But what i want is a dynamic variable creation with "true" numbered subscripts. I could use a longer version with cat() but this sucks (or I simply do not know how to type it properly).

I do not want to use or see atomic variables during input (or any kind of automatic text editing during input for that matter) !

So what I do Instead is I use a texteditor to type away, paste the code to maple and execute it. Works like a charm and my fingers do not have to leave their designated spots on the keyboard and i can type way faster. Furthermore I can always copy the code back to notepad++ and use regex to make a lot of simultaneous replacements at once whereas this is quite difficult with code that i typed in maple.

 

So how do I turn off automated text edit of the input? Or should I use anything else then a worksheet?

Cheers
Zorg

Hi there,

I was wondering how to define the unit of an unspecified function. Here is what I want to do:

Say I have the coordinates of a Point in 1D-Space denoted by an unknown function x(t). While this function depends on time t the value of this function is supposed to be of SI Unit meter.

When calculating diff(x(t),t) I would like to get something like (absolut derivative of x(t)) * Unit(m/s).

So how do i tell maple that x(t) is something like f: time -> meter?
Also: How to specify that t has unit second without breaking the diff() command?

Any help would be greatly appreciated.

Regards

Zorg

> restart;
> n := [1, 2, 3, 4, 5]; pr := .71; p := 0; q := 0; b := 0; l := 0; s := 0;
> for j to nops(n) do R1 := 2*n[j]/(1+n[j]); R2 := 2*p/(1+n); sys := diff(diff(diff(f(eta), eta), eta), eta)+f(eta)*(diff(diff(f(eta), eta), eta))+1-(diff(f(eta), eta))^2 = 0, (diff(diff(theta(eta), eta), eta))/pr+f(eta)*(diff(theta(eta), eta))-R2*(diff(f(eta), eta))*theta(eta) = 0; bcs := f(0) = 0, (D(f))(0) = l+b*((D@@2)(f))(0), (D(f))(-.5) = 1, theta(0) = 1+s*(D(theta))(0), theta(-.5) = 0; proc (f1, th1, { output::name := 'number' }) local res1, fvals, thvals, res2; option remember; res1 := dsolve({sys, f(0) = 0, theta(0) = 1+th1, (D(f))(-2) = f1, (D(theta))(-2) = th1, ((D@@2)(f))(0) = f1-1}, numeric, :-output = listprocedure); fvals := (subs(res1, [seq(diff(f(eta), [`$`(eta, i)]), i = 0 .. 2)]))(0); thvals := (subs(res1, [seq(diff(theta(eta), [`$`(eta, i)]), i = 0 .. 1)]))(0); res2 := dsolve({sys, f(0) = fvals[1], theta(0) = thvals[1], theta(1) = 0, (D(f))(0) = fvals[2], (D(f))(1) = 0}, numeric, :-output = listprocedure); if output = 'number' then [fvals[3]-(subs(res2, diff(f(eta), `$`(eta, 2))))(0), thvals[2]-(subs(res2, diff(theta(eta), eta)))(0)] else res1, res2 end if end proc; p1 := proc (f1, th1) p(args)[1] end proc; p2 := proc (f1, th1) p(args)[2] end proc; p(.3, -.2); par := fsolve([p1, p2], [.3, -.2]); res1, res2 := p(op(par), output = xxx); plots:-display(plots:-odeplot(res1, [[eta, f(eta)], [eta, theta(eta)]]), plots:-odeplot(res2, [[eta, f(eta)], [eta, theta(eta)]])); plots:-display(plots:-odeplot(res1, [[eta, diff(f(eta), eta)], [eta, diff(theta(eta), eta)]]), plots:-odeplot(res2, [[eta, diff(f(eta), eta)], [eta, diff(theta(eta), eta)]])); plots:-display(plots:-odeplot(res1, [[eta, diff(f(eta), eta, eta)]]), plots:-odeplot(res2, [[eta, diff(f(eta), eta, eta)]])); fplt[j] := plots[odeplot](sol1, [eta, diff(diff(f(eta), eta), eta)], color = L[j], axes = boxed); tplt[j] := plots[odeplot](sol1, [[eta, theta(eta)]], color = L[j], axes = boxed) end do;


Dear Sir

In this above problem it showing that error as  Error, cannot split rhs for multiple assignment please can you tell why it is showing like this  ?? and where i did multiple assignments ??

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

First 1060 1061 1062 1063 1064 1065 1066 Last Page 1062 of 2429