MaplePrimes Posts

MaplePrimes Posts are for sharing your experiences, techniques and opinions about Maple, MapleSim and related products, as well as general interests in math and computing.

Latest Post
  • Latest Posts Feed
  • The following appears to give two different answers.

    Any suggestions?

     

    > restart:
    > Re(z);
    > Re(a);
    > Re(b);
    > assume(a>0,b>0,z>0);
    > H:=sqrt(b*(1+z)^3+a);
    > bot:=int(1/H,z=0..infinity);
    > evalf(subs(a=3/4,b=1/4,bot));
    > H1:=sqrt((1/4)*(1+z)^3+3/4);
    > int(1/H1,z=0..infinity);
    > evalf(%);

    This isn't strictly a Maple question, however, it arises because I'm trying to convert a Maple postscript plot to a png and it is not working; the result has no background color so is essentially impossible to view.  I use ImageMagick's convert to convert from eps to png.  Previously I hadn't had a problem with that, probaby one of my upgrades has changed something (ImageMagick).  Any ideas?  Presumably there is a way to force a background color with the ImageMagick convert command, but the obvious guesses haven't worked. 

    I have been trying to get Maple12 to generate C code to implement the
    quadratic formula (to produce a root of a second degree polynomial).

    My failure to make any progress leads me to conjecture that even
    though C is Turing complete as a programming language, Maple12
    believes C is incapable of dealing with complex numbers.

    * Is that conjecture correct?

    I subsequently attempted to use "Re(x)" and "Im(x)" in two procedures
    (the first procedure to return the real part, and the second procedure

    In the recent discussion about patching, a question about patching a function f including local variables of a module or another function was discussed. For example, let it be defined as

    A:=proc() global f,t; local x,y,z;
    f:=()->x+y();
    y:=()->z;
    t:=()->x+z;
    x,z:=0,1;
    NULL end:
    A();
    

    Now,

    op(f);
                                () -> x + y()
    f();
                                      1
    

    How to change it so that it would return 2 instead of 1, without reassigning it?

    Everybody is invited to Maple Wiki .

    It is hosted on Maple Advisor, a Maple community site independent of Maplesoft and/or Mapleprimes.

    The site has started just a couple of days ago and doesn't have much of a content yet.

    How about making it so that if I copy and paste the following lines from any common word processor (Word, Wordpad, Notepad,etc)

    f:=proc(x::list)
    local i;
    add(i,i=x);
    end proc;

    into a Standard Maple 12 worksheet I dont get  > at the beginning of every line.

    Not that if I copy and paste the lines into Classic I don't get the extra >'s.

    I am trying to develop a solution to a problem which consists of taking a given vector field (force) and converting that field from one domain to another while maintaining an equivalent system of forces. The real world problem occurs in posttensioning design where steel tendons are place in concrete members and then a tensile force is applied to the tendon, which is then restrained at the end points, creating a compressive vector field in the concrete.

    If I evaluate :

    assume(0 <= a); full := integrate((sin(t)-t*cos(t))^2*cos(a*t)/t^5, t = 0 .. infinity)

    I seem to be getting the wrong result. Not only does the expression look strange (imaginary parts for a real integrand), but it seems also to give wrong results e.g.:

    This is one sort of Maple inconsistency that interests me. Why should the first example behave like evalf(Int(...)) and call `evalf/int` while the second example does not?

    I was looking at the timelimit command in Maple, and wonder about whether it might be improved .

    The help-page ?timelimit says that it suspends its checks while within builtin functions. It says that, inside builtins, the time limit is "ignored".

    But Maple has a lot of builtins. And significant portions of the work may go on within them. Does this make the timelimit() function not useful, from a practical point of view?

    What if timelimit were to make checks whenever garbage collection (gc) ocurred? That's a safe point, no? And gc can happen within some builtins? Or what if time checks were made at the same frequency that interrupt requests were checked? Those can happen within some builtins, at safe points.

    Those were my thoughts, until I tried it. The command anames(builtin) shows that rtable() is a builtin. But I have found that timelimit will function within at least some rtable() calls.

    I was reminded of this by another thread.

    It is faster to add in-place a large size storage=sparse float[8] Matrix into a new empty storage=rectangular float[8] Matrix than it is to convert it that way using the Matrix() or rtable() constructors.

    Here's an example. First I'll do it with in-place Matrix addition. And then after that with a call to Matrix(). I measure the time to execute as well as the increase in bytes-allocated and bytes-used.

    > with(LinearAlgebra):
    
    > N := 500:
    > A := RandomMatrix(N,'density'=0.1,
    >                   'outputoptions'=['storage'='sparse',
    >                                    'datatype'=float[8]]):
    
    > st,ba,bu := time(),kernelopts(bytesalloc),kernelopts(bytesused):
    
    > B := Matrix(N,'datatype'=float[8]):
    > MatrixAdd(B,A,'inplace'=true):
    
    > time()-st,kernelopts(bytesalloc)-ba,kernelopts(bytesused)-bu;
                                0.022, 2489912, 357907
    

    I reciently upgraded to maple 12, and am hoping it was not a mistake...  The "problem" is that now xmaple seems to have no clue as to the rules of precedence.  Before the upgrade (I was using 9.5) the expression 5/7*3 evaluated to 15/7 as it should.  Now, xmaple 12 thinks the answer is 5/21.

    Is there some sort of download to fix this, or perhaps some "please evaluate using standard rules of precedence" setting I can use so that xmaple 12 is able to do arithmetic at least as well as the old 9.5 version?

     

     

    Consider the following simple procedure

    >F:=proc(LL::{set(list(integer)), list(list(integer))})
        LL;
     end proc:

     

    Now execute this little loop

    In a recent post, a Maple user misunderstood what an assignment to f(x) meant. Since this is a common source of confusion, I thought it would be worthwhile to say more about this subject.

    What is f(x)?
    First, f(x) is a "function application" in Maple. It is f applied to the argument x. It is not really the same as what one thinks of as a function in mathematics. Consider a mathematical function such as sin(x+y). In Maple, this can be represented by an expression sin(x+y) or a procedure proc(x, y) sin(x+y) end proc (which can also be written in "operator form" as (x, y)->sin(x+y)). The expression or the procedure can then be assigned to a name such as g. The mathematical function is then represented by g in Maple, and not by g(x, y). Instead, if g is a procedure, then g(x, y) means "the procedure g called with arguments x and y". The "function" help page explains these concepts in more detail.

    What is f(x):=x^2 in 1-d math?
    Now let's move on to what f(x) := x^2 means. In 1-d math, this means, "Create a remember table entry for procedure f." This stores the expression x^2 so that when you enter f(x), that expression is automatically retrieved, and you avoid the expense of executing the body of the procedure . Similarly, if you enter f(1) := 5, then the value 5 is automatically returned when you enter f(1). Note that if you subsequently enter f(y), you won't get y^2 returned, unless f was already defined to return y^2 with input y. Remember tables are very useful and are heavily used by some Maple library procedures. However, the majority of Maple users do not need to worry about this feature and can do very useful things in Maple without ever knowing about it.

    First 195 196 197 198 199 200 201 Last Page 197 of 306