exponenta event banner

del2

Дискретный лапласиан

Описание

пример

L = del2(U) возвращает дискретное приближение дифференциального оператора Лапласа, примененного к U используя интервал по умолчанию, h = 1, между всеми точками.

пример

L = del2(U,h) задает равномерный скалярный интервал, h, между точками во всех размерах U.

пример

L = del2(U,hx,hy,...,hN) задает интервал hx,hy,...,hN между точками в каждом размере U. Каждый введенный интервал задается как скаляр или вектор координат. Количество вводов интервалов должно равняться количеству размеров в U.

  • Первое значение интервала hx задает шаг X (как скаляр) или координаты X (как вектор) точек. Если это вектор, его длина должна быть равна size(U,2).

  • Второе значение интервала hy задает интервал по оси Y (в виде скаляра) или координаты по оси Y (в виде вектора) точек. Если это вектор, его длина должна быть равна size(U,1).

  • Все остальные значения интервалов определяют интервал (в виде скаляров) или координаты (в виде векторов) точек в соответствующем измерении в U. Если, для n > 2, nВвод «th spacing» является вектором, тогда его длина должна быть равна size(U,n).

Примеры

свернуть все

Вычислите ускорение объекта по вектору данных положения.

Создайте вектор позиционных данных.

p = [1 3 6 10 16 18 29];

Чтобы найти ускорение объекта, используйте del2 для вычисления второй числовой производной p. Использовать интервал по умолчанию h = 1 между точками данных.

L = 4*del2(p)
L = 1×7

     1     1     1     2    -4     9    22

Каждое значение L - аппроксимация мгновенного ускорения в этой точке.

Вычислите дискретную 1-D лапласиана вектора косинуса.

Определите область функции.

x = linspace(-2*pi,2*pi);

Это дает 100 равномерно разнесенных точек в диапазоне - 2π≤x≤2π.

Создайте вектор косинусных значений в этой области.

U = cos(x);

Вычислите лапласиан U использование del2. Использовать вектор домена x для определения 1-D координаты каждой точки в U.

L = 4*del2(U,x);

Аналитически лапласиан этой функции равен ΔU = -cos (x).

Постройте график результатов.

plot(x,U,x,L)
legend('U(x)','L(x)','Location','Best')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent U(x), L(x).

График U и L соглашается с аналитическим результатом для лапласиана.

Вычислите и постройте график дискретного лапласиана многомерной функции.

Определите область x и y функции.

[x,y] = meshgrid(-5:0.25:5,-5:0.25:5);

Определите функцию U (x, y) = 13 (x4 + y4) для этого домена.

U = 1/3.*(x.^4+y.^4);

Вычислите лапласиан этой функции с помощью del2. Интервал между точками в U равен во всех направлениях, поэтому можно задать один интервал ввода, h.

h = 0.25;
L = 4*del2(U,h);

Аналитически лапласиан этой функции равен ΔU (x, y) = 4x2 + 4y2.

Постройте график дискретного лапласиана, L.

figure
surf(x,y,L)
grid on
title('Plot of $\Delta U(x,y) = 4x^2+4y^2$','Interpreter','latex')
xlabel('x')
ylabel('y')
zlabel('z')
view(35,14)

Figure contains an axes. The axes with title Plot of $\Delta U(x,y) = 4x^2+4y^2$ contains an object of type surface.

График L соглашается с аналитическим результатом для лапласиана.

Вычислите дискретный лапласиан натуральной логарифмической функции.

Определите область x и y функции в сетке вещественных чисел.

[x,y] = meshgrid(-5:5,-5:0.5:5);

Определите функцию U (x, y) = 12log (x2y) для этого домена.

U = 0.5*log(x.^2.*y);

Логарифм является комплексным, когда аргумент y отрицательный.

Использовать del2 для вычисления дискретного лапласиана этой функции. Укажите интервал между точками сетки в каждом направлении.

hx = 1; 
hy = 0.5;
L = 4*del2(U,hx,hy);

Аналитически лапласиан равен ΔU (x, y) = - (1/x2 + 1/2y2). Эта функция не определена в строках x = 0 или y = 0.

Постройте график реальных частей U и L на том же графике.

figure
surf(x,y,real(L))
hold on
surf(x,y,real(U))
grid on
title('Plot of U(x,y) and $\Delta$ U(x,y)','Interpreter','latex')
xlabel('x')
ylabel('y')
zlabel('z')
view(41,58)

Figure contains an axes. The axes with title Plot of U(x,y) and $\Delta$ U(x,y) contains 2 objects of type surface.

Верхняя поверхность - U и нижняя поверхность L.

Входные аргументы

свернуть все

Входной массив, заданный как вектор, матрица или многомерный массив.

Типы данных: single | double
Поддержка комплексного номера: Да

Интервал во всех размерах, указанный как 1 (по умолчанию) или скаляром.

Типы данных: single | double
Поддержка комплексного номера: Да

Интервал в каждом измерении, заданный как отдельные аргументы скаляров (для равномерного интервала) или векторов (для неравномерного интервала). Количество вводов интервалов должно быть равно количеству размеров в U. Каждый введенный интервал определяет интервал между точками в одном измерении U:

  • Первое значение интервала hx задает шаг X (как скаляр) или координаты X (как вектор) точек. Если это вектор, его длина должна быть равна size(U,2).

  • Второе значение интервала hy задает интервал по оси Y (в виде скаляра) или координаты по оси Y (в виде вектора) точек. Если это вектор, его длина должна быть равна size(U,1).

  • Все остальные значения интервалов определяют интервал (в виде скаляров) или координаты (в виде векторов) точек в соответствующем измерении в U. Если, для n > 2, nВвод «th spacing» является вектором, тогда его длина должна быть равна size(U,n).

Типы данных: single | double
Поддержка комплексного номера: Да

Выходные аргументы

свернуть все

Дискретное лапласовое приближение, возвращаемое как вектор, матрица или многомерный массив. L - тот же размер, что и у входа, U.

Подробнее

свернуть все

Дифференциальный оператор Лапласа

Определение оператора Лапласа, используемого del2 в MATLAB ® зависит от размерности данных в U.

  • Если U является вектором, представляющим функцию U (x), которая вычисляется в точках прямой, тоdel2(U) является конечным аппроксимацией разности

    L=ΔU4=14∂2U∂x2.

  • Если U является матрицей, представляющей функцию U (x, y), которая вычисляется в точках квадратной сетки, тоdel2(U) является конечным аппроксимацией разности

    L = ΔU4 = 14 (∂2U∂x2+∂2U∂y2).

  • Для функций трёх или более переменных, U (x, y, z,...), дискретный лапласианdel2(U) вычисляет вторые производные в каждом измерении,

    L = ΔU2N = 12N (∂2U∂x2+∂2U∂y2+∂2U∂z2+...),

    где N - число размеров в U и N≥2.

Алгоритмы

Если вход U является матрицей, внутренние точки L находят, беря разницу между точкой в U и средний показатель по четырем соседям:

Lij = [(ui + 1, j + ui 1, j + ui, j + 1 + ui, j − 1) 4 − ui, j].

Затем, del2 вычисляет значения на кромках L путем линейной экстраполяции вторых отличий от внутренних. Эта формула расширена для многомерных U.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

Создание кода графического процессора
Создание кода CUDA ® для графических процессоров NVIDIA ® с помощью Coder™ графических процессоров

.

См. также

|

Представлен до R2006a