Maple 18 Questions and Posts

These are Posts and Questions associated with the product, Maple 18

I have an indexed equation that contains serval definite integrals in it. I want maple to evaluate the equation for different indices. But when I set the parameter "N=100" in the code, it takes maple lots of time for the evaluation. I am looking for some tricks to make the code numerically more efficient. I will be so thankful for any opinion and help.
you can find my code below. The code is so simple and just contains few lines. I will appreciate any help.

Numerical_Performance.mw

Thanks in advance.

For two angles a and b, and functions f and g, I have a system of two equations,

diff(a(t),t$2) = f(a(t), b(t), diff(a(t),t), diff(b(t),t)) and diff(b(t),t$2) = g(a(t), b(t), diff(a(t),t), diff(b(t),t)).

The actual equations (i.e. not in terms of f and g) are known but are ommitted because they are very long.

 

I need not the solutions but simply the time t at which a(t) = b(t). While I have inputted the full equations into Maple, I do not know how to ask it to find an expression for t in terms of the constants of the equation.

How would I ask Maple to find this time?

I am sure that with this vector file with embedded components will learn how it works the vector operations. The code is free and can be modified to be improved. Forward engineers.

 

Vectores_con_Components_Embedded.mw     (in spanish)      

 

Lenin Araujo Castillo

I'm used to Mathcad, and I am very new to Maple. Something I cannot figure out right now is how to define multiple elments of a matrix using a function.


Input Data

Define system dimensions as n:=2;

i:=1..n;

j:=1..n;

lambda:=Matrix(n);

Lambda:=Matrix(n);

upsilon:=vector(n); 

Minor side note: I originaly had upsilon defined using the syntax "Vector[row](ncomp)", but this was giving me an 'exponentiation' operation error, so I changed it to what it is now (basically a list/array, which I guess has different type definitions that no longer cause the error?).

lambda[1,2]:=471.0433;

lambda[2,1]:=883.7530;

upsilon[1]:=58.69;

upsilon[2]:=18.07;

The Problem I'm Having

Now I just want to define Lambda using a function to define all elements (like I would in Mathcad).

Lambda[i,j]:= (upsilon[j]/upsilon[i]) * exp (-lambda[i,j]/2853);

which gives me an extremely long error message:

Error, invalid input: exp expects its 1st argument, x, to be of type algebraic, but received Matrix(2, 2, {(1, 1) = -0.3504976272e-3, (1, 2) = -.16509955895845776, (2, 1) = -.30975332953088164, (2, 2) = -0.3504976272e-3}, datatype = float[8]

As far as I can tell (keep in mind that this is my very first Maple project) that it doesn't like lambda as a matrix? But shouldn't it just evaluate to the element? and why is (2,2) and (1,1) giving values, because it should intialize to zero, so exp(0) = 1 in these cases??

I tried to simplify further by just trying

Lambda[i,j]:=(upsilon[j]/upsilon[i]);

but then it just gives me 1, and when I look into Lambda all the elements are now 1 when only the diagnol elements should be 1 (the rest some fractional amount)??

I am at a complete loss. I thought about doing something like For i = 1 to n etc. but then it just looks like coding, which defeats the purpose of trying to make a calculation sheet documenting the procedure...

Any help and/or insights into what I am doing wrong here would be most welcomed :)

P.S. I've just noticed that there is an upload option :/ Wilson_Equation.mw.

 

I have been learning to use the Physics package in Maple 18.  I just updated to the latest version of the Physics package to see if it would fix the problem by my results are the same.

When I take a covariant derivative in spherical coordinates it does not appear to have a scale factor such as g_kk below.  

 A_(j;k)=1/(g_(kk))(partialA_j)/(partialx_k)-Gamma_(jk)^iA_i,

This definition of comes from the Mathworld web site.  I think they have a typo such that it should actually read h_k which is the scale factor instead of g_kk which is the metric.  They are related by h_k^2 = g_kk.

