Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

del2

이산 라플라시안(Discrete Laplacian)

설명

예제

L = del2(U)는 모든 점 사이에 디폴트 간격 h = 1을 사용하여 U에 적용하고, 라플라스 미분 연산자(Laplace’s Differential Operator)의 이산 근삿값을 반환합니다.

예제

L = del2(U,h)U의 모든 차원에 있는 점 사이에 균일한 스칼라 간격 h를 지정합니다.

예제

L = del2(U,hx,hy,...,hN)U의 각 차원에 있는 점 사이의 간격 hx,hy,...,hN을 지정합니다. 각 간격 입력값을 스칼라로 지정하거나 좌표로 구성된 벡터로 지정합니다. 간격 입력값의 개수는 U의 차원 수와 같아야 합니다.

  • 첫 번째 간격 값 hx는 점들의 x-간격(스칼라) 또는 x 좌표(벡터)를 지정합니다. 이 값이 벡터이면 길이는 size(U,2)와 같아야 합니다.

  • 두 번째 간격 값 hy는 점들의 y-간격(스칼라) 또는 y 좌표(벡터)를 지정합니다. 이 값이 벡터이면 길이는 size(U,1)과 같아야 합니다.

  • 다른 모든 간격 값은 U의 대응하는 차원에서 점들의 간격(스칼라) 또는 좌표(벡터)를 지정합니다. n > 2인 경우 n번째 간격 입력값이 벡터이면 길이는 size(U,n)과 같아야 합니다.

예제

모두 축소

위치 데이터의 벡터에서 객체의 가속도를 계산합니다.

위치 데이터로 구성된 벡터를 만듭니다.

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

객체의 가속도를 구하기 위해 del2를 사용하여 p의 2계 수치 도함수를 계산하십시오. 데이터 점 사이에 디폴트 간격 h = 1을 사용합니다.

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

     1     1     1     2    -4     9    22

L의 각 값은 해당 점에서 순간 가속도의 근삿값입니다.

코사인 벡터의 이산 1차원 라플라시안(1-D Laplacian)을 계산합니다.

함수의 정의역을 정의합니다.

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

이는 범위 -2πx2π에 균일한 간격의 점 100개를 만듭니다.

이 정의역에서 코사인 값의 벡터를 만듭니다.

U = cos(x);

del2를 사용하여 U의 라플라시안을 계산합니다. 정의역 벡터 x를 사용하여 U의 각 점에 대해 1차원 좌표를 정의합니다.

L = 4*del2(U,x);

해석적으로, 이 함수의 라플라시안은 ΔU=-cos(x)와 동일합니다.

결과를 플로팅합니다.

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

UL의 그래프는 라플라시안의 해석적 결과와 일치합니다.

다변량 함수의 이산 라플라시안(Discrete Laplacian)을 계산하고 플로팅합니다.

함수의 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)

L의 그래프는 라플라시안의 해석적 결과와 일치합니다.

자연 로그(Natural Logarithm) 함수의 이산 라플라시안(Discrete Laplacian)을 계산합니다.

실수의 그리드에서 함수의 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에서 정의되지 않습니다.

동일한 그래프에 UL의 실수부를 플로팅합니다.

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번째 간격 입력값이 벡터이면 길이는 size(U,n)과 같아야 합니다.

데이터형: single | double
복소수 지원 여부:

출력 인수

모두 축소

이산 라플라시안(Discrete Laplacian) 근삿값으로, 벡터, 행렬, 다차원 배열 중 하나로 반환됩니다. L은 입력 인수 U와 크기가 같습니다.

세부 정보

모두 축소

라플라스 미분 연산자(Laplace’s Differential Operator)

MATLAB®에서 del2가 사용하는 라플라스 연산자의 정의는 U 데이터의 차원에 따라 결정됩니다.

  • U가 선의 점들에 대해 계산되는 함수 U(x)를 나타내는 벡터인 경우 del2(U)는 다음의 유한 차분 근삿값입니다.

    L=ΔU4=142Ux2.

  • U가 정사각 그리드의 점들에 대해 계산되는 함수 U(x,y)를 나타내는 행렬인 경우 del2(U)는 다음의 유한 차분 근삿값입니다.

    L=ΔU4=14(2Ux2+2Uy2).

  • 셋 이상의 변수를 갖는 함수 U(x,y,z,...)에 대해 이산 라플라시안(Discrete Laplacian) del2(U)는 각 차원의 2계 도함수를 계산합니다.

    L=ΔU2N=12N(2Ux2+2Uy2+2Uz2+...),

    여기서 N은 U의 차원 수이며 N2입니다.

알고리즘

입력 인수 U가 행렬인 경우 L의 내점들은 U에 있는 한 점과, 그 점의 네 근방의 평균 간의 차를 측정하여 구합니다.

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

del2는 내부로부터 두 번째 차(Difference)를 선형 외삽하여 L의 모서리 값을 계산합니다. 이 식은 다차원 U에 대해 확장됩니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.

참고 항목

|

R2006a 이전에 개발됨