本文整理匯總了PHP中Matrix::get_item方法的典型用法代碼示例。如果您正苦於以下問題:PHP Matrix::get_item方法的具體用法?PHP Matrix::get_item怎麽用?PHP Matrix::get_item使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Matrix
的用法示例。
在下文中一共展示了Matrix::get_item方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: solve
public function solve()
{
if (!Matrix_Helper::is_symmetric_matrix($this->matrix_a))
throw new MathException('Матрица не симметическая. Использовать метод квадратного корня нецелесообразно');
if ($this->matrix_a->get_rows_count() != $this->vector_b->get_size())
throw new MathException('Размеры матрицы и ветора должны быть одинаковыми');
$n = $this->matrix_a->get_rows_count();
// Находим D, S
$matrix_d = new Matrix($n, $n);
$matrix_s = new Matrix($n, $n);
for ($i = 0; $i < $n; $i++)
{
$sum = new Scalar(Scalar::ZERO);
for ($p = 0; $p <= $i-1; $p++)
$sum = Scalar_Helper::sum(
$sum,
Scalar_Helper::multiply(
Scalar_Helper::sqr(
$matrix_s->get_item($p, $i)
),
$matrix_d->get_item($p, $p)
)
);
// d[i, i]
$matrix_d->set_item($i, $i,
Scalar_Helper::sign(
Scalar_Helper::sub(
$this->matrix_a->get_item($i, $i),
$sum
)
)
);
// s[i, i]
$matrix_s->set_item($i, $i,
Scalar_Helper::sqrt(
Scalar_Helper::abs(
Scalar_Helper::sub(
$this->matrix_a->get_item($i, $i),
$sum
)
)
)
);
// s[i, j]
for ($j = $i+1; $j < $n; $j++)
{
$sum = new Scalar(Scalar::ZERO);
for ($p = 0; $p <= $i-1; $p++)
$sum = Scalar_Helper::sum(
$sum,
Scalar_Helper::multiply(
Scalar_Helper::multiply(
$matrix_s->get_item($p, $i),
$matrix_d->get_item($p, $p)
),
$matrix_s->get_item($p, $j)
)
);
// s[i, j]
$matrix_s->set_item($i, $j,
Scalar_Helper::division(
Scalar_Helper::sub(
$this->matrix_a->get_item($i, $j),
$sum
),
Scalar_Helper::multiply(
$matrix_d->get_item($i, $i),
$matrix_s->get_item($i, $i)
)
)
);
}
}
$matrix_b = Matrix_Helper::multiply(
Matrix_Helper::transpose($matrix_s),
$matrix_d
);
$vector_y = new Vector($n);
for ($k = 0; $k < $n; $k++)
{
$sum = new Scalar(Scalar::ZERO);
for ($s = 0; $s <= $k-1; $s++)
$sum = Scalar_Helper::sum(
$sum,
Scalar_Helper::multiply(
//.........這裏部分代碼省略.........
示例2: is_positive_matrix
/**
*
* @param Matrix $matrix_a
*
* @return bool
*/
public static function is_positive_matrix(Matrix $matrix_a)
{
$is_positive_matrix = true;
for ($i = 0; $i < $matrix_a->get_rows_count(); $i++)
for ($j = 0; $j < $matrix_a->get_cols_count(); $j++)
$is_positive_matrix = $is_positive_matrix && Scalar_Helper::is_positive($matrix_a->get_item($i, $j));
return $is_positive_matrix;
}