Hi all,<div><br></div><div>I just wonder if the method for computing exp(A) %*% v is the one based on Krylov subspace, <a href="http://www.maths.uq.edu.au/expokit/guide.html" target="_blank">http://www.maths.uq.edu.au/expokit/guide.html</a> , which is implemented in matlab expokit <a href="http://www.maths.uq.edu.au/expokit/guide.html" target="_blank">http://www.maths.uq.edu.au/expokit/guide.html</a> ?</div>

<div><br></div><div>A friend of mine who use matlab on a regular basis had told me the expokit implementation is particularly efficient.</div><div><br></div><div>Regards</div><div><br></div><div>Christophe<br>
<br><div class="gmail_quote">2011/8/22 Martin Maechler <span dir="ltr">&lt;<a href="mailto:maechler@stat.math.ethz.ch" target="_blank">maechler@stat.math.ethz.ch</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


&gt;&gt;&gt;&gt;&gt; Martin Maechler &lt;<a href="mailto:maechler@stat.math.ethz.ch" target="_blank">maechler@stat.math.ethz.ch</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt;     on Sun, 21 Aug 2011 21:33:23 +0200 writes:<br>
<br>
    &gt; Dear Ravi, On Sat, Aug 20, 2011 at 16:56, Ravi Varadhan<br>
    &gt; &lt;<a href="mailto:rvaradhan@jhmi.edu" target="_blank">rvaradhan@jhmi.edu</a>&gt; wrote:<br>
    &gt;&gt; Dear Martin,<br>
    &gt;&gt;<br>
    &gt;&gt; Thanks for pointing me to &quot;expm&quot; package.  I noted that<br>
    &gt;&gt; it has a rich array of algorithms for exponentiating a<br>
    &gt;&gt; matrix. However, it does not seem to have a way to<br>
    &gt;&gt; efficiently compute exp(A) %*% x0, where x0 is a vector.<br>
<br>
    &gt; Yes, you are perfectly right and we (the expm-package<br>
    &gt; authors) have been aware that &quot;we need this&quot; but none of<br>
    &gt; us has come around to add it to expm yet.<br>
<br>
    &gt;&gt;  This is the solution of a linear system of ODE:  dx/dt =<br>
    &gt;&gt; B, x(0) = x0 (note:  A = B * t).  Computing exp(B*t) and<br>
    &gt;&gt; then doing the matrix-vector product is inefficient<br>
    &gt;&gt; especially for large matrices.<br>
<br>
    &gt; yes, and in particular if it should happen --- as<br>
    &gt; typically --- for a whole set of t values.<br>
<br>
    &gt;&gt; I have gotten interested in this in response to a query<br>
    &gt;&gt; that John Nash had recently posted in r-devel.  I have<br>
    &gt;&gt; translated the matlab function by Sidjek to do this. Let<br>
    &gt;&gt; me know if you want this feature in expm().<br>
<br>
    &gt; Yes, that&#39;s really something we should add to the expm<br>
    &gt; package..  but may be not to the expm() function per se.<br>
    &gt; I think a main use case should be to pass a whole vector t<br>
    &gt; values (and a fixed x0 vector), right?  I&#39;d definitely<br>
    &gt; look at what you sent us - at the beginning of this<br>
    &gt; thread, to see how it fits into this framework.  Thank you<br>
    &gt; very much, Ravi, for &quot;insisting&quot; ;-b Martin<br>
