Prev: connecting a 1208FS
Next: count objects
From: Tim DeVries on 29 Dec 2009 19:16 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 5 Jan 2010 19:00 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 5 Jan 2010 20:01 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 |