QLNet.TridiagonalOperator.setMidRow C# (CSharp) Метод

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

public setMidRow ( int i, double valA, double valB, double valC ) : void
i int
valA double
valB double
valC double
Результат void
        public void setMidRow(int i, double valA, double valB, double valC)
        {
            if (!(i >= 1 && i <= size() - 2))
                throw new ApplicationException("out of range in TridiagonalSystem::setMidRow");
            lowerDiagonal_[i - 1] = valA;
            diagonal_[i] = valB;
            upperDiagonal_[i] = valC;
        }

Usage Example

Пример #1
0
        public void generateOperator(double t, TransformedGrid tg, TridiagonalOperator L)
        {
            for (int i = 1; i < tg.size() - 1; i++)
            {
                double sigma  = diffusion(t, tg.grid(i));
                double nu     = drift(t, tg.grid(i));
                double r      = discount(t, tg.grid(i));
                double sigma2 = sigma * sigma;

                double pd = -(sigma2 / tg.dxm(i) - nu) / tg.dx(i);
                double pu = -(sigma2 / tg.dxp(i) + nu) / tg.dx(i);
                double pm = sigma2 / (tg.dxm(i) * tg.dxp(i)) + r;
                L.setMidRow(i, pd, pm, pu);
            }
        }
All Usage Examples Of QLNet.TridiagonalOperator::setMidRow