Unanswered Questions

This page lists MaplePrimes questions that have not yet received an answer

How should optional input parameters be handled for procedures. The example has three optional inputs 

vars:=[x,y]   ,  clr:="b"   and prnt:="y"  . if one wants to change prnt to"n", vars and clr values must be entered.

{vars:=[x,y]  } , { clr:="b" }  and{ prnt:="y"}  this is a good method because one just enteres prnt="n".  But have to remember the input parameter name prnt.

I have a 3rd option, but it is to complicated and probably unreliable to use in practice.  and with more than 3 optional inputs too difficult to code.

I am wondering  are the other approaches and what is the prefered methodology. I have about 30+ procedures to apply this to in a package.

Edit:-  I can change the prnt to boolean true, false instead of "y" , "n".  That would make the all the optional inputs different types.

In Test1 its should be vars::list:=[x,y] not vars::{list , `string`}:=[x,y]

restart

Geomclr := "b"

"b"

(1)

NULL

NULL

NULL

Test1 := proc (A, B, vars::{list, string} := [x, y], clr::string := Geomclr, prnt::string := "y") if vars::string then clr := vars; vars := [x, y] end if; if clr = "y" or clr = "n" then prnt := clr; clr := Geomclr end if; print(clr); if prnt = "y" then print("good") end if; A*vars[1]+B*vars[2] end proc

NULL

Test1(A, B)

A*x+B*y

(2)

Test1(A, B, [r, s], "n")

Error, (in Test1) invalid left hand side in assignment

 

Test1(A, B, "g")

Error, (in Test1) invalid left hand side in assignment

 

Test1(A, B, "n")

Error, (in Test1) invalid left hand side in assignment

 

Test1(A, B, [x, y], "b", "n")

A*x+B*y

(3)

 

 

NULL

``

NULL

 

NULL

Test2 := proc (A, B, { vars::{list} := [x, y], clr::string := Geomclr, prnt::string := "y" }) print(clr); if prnt = "y" then print("good") end if; A*vars[1]+A*vars[2] end proc

NULL

NULL

Test2(A, B)

A*x+A*y

(4)

Test2(A, B, clr = "r")

A*x+A*y

(5)

Test2(A, B, prnt = "n")

A*x+A*y

(6)

Test2(A, B, prnt = "n")

A*x+A*y

(7)

Test2(A, B, prnt = "n", clr = "green", l = [r, s])

A*x+A*y

(8)

``

 

# 3 This is possible but is a very complicated method of handling the optional inputs and difficult the handle altered sequence on inputs.

NULL

Test3 := proc (A, B, vars::{list, string} := [x, y], clr::string := Geomclr, prnt::string := "y") local varsl, clrl, prntl; global Geomclr; varsl := vars; clrl := clr; prntl := prnt; if vars::string then varsl := [x, y]; if vars = "y" or vars = "n" then prntl := vars; clrl := Geomclr elif vars = "r" or vars = "g" or vars = "b" then clrl := vars end if elif vars::list and clr = "y" or clr = "n" then prntl := clr; clrl := Geomclr end if; if clr = "y" or clr = "n" and vars::string then prntl := clr; clrl := vars end if; print("Colour print out ", clrl); if prntl = "y" then print("This is a test Message") end if; A*varsl[1]+B*varsl[2] end proc

NULL

Test3(A, B)

A*x+B*y

(9)

Test3(A, B, [r, s])

A*r+B*s

(10)

Test3(A, B, [r, s], "n")

A*r+B*s

(11)

Test3(A, B, "n")

A*x+B*y

(12)

Test3(A, B, [r, s], "r", "n")

A*r+B*s

(13)

Test3(A, B, "r", "n")

A*x+B*y

(14)

Test3(A, B, "n", "r")

A*x+B*y

(15)

NULL


 

Download Q_2024-02-25_Test_proc_Args.mw

