       Re: Matrix Series

• To: mathgroup at smc.vnet.net
• Subject: [mg32150] Re: [mg32138] Matrix Series
• From: BobHanlon at aol.com
• Date: Sat, 29 Dec 2001 18:00:28 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```In a message dated 12/29/01 12:59:24 AM, mark.coleman at dri-wefa.com writes:

>Consider the familiar series expansion
>
>   Log[x] = (x-1)  -1/2*(x-1)^2 + 1/3*(x-1)^3 - 1/4*(x-1)^4 + ....
>
>I am interested in having Mathematica (v4.1) numerically evaluate an m-term
>matrix counterpart to this expansion, e.g.,
>
>    Q[X_,m_] := (X-I) - 1/2*(X-I)^2 + 1/3*(X-I)^3 - 1/4*(X-I)^4 + ....
>1/m*(X-I)^m
>
>
>where X is an nxn real matrix and I is the nxn identity matrix, and m is
>some positive integer.
>
>I've been struggling with the built-in Series[] function, but it is not
>obvious to me how to generalize it to handle matrix arguements. My other
>alternative is to just to use the 'MatrixPower' function and build-up
>the (alternating-sign) sequence of series coefficients in a Table[]
>command, as I only need the numerical result. But my curiosity has been
>piqued and I was wondering if there is someother way to do this.

Q1[mat_?(MatrixQ[#, NumericQ]&),
m_Integer?Positive] :=
Module[
{n, x = N[mat-IdentityMatrix[Length[mat]]]},
Sum[-(-1)^n * MatrixPower[x, n]/n,
{n, 1, m}]];

Q2[mat_?(MatrixQ[#, NumericQ]&),
m_Integer?Positive] :=
Module[
{n, x = N[mat-IdentityMatrix[Length[mat]]]},
n=1; Plus @@ NestList[-n#.x/((n++)+1)&, x, m-1]];

matrixSeries[
mat_?(MatrixQ[#, NumericQ]&),
func_,
{x_Symbol, x0_?NumericQ, m_Integer?Positive}] :=
Module[{funcx0  = (func /. x -> x0),s,
i = IdentityMatrix[Length[mat]]},
s = Normal[Series[func, {x, x0, m}]] - funcx0;
(s /. {Power -> MatrixPower, x -> X+x0-x0*i})+funcx0*i];

X = {{.1,.2,.3,.1, -.1},{-.1,.3,.4,.1, .2},{.2,.4,.5,.1, -.2}, {-.2,.1,.5,.1,
\
-.2}, {-.2,.1,.1,.1, -.2}};

m= 8;
matrixSeries[X,Log[x],{x,1,m}] ==
Q1[X, m] == Q2[X, m]

True

m = 8;
matrixSeries[X,Exp[x],{x,0,m}] ==
Module[{n},n=1;
Plus @@ NestList[#.X/(n++)&, IdentityMatrix[Length[X]], m]] ==
Sum[MatrixPower[X, n]/n!,{n, 0, m}]

True

Bob Hanlon
Chantilly, VA  USA

```

• Prev by Date: Install ExtendGraphics/MathLink problem
• Next by Date: Re: Meaning of @ ... not @@
• Previous by thread: Matrix Series
• Next by thread: Is this the usual method...?