del2

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

Синтаксис

L = del2(U)
L = del2(U,h)
L = del2(U,hx,hy,...,hN)

Описание

пример

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 разрядка входного параметра является вектором, то его длина должна быть равна 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 является приближением мгновенного ускорения в той точке.

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

Задайте область функции.

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

Это производит 100 равномерно расположенных с интервалами точек в области значений.

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

U = cos(x);

Вычислите Лапласиан U с помощью del2. Используйте доменный векторный x, чтобы задать 1D координату каждой точки в U.

L = 4*del2(U,x);

Аналитически, Лапласиан этой функции равен.

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

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

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

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

Задайте область x и y функции.

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

Задайте функцию по этой области.

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

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

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

Аналитически, Лапласиан этой функции равен.

Постройте график дискретного Лапласиана, 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)

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

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

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

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

Задайте функцию по этой области.

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

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

Используйте del2, чтобы вычислить дискретный Лапласиан этой функции. Задайте интервал между узлами решетки в каждом направлении.

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

Аналитически, Лапласиан равен. Эта функция не задана на строках или.

Постройте график действительных частей 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)

Главной поверхностью является 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 разрядка входного параметра является вектором, то его длина должна быть равна size(U,n).

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

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

свернуть все

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

Больше о

свернуть все

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

Если матричный U является функцией U (x, y), который оценен в точках квадратной сетки, то 4*del2(U) является приближением конечной разности дифференциального оператора Лапласа, применился к 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™.

Смотрите также

|

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

Была ли эта тема полезной?