VectorUtil

Класс VectorUtil используется для работы с векторами.

Для импорта данного класса используйте:

import ru.biosoft.physicell.biofvm.VectorUtil

Все члены класса VectorUtil представлены ниже.

Члены класса VectorUtil

Член класса

Описание

static double[] newDiff(double[] vector1, double[] vector2)

vector1 - трехмерный вектор.
vector2 - трехмерный вектор.

Возвращает трехмерный вектор, являющийся покоординатной разницей векторов vector1 и vector2.

Пример использования.

static double norm(double[] vector)

vector - трехмерный вектор.

Возвращает L2-норму вектора vector.

Пример использования.

static double norm_squared(double[] vector)

vector - трехмерный вектор.

Возвращает квадрат L2-нормы вектора vector.

Пример использования.

static double[] newNormalize(double[] vector)

vector - трехмерный вектор.

Возвращает нормализованный вектор vector.

Пример использования.

static void normalize(double[] vector)

vector - трехмерный вектор.

Нормализует вектор vector.

Пример использования.

static double dist(double[] vector1, double[] vector2)

vector1 - трехмерный вектор.
vector2 - трехмерный вектор.

Возвращает расстояние между векторами vector1 и vector2.

Пример использования.

static double[] newProd(double[] vector, double const)

vector - трехмерный вектор.
const - число.

Возвращает трехмерный вектор res_vector следующего вида:
res_vector[i] = const*vector[i],
где i - каждая координата векторов res_vector и vector.

Пример использования.

static double[] axpy(double[] vector1, double const, double[] vector2)

vector1 - трехмерный вектор.
const - число.
vector2 - трехмерный вектор.

Возвращает трехмерный вектор vector следующего вида:
vector[i] = vector1[i] + const*vector2[i],
где i - каждая координата векторов vector, vector1 и vector2.

Пример использования.

static void zero(double[] vector)

vector - трехмерный вектор.

Зануляет все координаты вектора vector.

Пример использования.

Справка по операциям с векторами

Покоординатная разница векторов

Покоординатная разница векторов — это операция вычитания векторов, при которой вычитаются соответствующие компоненты (координаты) векторов.

Пример
// Дано
Vector3D a = new Vector3D(5, 3, 7);
Vector3D b = new Vector3D(1, 2, 4);

// Покоординатная разница
Vector3D difference = a.subtract(b); // Результат: (4, 1, 3)

L2-норма вектора

L2-норма вектора (евклидова норма) — это стандартный способ измерения длины вектора. Рассчитывается как квадратный корень из суммы квадратов всех компонент вектора.

Для вектора v = (v1, v2, ..., vn) в n-мерном пространстве:

\[\|v\|_2 = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2}\]

Нормализация вектора

Нормализация вектора — это преобразование вектора в вектор единичной длины (с L2-нормой, равной 1), сохраняющий его направление.

Нормализованная версия вектора v = (v1, v2, ..., vn) представляет собой вектор v`, каждая координата которого меньше соответствующей координаты вектора v в L2-норму этого вектора:

\[{v'}_i = \frac{v_i}{\sqrt{v_1^2 + v_2^2 + \cdots + v_n^2}}, \quad \text{где } i = 1, 2, \ldots, n.\]

Расстояние между векторами

В двумерной системе координат расстояние (d) между векторами A(x1, y1) и B(x2, y2) вычисляется следующим образом:

\[d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}\]

В трехмерной системе координат расстояние (d) между векторами A(x1, y1, z1) и B(x2, y2, z2) вычисляется следующим образом:

\[d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2}\]