Maple 2022 Questions and Posts

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

This is part of a package I put together in VScode. Testing it using CMaple.exe worked fine from the code editor. Then I imported it into Maple and saved it as a package, After ra restart  using using with(....) to load it, the special types defined in the package are not recognised. Procedures that don't check for the special types work ok. I have included one of each in the worksheet. 

If I just read in the .mpl file things do work.

What is the cause of this problem?

A secondary question. If I use the same special types in another package. Would that cause a conflict if both are loaded together?

restart

RationalTrigonometry:=module()
    option package;
    
    export
        AcuteObstuseQ,
        AcuteObstuseS,
        AltitudeQ,
        CircleParm,
        CircumCirQ,
        CfstoLeqn,
        CrossLaw,
        LinePrll,
        LinePrpnd,
        LinePts,
        LPproj,
        MedianQ,
        #QPrj,
        Quadrance,
        Quadrea,
        QQF,
        SolidSpread,
        SpreadLawQuadrea,
        SpreadLaw,
        SpreadPoly,
        Spread,
        Spreads123,
        TQF,
        TSF,
        UHG;

local MyModule,RelDPxyz,ppp,xpsn,ypsn,zpsn;

MyModule:= module()
uses TT= TypeTools;
global _T1, _T2L, _T2V, _T2VR, _T3L, _T3V, _T3VC, _T3VR, _T4L, _MyType,GeomClr,Prntmsg, prjpsn;
          GeomClr:="Blue";
          Prntmsg:="y";
          prjpsn:=3;

local
     MyTypes:= {_T1, _T2L, _T2V, _T2VR, _T3L, _T3V, _T3VC, _T3VR, _T4L},
     AllMyTypes:= MyTypes union {_MyType},
     ModuleLoad,
      ModuleUnload:= proc()
     local T;
          for T in AllMyTypes do if TT:-Exists(T) then TT:-RemoveType(T) end if; end do;
          return
     end proc;

     ModuleLoad:= proc()
     local
          g, #iterator over module globals
          e
     ;
          
          ModuleUnload();
          #op([2,6], ...) of a module is its globals.
          for g in op([2,6], thismodule) do
               e:= eval(g);
               #print("e",e);
               if g <> e and e in AllMyTypes then
                    error "The name %1 must be globally available.", g
               end if
          end do;
          TT:-AddType(_T1, algebraic);
          TT:-AddType(_T2V, 'Vector(2, algebraic)');
          TT:-AddType(_T2VR, 'Vector[row](2, algebraic)');
          TT:-AddType(_T2L, [algebraic $ 2]);
          TT:-AddType(_T3V, 'Vector(3, algebraic)');
          TT:-AddType(_T3VC, 'Vector[column](3, algebraic)');
          TT:-AddType(_T3VR, 'Vector[row](3, algebraic)');
          TT:-AddType(_T3L, [algebraic $ 3]);
          TT:-AddType(_T4L, [algebraic $ 4]);
          TT:-AddType(_MyType, MyTypes);
          return
     end proc;
export
     WhichMyType:= proc(X)
     local S:= select(T-> X::T, MyTypes), n:= nops(S);
         printf("%a is ", X);
         if n=0 then printf("not any of the special types.\n")
         else printf("type %a.\n", `if`(n=1, S[], Amd(S[])))
         fi
      end proc;
export    
     Dsp:= proc(msg:=" empty",prnt:=Prntmsg )
          if prnt = "y" then print(msg); end if;
     end proc;

     ModuleLoad()    
     end module;

ppp:=proc(prjpsn)
     description " the position x,y,z or z,x,y in a Vector";   
     if prjpsn=1 then   
        xpsn:=2;
        ypsn:=3;
        zpsn:=1;
      else  
        xpsn:=1;
        ypsn:=2;
        zpsn:=3;  
     end if;
    return xpsn, ypsn, zpsn
end proc;
    






#$include "Rational_Trigonometry\Quadruple Quad Formula.mpl"
#$include "Rational_Trigonometry\Quadrances_Overload_procs.mpl"

