Vector and Matrix Operations (Cross Product + Linear Solve)

Vector and matrix operations are the backbone of efficient math in physics, engineering, robotics, computer graphics, and simulation. They let you express multi-dimensional problems cleanly—whether you’re computing orientations, doing transformations, or solving systems of equations.

This example shows two common tasks:

  • Vector cross product (useful for normals, torques, angular relationships)

  • Solving a linear system A⋅x=b (core of fitting, estimation, constraints, and many numerical methods)


JavaScript Example

// Vector and Matrix Operations

// Vectors
var v1 = vec.new(1, 2, 3);
var v2 = vec.new([4, 8, 6]);

const v_cross = v1.cross(v2);
disp("v1 x v2 =");
disp(v_cross);

// Matrices + linear solve A * x = b
var A = mat.new([
  [1, 2],
  [3, 4]
]);

const b = mat.new([
  [5],
  [11]
]);

const x = A.linsolve(b);

disp("Solution to linear system A * x = b:");
disp(x);


What’s happening here

1) Cross product

v1.cross(v2) returns a vector perpendicular to both inputs, with magnitude proportional to the area of the parallelogram they span. This is commonly used for:

  • computing a surface normal from two direction vectors

  • axis definition and orientation math

  • torque / moment calculations

2) Linear system solve

A.linsolve(b) computes the solution vector x such that:

  • A⋅x=b

This shows up everywhere: least-squares fitting, control, constraints, Kalman filters, FEM, and many optimization steps.


Tips

  • Prefer vector/matrix primitives (vec, mat) over manual loops for clarity and performance.

  • If you solve many systems with the same A but different b, you can often speed things up by reusing a decomposition (if JSLAB exposes it in your API).