Дискретный двухмерный лапласиан (del2) в C ++

Я пытаюсь понять, как портировать del2 () в matlab на C ++.

У меня есть пара масок, с которыми я работаю, - это единицы и нули, поэтому я написал код, похожий на его:

for(size_t i = 1 ; i < nmax-1 ; i++)

{
    for(size_t j = 1 ; j < nmax-1 ; j++)

    {
        transmask[i*nmax+j] = .25*(posmask[(i+1)*nmax + j]+posmask[(i-1)*nmax+j]+posmask[i*nmax+(j+1)]+posmask[i*nmax+(j-1)]);

    }
}

для вычисления внутренних точек лапласианов. к некоторой информации в "doc del2" в Matlab, пограничные условия просто используют доступную информацию для вычисления, верно? Итак, я думаю, мне просто нужно написать случаи для пограничных условий в i, j = 0 и nmax

Однако я думаю, что эти значения из кода, который я разместил здесь, будут правильными для внутренних точек как есть, но похоже, что результаты del2 разные!

Я покопался в исходном коде del2 и полагаю, что мне недостаточно мастера Matlab, чтобы понять, что происходит с некоторым кодом для внутренних вычислений

5
задан Derek 9 May 2011 в 16:34
поделиться