Quadrance :=overload([
   
   # 1 Quadrances p0 [x,y]
        proc(p0::{_T2L,_T2V}, clr := GeomClr,$)
                option overload;
                description "Calculates Quadrance of a [x,y] point";
                uses LinearAlgebra;         
                if clr = "b" or clr = "B" or clr = "blue" or clr = "Blue" then
                                MyModule:-Dsp(" Blue");
                                        BilinearForm(p0, p0, conjugate = false) ;
                        elif clr = "r" or clr = "R" or clr = "red" or clr = "Red" then
                                MyModule:-Dsp(" Red");
                                        p0[1]^2 - p0[2]^2 ;
                        elif clr = "g" or clr = "G" or clr = "green" or clr = "Green" then
                                MyModule:-Dsp(" Green");
                                        2*p0[1]*p0[2];
                end if;
        end proc,
# 7 Quadrances Point to Plane and intersection point 3D
        proc(p0::{_T3L,_T3V},pl::{_T4L,`+`,procedure},var::_T3L:=[x,y,z],$)
        option overload;
                local i, dlambda,nlambda,lambda,Q   ,intrP,  Vpn  ,f1  ;
                if pl::_T4L then
                        Vpn:=convert(pl,Vector[row]);
                 elif pl::{`+`,procedure} then
                        f1 := `if`(pl::procedure, pl(vars[]), pl);
                        Vpn:=<coeff(f1,var[1]),coeff(f1,var[2]),coeff(f1,var[3]),coeff(coeff(coeff(f1,var[3],0),var[2],0),var[1],0)>;
                end  if;
                
                nlambda:=(Vpn[1]*p0[1]+Vpn[2]*p0[2]+Vpn[3]*p0[3]+Vpn[4]);
                dlambda:=Vpn[1]^2+Vpn[2]^2+Vpn[3]^2;
                lambda:=nlambda/dlambda;
                intrP:=`<|>`(seq(p0[i]+lambda*Vpn[i],i=1..3));
                Q:=nlambda^2/dlambda;
                MyModule:-WhichMyType(pl);
                MyModule:-Dsp("Quadrance Point to Plane & intersect Point");
                return Q,intrP
                end proc,

        # 2 Quadrances p0 [x,y,z]
        proc(p0::{_T3L,_T3V}, clr := GeomClr,$)
                option overload;
                description "Calculates Quadrance of a [x,y,z] point Blue only";
                uses LinearAlgebra;         
                if clr = "b" or clr = "B" or clr = "blue" or clr = "Blue" then
                         MyModule:-Dsp("Quadrance 3D Point Blue");
                                BilinearForm(p0, p0, conjugate = false);
                        else print("3D Not yet implimented for Red or Green Geometry" );        
                end if;
        end proc,

        # 3 Quadrances P0-P1 [x,y]
         proc(p0::{_T2L,_T2V},p1::{_T2L,_T2V}, clr := GeomClr,$)
                option overload;
                description "Quadrance between two [x,y] points";        
                uses LinearAlgebra;                                
                if clr = "b" or clr = "B" or clr = "blue" or clr = "Blue" then                  
                                MyModule:-Dsp( "Quadrance between two 2D Points Blue") ;
                                 BilinearForm(p0 - p1, p0 - p1, conjugate = false);                        
                        elif clr = "r" or clr = "R" or clr = "red" or clr = "Red" then
                                        MyModule:-Dsp( "Quadrance between two 2D Points Red") ;
                                         (p0[1] - p1[1])^2 - (p0[2] - p1[2])^2;                         
                        elif clr = "g" or clr = "G" or clr = "green" or clr = "Green" then                         
                                        MyModule:-Dsp( "Quadrance between two 2D Points Green") ;
                                         (2*p1[1] - 2*p0[1])*(p1[2] - p0[2]);                        
                end if;
        end proc,

        # 4 Quadrances p0-p1 [x,y,z]
        proc(p0::{_T3L,_T3V},p1::{_T3L,_T3V}, clr::string := GeomClr,$)
                option overload;
                description "Calculates Quadrance of between two points/vectors [x,y,z] Blue only";
                uses LinearAlgebra;         
                if clr = "b" or clr = "B" or clr = "blue" or clr = "Blue" then
                                        MyModule:-Dsp( "Quadrance between two 3D Points Blue") ;
                                        BilinearForm(p0 - p1, p0 - p1, conjugate = false);
                        else print("Not at this point  implimented for Red or Green Geometry" );        
                end if;
        end proc,

        # 5 Quadrances Point to Line and intersection point 2D
        proc(p0::_T2L, l1::{_T3L,`+`,procedure}, vars::_T2L:=[x,y],clr:=GeomClr)
                option overload;
                local f1,P0:=p0,P1;
                if l1::_T3L then
                        P1:=l1;
                 else
                        f1 := `if`(l1::procedure, l1(vars[]), l1);
                        P1:=[coeff(f1,vars[1]),coeff(f1,vars[2]),coeff(coeff(f1,vars[1],0),vars[2],0)];
                end if;
                if  clr = "b" or clr = "B" or clr = "blue" or clr = "Blue"  then
                        MyModule:-Dsp( "Quadrance 2D Point to Line & intersect Point Blue") ;
                        return (P0[1]*P1[1] + P0[2]*P1[2] + P1[3])^2/(P1[1]^2 + P1[2]^2),
                        [((-P0[2]*P1[2] - P1[3])*P1[1] + P0[1]*P1[2]^2)/(P1[1]^2 + P1[2]^2),
                        ((-P0[1]*P1[1] - P1[3])*P1[2] + P0[2]*P1[1]^2)/(P1[1]^2 + P1[2]^2)];
                         
                 elif clr = "r" or clr = "R" or clr = "red" or clr = "Red"  then
                        if P1[1]^2 - P1[2]^2 <> 0 then
                                MyModule:-Dsp( "Quadrance 2D Point to Line & intersect Point Red") ;
                                return (P0[1]*P1[1] + P0[2]*P1[2] + P1[3])^2/(P1[1]^2 - P1[2]^2),
                                [((-P0[2]*P1[2] - P1[3])*P1[1] - P0[1]*P1[2]^2)/(P1[1]^2 - P1[2]^2),
                                ((P0[1]*P1[1] + P1[3])*P1[2] + P0[2]*P1[1]^2)/(P1[1]^2 - P1[2]^2)];
                                
                         else
                                "Null Red"
                        end if;
                 
                        #"Input ERROR "Red"";         
                 elif clr = "g" or clr = "G" or clr = "green" or clr = "Green" then
                        if P1[1]*P1[2] = 0 then
                                "Null Green";
                         else
                                 MyModule:-Dsp( "Quadrance 2D Point to Line & intersect Point Green") ;
                                return 1/2*(P0[1]*P1[1] + P0[2]*P1[2] + P1[3])^2/(P1[1]*P1[2]),
                                [1/2*(P0[1]*P1[1] - P0[2]*P1[2] - P1[3])/P1[1],
                                1/2*(-P0[1]*P1[1] + P0[2]*P1[2] - P1[3])/P1[2]];
                                 
                        end if;
                 else
                        "Input ERROR Green";  
                end if;
        end proc,
        
        # 6 Quadrances Point to Line and intersection point 3D
        proc(p0::{_T3L,_T3V},lP::{_T3L,_T3V},lV::{_T3V},$)
                option overload;
                local lambda , Q ,intrP ;
                lambda:=((p0[1]-lP[1])*lV[1]+(p0[2]-lP[2])*lV[2]+(p0[3]-lP[3])*lV[3])/(lV[1]^2+lV[2]^2+lV[3]^2);
                print(lambda);
                Q:=((p0[1]-lP[1]-lambda*lV[1])^2+(p0[2]-lP[2]-lambda*lV[2])^2+(p0[3]-lP[3]-lambda*lV[3])^2);
                
                intrP:=lP+lambda*lV;
                MyModule:-Dsp("Quadrance Point to 3D Line and Intersect Point");

                return Q,intrP
        end proc

        

        

]):


