Alec Mihailovs

Dr. Aleksandrs Mihailovs

4495 Reputation

21 Badges

20 years, 335 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

I have a question about Joe Riel. Is he a Maplesoft employee or not? His name is not highlighted.

Shouldn't be also the guidelines for beta-testers posted? They signed a confidentiality agreement, too.

_______________
Alec Mihailovs, PhD
Maplesoft Member

@jakubi 

The difference, Alejandro, is, obviously, that what you (or me) posted don't matter, but what Joe Riel pointed out matters.

Joe, thank you for pointing out that Alejandro's comment to Will.

Alec

Frankly, I don't see why it is not feasible. It is quite simple - assuming that new posting is allowed only on new site. Especially if the old site is not updated and logging there is disabled - that would protect from spam. I've suggested that at least twice earlier. There shouldn't be any confusion for new users if its url will be old.mapleprimes.com - only old users would know about that.

While numbers may be favourable for new site, but that may change fast - especially with a significant decrease of Maplesoft activities during the last week or so.

Polls attracted at least 25-30 comments each, and around 500 voters each - how that could be seen as unpopular? The last polls were not especially interesting, but there were several much more interesting suggestions in blogs and posts, which were not used - still these blogs and posts attracted quite a few comments, even without voting.

I'd like to have a copy of the old site, and I am sure that many other people, too - please post a download link (as a zip file, perhaps.)

_______________
Alec Mihailovs, PhD
Maplesoft Member

Still, some comments seem to be missing - in particular, one of my comments in Joe Riel's blog post about Cartesian products of lists.

Also, while I personally don't care, as well as anybody else, about the new ranking calculation, and the way it was done it doesn't have absolutely any sense anyway - but just theoretically speaking - shouldn't adding missing comments also change the rankings calculated without them?

_______________
Alec Mihailovs, PhD
Maplesoft Member

Now, I remember having another comment in this Joe Riel's former blog, showing what absurd is provided by converting the Mathematica's input to Maple using convert(..., FromMma, evaluate). It seems to be missing here.

_______________
Alec Mihailovs, PhD
Maplesoft Member

That also could be done using evalindets and convert - something like

c3:=convert(evalindets(convert(p,CompSeq),fraction,evalf[17]),procedure);

  c3 := proc(x)
local result;
    result := x^0.66666666666666667
end proc

For doing the same thing with c, Digits can be increased,

Digits:=17:
c4:=convert(evalindets(convert(c,CompSeq),fraction,evalf),procedure);

  c4 := proc(S, K, t, r, v)
local result;
    result := S*(0.50000000000000000 + 0.50000000000000000*
    erf(0.70710678118654750*(ln(S/K) + r*t)/(v*
    t^0.50000000000000000)
     + 0.35355339059327375*v*t^0.50000000000000000)) - K*
    exp(-r*t)*(0.50000000000000000 + 0.50000000000000000*erf(
    0.70710678118654750*(ln(S/K) + r*t)/(v*
    t^0.50000000000000000)
     - 0.35355339059327375*v*t^0.50000000000000000))
end proc

_______________
Alec Mihailovs, PhD
Maplesoft Member

That also could be done using evalindets and convert - something like

c3:=convert(evalindets(convert(p,CompSeq),fraction,evalf[17]),procedure);

  c3 := proc(x)
local result;
    result := x^0.66666666666666667
end proc

For doing the same thing with c, Digits can be increased,

Digits:=17:
c4:=convert(evalindets(convert(c,CompSeq),fraction,evalf),procedure);

  c4 := proc(S, K, t, r, v)
local result;
    result := S*(0.50000000000000000 + 0.50000000000000000*
    erf(0.70710678118654750*(ln(S/K) + r*t)/(v*
    t^0.50000000000000000)
     + 0.35355339059327375*v*t^0.50000000000000000)) - K*
    exp(-r*t)*(0.50000000000000000 + 0.50000000000000000*erf(
    0.70710678118654750*(ln(S/K) + r*t)/(v*
    t^0.50000000000000000)
     - 0.35355339059327375*v*t^0.50000000000000000))
end proc

_______________
Alec Mihailovs, PhD
Maplesoft Member

The situations when SVD is preferable for such kind of problems, are rather rare, from my experience. Logically thinking - the chances that a random matrix with 20 rows and 2000 columns has rank less than 20 are much-much smaller than the chances that a random 20×20 matrix has rank less than 20, which are rather slim themselves.

In such situations usually some manual approach is required as well - i.e. cutting the number of singular values at some level (thinner than thin) which may be not uniquely determined, in general.

What LeastSquares(A,B) should be doing in the examples in Acer's and mine posts above, with the number of rows in A less than the number of columns - is execute A^%T.LeastSquares(A.A^%T,B) - that would be both much faster, more precise, and would avoid the problem with memory allocation.

Acer's procedure is certainly interesting and may be used for such type of problems where the svd is typically used - reducing the image size, search algorithms etc.

_______________
Alec Mihailovs, PhD
Maplesoft Member

On the other hand, in this example,

                        0.016, 720764, 252954

                       1.076, 32893048, 8214089

                                0.031

                                1.139

                                             -13
                      0.114243124068626449 10

time(A^%T.(A.A^%T)^(-1).B);

                                  0.

