Multiplication bloards after factorization

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 2K views
yiorgos
Messages
18
Reaction score
0
Let a positive definite matrix A be factorized to P and Q, A=P*Q and let an arbitrary matrix B.
I am calculating the relative error of the factorization through the norm:

[itex]\epsilon = \left\| \textbf{A}-\textbf{PQ} \right\| / \left\| \textbf{A} \right\|[/itex]

which gives

[itex]\epsilon <1\text{e}-16[/itex]

so I assume factorization is correct.

But things go messy when I try to multiply the factorized form of A with B.
In particular, the relative error, r, of the product

[itex]r = \left\| \textbf{AB}-\textbf{PQB} \right\| / \left\| \textbf{AB} \right\|[/itex]

now bloats, i.e. I get
[itex]r>0.1.[/itex]

Note that B is arbitrary, in particular I have tried several different types: random, structured, all-ones matrix, even the identity matrix.
I'm confused. How come factorization is correct and then the multiplication bloats?
Has anything to do with condition number?

(Unfortunately I can't disclose the type of factorization but I can tell that P and Q are not triangular)
 
Physics news on Phys.org
Modification: I mistakenly added also "identity matrix" to previous post. Please ignore this from the list of matrices I have tried.
 
It's hard to know exactly what you are doing since you won't tell us all the facts, but I think the basic issue is the difference between "forward" and "backward" error analysis.

If you are trying to solve ##Ax = b## numerically, you can estimate the error two different ways.

Forward error analysis: try to estimate the error in ##x##, i.e assume the exact solution is ##A(x + e) = b ## and find an estimate for the vector ##e##.
Backward error analysis: consider you have the exact solution to the "wrong" equation, i.e. estimate the size of a matrix ##e## such that ##(A+e)x = b##.

Backward error analysis (first proposed by Wilkinson in the 1960s) is generally more useful than the more "obvious" forward analysis.