QQF := proc(Q1, Q2, Q3, Q4)
 ((Q1 + Q2 + Q3 + Q4)^2 - 2*Q1^2 - 2*Q2^2 - 2*Q3^2 - 2*Q4^2)^2 = 64*Q2*Q1*Q3*Q4;
 end proc;

     

end module:

 

RationalTrigonometry:-Quadrance([0,2,3],<3,1,-1>,<2,1,2>);

1/3

"Quadrance Point to 3D Line and Intersect Point"

25, Vector[column](%id = 36893489965928498348)

RationalTrigonometry:-Quadrance([4,-4,3],2*x-2*y+5*z+8,[x,y,z]);

2*x-2*y+5*z+8 is type _T1.

"Quadrance Point to Plane & intersect Point"

507/11, Vector[row](%id = 36893489965928500148)

RationalTrigonometry:-Quadrance([4,-4,3],[2,-2,5,8]);

[2, -2, 5, 8] is type _T4L.

"Quadrance Point to Plane & intersect Point"

507/11, Vector[row](%id = 36893489965928493652)

Qb:=RationalTrigonometry:-Quadrance([a,b],[c,d],"b");

"Quadrance between two 2D Points Blue"

(-c+a)^2+(-d+b)^2

RationalTrigonometry:-QQF(a,b,c,d)

((a+b+c+d)^2-2*a^2-2*b^2-2*c^2-2*d^2)^2 = 64*b*a*c*d

RationalTrigonometry:-QQF(10^2,5^2,2^2,3^2)

5760000 = 5760000

restart

with(RationalTrigonometry)