ow to get plot for the exact solution of a piecewise function and i need the correct plot which has curve started at y-axis (0.5) and goes till 2?

Hello,
I am a beginner on Maple and I am working on approximate solutions of partial differential equations.
After finding the approximate solution I wanted to compare both the plots (The exact solution and the approximate one), is here any tool or command that allows me to do so ?

Thanks in Advance !

I want to know the change of the web during the web handling process, so I attached the probe, and it shows the checkboxes to observe the velocity and tension values as shown in the picture, but there are 3 additional checkboxes like Force - T2 / real - e / real - e2, what does this mean?

Can I link my MapleCloud application to the Application Center?

Several years ago I uploaded an installable workbook application for Clifford Algebra to the public maplecloud following the guidelines and formats set down in maple help. My intention was to make the application available in the application center, but I just noticed that a package uploaded to MapleCloud is not  available for searching in the Application Center. Unfortunately,the Maple Cloud site for public packages is a mess. One cannot readily browse the applications there like in the application center.

The submissions page for the application center is not helpful in this case. It seems to assume submissions will take the form of maple documents/ worksheets rather than applications written in a workbook). I could not navigate to the Maple Cloud to drop a link to my package using the submission form, but it should be possible to link the the package already installed on the MapleCloud to the Cloud? (Because I is easier to update the MapleCloud package and it can be installed by opening from the Cloud).

I have a problem. Maple wants to create and a palette, I can add content and icons to the palette, but as soon as I restart Maple, the palette content has disappeared and says that Maple cannot find the added icons.

I have used the method described in Maple Help.

Is there anyone who can help?

Kind regards

Dear sir ,

I have implemented Dsolve method the code was executed, but i need to apply Kellor Box method to solve the ODES 

Please can any one help how to implement? 

because there is no post regarding the Kellor box method. 

restart; with(plots)

``

S := 1; Rd := .1; delta := .1; Hs := 1; Sc := .1; Pr := 6.8; n := 1; Rc := .1; E := .1; M := 1

NULL

 

OdeSys := a1*(diff(f(eta), eta, eta, eta, eta))/a2-S*(3*(diff(f(eta), eta, eta))+eta*(diff(f(eta), eta, eta, eta))+(diff(f(eta), eta))*(diff(f(eta), eta, eta))-f(eta)*(diff(f(eta), eta, eta, eta)))-a5*M*(diff(f(eta), eta, eta))/a2-a1*Kp*(diff(f(eta), eta, eta))/a2 = 0, (a4+4*Rd)*(diff(Theta(eta), eta, eta))+12*Rd*delta*((diff(Theta(eta), eta))*(diff(Theta(eta), eta))+Theta(eta)*(diff(Theta(eta), eta, eta)))+Hs*Theta(eta)-a3*Pr*S*(diff(Theta(eta), eta))*(eta-f(eta)) = 0, diff(Phi(eta), eta, eta)-S*Sc*(diff(Phi(eta), eta))*(eta-f(eta))-Sc*Rc*(1+delta*Theta(eta))^n*Phi(eta)*exp(-E/(1+delta*Theta(eta))) = 0; Cond := f(0) = 0, ((D@@2)(f))(0) = 0, (D(Theta))(0) = 0, (D(Phi))(0) = 0, f(1) = 1, (D(f))(1) = 0, Theta(1) = 1, Phi(1) = 1

   

KpVals := [1, 2, 3, 4]

for j to numelems(KpVals) do Ans[j] := dsolve(eval([OdeSys, Cond], Kp = KpVals[j]), numeric, output = listprocedure) end do

 

with(plots):
 cols := [red, blue, black,green]:

 plotA:= display
  ( [ seq
      ( odeplot
        ( Ans[k],[eta,(f(eta))],
          eta=0..1,
          color=cols[k]
        ),
        k=1..numelems(KpVals)
      )
    ],linestyle = "solid",
    'axes'= 'boxed',labels=[eta,'f(eta)'],labelfont=[TIMES,BOLD,16]
  );
 

