del2
离散拉普拉斯算子
说明
用于在 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
的第二个数值导数。在数据点之间使用默认间距 h = 1
。
L = 4*del2(p)
L = 1×7
1 1 1 2 -4 9 22
L
的每个值是该点的即时加速度的近似值。
余弦向量的第二个导数
计算余弦向量的一维离散维拉普拉斯算子。
定义函数的域。
x = linspace(-2*pi,2*pi);
这会在 范围内生成 100 个等间距点。
在此域内创建余弦值的向量。
U = cos(x);
使用 del2
计算 U
的拉普拉斯算子。使用域向量 x
确定 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
。
输入参数
U
— 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为向量、矩阵或多维数组。
数据类型: single
| double
复数支持: 是
h
— 所有维度中的间距
1
(默认) | 标量
所有维度中的间距,指定为 1
(默认值)或标量。
数据类型: single
| double
复数支持: 是
hx,hy,...,hN
— 每个维度中的间距(作为单独参量)
标量 | 向量
每个维度中的间距,指定为单独的标量(对于均匀间距)或向量(对于非均匀间距)参量。间距输入数必须等于 U
中的维数。每个间距输入定义 U
的一个维度中的点之间的间距:
第一个间距值
hx
指定点的 x 间距(标量)或 x 坐标(向量)。如果是向量,则其长度必须等于size(U,2)
。第二个间距值
hy
指定点的 y 间距(标量)或 y 坐标(向量)。如果是向量,则其长度必须等于size(U,1)
。所有其他间距值指定
U
中对应维度的各点的间距(标量)或坐标(向量)。对于n > 2
的情况,如果第n
个间距输入是向量,则其长度必须等于size(U,n)
。
数据类型: single
| double
复数支持: 是
输出参量
L
— 离散拉普拉斯算子近似值
向量 | 矩阵 | 多维数组
离散拉普拉斯算子近似值,以向量、矩阵或多维数组的形式返回。L
与输入 U
的大小相同。
详细信息
拉普拉斯微分运算子
MATLAB® 中的 del2
使用的拉普拉斯算子的定义取决于 U
中数据的维度。
如果
U
是表示函数 U(x) 的向量且该函数在一条直线的点位置进行计算,则del2(U)
是下式的有限差分逼近如果
U
是表示函数 U(x,y) 的矩阵且该函数在方形网格的点位置进行计算,则del2(U)
是下式的有限差分逼近对于带有三个或更多变量的函数 U(x,y,z,...),离散拉普拉斯算子
del2(U)
会计算每个维度中的第二个导数,其中 N 是 U 中的维数,且 。
算法
如果输入 U
是一个矩阵,则 L
的内部点通过取 U
中的点与其四个相邻点的平均值之间的差值找到:
然后,del2
会通过线性外插第二个差分来从内部延伸计算 L
边界上的值。此公式会针对多维 U
进行扩展。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)