cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X

Comparing two vectors of length N - fundamental math question

JXBWk
13-Aquamarine

Comparing two vectors of length N - fundamental math question

To all

 

Not really a Mathcad specific question but a “fundamental “ math question. I know that some of the regular contributors to this forum have the expertise.

 

I am comparing 2 vectors {v1} and {v2} of length N using the formula

     [{v1}T*{v2}]^2 / [{v1}T{v1}*{v2}T{v2}] 

where T = Transpose

 

I did a check using 2 very simple vectors of length 11 so that for x = [0,1..10]

V1 = x^2 and v2 = 10*x

Using the formula I get 0.938 thus suggesting that these 2 vectors are very similar. But clearly they are not!

Has anyone got “insight” on this? It’s quite common to use this formula in some engineering field and setting-up a threshold of > 0.9 as acceptable to assume that the vectors are similar. in this case this is telling me that a stragith line is almost as good as a parabola.

 

Thanks

Regards

 

a link: here

11 REPLIES 11
LucMeekes
23-Emerald III
(To:JXBWk)

I have my doubts. I created two equal vectors and did the test:

LucMeekes_0-1628591273282.png

Would this indicate they're not even nearly equal?

 

Success!
Luc

JXBWk
13-Aquamarine
(To:LucMeekes)

My apologies I mis-typed the equation. It should read [{v1}T*{v2}]^2 / [{v1}T{v1}*{v2}T{v2}] 

I'll correct the orignal post

LucMeekes
23-Emerald III
(To:JXBWk)

I still have my doubts, but I suggest an alternative, which is simpler:

LucMeekes_0-1628592219792.png

Got the idea from: https://math.stackexchange.com/questions/1277288/what-is-the-best-way-to-see-if-vectors-are-equal

Where it says:

"You could compute the dot product of the two vectors, and if they are parallel (same direction) their dot product will be equal to the product of their individual norms."

Success!
Luc

Seems to me you want Pearson's r coefficient.

LucMeekes
23-Emerald III
(To:Fred_Kohlhepp)

with "1/(rows(X)-1)" i get values outside of [-1...1]; try with a small vector. Guess it must be 1/rows(X) maybe?

Note that in mathcad (11, 15) 'stdev' is the variance over all n elements (rather than n-1). The "1/(rows(X)-1)" works with Stdev(), not with stdev()...

 

Luc

JXBWk
13-Aquamarine
(To:Fred_Kohlhepp)

Thanks but don't think so. The MAC for eigenvectors (remember your helicopter days!)

JXBWk
13-Aquamarine
(To:LucMeekes)

@LucMeekes : why (v1Tv2)(v1Tv2) at the denominator and not  [{v1}T{v1}*{v2}T{v2}] ?

LucMeekes
23-Emerald III
(To:JXBWk)

Error, sorry.

Correction:

LucMeekes_0-1628604501660.png

Now it makes sense.Especially since it appears that:

LucMeekes_0-1628606385029.png

e.g. for the random vectors:

LucMeekes_1-1628606485198.png

Or in general (for real-valued vector elements):

LucMeekes_2-1628608095433.png

 

Success!

Luc

JXBWk
13-Aquamarine
(To:LucMeekes)

No need to apologies – easy to make mistake with such things. I couldn’t re-type the equation correctly in the 1st place !

So back to the “fundamental” question – I know it’s not quite the forum - maybe I ought to ask a “pure” math forum?

Would you agree that if you were to compare the 2 (eigen)vectors V1 = x^2 and v2 = 10*x one gets something like 0.93 which is telling us that these 2 vectors are very “similar” (if we accept >0.9 as acceptable). I find this rather mis-leading

Fred_Kohlhepp
23-Emerald I
(To:JXBWk)

Pearson's r:

Fred_Kohlhepp_1-1628682284529.png

 

Fred_Kohlhepp_2-1628682332780.png

 

 

LucMeekes
23-Emerald III
(To:JXBWk)

Found another source, on Wikipedia: https://en.wikipedia.org/wiki/Cosine_similarity

Basically it suggests a formula that is the same as my proposal, which means taking the square root of your formula (and omitting the sign...).

LucMeekes_0-1628690651342.png

Success!
Luc

Announcements

Top Tags