MaplePrimes Questions

I have the following expression:

q1:=2.800000000*10^(-30)*a+2.7800000000*10^(-29)*b+2.7800000000*10^(-31)+3.0*10^(-21)+2.*10^(-32)*c+3.*10^(-30)*d;

I saved it as a string, but the format seems to have changed.

q2:=convert(q1,string)

Can I output it as follows:

"2.800000000*10^(-30)*a+2.7800000000*10^(-29)*b+2.7800000000*10^(-31)+3.0*10^(-21)+2.*10^(-32)*c+3.*10^(-30)*d"

I am still learning Maple and so I would like to rely on you power users to help me out. I probably doing something which is not allowed or not using the best method. I would appreciate any advice. Thank you in advance    ProcQuestion.mw 

``

restart:

 

N:=10

10

(1)

PDE:=diff(u(y, t), t) = diff(u(y, t), y, y)

diff(u(y, t), t) = diff(diff(u(y, t), y), y)

(2)

 

ICBC:= {u(y,0) = 0, u(0,t) = cos(t), u(N, t) = 0};

{u(0, t) = cos(t), u(10, t) = 0, u(y, 0) = 0}

(3)

 

sol1:=pdsolve(PDE,ICBC,numeric,spacestep=0.025,timestep=0.00001):

u_at_1 := sol1:-value(u(y,t), t=0.1);

Error, missing operator or `;`

 

u_at_1(0);

[y = 0., t = .1, u(y, t) = HFloat(0.9950041652780257)]

(4)

NULL

Download U.m.mw

Hi

The procedure below work well without using the package LinearAlgebra.

The package conduct to an error.

Thanks for any advice.

restart

with(DocumentTools); with(DocumentTools[Layout]); with(StringTools)

NULL

NULL

NULL

iterration := proc (a, b) local MV, Tlayout; global P; MV := parse(Trim(StringSplit(Split(interface(version), ",")[2], "Maple")[2])); Threads:-Sleep(.2); P := P, plot([[a, b]], style = point); Tlayout := Table(Column(), widthmode = percentage, width = 40, alignment = left, interior = none, Row(Cell(Textfield(InlinePlot(plots:-display(P, title = typeset(Iteration = a))))))); if 2018 < MV then InsertContent(Worksheet(Tlayout)) else InsertContent(Worksheet(Group(Input(Tlayout)))) end if; return  end proc

NULL

NULL

P := NULL

for j to 10 do a := j; b := j^.5; iterration(a, b) end do

Download loop.mwloop.mw

If i have p := 8*T(x, 7)*T(x, 2)+4*T(x, 5)*T(x, 1)+6*T(x, 3)*T(x, 3)+7*T(x, 1)*T(x, 4)

 I want to convert the the multiplication functions like T(x, 7)*T(x, 2) into summation T(x, 7)+T(x, 2)

How do a I multiply tensors?Here's what happens when I try to multiply on by a scalar. It makes no sense.

 

I have the set {1, 2, 3, 4, 6, 8, 12, 17, 19, 20} and i need to select all the elements between 5 and 15 and create another set with just those elements. So, I want to obtain the set {6,8,12}. How might that be done using the select( ) command? Other suggestions welcome.

For a single variable function, I can expand the function 

series(x/(1−x−x^2),x,4);

and get the expansion upto order 4 term.

What shall I do if the function is two variable like f(x,y)=xy/(y−x*sqrt(y)−x^2) and intended to keep terms upto order 5, or moreseries.mw

series(x/(-x^2-x+1), x, 4)

series(x+x^2+2*x^3+O(x^4),x,4)

(1)

series(series(x*y/(1-x*sqrt(y)-x^2), x, 8), y, 4)

O(x^8)+(x^7+x^5+x^3+x)*y+(3*x^6+2*x^4+x^2)*y^(3/2)+(6*x^7+3*x^5+x^3)*y^2+(4*x^6+x^4)*y^(5/2)+(5*x^7+x^5)*y^3+x^6*y^(7/2)+O(y^4)

(2)

``

Download series.mw

say.

My attempt failed as (x^7 + x^5 + x^3 + x)*y etc contains O(8) terms x^7.y

Please help. 

I have some of my main functions defined to take input in different formats. Some have required  parameters and also optional parameters. Similar to how say dsolve can take one ode, or a list of ode's or set of ode's and also other additional arguments.

