/** * Умножение вектора на скаляр * * @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; }
/** * Умножение матрицы на вектор * * @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; }