コード例 #1
0
ファイル: LeastSquareProblem.cs プロジェクト: zhangz/QLNet
        //! compute vector of derivatives of the least square function
        public void gradient(ref Vector grad_f, Vector x)
        {
            // size of target and function to fit vectors
            Vector target  = new Vector(lsp_.size());
            Vector fct2fit = new Vector(lsp_.size());
            // size of gradient matrix
            Matrix grad_fct2fit = new Matrix(lsp_.size(), x.size());

            // compute its values
            lsp_.targetValueAndGradient(x, ref grad_fct2fit, ref target, ref fct2fit);
            // do the difference
            Vector diff = target - fct2fit;

            // compute derivative
            grad_f = -2.0 * (Matrix.transpose(grad_fct2fit) * diff);
        }