acer

32348 Reputation

29 Badges

19 years, 330 days
Ontario, Canada

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are replies submitted by acer

Is it possible to start maple11.02 Classic GUI under Windows with the mtserver.exe multi-threaded kernel, and see whether that too is a problem alongside AVG 8?

acer

Aren't the Optimization, GlobalOptimization, and evalf/Int external processes already interruptible during callbacks to Maple proper? They make "eval" and "evalhf" callbacks to evaluate objectives and integrands.

Isn't external software precision LinearAlgebra interruptible during garbage collection?

acer

RootFinding:-Analytic is often not an efficient tool for find a sequence of roots on the real axis. Simply by the way that it works it will do a lot of complex contour work, trying to separate the roots, that is not necessary to solve the problem. (And that's on top of the potential problems with nonreal roots and the question of how fine to make the complex bounding box -- not a problem here but true in general).

On the other hand, RootFinding:-NextZero, while not perfect, is designed for precisely this purpose, finding an ordered set of zeros on the real axis starting from a given initial left-most point.

But of course Robert's answer to use BesselJZeros is best. (I had forgotten that the routine existed!)

acer

RootFinding:-Analytic is often not an efficient tool for find a sequence of roots on the real axis. Simply by the way that it works it will do a lot of complex contour work, trying to separate the roots, that is not necessary to solve the problem. (And that's on top of the potential problems with nonreal roots and the question of how fine to make the complex bounding box -- not a problem here but true in general).

On the other hand, RootFinding:-NextZero, while not perfect, is designed for precisely this purpose, finding an ordered set of zeros on the real axis starting from a given initial left-most point.

But of course Robert's answer to use BesselJZeros is best. (I had forgotten that the routine existed!)

acer

The result from the first of those looks nice. Wouldn't it be nicer still, though, if int() could return that under conditions on a and b. Let's call it a "weakness".

acer

The result from the first of those looks nice. Wouldn't it be nicer still, though, if int() could return that under conditions on a and b. Let's call it a "weakness".

acer

Something like this works, I think, to get a result for a and b as posints greater than or equal to 2. But I did it by hand.

> sol := Sum((-1)^i*binomial(b-1,i)*t^(a-1+i+1)/(a-1+i+1),i = 0 .. b):

> value(eval(sol,[a=3,b=4,t=2]));
                                     -4/5

acer

Something like this works, I think, to get a result for a and b as posints greater than or equal to 2. But I did it by hand.

> sol := Sum((-1)^i*binomial(b-1,i)*t^(a-1+i+1)/(a-1+i+1),i = 0 .. b):

> value(eval(sol,[a=3,b=4,t=2]));
                                     -4/5

acer

If only the floating point result is wanted, then evalf(f(x,a,b)) could also be OK, provided that f creates the inert Int() instead of int() , like John has done above.

Now, to the question about it being a bug. Would it not be better if int() could return a conditional result here?

I wasn't able to get anything out of int() under the following assumptions. Maybe someone else can see how. (Is there not a closed form answer in terms of binomials to expand (t-1)^(b-1)?)

> restart:
> _EnvAllSolutions:=true:

> f := Int( t^(a-1) * (1-t)^(b-1), t=0..x ):

> value(simplify(expand(f)))
>   assuming a::AndProp(integer,RealRange(2,infinity)),
>            b::AndProp(integer,RealRange(2,infinity)), x>0;

                              x
                             /
                         b  |    (a - 1)         (b - 1)
                    -(-1)   |   t        (-1 + t)        dt
                            |
                           /
                             0

acer

If only the floating point result is wanted, then evalf(f(x,a,b)) could also be OK, provided that f creates the inert Int() instead of int() , like John has done above.

Now, to the question about it being a bug. Would it not be better if int() could return a conditional result here?

I wasn't able to get anything out of int() under the following assumptions. Maybe someone else can see how. (Is there not a closed form answer in terms of binomials to expand (t-1)^(b-1)?)

> restart:
> _EnvAllSolutions:=true:

> f := Int( t^(a-1) * (1-t)^(b-1), t=0..x ):

> value(simplify(expand(f)))
>   assuming a::AndProp(integer,RealRange(2,infinity)),
>            b::AndProp(integer,RealRange(2,infinity)), x>0;

                              x
                             /
                         b  |    (a - 1)         (b - 1)
                    -(-1)   |   t        (-1 + t)        dt
                            |
                           /
                             0

acer

What Axel's trying to show is that LambertW(1) is an exact symbolic representation of the value that satisfies the equation.

The 0.56.. floating-point result is only an approximation accurate to a finite number of digits. The evalf() command can be used to approximate the exact symbolic quantity to however many decimal digits you wish.

You could also use fsolve instead of solve, if you wanted only the floating-point result.

Maple is a computer algebra system (CAS) and it is able to do lots of exact computation involving such exact symbolic quantities, which is why `solve` doesn't just return the approximate result.

acer

What Axel's trying to show is that LambertW(1) is an exact symbolic representation of the value that satisfies the equation.

The 0.56.. floating-point result is only an approximation accurate to a finite number of digits. The evalf() command can be used to approximate the exact symbolic quantity to however many decimal digits you wish.

You could also use fsolve instead of solve, if you wanted only the floating-point result.

Maple is a computer algebra system (CAS) and it is able to do lots of exact computation involving such exact symbolic quantities, which is why `solve` doesn't just return the approximate result.

acer

There's not much point in googling either.

The Maple language code in the .mla archives requires an interpreter in order to run. The Maple kernel is such an interpreter. I don't think that there is any other full and good interpreter of that syntax. So such Maple code only runs in Maple itself. As a result the world is not fascinated by it. You might find this post of interest, though.

Only the Maple graphical user interface is implemented in Java. None of the computational numeric code in Maple is implemented in Java (with the very, very minor exception of some plot rendering stuff, I suppose).

acer

You posted this query twice. I posted a response here, that might be of some use to you.

acer

The fact that Maple's `int` can get better answers following some change or variables is well known and documented by many examples over the years on usenet. Sometimes `int` gets a poor answer without it, and sometimes no answer. As far as I know there is no algorithm to find such the natural substitution that gives the best result. But candidate substitutions are often obvious. A scheme with pattern matching and trying some candidate substitutions has been suggested as an augmentation to `int` in the past. I cannot recall where and when I first saw it, but it wouldn't have been recently.

Change of variables is often not the only way to get the nicer answer, and that's true in this case too. (FTOC and simplification under assumptions also "worked".) This is merely part of what makes definite integration extra tricky -- how to choose methods to try and whose results to accept.

acer

First 537 538 539 540 541 542 543 Last Page 539 of 592