Как рассчитать специальные векторные обозначения? - PullRequest
0 голосов
/ 20 января 2019

У меня проблемы с проверкой уже рассчитанного счета в javascript.Я дал несколько формул и 2 вектора - но независимо от того, как я вычисляю, я не получаю правильный результат.

Я был бы счастлив, если бы кто-то мог обнаружить мою неосторожную ошибку и помочь мнепотому что на данный момент я действительно беспомощен.

  1. Даны эти векторы:

    enter image description here

  2. Это формулы для расчетадва угла (альфа и бета) :

img1

Это основная формула для расчета шкалы векторов: formula1

Здесь вы можете найти результат расчета (я не получаю тот же результат):

omg3


Это мой код JavaScript:

let u = [1, -0.2]
let v = [0.5, 0.8]

let mg_u = Math.sqrt(u[0] ** 2 + u[1] ** 2)
let mg_v = Math.sqrt(v[0] ** 2 + v[1] ** 2)
let sc_uv = u[0] * v[0] + u[1] * v[1]

let a = Math.sqrt((mg_v ** 2 - mg_u ** 2 + Math.sqrt((mg_v ** 2 - mg_u ** 2) ** 2 + 4 * (sc_uv ** 2))) / 2)
let b = (-sc_uv) / a
console.log(`alpha: ${a} (valid)`)
console.log(`beta: ${b} (valid)`)

let u_r = [-u[1], u[0]]
let v_r = [-v[1], v[0]]

let scale = Math.sqrt(mg_u ** 2 + a ** 2) /
  Math.sqrt(Math.sqrt((v_r[0] - b * u_r[0]) ** 2 + (v_r[1] - b * u_r[1]) ** 2) ** 2 + mg_u ** 2 + mg_v ** 2)
console.log(`scale: ${scale} (probably not valid)`)

let direction = [
  v_r[0] - b * u_r[0],
  v_r[1] - b * u_r[1],
]
console.log(`direction: ${direction} (not valid)`)
...