Solving the scaling problem.
    5 views (last 30 days)
  
       Show older comments
    
So I have a problem with finding out scaling. I have a vector x1 and a vector x2. I suspect that some elements of x2 might be scaled versions of x1.
I need to see if they are indeed scaled.
so A.x1 = x2, and I need to solve A = x1^-1.x2.
Any ideas how to implement that?
0 Comments
Accepted Answer
  Matt Fig
      
      
 on 14 Feb 2011
        If
A = [a 0;0 b]  % a and b unknowns
Ax = y  % The governing relation between known col vects x and y.
then
A = diag(y./x)
0 Comments
More Answers (2)
  Matt Tearle
    
 on 14 Feb 2011
        If it's just two vectors then you could do
A = x2(1)/x1(1)
norm(A*x1 - x2)
A slightly more generalizable way is
A = x1\x2
norm(A*x1 - x2)
Check to see if the result is on the order of machine roundoff.
2 Comments
  Doug Hull
      
 on 14 Feb 2011
				Abhilash said: "Thanks! I tried that, but it doesn't really solve my purpose.
Here's a link form Wiki...this is actually what I need to implement -
http://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors#Examples_in_the_plane
Unequal scaling is the one I'm looking at."
  Matt Tearle
    
 on 14 Feb 2011
				OK, in that case, Matt Fig's answer is the simplest (A = diag(x2./x1))... but I'm confused by the use of the words "I suspect", "might be", and "if they are indeed scaled". Two vectors will always be related by such an unequal scaling (unless elements of x1 are zero).
See Also
Categories
				Find more on Linear Algebra in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!