Alec Mihailovs

Dr. Aleksandrs Mihailovs

4495 Reputation

21 Badges

20 years, 342 days
Mihailovs, Inc.
Owner, President, and CEO
Tyngsboro, Massachusetts, United States

Social Networks and Content at Maplesoft.com

Maple Application Center

I received my Ph.D. from the University of Pennsylvania in 1998 and I have been teaching since then at SUNY Oneonta for 1 year, at Shepherd University for 5 years, at Tennessee Tech for 2 years, at Lane College for 1 year, and this year I taught at the University of Massachusetts Lowell. My research interests include Representation Theory and Combinatorics.

MaplePrimes Activity


These are replies submitted by Alec Mihailovs

The only problem with it is that it was published in 1994 and doesn't include recent developments.

Alec

The only problem with it is that it was published in 1994 and doesn't include recent developments.

Alec

There is no such a site.

Wikipedia, in general, is not very good as a reference in math. In this particular case, however, it is pretty good.

You don't have to give a reference to wikipedia (other than saying that you used it to find other links) - but you can use the links given there as a reference.

Alec

There is no such a site.

Wikipedia, in general, is not very good as a reference in math. In this particular case, however, it is pretty good.

You don't have to give a reference to wikipedia (other than saying that you used it to find other links) - but you can use the links given there as a reference.

Alec

Can you read? Or click on the links provided?

Alec

Can you read? Or click on the links provided?

Alec

See acer's post above. It has a procedure.

What you did, can be written as a procedure as follows,

pade:=proc(f,x,a,m,n)
local L,M,S,p,q,k;
Digits:=Digits+4;
L := add(p[k]*x^k, k=0..m);
M := 1 + add(q[k]*x^k, k=1..n);
S:=fsolve({seq(coeftayl(M*f-L,x=a,k),k=0..m+n)});
evalf(eval(L/M,S),Digits-4)
end;

For example,

pade(exp(x),x,0,4,2);
                                       2                  3
  (1. + 0.6666666667 x + 0.2000000000 x  + 0.03333333333 x

                           4    /
         + 0.002777777778 x )  /  (
                              /
                                             2
        1. - 0.3333333333 x + 0.03333333333 x )

pade(sin(x),x,Pi,2,2);

                     1.187777303 - 0.3780812583 x
                --------------------------------------
                                                     2
                1. - 0.3959257678 x + 0.06301354304 x

Alec

PS Note, however, that this procedure is not as good as numapprox:-pade, because the system of equations may have no solutions, as well as infinite number of solutions. For example,

pade(1+x^5,x,0,4,3);
Error, (in fsolve) invalid input: 
select expects 2 or more arguments, but received 1

pade(1+x,x,0,3,2);
                                               2         3
           1. + (q[1] + 1.) x + (q[2] + q[1]) x  + q[2] x
           -----------------------------------------------
                                            2
                        1. + q[1] x + q[2] x

The case of infinite number of solutions can be fixed, say, by substituting 0s to free variables, but what to do if there are no solutions? -Alec

See acer's post above. It has a procedure.

What you did, can be written as a procedure as follows,

pade:=proc(f,x,a,m,n)
local L,M,S,p,q,k;
Digits:=Digits+4;
L := add(p[k]*x^k, k=0..m);
M := 1 + add(q[k]*x^k, k=1..n);
S:=fsolve({seq(coeftayl(M*f-L,x=a,k),k=0..m+n)});
evalf(eval(L/M,S),Digits-4)
end;

For example,

pade(exp(x),x,0,4,2);
                                       2                  3
  (1. + 0.6666666667 x + 0.2000000000 x  + 0.03333333333 x

                           4    /
         + 0.002777777778 x )  /  (
                              /
                                             2
        1. - 0.3333333333 x + 0.03333333333 x )

pade(sin(x),x,Pi,2,2);

                     1.187777303 - 0.3780812583 x
                --------------------------------------
                                                     2
                1. - 0.3959257678 x + 0.06301354304 x

Alec

PS Note, however, that this procedure is not as good as numapprox:-pade, because the system of equations may have no solutions, as well as infinite number of solutions. For example,

pade(1+x^5,x,0,4,3);
Error, (in fsolve) invalid input: 
select expects 2 or more arguments, but received 1

pade(1+x,x,0,3,2);
                                               2         3
           1. + (q[1] + 1.) x + (q[2] + q[1]) x  + q[2] x
           -----------------------------------------------
                                            2
                        1. + q[1] x + q[2] x

The case of infinite number of solutions can be fixed, say, by substituting 0s to free variables, but what to do if there are no solutions? -Alec

Also, with either assuming, or assigning k, the answer given by Maple in the second integral doesn't depend on the power of y in i2 (which is obviously wrong, too) , say

assume(k>0);
f:= cos(k * y * cos(theta))/Pi :
i1 := int(f , theta = 0..Pi) :
i2 := int(y^10 * exp(-y) * i1, y = 0..infinity) ;

                                     1
                          i2 := ------------
                                       2 1/2
                                (1 + k~ )

The power of the BesselJ also doesn't seem to matter,

int(y^5*exp(-y)*BesselJ(0,k*y)^7,y=0..infinity);

                                  1
                             ------------
                                    2 1/2
                             (1 + k~ )

Alec

It seems as if GNFS is the latest one.

The second latest which is widely used is debatable - depending on the point of view what "latest" means. It is either quadratic sieve, or ECM.

Alec

It seems as if GNFS is the latest one.

The second latest which is widely used is debatable - depending on the point of view what "latest" means. It is either quadratic sieve, or ECM.

Alec

Actually, Maple 12.02 gives the answer which is wrong for not positive k, even in the original integral,

f:= cos(k * y * cos(theta))/Pi :
i1 := int(f , theta = 0..Pi) :
i2 := int(y * exp(-y) * i1, y = 0..infinity) ;

                                     1
                       i2 := ------------------
                              3 /     1  \(3/2)
                             k  |1 + ----|
                                |      2 |
                                \     k  /

It is not defined for k=0 and is negative for negative k while it should be positive.

Alec

It can be patched as

f:=sprintf("%a",eval(`convert/Sum/from`[`GAMMA/IC`])):

`convert/Sum/from`[`GAMMA/IC`]:=parse(cat(f[1..504],
"-gamma-ln(z)+Sum((-1)^k/(k+1)!*z^(k+1)/(k+1),k = 0 .. infinity)",
f[546..-1])): 

convert(Ei(1,z),Sum);

                            /infinity                     \
                            | -----        _k1  (1 + _k1) |
                            |  \       (-1)    z          |
           -gamma - ln(z) + |   )     --------------------|
                            |  /      (1 + _k1)! (1 + _k1)|
                            | -----                       |
                            \_k1 = 0                      /

Alec

The source of the bug is in `convert/Sum/from`[`GAMMA/IC`]:

elif `tools/type`(a = 0) then 
return `convert/Sum/from`['GAMMA'](('GAMMA')(z))

That converts Γ(0,z) to Γ(z). In particular,

`convert/Sum/from`[`GAMMA/IC`]('GAMMA'(0,z));

                               GAMMA(z)

convert(GAMMA(0,z),Sum);

                               GAMMA(z)

Alec

Is MySpace page also planned?

Barack Obama has a page there, by the way.

Alec

First 82 83 84 85 86 87 88 Last Page 84 of 180