Alec Mihailovs

Dr. Aleksandrs Mihailovs

4470 Reputation

21 Badges

20 years, 23 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 answers submitted by Alec Mihailovs

To format a post properly, one can click Input format just over button, and select one of the first 3 HTML formats. With that, an html source can be entered (or edited) after clicking Source at the top left corner in the editor.

Alec

You could use outside select procedure - something like

select(g->min(GraphTheory:-DegreeSequence(g))>0,
[GraphTheory:-NonIsomorphicGraphs(5,output=graphs,outputform=graph)]):
GraphTheory:-DrawGraph(%);

135_graphs_5.png

Alec

For example,

s:=solve({mu = n*p, sigma^2 = n*p*(1-p)},{n,p});

                              2                 2
                            mu            -sigma  + mu
              s := {n = ------------, p = ------------}
                              2                mu
                        -sigma  + mu

k := n*(phi+ln(-1/(-exp(phi)+exp(phi)*p-p)))/phi;

normal(eval(k,s));

              2 /                      mu               \
            mu  |phi + ln(-----------------------------)|
                |                       2        2      |
                \         exp(phi) sigma  - sigma  + mu /
            ---------------------------------------------
                                2
                         (-sigma  + mu) phi

Alec

A large part of the book is available in Google Books.

Also, it is available from lib.ru .

I reread recently Harry Harrison's Deathworld, which some people here also might like.

Alec

Does it happen in Classic Maple, too, or only in Standard?

Could you post the code causing that?

Probably, the reason is your programming style, but it also may be one of Standard interface bugs - it's hard to tell without seeing the code.

Alec

 

While you seem to be thinking that what you did could be done one and only one way in Maple, and everybody on this forum knows that way - it is not the case.

Such things could be done in miriads of various ways, using various data structures, and each of them has a differet approach to solving your problem. 

If you posted a short piece of code, or at least a precise description of the situation, using the precise names of Maple types that you used - lists, Arrays (with their dimensions), Vectors, Matrices, tables, strings etc., with a precise description how that was done - i.e how you placed the point coordinates and the color information there, there would be more chances that somebody help you.

The code would be the most useful.

Alec

That means that your equations have infinite number of solutions, and substituting any number instead of Fm will give a solution.  

That happens in linear systems when one of the equations is a linear combination of others, in which case the situation is the same as if you had 8 equations with 9 variables.

Alec

 

Then, following that trail, ln might be replaced with a series as well in the original equation. That would also produce a series,

Ln:=unapply(mtaylor(ln(x),x=1,10),x):
eq:=v*t=(S0-St)+Km*Ln(S0/St): 
s:=solve(eq,St);
mtaylor(s,t);

                        2  2     3  3
       v t S0    Km S0 v  t     v  t  Km S0 (Km - 2 S0)
  S0 - ------- + ------------ - -----------------------
       Km + S0              3                   5
                 2 (Km + S0)         6 (Km + S0)

                  4  4    2                 2
           Km S0 v  t  (Km  - 8 Km S0 + 6 S0 )
         + -----------------------------------
                                  7
                      24 (Km + S0)

            5  5          3           2           2        3
           v  t  Km S0 (Km  - 22 S0 Km  + 58 Km S0  - 24 S0 )
         - --------------------------------------------------
                                          9
                             120 (Km + S0)

But this series could be obtained from the very beginning without any other tricks just assuming positive,

eq:=v*t=(S0-St)+Km*ln(S0/St): 
s:=solve(eq,St);
mtaylor(s,t) assuming positive;

                     2  2           3  3
       S0 v t    S0 v  t  Km    S0 v  t  (-2 S0 + Km) Km
  S0 - ------- + ------------ - ------------------------
       S0 + Km              3                    5
                 2 (S0 + Km)          6 (S0 + Km)

               4  4      2               2
           S0 v  t  (6 S0  - 8 S0 Km + Km ) Km
         + -----------------------------------
                                  7
                      24 (S0 + Km)

               5  5        3           2           2     3
           S0 v  t  (-24 S0  + 58 Km S0  - 22 S0 Km  + Km ) Km
         - ---------------------------------------------------
                                          9
                             120 (S0 + Km)

A problem with it is that it has a finite radius of convergence, sometimes rather small, and can not be used on the distances greater that this radius of convergence, no matter how many terms of it are used.

One could use it "on paper", but people reading that "paper" and trying to use it in real life, would get wrong answers for large t.

Alec

Still, it's hard to understand what you want. If you don't want to print values greater than .5e-5, say - then don't print them.

for x to 10 do sol:=solve(y=x-3); 
if abs(sol)<0.5e-5 then print(x,sol) fi od:
    
                                 3, 0

Loops in such examples is a bad technique, in general - it is better to use sequences. For example,

s:=[seq([x,solve(y=x-3)],x=1..10)]:
select(a->abs(a[2])<0.5,s);

                               [[3, 0]]

select(a->abs(a[2])<1.5,s);

                      [[2, -1], [3, 0], [4, 1]]

Alec

plots:-display combines several plots in one.

Alec

Get gets a string from a textfield - you have to parse it to use in dsolve -i.e. change Maplet:-Tools:-Get('TF1') to parse(Maplets:-Tools:-Get('TF1')) , and the same for TF3.

Also, instead of if something=true one can use just  if something .

Alec

I didn't mean him - it is rather clear that he is Russian (however, such things as a grammar checker were available even in Word in Windows 3.1 and earlier).

I meant the people putting the package in the application center, who didn't need a grammar checker for that - obviously, if they didn't even care to correct the front page, the package was not independently tested etc.

Alec

Many libraries provide LambertW, gsl for instance, so it can be used directly from C. Also, that one looks quite simple. NAG libraries include it (may be not that easy to find it in the NAG dlls supplied with Maple though, at least in Maple 13.)

Alec

Frankly, I think that the grammatical errors in the package announcement could also mean a possibility that there might be other errors inside the package. 

I didn't try it though.

Alec

The series that I posted above, should work good for the initial interval. 

eq:=v*t=(S0-St)+Km*ln(S0/St): 
s:=solve(eq,St);
alias(t0=(-Km+ln(S0)*Km-ln(Km)*Km+S0)/v):
ser:=convert(simplify(series(s,t=t0)),polynom);

That can be seen on the plots in numerical examples. For example,

S0,Km,v:=10,5,1:
plot([ser,s],t=0..30);

For larger values, the asymptotic can be used - in this example,

ser1:=convert(asympt(s,t),polynom);
                               2            3                4
          10 exp(2)   20 exp(2)    60 exp(2)           exp(2)
  ser1 := --------- - ---------- + ---------- - 640/3 ---------
                1/5         2/5          3/5                4/5
          exp(t)      exp(t)       exp(t)             exp(t)

                        5
                  exp(2)
         + 2500/3 -------
                  exp(t)

plot([ser1,s],t=20..40);
plot([ser1,s],t=40..70);

Alec

First 9 10 11 12 13 14 15 Last Page 11 of 76