BRDFLafortuneFitting.LevenbergMarquardt.Matrix.SolveBackwardSubstitution C# (CSharp) Метод

SolveBackwardSubstitution() публичный Метод

public SolveBackwardSubstitution ( Vector b ) : Vector
b Vector
Результат Vector
            public Vector SolveBackwardSubstitution( Vector b )
            {
                if ( Rows != b.Size )
                    throw new Exception( "Can't solve!" );
                if ( !IsUpperDiagonal )
                    throw new Exception( "Can't solve!" );

                Vector	R = new Vector( Rows );
                R[Rows-1] = b[Rows-1] / m[Rows-1,Rows-1];
                for ( int i=Rows-2; i >= 0; i-- )
                {
                    double	temp = 0.0;
                    for ( int k=i+1; k < Rows; k++ )
                        temp += R[k] * m[i,k];

                    double	Div = m[i,i];
                    if ( Div != 0.0 )
                        R[i] = (b[i] - temp) / Div;
                }

                return R;
            }