[AcuteObstuseQ, AcuteObstuseS, AltitudeQ, CfstoLeqn, CircleParm, CircumCirQ, CrossLaw, LPproj, LinePrll, LinePrpnd, LinePts, MedianQ, QQF, Quadrance, Quadrea, SolidSpread, Spread, SpreadLaw, SpreadLawQuadrea, SpreadPoly, Spreads123, TQF, TSF, UHG]

Quadrance([4,-4,3],2*x-2*y+5*z+8,[x,y,z])

Error, type `_T3L` does not exist

QQF(10^2,5^2,2^2,3^2)
                       5760000 = 5760000

 


 

Download Q_2023-01-14_Package_not_Recognising_Types.mw

please help, thank you!

restart

with(LinearAlgebra)

alias(u = u(x, t), ub = ub(x, t))

u, ub

(1)

``

z1 := (2*I)*u*(2*gamma*lambda^2+alpha*lambda-1/4)*(diff(ub, x))+(2*I)*ub*(-2*gamma*lambda^2+alpha*lambda-1/4)*(diff(u, x))+I*ub*gamma*(diff(u, x, x, x))+Typesetting[delayDotProduct](4*u*gamma, lambda*ub.u.ub, true)+Typesetting[delayDotProduct](4*ub*gamma, lambda*u.ub.u, true)+Typesetting[delayDotProduct]((3*I)*gamma, ub.u.ub.(diff(u, x)), true)+Typesetting[delayDotProduct]((3*I)*gamma, ub.u.(diff(ub, x)).u, true)+Typesetting[delayDotProduct]((3*I)*gamma, ub.(diff(u, x)).ub.u, true)+Typesetting[delayDotProduct]((3*I)*gamma, (diff(ub, x)).u.ub.u, true)+Typesetting[delayDotProduct](I*gamma, (diff(u, x)).(diff(ub, x, x)), true)-Typesetting[delayDotProduct](I*gamma, (diff(ub, x, x)).(diff(u, x)), true)+Typesetting[delayDotProduct](I*gamma, u.(diff(ub, x, x, x)), true)+Typesetting[delayDotProduct](I*gamma, ub.(diff(u, x, x, x)), true)-Typesetting[delayDotProduct]((2*I)*u*gamma, ub.(3*u.(diff(ub, x))-(4*I)*lambda^3), true)+Typesetting[delayDotProduct]((2*I)*ub*gamma, u.(3*ub.(diff(u, x))-(4*I)*lambda^3), true)+(1/2)*Typesetting[delayDotProduct](-4*gamma*lambda-2*alpha, u.(diff(ub, x, x)), true)+(1/2)*Typesetting[delayDotProduct](4*gamma*lambda+2*alpha, ub.(diff(u, x, x)), true)+(1/2)*Typesetting[delayDotProduct](-4*gamma*lambda-2*alpha, (diff(u, x)).(diff(ub, x)), true)+(1/2)*Typesetting[delayDotProduct](4*gamma*lambda+2*alpha, (diff(ub, x)).(diff(u, x)), true)+(1/2)*Typesetting[delayDotProduct](-(8*I)*gamma*lambda^2-(4*I)*alpha*lambda+I, (diff(ub, x)).u, true)+(1/2)*Typesetting[delayDotProduct](-(8*I)*gamma*lambda^2-(4*I)*alpha*lambda+I, ub.(diff(u, x)), true)-ub*(-2*gamma*lambda+alpha)*(diff(u, x, x))+u*(2*gamma*lambda+alpha)*(diff(ub, x, x))+Typesetting[delayDotProduct](2*u, u.ub.u, true)*alpha-Typesetting[delayDotProduct](2*ub, ub.u.ub, true)*alpha-I*u*gamma*(diff(ub, x, x, x)) = 0

