.. _PhysiCell_java_VectorUtil: VectorUtil ========== .. role:: raw-html(raw) :format: html .. raw:: html .. raw:: html Класс VectorUtil используется для работы с векторами. Для импорта данного класса используйте: .. code-block:: text import ru.biosoft.physicell.biofvm.VectorUtil Все члены класса VectorUtil представлены ниже. .. list-table:: Члены класса VectorUtil :header-rows: 1 * - Член класса - Описание * - static double[] newDiff(double[] vector1, double[] vector2) - | vector1 - трехмерный вектор. | vector2 - трехмерный вектор. | | Возвращает трехмерный вектор, являющийся :ref:`покоординатной разницей векторов ` vector1 и vector2. | | :ref:`Пример ` использования. * - static double norm(double[] vector) - | vector - трехмерный вектор. | | Возвращает :ref:`L2-норму ` вектора vector. | | :ref:`Пример ` использования. * - static double norm_squared(double[] vector) - | vector - трехмерный вектор. | | Возвращает квадрат :ref:`L2-нормы ` вектора vector. | | :ref:`Пример ` использования. * - static double[] newNormalize(double[] vector) - | vector - трехмерный вектор. | | Возвращает :ref:`нормализованный ` вектор vector. | | :ref:`Пример ` использования. * - static void normalize(double[] vector) - | vector - трехмерный вектор. | | :ref:`Нормализует ` вектор vector. | | :ref:`Пример ` использования. * - static double dist(double[] vector1, double[] vector2) - | vector1 - трехмерный вектор. | vector2 - трехмерный вектор. | | Возвращает :ref:`расстояние ` между векторами vector1 и vector2. | | :ref:`Пример ` использования. * - static double[] newProd(double[] vector, double const) - | vector - трехмерный вектор. | const - число. | | Возвращает трехмерный вектор res_vector следующего вида: | res_vector[i] = const*vector[i], | где i - каждая координата векторов res_vector и vector. | | :ref:`Пример ` использования. * - static double[] axpy(double[] vector1, double const, double[] vector2) - | vector1 - трехмерный вектор. | const - число. | vector2 - трехмерный вектор. | | Возвращает трехмерный вектор vector следующего вида: | vector[i] = vector1[i] + const*vector2[i], | где i - каждая координата векторов vector, vector1 и vector2. | | :ref:`Пример ` использования. * - static void zero(double[] vector) - | vector - трехмерный вектор. | | Зануляет все координаты вектора vector. | | :ref:`Пример ` использования. Справка по операциям с векторами -------------------------------- .. _PhysiCell_java_Coordinate_wise_difference_of_vectors: Покоординатная разница векторов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Покоординатная разница векторов — это операция вычитания векторов, при которой вычитаются соответствующие компоненты (координаты) векторов. .. code-block:: text :caption: Пример // Дано Vector3D a = new Vector3D(5, 3, 7); Vector3D b = new Vector3D(1, 2, 4); // Покоординатная разница Vector3D difference = a.subtract(b); // Результат: (4, 1, 3) .. _PhysiCell_java_L2_norm: L2-норма вектора ~~~~~~~~~~~~~~~~ L2-норма вектора (евклидова норма) — это стандартный способ измерения длины вектора. Рассчитывается как квадратный корень из суммы квадратов всех компонент вектора. :raw-html:`Для вектора v = (v1, v2, ..., vn)` в n-мерном пространстве: .. math:: \|v\|_2 = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2} .. _PhysiCell_java_Normalization: Нормализация вектора ~~~~~~~~~~~~~~~~~~~~ Нормализация вектора — это преобразование вектора в вектор единичной длины (с :ref:`L2-нормой `, равной 1), сохраняющий его направление. Нормализованная версия вектора :raw-html:`v = (v1, v2, ..., vn)` представляет собой вектор v`, каждая координата которого меньше соответствующей координаты вектора v в L2-норму этого вектора: .. math:: {v'}_i = \frac{v_i}{\sqrt{v_1^2 + v_2^2 + \cdots + v_n^2}}, \quad \text{где } i = 1, 2, \ldots, n. .. _PhysiCell_java_Distance: Расстояние между векторами ~~~~~~~~~~~~~~~~~~~~~~~~~~ В двумерной системе координат расстояние (d) между векторами :raw-html:`A(x1, y1) и B(x2, y2)` вычисляется следующим образом: .. math:: d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} В трехмерной системе координат расстояние (d) между векторами :raw-html:`A(x1, y1, z1) и B(x2, y2, z2)` вычисляется следующим образом: .. math:: d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2 + (z_2 - z_1)^2}