コード例 #1
0
ファイル: vector.class.php プロジェクト: noxt/MChA_Course
    /**
     * Умножение вектора на скаляр
     *
     * @param Vector $vector_a Вектор
     * @param Scalar $scalar_a Скаляр
     *
     * @return Vector
     */
    public static function multiply_on_scalar(Vector $vector_a, Scalar $scalar_b)
    {
        // Создаем итоговый вектор
        $vector_res = new Vector($vector_a->get_size());

        // Производим умножение вектора на скаляр
        for ($i = 0; $i < $vector_a->get_size(); $i++)
            $vector_res->set_item($i, Scalar_Helper::multiply($vector_a->get_item($i), $scalar_b));

        // Возвращаем результат
        return $vector_res;
    }
コード例 #2
0
ファイル: matrix.class.php プロジェクト: noxt/MChA_Course
    /**
     * Умножение матрицы на вектор
     *
     * @param Matrix $matrix_a Матрица
     * @param Vector $vector_b Вектор
     *
     * @return Matrix
     */
    public static function multiply_on_vector(Matrix $matrix_a, Vector $vector_b)
    {
        // Проверяем совпадение размеров
        if ($matrix_a->get_cols_count() != $vector_b->get_size())
            throw new MathException('Размеры матрицы и вектора должны совпадать');

        // Создаем итоговую матрицу
        $res_matrix = new Matrix($matrix_a->get_rows_count(), $matrix_a->get_cols_count());

        // Производим умножение матрицы на векторами
        for ($i = 0; $i < $matrix_a->get_rows_count(); $i++)
            for ($j = 0; $j < $matrix_a->get_cols_count(); $j++)
                $res_matrix->set_item($i, $j, Scalar_Helper::multiply($matrix_a->get_item($i, $j), $vector_b->get_item($j)));

        // Возвращаем результат
        return $res_matrix;
    }