Why doesn't Maple's covariant derivative have the scale factor when I am differentiating in spherical coordinates?

Thanks!

One of my students just showed me the following strange behaviour with Maple 18 (17?) on her Mac computer:

After entering anything at all in math mode, the Enter key has no effect.

After an empty line in math mode the Enter key works fine, and also after anything (including nothing) in text mode.

She has uninstalled and reinstalled Maple several times.

I have absolutely no clue. Do you?

If nobody has a clue, I will be back with more detailed information.

Knud Fjeldsted
Denmark

Hi,

 

I am having trouble solving the PDE. Can anyone shine some light?


``

sys:=-(1/2)*(diff(f(phi, s[1], s[2], w[1]), s[1]))*(s[1]-s[2])*s[1]/(s[2]*w[1])+(1/2)*(diff(f(phi, s[1], s[2], w[1]), s[2]))*(s[1]-s[2])*s[2]/((-1+w[1])*s[1])+diff(f(phi, s[1], s[2], w[1]), w[1]) = 0;

-(1/2)*(diff(f(phi, s[1], s[2], w[1]), s[1]))*(s[1]-s[2])*s[1]/(s[2]*w[1])+(1/2)*(diff(f(phi, s[1], s[2], w[1]), s[2]))*(s[1]-s[2])*s[2]/((-1+w[1])*s[1])+diff(f(phi, s[1], s[2], w[1]), w[1]) = 0

(1)

pdsolve(sys);

 

``


Download 1234.mw

Say the values of i^2 are being calculated from within a procedure,

 

mytest:=proc(n)

local ans;

    ans:=0;

    for i from 1 to n do

   ans:=ans+i^2;

   end do;

   return ans;

end proc;

 

Could I have a (time series) plot of i^2, while the values are being calculated?

The above is a toy example. What I want to archieve is to track a particular intermidiate values while the procedure is running.

 

Thanks,

 

casper

Hi Maple friends.

x(x+y)^4 = y(3*x-y)^2

When I differentiate implicitly by hand, I get:

-5*x^4-4*x^3*y+3*y^2/x^4-6*x*y+3*y^2 (my lecturer also got this solution)

Maple gives the result as: 

(-2*x(x+y)^3*(D(x))(x+y)+3*y(3*x-y)*(D(y))(3*x-y))/(2*x(x+y)^3*(D(x))(x+y)+y(3*x-y)*(D(y))(3*x-y))

Maybe I am doing something wrong in Maple? From the context menu, I choose implicit differentiation, and then select y as the dependent variable. How can I get Maple to give the same solution?

Thanks in advance.

Phil Yasskin (Texas A&M) has prepared a maplet for the Maplets for Calculus proiect. While this maplet works, in Malmem 18 it sometimes does NOT display the plot. We don't see this behavior in Maple 17, The maplet is attached for your convenience, if you are interested in seeing if it works for you.

HorAsymp-KD-ms-PY3.mw

The problem is difficult to describe. Basically, at the end of the problem, users can elect to see a plot of the function with(some) asymptotes. The code creates the plot when the problem is created, and displays this plot in the worksheet. But, when the plot is requested within the mapmlet, it sometimes does not show in the empty plot window.

Any explanations (or followup quesitons) will be greatly appreciated.

Doug

---------------------------------------------------------------------
Douglas B. Meade  <><
Math, USC, Columbia, SC 29208  E-mail: mailto:meade@math.sc.edu
Phone:  (803) 777-6183         URL:    http://www.math.sc.edu

Hi,

I read this thread, but it didnt really help.

test.mw (i noticed an error in the expression pj, now fixed!)

See this file above.

The function needs to be maximized is "loglik", with constraints,

f0>0, sigma>0 and mu is FREE. Only three variables.

 

Using some calculus and by changing variables, I was able to use Gauss–Hermite quadrature, and do some approximation, to get the values:

f0=105.9535

mu=-2.1587

