Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Let Poly2 denote the vector space of polynomials

(with real coefficients) of degree less than 3.

Poly2 = {a1t^2+ a2 t+ a3 |a1; a2; a3 €R}

You may assume that {1,t; t^2}is a basis for Poly2.

(1) Show that L1 = {t^2 + 1; t-2 ; t + 3}and L2 = {2 t^2 + t; t^2 + 3; t}

are bases for Poly2.

(2) Let = 8t^2- 4+ 6 and = 7t^2- t + 9. Find the coordinates for

and with respect to the basis L1 and with respect to the basis L2

(3) find the coordinate change matrix P from the basis L1 to the basis L2.find P^-1

Just I answer part (1) can you help me to answer 2 and 3 

I am considering to write a wrapper for plot and related commands (could redefine the commands or introduce a new name) which facilitates export of Maple plots to postscript. The command should interpret some of the options and remove them from the options sequence before submitting the remaining ones to the original plot().
E.g. it should recognize a title="TITLE" parameter and process TITLE (e.g. write it to a specific file). Similarly I would want to be able to pass additional parameters, e.g. filename="FILE" in order to specify how the output file name should be set. Is this a sensible approach. How can I realize this detailed option 'parsing' in Maple?

eq1a := Homogenize(eq1, h);
eq2a := Homogenize(eq2, h);
eq3a := Homogenize(eq3, h);
David Cox using Algebraic Geometry page 82 use resultant to eliminate variable h
eq1b := eq1a - x;
eq2b := eq2a - y;
eq3b := eq3a - z;
T2:=lexdeg([a,b,c],[x,y,z]);
GB := Basis([eq1b,eq2b,eq3b], T2);
r1 := resultant(eq1b, eq2b, h);
r2 := resultant(eq1b, eq3b, h);
r1 = r2

page 82 teach how to eliminate, after do question 2, discover r1 and r2 are the same.

how to eliminate the variable h with resultant after homogenize ideal with variable h

Hi everyone

Right now I am working on a command that calculates the molar mass of molecules. Mostly it is working like a charm but in some cases the interpretation of the input goes wrong.
The command converts the input to a string, e.g.:

f:=convert(Ca3(PO4)2, string) = "Ca[3](PO[4])[2]"

f := StringTools:-Remove("[]_*^+-", f) = "Ca3(PO4)2"

 

However, sometimes information such as parentheses is lost (which is understandable considering the fact that maple does not know chemical syntax):

f := convert(NH[3][3]*PO[4], string) = "NH[3][3]*PO[4]"

f := StringTools:-Remove("[]_*^+-", f) = "NH33PO4"

 

In special cases it goes completely nuts (I am aware this is not a real molecule):

f := convert(Al(OH)2(NH3)2, string) = "Al(`#msub(mfenced(mi("OH")),mn("2"))`)(NH[3])[2]"

 

The problem could of course simply be solved by typing the input as a string with no subscripts but is looks much nicer with the correct chemical syntax as input.

Do any of you know a way to translate the input charactor by charactor into a (understandable) string?

 

Thanks in anvance,
Mads 

 



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.

Hi all

I have written the following code in maple to approximate arbitrary functions by hybrid of block-pulse and bernstein functions but it doesn't work properly especially for f(t)=1.0, so what is the matter?

bb1.mws

 


best wishes

Mahmood   Dadkhah

Ph.D Candidate

Applied Mathematics Department

In using the Maple 17 VectorCalculus package I was suprised to find that the Norm of a free vector is not the same as the Norm of a "corresponding" RootedVector, i.e.the same vector with a different root. Am I missing something ? Thanks for an explanation.

 

restart;
with(VectorCalculus):

P:=<1,2,3>; # free vector
PP:=RootedVector(root=[-1,2,-3],P)

Norm(P);
Norm(PP);

This seems such a simple/basic question I'm almost too embarassed to ask.

Anyway. this is causing me some headaches

 

> A := <0|0>;

         A:= [0 0 ]

> B := A:

> A(1,1) := 2 ;

         A:= [2 0 ]

> B;

         B:= [2 0 ]

What do I do to prevent the elements of B changing if A changes, after using the assignment B:=A (or should I not be using this assignment?)  I mean, I would like the same behaviour as 

> a := 0;

         a:=0

> b := a;

         b:=0

> a := 2;

         a:=2

> b;

         b:=0

which seems to work as I "expect"...

It puzzles me that some of the choices for Clickable Math don't return a result. The image below shows four choices for clickable math. I would like it to "factor" exactly as shown in the upper left choice, but nothing happens after clicking the choice. (No matter how many times I try.) The choices "2D Plot" and "Isolate" return results ("Complete the square", in this case, also does not work).

My guess is that I'm asking it to operate on only the denominator of the rhs of the equation, but then why is the choice displayed at all. I've noticed this for some time in certain cases (like since version 17 was release).

Is there a way to make the choice return a result ? In this case, I don't find an equivalent command (factor, the denominator) using a right click. (In this case, I'll use another command "covert" "parfrac" . . .)

I want Clickable Math to make it easy.

 

Thanks. Cheers !

 

 

I have used the command "op" in a code that I have written with Maple 17. When I restart the maple server and run the whole code again, the result of the "op" command changes! why is this happening?

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 am trying to define commutation rules between operators a1, a2, b1, b2.


restart;
with(Physics);
with(Library);
Setup(mathematicalnotation = true);

Setup(op = {a1, a2, b1, b2});
alias(A = %AntiCommutator);
algebra := [A(a1, a1) = 0, A(a2, a2) = 0, A(a1, a2) = 0, A(b2, a1) = 0, A(a1, b1) = 1,
A(a2, b2) = 1];
Se
tup(algebrarules = algebra);

However, the command Setup(algebrarules = algebra); causes an error. What is wrong? Noteworthy that if commutator is considered instead of anticommutator alias(A = %Commutator); then correct result follows.
Thank you.

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

 

How to calculate the integral of (z-z0)*z/sqrt((x-x0)^2+(y-y0)^2+(z-z0)^2)
over the unit sphere {(x,y,z):x^2+y^2+z^2<=1}
under the assumtion x0^2+y0^2+z0^2<=1 (x0^2+y0^2+z0^2>1)?
Its physical interpretation suggests the integral can be expressed through  elementary functions of the parameters.

My tries are
VectorCalculus:-int((z-z0)*z/sqrt((x-x0)^2+(y-y0)^2+(z-z0)^2),[x,y,z]=Sphere(<0,0,0>,1)) assuming x0^2+y0^2+z0^2<=1;

and

VectorCalculus:-int(eval((z-z0)*z/sqrt((x-x0)^2+(y-y0)^2+(z-z0)^2),
[x=r*sin(psi)*cos(theta),y=r*cos(psi)*sin(theta),z=r*cos(psi)])*r^2*sin(psi),
[r,psi,theta]=Parallelepiped(0..1,0..Pi,0..2*Pi)) assuming x0^2+y0^2+z0^2<=1;

The both are spinning on my comp. Also

VectorCalculus:-int((z-1/4)*z/sqrt((x-1/2)^2+(y-1/3)^2+(z-1/4)^2),[x,y,z]=Sphere(<0,0,0>,1),numeric);

is spinning.
Edt. The omitted part of the code assuming x0^2+y0^2+z0^2<=1 is added.

First 217 218 219 220 221 222 223 Last Page 219 of 2230