(1/2)*(4*gamma*lambda+2*alpha)*((diff(ub, x)).(diff(u, x)))-ub*(-2*gamma*lambda+alpha)*(diff(diff(u, x), x))+u*(2*gamma*lambda+alpha)*(diff(diff(ub, x), x))+(3*I)*gamma*(`.`(ub, diff(u, x), ub, u))+(3*I)*gamma*(`.`(diff(ub, x), u, ub, u))+I*gamma*((diff(u, x)).(diff(diff(ub, x), x)))+I*gamma*(u.(diff(diff(diff(ub, x), x), x)))+(3*I)*gamma*(`.`(ub, u, ub, diff(u, x)))+(3*I)*gamma*(`.`(ub, u, diff(ub, x), u))+4*ub*gamma*(`.`(lambda*u, ub, u))+4*u*gamma*(`.`(lambda*ub, u, ub))+I*gamma*(ub.(diff(diff(diff(u, x), x), x)))+2*u*(`.`(u, ub, u))*alpha-2*ub*(`.`(ub, u, ub))*alpha-I*gamma*((diff(diff(ub, x), x)).(diff(u, x)))+(1/2)*(-4*gamma*lambda-2*alpha)*((diff(u, x)).(diff(ub, x)))+(1/2)*(4*gamma*lambda+2*alpha)*(ub.(diff(diff(u, x), x)))+(1/2)*(-4*gamma*lambda-2*alpha)*(u.(diff(diff(ub, x), x)))+(1/2)*(-(8*I)*gamma*lambda^2-(4*I)*alpha*lambda+I)*(ub.(diff(u, x)))+(2*I)*u*(2*gamma*lambda^2+alpha*lambda-1/4)*(diff(ub, x))+(2*I)*ub*(-2*gamma*lambda^2+alpha*lambda-1/4)*(diff(u, x))-I*u*gamma*(diff(diff(diff(ub, x), x), x))+(2*I)*ub*gamma*(u.(3*(ub.(diff(u, x)))-(4*I)*lambda^3))+I*ub*gamma*(diff(diff(diff(u, x), x), x))-(2*I)*u*gamma*(ub.(3*(u.(diff(ub, x)))-(4*I)*lambda^3))+(1/2)*(-(8*I)*gamma*lambda^2-(4*I)*alpha*lambda+I)*((diff(ub, x)).u) = 0

(2)

Parse:-ConvertTo1D, "first argument to _Inert_ASSIGN must be assignable"

Error, illegal use of an object as a name

"for m from 0 to 5 do  lambda^m:=coeff(lhs(z1),lambda,m)=0;  od;"

 

NULL

Download compare.mw

Here is a graph (g.txt) in Graphlet (gml) format that I threw up with another program. I want to import it by maple. 

I am expecting to do two things:

  • Import the graph correctly;
  • draw the graph according to the vertex position, vertex color, vertex shape and edge color etc. in the file.

This question may come from https://www.mapleprimes.com/questions/235457-How-To-Draw-A-Directed-but-Maybe-Not-Acyclic. My intention is to use this format to efficiently pass graphs and other attributes such as vertex positions, vertex colors, and edge colors. 

However maple doesn't seem to be able to handle them even it cannot handle  the above first point well.

Import ("G:\\test\\g.gml");
# or 
GraphTheory:-ImportGraph ("G:\\test\\g.gml",graphlet)

Error, (in Import) incorrect syntax in parse: unexpected number (near 12th character of parsed string)

Error, (in GraphTheory:-ImportGraph) incorrect syntax in parse: unexpected number (near 12th character of parsed string)

I'm not sure what type of the mistake is here.

 

Mathematica can do it nicely:

g=Import["G:\\test\\g.gml"]

List @@@ PropertyValue[g, VertexLabels]
GraphEmbedding[g]

 

{{8, "x8"}, {12, "b3"}, {14, "x14"}, {2, "b2"}, {13, "x13"}, {5, 
  "r3"}, {7, "r5"}, {9, "r6"}, {11, "x11"}, {6, "r4"}, {1, "b1"}, {15,
   "x15"}, {3, "r1"}, {4, "r2"}, {10, "x10"}}

{{1080, 1440}, {480, 320}, {660, 560}, {420, 160}, {1380, 880}, {1020,
   720}, {720, 880}, {660, 800}, {2160, 0}, {0, 0}, {1500, 
  480}, {1320, 800}, {1800, 240}, {900, 1120}, {1080, 1360}}

PropertyValue[g, VertexStyle]

 

Is there a way to write a function definition that involves multiple cases so that it looks nice with braces as one would write on paper. 
For example, the function $f(x)=|x|$ which is $f(x)=x$ if $x>0$ and $f(x)=-x$ if $x<0$.

First of all, I'd like to be able to write this out with braces in non-executable math in my worksheet. This would already be great.

Then, is it possible to actually define a function this way (ie, not just display the braces in non-executable, but actually run in executable math and have a defined function)?

Hello guys,

I created a palette, but when I click on an entry, the following occurs:

If the entry line, where the mouse cursor is, is empty, insertion takes place on this line.
If the input line has any expression and the mouse cursor is to the left of the expression, insertion takes place on the line above.

If the input line has any expression and the mouse cursor is to the right of the expression, insertion takes place on the line below.

Does anyone know how to fix this?

Sincerely,

Oliveira