with(plots):
  cols := [red, blue, black,green]:

plotB:= display( [ seq( odeplot
        ( Ans[k],[eta,Theta(eta)],
          eta=0..1,
          color=cols[k]
        ),
        k=1..numelems(KpVals)
      )
    ],linestyle = "solid",
    'axes'= 'boxed',labels=[eta,'Phi(eta)'],labelfont=[TIMES,BOLD,16]
  );

 

 

with(plots):
  cols := [red, blue, black,green]:

plotC:= display( [ seq( odeplot
        ( Ans[k],[eta,Phi(eta)],
          eta=0..1,
          color=cols[k]
        ),
        k=1..numelems(KpVals)
      )
    ],linestyle = "solid",
    'axes'= 'boxed',labels=[eta,'Phi(eta)'],labelfont=[TIMES,BOLD,16]
  );

 

with(plots):
 cols := [red, blue, black,green]:

 plotA:= display
  ( [ seq
      ( odeplot
        ( Ans[k],[eta,(diff(f(eta),eta))],
          eta=0..1,
          color=cols[k]
        ),
        k=1..numelems(KpVals)
      )
    ],linestyle = "solid",
    'axes'= 'boxed',labels=[eta,"f '(eta)"],labelfont=[TIMES,BOLD,16]
  );

 

 

 

Download kellor_box_method.mw

Is there an equivalent to Pivot Table in Excel?
I'm working on some investing data, and am using Maple to gather information from various sources and using DataFrame to combine all the data. I could export the dataframe and open in Excel or other spreadsheet and use the Pivot table to summarize the data, but is there an easy way to do all of it in Maple?

Thanks

Good evening,could you please help me to find the values of Phi[2],Phi[3],Phi[4],....

The right hand side of the for loop is the equation i need.Is this maple code correct.

rps1.mw

I would like to get a (necessary and sufficient) condition on real parameters a, b, and c for which there exists (at least) one non-negative solution to 9*x**4 + c < 9*a*(x - 1) + 3*b*(x**2 - 1) + c*x**3
A convenient way to formulate this is using quantifiers. Unfortunately, if I run 

QuantifierElimination:-QuantifierEliminate(:-exists([x],:-And(x>=0,9*x^4+c<9*a*(x-1)+3*b*(x^2-1)+c*x^3)));

Maple will simply output 

Error, (in RootFinding:-RSGateway:-refine_uni_tri) invalid input: RootFinding:-RSGateway:-try_refine_iso_tri expects its 1st argument, box, to be of type nonemptylist([rational, rational]), but received [8019*x^2+(-9*v__2^2-96552*v__2-279834912)*x+49*v__2^3+78318*v__2^2-387436932*v__2+121801800168, v__2^4+2052*v__2^3-5536296*v__2^2+3575222064*v__2-710903793888]

As an alternative method, one can execute 

RealDomain:-solve([x >= 0, 9*x**4 + c < 9*a*(x - 1) + 3*b*(x**2 - 1) + c*x**3], 'parameters' = {a, b, c});
Warning,  computation interrupted

Regretfully, this time the computation is not done in several minutes (so one may have to abort it manually). 

So, what is the proper approach to the above problem in Maple (without any a priori knowledge, if possible)?

Do you think this is a bug? I do not understand solve output. Will send to Maplesoft just in case.

It happens also on Maple 2022. Does it give same result on earlier versions?

2312

interface(version);