Currently I use something like  ode::{`=`,set(`=`),list(`=`)} in the signature of the proc to indicate this input can be any of these types. There are also optional aguments.

So inside the proc, it does lots and lots of if this then do such else do such type of logic in order to determine which case/combination of input it is called with.

I am thinking of rewriting all of the API to use overload. Yes, it means I will have lots of copies of the same proc, each to handle specific case of the signature. But it also mean it will be now much simpler inside each of the overloaded proc's to determine which case of call it is processing.

I'd like to ask, is there anything to be aware of before making this change? does it affect performance much? It seems to me it will make the logic and the program simpler.  Here is a very simple example to illustrate.

Which you think is better? I like the overload version more. But I am worried that I will end up with too many versions of the API since I need one for each possible combination and may be this will slow Maple down? 

The following is the worksheet also.

restart;

interface(warnlevel=4);
kernelopts('assertlevel'=2):
foo:=overload(
[
   proc(A::`=`) option overload;
       print("single equation");
   end,
  
   proc(A::set(`=`)) option overload;
       if nops(A)=1 then
          print("single eq in a set");
       else
          print("more than one eq in a set");
       fi;
   end,

   proc(A::list(`=`)) option overload;
       if nops(A)=1 then
          print("single eq in a list");
       else
          print("more than one eq in a list");
       fi;
   end

]):

 

3

foo(x=1);
foo([x=1]);
foo([x=1,y=2]);
foo({x=1});
foo({x=1,y=2})

"single equation"

"single eq in a list"

"more than one eq in a list"

"single eq in a set"

"more than one eq in a set"

restart;

interface(warnlevel=4);
kernelopts('assertlevel'=2):

foo:=proc(A::{`=`,set(`=`), list(`=`)})

    if type(A,`=`) then
        print("single equation");
    elif type(A,set) then
          if nops(A)=1 then
             print("single eq in a set");
          else
             print("more than one eq in a set");
          fi;
    else #must be list
       if nops(A)=1 then
          print("single eq in a list");
       else
          print("more than one eq in a list");
       fi;
    fi;
end proc:

4

foo(x=1);
foo([x=1]);
foo([x=1,y=2]);
foo({x=1});
foo({x=1,y=2})

"single equation"

"single eq in a set"

"more than one eq in a set"

"single eq in a set"

"more than one eq in a set"

 

Download overload.mw

Consider the following code:

van_der_Waals := (p + a / V[m]^2) * (V[m] - b) = R * T:
expand(van_der_Waals);

The objective of the exercise is express the equation in a cubic form. Obvious solution is to take the output of the code above and multiplie both sides by V[m]^2. However, I would like to know if there exists a different aproach to get the same result.

How can I write a decimal number with period in maple? For example, in the following code;

restart;
number := 3.123123123123:
convert(number, rational);

I got 1040 / 333. However if number := 3.123123 then output is 76123 / 24374, so, in order to solve the exercise assign to the variable number a value of 3.123123123123123123123123123... How can I do it in abreviate form?

simplify is a procedure in Maple that have as parameter an assumption ¿Have the assumption a default value? For example, if we consider the following code:

restart;
f:= (x^3 - 27) / (x^2 - 3 * x):
print(f = simplify(f));

The output of that code assume that denominator is not zero, so I think the procedure have a default value for assume parameter.

I am working with expressions resulting from maple calculations that are 3-4 lines long, but I have to make a term-by-term comparison between one calculation and another. I would like to interweave the results of the two calculation so that one is above the other allowing direct comparison. It would also be nice to break up the expressions into pieces.  Unfortunately, I have gone as far as I can using maple directly.  The only solution I have come up with is to convert the expressions into Tex, copy them to a Tex editor and manipulate the expressions.  Unfortunately, Tex markup makes it difficult interpret the terms. 

Has anyone come up with another method to manually manipulate the output from maple calculations.

eval.mw This is the maple worksheet The regions are u<=-1, -1<=u<=1,u>=1

I want to plot a number created in a loop to monitor how it varies while keeping all previous ones on the figure. This is simply done in Matlab by hold on command, but I dont know how it is possible in Maple?

for i to 22 do
plot([i], [i^.5], style = point) :
end do

Note I want to monitor points during the loop running not after it finishes.

First 286 287 288 289 290 291 292 Last Page 288 of 2428