How do I find the maximum value of k by putting dw/dk = 0? Also, how to find the range of k for which w is real? 

restart

w = -(1/2)*sqrt(960*c^6*gamma^2*k^2-336*c^4*gamma^2*k^4+64*c^2*gamma^2*k^6-4*gamma^2*k^8+576*alpha*c^6*gamma*k-288*alpha*c^4*gamma*k^3-16*alpha*c^2*gamma*k^5+8*alpha*gamma*k^7-144*alpha^2*c^4*k^2-48*alpha^2*c^2*k^4-4*alpha^2*k^6+128*c^4*gamma*k^2-40*c^2*gamma*k^4+4*gamma*k^6+48*alpha*c^4*k-16*alpha*c^2*k^3-4*alpha*k^5+4*c^2*k^2-k^4)

w = -(1/2)*(960*c^6*gamma^2*k^2-336*c^4*gamma^2*k^4+64*c^2*gamma^2*k^6-4*gamma^2*k^8+576*alpha*c^6*gamma*k-288*alpha*c^4*gamma*k^3-16*alpha*c^2*gamma*k^5+8*alpha*gamma*k^7-144*alpha^2*c^4*k^2-48*alpha^2*c^2*k^4-4*alpha^2*k^6+128*c^4*gamma*k^2-40*c^2*gamma*k^4+4*gamma*k^6+48*alpha*c^4*k-16*alpha*c^2*k^3-4*alpha*k^5+4*c^2*k^2-k^4)^(1/2)

(1)

diff(w = -(1/2)*(960*c^6*gamma^2*k^2-336*c^4*gamma^2*k^4+64*c^2*gamma^2*k^6-4*gamma^2*k^8+576*alpha*c^6*gamma*k-288*alpha*c^4*gamma*k^3-16*alpha*c^2*gamma*k^5+8*alpha*gamma*k^7-144*alpha^2*c^4*k^2-48*alpha^2*c^2*k^4-4*alpha^2*k^6+128*c^4*gamma*k^2-40*c^2*gamma*k^4+4*gamma*k^6+48*alpha*c^4*k-16*alpha*c^2*k^3-4*alpha*k^5+4*c^2*k^2-k^4)^(1/2), k)

0 = -(1/4)*(1920*c^6*gamma^2*k-1344*c^4*gamma^2*k^3+384*c^2*gamma^2*k^5-32*gamma^2*k^7+576*alpha*c^6*gamma-864*alpha*c^4*gamma*k^2-80*alpha*c^2*gamma*k^4+56*alpha*gamma*k^6-288*alpha^2*c^4*k-192*alpha^2*c^2*k^3-24*alpha^2*k^5+256*c^4*gamma*k-160*c^2*gamma*k^3+24*gamma*k^5+48*alpha*c^4-48*alpha*c^2*k^2-20*alpha*k^4+8*c^2*k-4*k^3)/(960*c^6*gamma^2*k^2-336*c^4*gamma^2*k^4+64*c^2*gamma^2*k^6-4*gamma^2*k^8+576*alpha*c^6*gamma*k-288*alpha*c^4*gamma*k^3-16*alpha*c^2*gamma*k^5+8*alpha*gamma*k^7-144*alpha^2*c^4*k^2-48*alpha^2*c^2*k^4-4*alpha^2*k^6+128*c^4*gamma*k^2-40*c^2*gamma*k^4+4*gamma*k^6+48*alpha*c^4*k-16*alpha*c^2*k^3-4*alpha*k^5+4*c^2*k^2-k^4)^(1/2)

(2)

NULL

NULL

Download drelation.mw

Hello there, 

Is there any chance to ask if there is a way to simplify the numeric outcome from an operation?

Here is what I've been trying:

restart;

with(LinearAlgebra):

interface(imaginaryunit=j):

Amat := Matrix(2, 2, [[-0.1428571428*K__D, -0.1081971238], [376.9911185, 0]]);

Matrix(2, 2, {(1, 1) = -.1428571428*`#msub(mi("K"),mi("D",fontstyle = "normal"))`, (1, 2) = -.1081971238, (2, 1) = 376.9911185, (2, 2) = 0})

(1)

Eigenvalues(Amat);

Vector(2, {(1) = -0.7142857140e-1*`#msub(mi("K"),mi("D",fontstyle = "normal"))`+0.2000000000e-9*sqrt(0.1275510203e18*`#msub(mi("K"),mi("D",fontstyle = "normal"))`^2-0.1019733868e22), (2) = -0.7142857140e-1*`#msub(mi("K"),mi("D",fontstyle = "normal"))`-0.2000000000e-9*sqrt(0.1275510203e18*`#msub(mi("K"),mi("D",fontstyle = "normal"))`^2-0.1019733868e22)})

