From: Tim DeVries on
Hello,
Perhaps someone can help me with the following problem. I would like to solve the equation
Mx = r, (1)
for x (M and r are known). M is a LARGE matrix that can be written in the form
M = aA + bB + C, (2)
where A, B, and C are matrices and a and b are scalars. The challenge is that I need to solve equation (1) many times over for different values of a and b. Is there an efficient method for doing this, i.e. one that does not involve factoring M anew each time a and b are changed? Can I exploit the fact that A, B, and C do not change? Any advice would be appreciated.
From: John Tillinghast on
I'm not sure if there's a great general method, but you could try something involving matrix power series, e.g.

C^(-1) M = I + a C^(-1) A + b C^(-1) B, or if they're symmetric,

C^(-1/2) M C^(-1/2) = I + a C^(-1/2) A C^(-1/2) + b C^(-1/2) B C^(-1/2).

If A and B are low rank, e.g., A = u*v' and B = x*y' for vectors u,v,x,y, then there are simple expressions based on matrix power series around I.
Something similar might work if they are full rank but, for example, C^(-1/2) A C^(-1/2) and C^(-1/2) B C^(-1/2) are diagonalized by the same basis.

"Tim DeVries" <timjdevries(a)gmail.com> wrote in message <hhe643$5n$1(a)fred.mathworks.com>...
> Hello,
> Perhaps someone can help me with the following problem. I would like to solve the equation
> Mx = r, (1)
> for x (M and r are known). M is a LARGE matrix that can be written in the form
> M = aA + bB + C, (2)
> where A, B, and C are matrices and a and b are scalars. The challenge is that I need to solve equation (1) many times over for different values of a and b. Is there an efficient method for doing this, i.e. one that does not involve factoring M anew each time a and b are changed? Can I exploit the fact that A, B, and C do not change? Any advice would be appreciated.
From: Rune Allnor on
On 30 Des 2009, 01:16, "Tim DeVries" <timjdevr...(a)gmail.com> wrote:
> Hello,
> Perhaps someone can help me with the following problem.  I would like to solve the equation
> Mx = r,       (1)
> for x (M and r are known).  M is a LARGE matrix that can be written in the form
> M = aA + bB + C,     (2)
> where A, B, and C are matrices and a and b are scalars.  The challenge is that I need to solve equation (1) many times over for different values of a and b.  Is there an efficient method for doing this, i.e. one that does not involve factoring M anew each time a and b are changed?  Can I exploit the fact that A, B, and C do not change?

First have a step back and see what question you are really
asking. For numbers you have that if

x = y + z [1]

then in general

1/x = 1/(y + z) [2a]
=/= 1/y + 1/z. [2b]

However, there exists some collections of y and z such that

1/(y+z) = 1/y + 1/z [3]

(solve the equation to find how y and z must be related
for equality to hold) but in general the inequality of
[2b] above holds.

The same argument works for matrix inverses.

Rune
 | 
Pages: 1
Prev: connecting a 1208FS
Next: count objects