`Standard Worksheet Interface, Maple 2023.2, Windows 10, November 24 2023 Build ID 1762575`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1672 and is the same as the version installed in this computer, created 2024, February 7, 18:34 hours Pacific Time.`

eq:=1 = exp(-4-c1)/(-exp(-2*c1-8)/LambertW(-exp(-2*c1-8)))^(1/2);
solve(eq,c1)

1 = exp(-4-c1)/(-exp(-2*c1-8)/LambertW(-exp(-2*c1-8)))^(1/2)

-4-(1/2)*ln(_S000003)

PDEtools:-Solve(eq,c1)

c1 = -7/2

Download strange_output_from_solve_feb_17_2024.mw

I have doubts as to whether this is possible, but I would like to ask anyway.

For example, can

`*`(`+`(a, b), c);
                           c (a + b)

be written with composed procedures (`*`@`+`) and somehow grouped arguments (a,b) for `+` and (a+b,c) for `*`.

So far I have only come across composed procedures in parethesis applied to one expression in parenthesis.

Since the second pair of parenthesis does a function application to everything what is inside the parenthesis it seems impossible that the right most procedure is only applied to a sub-term of the expression first.

If the answer to my question is no, I want to aks a related question:

Is it possible to separate procedures calls from arguments? So, in a first part of a statement I have a sequence (or a list or a composed function) of procedures/operators and in the second part a sequence of arguments instead of a nested construct of procedure calls?

I'm running Maple 2020 on a Mac with OS 14.3.1.  Maple is not seeing current files in folders, and when it saves files, it does so with an older date.  In Settings, Maple has permission to access the Desktop, Documents, and Downloads folders, the only options that my Mac provides.

It's a bit frustrating.  Any help would be appreciated.

I am presently working on bivariate functions defined this way

C := (u, v) -> (phi@@(-1))(phi(u)+phi(v));

phi is a function of specific expression named the "generator". Both u and v are assumed to be in the closed interval [0,1].

Here is an example:

restart
phi := u -> (u^(-theta)-1)/theta:
C := (u, v) -> (phi@@(-1))(phi(u)+phi(v)):
C(u, v)
                       / (-theta)        (-theta)    \
                      | u         - 1   v         - 1|
           @@(phi, -1)| ------------- + -------------|
                       \    theta           theta    /

This definition of C is correct providing that  theta in [-1, +infinity) \ {0}.
As you can see, the display of C(u, v) contains the inverse function phi@@(-1) which Maple doesn't seem to know what to do with.

What I would like is to get rid of  phi@@(-1) and get 

C(u, v);
        (-1+u^(-theta)+v^(-theta))^(-1/theta)

The only way I found to get this is to do that:

restart
phi := u -> (u^(-theta)-1)/theta:
(phi@@(-1)) := u -> solve(phi(x)=u, x): # explicit definition of (phi@@(-1))
C := (u, v) -> simplify((phi@@(-1))(phi(u)+phi(v))) assuming theta >= -1, theta <> 0:
C(u, v);
                                         /    1  \
                                         |- -----|
                                         \  theta/
             /      (-theta)    (-theta)\         
             \-1 + u         + v        /         

As you see I have been forced to tell Maple what the inverse function of phi was.
Is there another way do get this result without writting the bold red line?

Maple knows several inverse functions (trigonometric functions for instance), but how does it know that?
As Maple does not seem to use a (f@@(-1)) := u -> solve(f(x)=u, x) like definition, does it uses a correspondence table between functions and their inverse?
If it is so can we augment it?

Thanks in advance.

PS: the ultimate goal is to do something like this Download CAC.mw  for different generators.

For the moment I have defined my own table generator <--> inverse function  as I did above with the bold red line: this works but it is not very elegant.

Hi,
I have a problem and I haven't been able to solve it yet. I want to solve an ordinary diffrential equation similar to
                                                                                                   (dphi/dxi)^2+2*V(phi)=0
and plot phi versus xi for a the following conditions:
1) V(phi)=dphi/dxi=0 at (phi=0,phi_m) and
2) dV(phi)/dphi=0 at phi=phi_m and 
3) d^2V(phi)/dphi^2=0 at both phi=0 and phi=phi_m.
How can I do this by Maple?(see the attached file)
w1.mw

5 6 7 8 9 10 11 Last Page 7 of 337