• Show that cosθ=(u⋅v)/(|u||v|) for 2D vectors u and v.

(it is quite hard to come up with these challenges, so if you got any ideas, please post them)

  • zkfcfbzr@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    6 months ago
    solution

    I’m sure there’s some short elegant solution here that uses beautiful vector math. Instead I went for the butt ugly coordinate geometry solution.

    Let u = <a, b> and v = <c, d>

    See diagram. WLOG, assume u has a smaller angle than v. We can find cos(θ) by constructing a right triangle as shown, and by finding a new vector w, in the same direction as u, which has the correct length to complete our right triangle. Once done, we will have cos(θ) = |w| / |v|.

    Let’s consider each vector to be anchored at the origin. So we can say u lies on the line y = (b/a)x, and v lies on the line y = (d/c)x. To find w, let us first find z - the third side of the triangle, which we know must be perpendicular to u, and pass through (c, d).

    The line perpendicular to y = (b/a)x and passing through (c, d) is y = (-a/b)(x-c) + d. So this is the line containing the third side of our constructed triangle, z. To find w, then, let’s find its point of intersection with y = (b/a)x, the line containing w.

    (b/a)x = (-a/b)(x-c) + d → Setup

    (b/a)x = (-a/b)x + (ca/b) + d → Distribute on right

    x(b/a + a/b) = (ca/b) + d → Add (a/b)x to both sides, factor out x on left

    x(a² + b²) = ca² + dab → Multiply both sides by ab

    x = (ca² + dab) / (a² + b²) → Divide both sides by (a² + b²)

    x = (ca² + dab) / |u|² → a² + b² is |u|²

    y = (b/a)x = (b/a)(ca² + dab) / |u|² → Plug solution for x into (b/a)x, don’t bother simplifying as this form is useful in a moment

    So w = <(ca² + dab) / |u|², (b/a)(ca² + dab) / |u|²>. Now we need |w|.

    |w| = sqrt((ca² + dab)² / |u|⁴ + (b²/a²)(ca² + dab)² / |u|⁴) → Plugging into normal |w| formula

    |w| = sqrt(((ca² + dab)² / |u|⁴) * (1 + b² / a²)) → Factor out (ca² + dab)² / |u|⁴

    |w| = (ca² + dab) / |u|² * sqrt(1 + b² / a²) → Pull (ca² + dab)² / |u|⁴ out of the root

    |w| = (ca² + dab) / |u|² * sqrt((a² + b²) / a²) → Combine terms in root to one fraction

    |w| = (ca² + dab) / |u|² * |u| / a → Evaluate sqrt

    |w| = (ca + db) / |u| → Cancel out |u| and a from numerator and denominator

    So this is the length of our adjacent side in the constructed right triangle. Finally, to find cos(θ), divide it by the length of the hypotenuse - which is |v|.

    cos(θ) = |w| / |v| = (ac + bd) / (|u||v|)

    And note that ac + bd is u•v. So we’re done.

    cos(θ) = u•v / (|u||v|), or |u||v|cos(θ) = u•v.

    Note that since this formula is symmetric with respect to u and v, our assumption that u’s angle was smaller than v’s angle did not matter - so this should hold regardless of which is larger.