當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Matrix::get_item方法代碼示例

本文整理匯總了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(
//.........這裏部分代碼省略.........
開發者ID:noxt,項目名稱:MChA_Course,代碼行數:101,代碼來源:square_method.class.php

示例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;
    }
開發者ID:noxt,項目名稱:MChA_Course,代碼行數:16,代碼來源:matrix.class.php


注:本文中的Matrix::get_item方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。