<br>
Hmm.  Today I had a careful look at the Ravi-pexp.R  that you<br>
had sent me, and I really don&#39;t see how your pexp() would solve the<br>
above problem....<br>
<br>
but maybe I misunderstood and you meant something else?<br>
<br>
Martin<br>
<br>
<br>
    &gt;&gt; ________________________________________ From: Ravi<br>
    &gt;&gt; Varadhan Sent: Friday, August 19, 2011 5:31 PM To:<br>
    &gt;&gt; &#39;Martin Maechler&#39; Cc: &#39;Doug and Martin Subject: RE:<br>
    &gt;&gt; Euclidean (2-) norm and Matrix exponential<br>
    &gt;&gt;<br>
    &gt;&gt; Dear Martin,<br>
    &gt;&gt;<br>
    &gt;&gt; Thanks for the clarifications and the new pointers.  I<br>
    &gt;&gt; concur on all the points that you have made.  I will take<br>
    &gt;&gt; a look at the documentation of these functions that you<br>
    &gt;&gt; mentioned.<br>
    &gt;&gt;<br>
    &gt;&gt; It is interesting, the point that that you make about the<br>
    &gt;&gt; lack of usefulness of 2-norm. Is it really the case this<br>
    &gt;&gt; only serves theoretical purposes and that there is no<br>
    &gt;&gt; *practical* need for this norm?<br>
    &gt;&gt;<br>
    &gt;&gt; In any case, I have a neat little function that uses the<br>
    &gt;&gt; power method + sequence acceleration to estimate 2-norm<br>
    &gt;&gt; in a somewhat efficient manner.<br>
    &gt;&gt;<br>
    &gt;&gt; Best regards, Ravi.<br>
    &gt;&gt;<br>
    &gt;&gt; -------------------------------------------------------<br>
    &gt;&gt; Ravi Varadhan, Ph.D.  Assistant Professor, Division of<br>
    &gt;&gt; Geriatric Medicine and Gerontology School of Medicine<br>
    &gt;&gt; Johns Hopkins University<br>
    &gt;&gt;<br>
    &gt;&gt; Ph. <a href="tel:%28410%29%20502-2619" value="+14105022619" target="_blank">(410) 502-2619</a> email: <a href="mailto:rvaradhan@jhmi.edu" target="_blank">rvaradhan@jhmi.edu</a><br>
    &gt;&gt;<br>
    &gt;&gt; -----Original Message----- From: Martin Maechler<br>
    &gt;&gt; [mailto:<a href="mailto:maechler@stat.math.ethz.ch" target="_blank">maechler@stat.math.ethz.ch</a>] Sent: Friday, August<br>
    &gt;&gt; 19, 2011 5:23 PM To: Ravi Varadhan Cc: &#39;Doug and Martin<br>
    &gt;&gt; Subject: Re: Euclidean (2-) norm and Matrix exponential<br>
    &gt;&gt;<br>
    &gt;&gt;&gt;&gt;&gt;&gt;&gt; Ravi Varadhan &lt;<a href="mailto:rvaradhan@jhmi.edu" target="_blank">rvaradhan@jhmi.edu</a>&gt;     on Fri, 19<br>
    &gt;&gt;&gt;&gt;&gt;&gt;&gt; Aug 2011 17:52:24 +0000 writes:<br>
    &gt;&gt;<br>
    &gt;&gt;    &gt; Dear Martin &amp; Doug, I have a simple R function for  <br>
    &gt;&gt;  &gt; computing matrix exponential that is based on a    &gt;<br>
    &gt;&gt; Pade-Polynomial approximation of Sidjek.  I translated it<br>
    &gt;&gt;    &gt; to R from his matlab code.  It appears to be simpler<br>
    &gt;&gt; than    &gt; your code in &quot;Matrix&quot;, but my limited testing<br>
    &gt;&gt; shows that    &gt; it produces identical results, and is a<br>
    &gt;&gt; bit faster.<br>
    &gt;&gt;<br>
    &gt;&gt; Dear Ravi, you must have overlooked the fact that Doug<br>
    &gt;&gt; and I (and two others) have been authoring a package<br>
    &gt;&gt;  &#39;expm&#39;  (on R-forge and CRAN) which contains newer and<br>
    &gt;&gt; partly considerably better algorithms for expm() {and<br>
    &gt;&gt; also some for  logm() and sqrtm()}.<br>
    &gt;&gt;<br>
    &gt;&gt; and the topic appeared on R-devel / R-help several times<br>
    &gt;&gt; in the last couple of years...  but you are &quot;well<br>
    &gt;&gt; excused&quot;: You don&#39;t see anything at all about that when<br>
    &gt;&gt; you read  help(expm) from Matrix ==&gt; I have added a note<br>
    &gt;&gt; (and \seealso{..} \link&#39;s) to the Matrix    help page. So<br>
    &gt;&gt; the next Matrix version will point to these ....  thanks<br>
    &gt;&gt; to you!<br>
    &gt;&gt;<br>
    &gt;&gt;    &gt; I also noted that there is no function in base R and<br>
    &gt;&gt; in    &gt; Matrix for computing the Euclidean norm or 2-norm<br>
    &gt;&gt; of a    &gt; matrix.  This is trivially easy, but<br>
    &gt;&gt; surprisingly there is    &gt; nothing available in R (at<br>
    &gt;&gt; least as far as I know).  I    &gt; have also written a<br>
    &gt;&gt; simple function for this as well as    &gt; computing the<br>
    &gt;&gt; condition number of a matrix that is simpler    &gt; than<br>
    &gt;&gt; condest() in Matrix.<br>
    &gt;&gt;<br>
    &gt;&gt; Well, but did you see kappa() and rcond()  in addition to<br>
    &gt;&gt; condest() ?<br>
    &gt;&gt;<br>
    &gt;&gt; So kappa() --- the oldest of *all* the functions<br>
    &gt;&gt; mentioned --- has been in S I think even before S-plus!<br>
    &gt;&gt; --- already does the 2-norm condition number.  You are<br>
    &gt;&gt; right that the 2-norm itself is not available,<br>
    &gt;&gt; explicitly, but then it is AFAIR considerably slower than<br>
    &gt;&gt; the other norms, and &quot;everybody should now&quot; how to<br>
    &gt;&gt; trivially compute it, if they really want.  But as said,<br>
    &gt;&gt; I think it is +- clear to numerical analysis experts that<br>
    &gt;&gt; you work with the 1- and possibly Inf-norm instead, as<br>
    &gt;&gt; both are considerably simpler.<br>
    &gt;&gt;<br>
    &gt;&gt; OTOH, you make a good point that this should be better<br>
    &gt;&gt; documented..  ... though I wonder why you didn&#39;t follow<br>
    &gt;&gt; the &quot;seealso&quot; links on the condest or (Matrix) rcond help<br>
    &gt;&gt; page, pointing to the base rcond + kappa help page...<br>
    &gt;&gt;<br>
    &gt;&gt; We&#39;d be grateful if you can propose documentation<br>
    &gt;&gt; improvements here.<br>
    &gt;&gt;<br>
    &gt;&gt; Best regards, Martin<br>
    &gt;&gt;<br>
    &gt;&gt;    &gt; Perhaps, you might want to consider these for &quot;base&quot;<br>
    &gt;&gt; or    &gt; even &quot;Matrix&quot;.  In any case, I would be<br>
    &gt;&gt; interested in your    &gt; thoughts.<br>
    &gt;&gt;<br>
    &gt;&gt;    &gt; Best regards, Ravi.<br>
    &gt;&gt;<br>
    &gt;&gt;    &gt;<br>
    &gt;&gt; -------------------------------------------------------  <br>
    &gt;&gt;  &gt; Ravi Varadhan, Ph.D.  Assistant Professor, Division of<br>
    &gt;&gt;    &gt; Geriatric Medicine and Gerontology School of<br>
    &gt;&gt; Medicine    &gt; Johns Hopkins University<br>
    &gt;&gt;<br>
    &gt;&gt;    &gt; Ph. <a href="tel:%28410%29%20502-2619" value="+14105022619" target="_blank">(410) 502-2619</a> email:    &gt;<br>
    &gt;&gt; <a href="mailto:rvaradhan@jhmi.edu" target="_blank">rvaradhan@jhmi.edu</a>&lt;mailto:<a href="mailto:rvaradhan@jhmi.edu" target="_blank">rvaradhan@jhmi.edu</a>&gt;<br>
    &gt;&gt;<br>
    &gt;&gt;    &gt; xpexpm.R, pexpm.R [Click mouse-2 to save to a file]<br>
    &gt;&gt;<br>
    &gt;&gt;<br>
_______________________________________________<br>
Expm-developers mailing list<br>
<a href="mailto:Expm-developers@lists.r-forge.r-project.org" target="_blank">Expm-developers@lists.r-forge.r-project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/expm-developers" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/expm-developers</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Christophe DUTANG<br>Ph. D. student at ISFA, Lyon, France<br>
</div>