Norm(A^%T.(A.A^%T)^(-1).B-LSsol1);

                                             -13
                      0.114242738668635449 10

Norm(A^%T.(A.A^%T)^(-1).B-LSsol2);

                                             -18
                      0.108420217248550444 10

It may be even better as

time(A^%T.((A.A^%T)^(-1).B));

                                  0.

Norm(A^%T.((A.A^%T)^(-1).B)-A^%T.(A.A^%T)^(-1).B);

                                             -19
                      0.203287907341032082 10

Also,

time(A^%T.LeastSquares(A.A^%T,B));

                                  0.

Norm(A^%T.((A.A^%T)^(-1).B)-A^%T.LeastSquares(A.A^%T,B));

                                             -19
                      0.406575814682064164 10

The difference becomes more significant in a larger example,

A:=RandomMatrix(200,20000,'outputoptions'=['datatype'='float'[8]]):  
st,ba,bu := time(),kernelopts(bytesalloc),kernelopts(bytesused):
dgesvd(A,"S","S"):
time()-st,kernelopts(bytesalloc)-ba,kernelopts(bytesused)-bu;

                      59.390, 64082472, 16208751

B := RandomVector(200,generator=0.1..1.0,'outputoptions'=['datatype'='float'[8]]):
time(A^%T.((A.A^%T)^(-1).B));

                                0.951

st:=time():
u,s,vt := dgesvd(A,"S","S"):
LSsol1 := Transpose(vt)
          . Matrix(200,200,(i,j)->`if`(i=j,1/s[i],0))
          . (Transpose(u).B) :
time()-st;

                                60.512

Norm(LSsol1-A^%T.((A.A^%T)^(-1).B));

                                             -14
                      0.766304269930566384 10

LeastSquares(A,B);
Error, (in Matrix) not enough memory to allocate rtable

time(A^%T.LeastSquares(A.A^%T,B));

                                0.967

Norm(A^%T.((A.A^%T)^(-1).B)-A^%T.LeastSquares(A.A^%T,B));

                                             -19
                      0.338813178901720136 10

_______________
Alec Mihailovs, PhD
Maplesoft Member

@JacquesC 

Sorry for my lack of elementary culture and common sense that you found in my post above, Jacques. Could you be more precise, please? I've reread it again several times and still couldn't find either there.

However, Jacques, I wonder why you think that you have a "moral right" to post something like that. You are not my friend, I am older than you, I've posted here and in other Maple related groups more than you, and my PhD is acqured from an Ivy league school. So what you think gives you that right? Not that I am against free speech - but there are some usual communication norms between colleagues - email me first, perhaps?

If you think that your former association with Maplesoft gives you that right - you are wrong, I think. In that case, I would rather be inclined to think that you are lacking both elementary culture and common sense. And, unlike you, I have a right to say that - just, say, being older than you, which is considered being a good reason in most Earth cultures (not sure about France and French part of Canada though, but I don't see why that would be different there.)

Does your school have an Ethics Committee? It may be resolved there.

Alec

@JacquesC 

No, I didn't. This example doesn't work like that in Maple 14, and I can't check if other (similar or not) examples work like that in Maple 14 because I don't have Maple 14 (and have Maple 13 only on a computer at school that I can access remotely from home - at home I have only Maple 12.)

Alec

Doesn't look good for me. What is especially bad is displaying sin, cos, log etc. in italics, and a wrong spacing - I posted about that in another thread,

There is a good and simple solution - using jsMath - but that was not done in the previous version of this site and probably, is not going to be used in this one.

_______________
Alec Mihailovs, PhD
Maplesoft Member

Doesn't look good for me. What is especially bad is displaying sin, cos, log etc. in italics, and a wrong spacing - I posted about that in another thread,

There is a good and simple solution - using jsMath - but that was not done in the previous version of this site and probably, is not going to be used in this one.

_______________
Alec Mihailovs, PhD
Maplesoft Member

@JacquesC 

Jacques,

OK - I didn't mean the 100% following of them - just as some general guidelines. Meanwhile, I came to another possible rule - which could be the first one -

1. Use your own name as your username, or post your real name and the credentials accompanying it, in you profile - that would provide much better attention to your posts.

About the Maplesoft employees participation - yes, it is great that it is much better than it was last 6 years (actually, it is comparable with what we saw 6 years ago, when the v.1 of this site started - that didn't last then for a long time though), but still I would prefer to see their participation initially more in the question answering and posts posting and not in our posts ratings down which they really don't have a moral right to do with them being so ignorant to it for such a long time and not really understanding what we (I in particular) are saying. After they post something noticeable in, say, a half year or so, and get to know us (a long time posters) a little bit better, they might get some moral rights to rate (down) our posts (which, on the other hand, may be not that problematic at that time).

What they do right now - is just below any minimal cultural level. That doesn't distract me (even if I can't say that it was expected), but may repell several relatively new people.

Alec

@Will 

That reminds me of an old story when a genie (from a bottle) told to a guy (or a gal) that he will grant any his (or her) wish with one condition - his (or her) neighbor will get twice of that.

Without delay, he (or she) said - cut one of my arms off, one of my legs off and blind one of my eyes.

Alec

First 16 17 18 19 20 21 22 Last Page 18 of 180