sigma=3.5156

 

I am wondering if Maple can do this straight away. By that, I mean, without doing much further,  how could I get the values? (most efficiently and quickly)

 

Thanks,

 

casper

 

http://www.mapleprimes.com/questions/122813-Is-It-Possible-To-Optimize-This-Kind-Of-Integral

Hi,

This maybe a really simple question, I remember this is doable but couldnt find where the answer is.

Say I write a function to sum up all values in the list,

mysum:=proc(data::list)

return printf("The sum is %3.3f. ", sum(data[i],i=1..numelems(data)));

end proc;

 

and I use it like,

mysum(listA);

mysum(listB);

 

How would I print out a more informative string, like this:

"The sum of listA is %3.3f. "

"The sum of listB is %3.3f. "

 

Use "data", the input, as a string argument.

 

Thanks,

 

casper

I want to write an equation in the text portion of my document.  I do not need it evaluated. I just want to write formulas, like I do in LaTeX. 

Hello!

I would like to start with the following set of 9 elements,
A = { E11, E12, E21, E22, E11+E12, E11+E21, E12+E22, E21+E22, E11+E12+E21+E22 }.

I need a procedure that takes each of those elements and creates 3 new ones in the following way: Eij becomes Eij1, Eij2, Eij1+Eij2. So for example, E11 will become: E111, E112, and E111+E112. And for example the fifth element in A (i.e. E11+E12) will become the 3 new elements: E111+E121, E112+E122, and E111+E121 + E112+E122.

Since each of the 9 elements gets triplicated, there will be a new set, call it B, with 27 elements.

B = {E111, E112, E111+E112, E121, E122, E121+E122, ... }

Now I want to repeat this process of triplicating again so that, for example, E111 becomes: E1111, E1112, and E1111+E1112. And so on. This new set C will have 81 elements. Now I want to repeat this one last time. The final set, D, will have 243 (3^5) elements. 

Step 2: 

For every pair of elements x and y in D, I want to compute z:=(x+y)mod2. If z already belongs to D, discard it, otherwise, place z in the set D2. Do this until there are no more elements to add together (note that if x+y is computed then I don't want y+x to be computed also--that's inefficient). Maybe the most efficient way is to perform all possibly combinations of x+y mod 2 to create the set D2 and then just go: D2 setminus D.

Step 3: For x in D and y in D2 perform all possible combinations of z:=(x+y)mod2 and place these in D3 then perform set subtraction again: D3 minus D2 minus D.

Repeat this process again: x in D and y in D3 to create new elements in D4. Repeat again until Dm is empty (that is, D(m-1) will be the last set that contains new elements). I'm expecting around 12 sets... 

The issue with this whole algorithm is that I often run out of memory so I need a clever way to do this, since this algorithm is essentially classifying 2^32 elements into disjoint sets. Thank you! 

When the loop variable can be written as a unit step sequence, I never really distinguish between using

seq( f(i), i=m..n ), and

f(i) $ i=m..n

However I recent came across a case where the 'seq' construct ran about 2.5x faster. Is using 'seq' always faster? Does it depend on the function being evaluated? Why is there such a large difference in execution time

The original example which exhibited the problem is shown below, although after some experimentation, I have found other cases where 'seq' is faster (and plenty where it doesn't seem to make any difference!)

Example code for implementation using '$' is

restart:
ulim:=1000000:
t1:=time():
ans:= max
          ( { iquo(3*d, 7)/d $ d = 1..ulim }
             minus
            {3/7}
         ):
t2:= time()-t1;


Example code for for implementation using 'seq' is

restart:
ulim:=1000000:
t1:= time():
ans:= max
        ( { seq
            ( iquo(3*d, 7)/d, d=1..ulim )
          }
          minus
          {3/7}
        ):
t2:= time()-t1;

On my machine, the version using the 'seq' construct runs 2.5x faster

 

First 58 59 60 61 62 63 64 Last Page 60 of 68