(2)

Desired := sqrt((2.000000000*10^(-10))^2 * (1.275510203*10^17*K__D^2 - 1.019733868*10^21));

(0.5102040812e-2*K__D^2-40.78935472)^(1/2)

(3)

 


I tried to simplify the Eigen values, to make them in the formality of the 'Desired' numerical expression, but no success yet. 

Thank you, 

Download Q20230110_m1.mw

restart

with(DEtools); with(LinearAlgebra)

diff(u(x, t), t) = [Matrix([[0, (1/2)*mu*k^2], [2*A^2-(1/2)*mu*k^2, 0]])]*u(x, t)

diff(u(x, t), t) = [Matrix(%id = 36893489823894642308)]*u(x, t)

(1)

"where u(x,t)=[u1 u2]^(T) is a vector. The solution of differential equation (1) is u=v*exp(w*t)."

where*w^2 = -(1/4)*mu^2*k^4+mu*k^2*A^2

"How can we solve differntial equation*(1) on Maple"?""

NULL

Download dsol.mw

Hello guys
Could someone help me create a simple palette to contain, for example, three functions that I use constantly?

           conve1(a), conve2(a) and conve3(a).

I tried through the help documentation, but I couldn't.

Sincerely,
Oliveira

Hello,

I use Maple 2022 on a MacBook Pro. In most of the plots I create I use symbol=solidcircle and symbolsize=12.

Is there a way to make those (and perhaps oher) settings user default so I don't need them in every plot command?

Thanks.

Jose

After studying the plottools:-transform command, I intend to visualize the following regions with constrained parameters in 
 

(plottools[transform](proc (u, v) options operator, arrow; [u^3-v^2, u^2-v^3] end proc))(plots[inequal](`or`(u^2+4*v^2 <= 4, `and`(u^2+v^2 < 4, 4*v >= (u+2)^2+2*v^2)), nolines))

 

(plottools[transform](proc (s, t) options operator, arrow; [s^2*sqrt(t)*cos(t), s^2*sin(t)] end proc))(plots[inequal](`and`(`and`(s >= 1, 5*s <= 5+t), t < 5), s = 1 .. 2, t = 0 .. 5))

 

 

But Mma gives 

The first instance (with default settings) is the same, but as for the second instance, which graph is correct? 

restart;
with(plottools):
with(plots):
transform((u, v) -> [u^3 - v^2, u^2 - v^3])(inequal(Or(u^2 + 4*v^2 <= 4, And(u^2 + v^2 < 4, (u + 2)^2 + 2*(v - 1)^2 <= 2)), nolines));
transform((s, t) -> [s^2*sqrt(t)*cos(t), s^2*sin(t)])(inequal(`and`(1 <= s, 5*s <= 5 + t, t < 5), s = 1 .. 2, t = 0 .. 5));


Download TransformedRegion.mws

The range is wrong. For details, see below, please.
 

restart;

assume(x, RealRange(0, 1))

plot([sqrt(x*(2 - x)/3), 1 - sqrt((1 - x^2)/3)], legend = InertForm:-Display~([sqrt(x*(2 - x) %/ 3), 1 - sqrt((1 %- x^2) %/ 3)], 'inert' = false));

 

smartplot([sqrt(x*(2 - x)/3), 1 - sqrt((1 - x^2)/3)]);

 

smartplot([''piecewise'(And(0 <= x, x <= 1), sqrt(x*(2 - x)/3))', ''piecewise'(And(0 <= x, x <= 1), 1 - sqrt((1 - x^2)/3))']);

 

smartplot(['piecewise(And(0 <= x, x <= 1), sqrt(x*(2 - x)/3))', 'piecewise(And(0 <= x, x <= 1), 1 - sqrt((1 - x^2)/3))']);

 

smartplot([''piecewise''(And(0 <= x, x <= 1), sqrt(x*(2 - x)/3)), ''piecewise''(And(0 <= x, x <= 1), 1 - sqrt((1 - x^2)/3))]);

 

x := 'x'NULL


 

Download SmartPlots.mw

The help page claims that smartplot(..) will call 2-D plot procedures ultimately, but why is the smartplots command incompatible with the use of assume?

In an old post, vv reported a bug in simpl/max, which has been "fixed" in Maple 2018. However, it seem that such repairs are not complete enough.
For example, suppose it is required to find the (squared) distance between the origin and a point on x3 - x + y2 = ⅓ which is closest to the origin. In other words, one needs to minimize x²+y² among the points on this curve, i.e., 

extrema(x^2 + y^2, {x^3 + y^2 - x = 1/3}, {x, y}, 's'); # in exact form

Unfortunately, an identical error message appears again: 

restart;

extrema(x^2+y^2, {x^3+y^2-x = -2/(3*sqrt(3))}, {x, y})

{4/3}

(1)

extrema(x^2+y^2, {x^3+y^2-x = 1/3}, {x, y})

Error, (in simpl/max) complex argument to max/min: 1/36*((36+12*I*3^(1/2))^(2/3)+12)^2/(36+12*I*3^(1/2))^(2/3)

 

`~`[`^`](extrema(sqrt(x^2+y^2), {x^3+y^2-x = 1/3}, {x, y}), 2)

{4/3, 4/27}

(2)

extrema(x^2+1/3-x^3+x, {x^3+y^2-x = 1/3}, {x, y})

{4/3, 4/27}

(3)

MTM[limit](extrema(x^2+y^2, {x^3+y^2-x = a}, {x, y}), 1/3)

{4/3, 4/27}

(4)

Download tryHarder.mws

How about changing the values of parameter ?

for a from -3 by 3/27 to 3 do
    try
        extrema(x^2 + y^2, {x^3 + y^2 - x = a}, {x, y}); 
    catch:
        print(a); 
    end;
od;
                               -1
                               --
                               3 

                               -2
                               --
                               9 

                               -1
                               --
                               9 

                               1
                               -
                               9

                               2
                               -
                               9

                               1
                               -
                               3

By the way, like extrema, Student[MultivariateCalculus]:-LagrangeMultipliers also executes the Lagrange Multiplier method, but strangely, 

Student[MultivariateCalculus][LagrangeMultipliers](y^2 + x^2, [x^3 + y^2 - x - 1/3], [x, y], output = plot):

does not cause any errors.

Dear Forum,

I get data from a mass-spectrometer and want to do some analysis on it . 

What I get looks like this : ( only a few lines, the files are very large )

t[s]; scanId; m/z; I[A]; pTot[mbar]
2.00;0;0; 0.000000e+000; 0.000000e+000
4.00;0;0; 0.000000e+000; 0.000000e+000
441.00;0;0; 0.000000e+000;1,29E+00
443.00;0;0; 0.000000e+000;1,29E+00
453.00;0;0; 0.000000e+000;1,26E+00
455.00;0;0; 0.000000e+000;1,24E+00
463.00;1; 0.390625;8,14E-05;1,23E+00
464.00;1; 0.40625;1,23E-04;1,43E+00
464.00;1; 0.421875;1,73E-04;1,43E+00
464.00;1; 0.4375;2,27E-04;1,43E+00
464.00;1; 0.453125;2,77E-04;1,43E+00

When I add some blanks, it looks like this :  

t[s];        scanId;   m/z;              I[A];               pTot[mbar]

464.00;  1;           0.421875;     1,73E-04;     1,43E+00

The columns are separated by semicolon

t[s]  and m/z are separated with a dot,  I[A]  and p come as exponentials with a comma.

When I try to import this  with

 BKK := Import("H:\\Maple\\Spielwiese\\BGSample.csv")

I get a DataFrame with two columns -correct-  because there are two commas. 

Is there a way to import such data without preprocessing into maple ?

I include the data file, had to change the suffix to .txt - the original is .csv

Thank you and kind regards, 

Klaus

BKK := Import("H:\\Maple\\Spielwiese\\BGSample.csv")

module DataFrame () description "two-dimensional rich data container"; local columns, rows, data, binder; option object(BaseDataObject); end module

(1)

BKK[10, 1] = 27.NULL

NULL

Download howdoiimportthis.mw

I often want to export an expression from Maple to LaTeX. Often, the output will contain commands that my LaTeX compiler doesn't recongnize. This hinders my LaTeX document production efficiency greatly. I use MiKTeX and Texmaker to generate documents in LaTeX language. Naively I assumed that Maple sticks to core LaTeX packages when generating an output. I still don't know if that is the case. The main issue is that, I don't know which LaTeX packages some of the Maple outputs use, and so, I don't know which packages to load in my LaTeX document.

As a concrete example, I show how I convert an expression to LaTeX language and how that particular output contains commands: \iup and \idn which are not recongnized by my LaTeX compiler since I don't know which package these commands come from. I google search for commands \iup and \idn came up empty. How do I figure out what package these commands come from

Latex_export_problems_1.mw

First 22 23 24 25 26 27 28 Last Page 24 of 43