初见波动方程和贝塞尔函数

介绍:波动方程是描述波传播的根本规律,而贝塞尔函数是在柱坐标系下求解波动方程时自然出现的一类特殊函数。

曲率

用一个最直观的模型------振动弦 ------来解释清楚曲率是什么。

想象一根紧绷的弦,它由无数个微小的质量点组成,相邻点之间由微小的、倔强的"弹簧"连接(这"弹簧"其实就是弦的张力的微观体现)。

平衡时:弦沿水平轴(x轴)绷直。

振动时:弦上各点主要在垂直方向(u方向)运动,水平方向的运动极其微小,在小振幅近似下被忽略。

我们关注弦上的一点 x,它在时刻 t 的位移是 u(x,t)。它的"不均匀"程度,首先体现在它的斜率上。斜率 表示弦在该点的倾斜程度。斜率越大,说明弦在这里弯得越"陡"。

但是,斜率本身并不直接产生净恢复力。想象一根倾斜的直线(斜率处处相等),虽然不平,但其中任何一小段受到的左右拉力是平衡的,合力为零,不会运动。

关键在于斜率的变化,即曲率。

当某个点偏离平衡位置时,它左右两边的"邻居"会通过"弹簧"拉扯它,试图把它拉回平均水平。这种"恢复力",就是曲率。

考虑点 x 处一段极小的线段。

先看水平分量:

左端 x 处: 张力 T 的水平分量 , 方向向左 (负x方向)。

右端 x+dx 处: 张力 T 的水平分量 , 方向向右 (正x方向)。

净水平力:

因为振动幅度很小, 弦的倾斜角 很小, 所以

再看垂直分量:

左端垂直分量: (负号: 如果为正, 力向下)

右端垂直分量: (正号: 力向上)

净垂直力:

利用小角度近似 :

水平合力 ,二阶小量

垂直合力 ,一阶小量

在 dx 很小时, 一阶小量主导了动力学行为。垂直合力提供恢复力,驱动弦的横向振动,是动力学的主导因素。水平合力在最低阶近似下为零(张力水平分量平衡),仅对张力大小有微小修正,不影响振动的主要行为。所以,在这个模型中,我们研究的是弦的横向振动(transverse vibration),即关注垂直分量,而不是水平分量。

忽略水平运动后,张力 T 可视为常数,问题简化为单一的标量波动方程,仅描述垂直位移

u(x,t) 的演化。

同样,考虑点 x 处一段极小的线段。

在左端 x,弦的倾斜角为 ,张力 在垂直方向的分量是

在右端 x+dx,倾斜角为 ,垂直分力是

dx 是一个无穷小量,它表示在x 方向上极其微小的长度增量。作用在这小段弦上的净垂直力(即恢复力,Resilience)就是这两个力的差:

方括号里的项, 正是 "斜率的变化"。根据导数的定义:

,因此

,即**(时间上的)净恢复力 正比于 (空间上的)位移二阶导数**

二阶导数 在几何上就是曲线的曲率 (对于小振动, 近似等于曲率)。

如果 : 弦在该点附近是"下凹"的形状 (像山谷)。左右两边的邻居都比它低, 所以两边的拉力都有一个向上的分量, 净效果是把它向上拉。

如果 : 弦在该点附近是"上凸"的形状 (像山包)。左右两边的邻居都比它高, 所以两边的拉力都有一个向下的分量, 净效果是把它向下拉。

如果 : 弦在该点附近是直线 (均匀倾斜或水平), 左右拉力平衡, 净恢复力为零。

所以, 直接度量了该点受到的、试图将它"熨平"的净恢复力的强度和方向。它是一个空间局域的、"以邻为壑"的判断标准。

将曲率推广到三维,就是拉普拉斯算子

在一维中, 恢复力只来自左右两个方向。在三维空间中 (比如空气中的声波), 一个点的压力扰动 p 会受到来自四面八方邻居的影响。

拉普拉斯算子 在一点的取值,正比于 该点周围邻域的平均压力值减去该点本身的压力值

(证明见附录1)

其中 是以 为中心的小球内压力的平均值。

拉普拉斯算子 可以理解为 "该点与其周围无限小邻域内所有方向平均值的差"。

如果该点的压力 p 比周围所有方向的平均值都高 (形成一个高压点), 此时 , 所以

根据波动方程 , 可得

这就意味着,**压力扰动的二阶时间导数为负, 意味着压力随时间减小的趋势。高压点受到周围空气的"推挤", 空气从高压区向四周流出, 导致压力下降。**周围空气会从四面八方"推挤"它, 迫使它降低压力------这是一个指向平衡的恢复效应。

反之, 如果形成一个低压点 (), 周围空气会向各个方向"拉扯"它, 使其压力升高。

所以, 是三维空间中 "不均匀性"或"偏离周围平均值程度"的度量, 这个度量直接决定了净恢复力的趋势。

由牛顿第二定律 (F=ma)可知:净恢复力 = 质量 乘以 加速度

对于弦的一小段dx来说,其质量 , 加速度 ,线密度为常数 ρ。

则有:

, 就得到了标准的一维波动方程:

波动方程

波动方程,本质上是描述一类波动现象的数学模型。其核心是描述场随时间(二阶时间导数)和空间(二阶空间导数)的变化关系。它告诉我们,一个物理量在时间和空间中是如何以"波"的形式传播和演化的。

最一般的形式可以写作:

其中 是拉普拉斯算子。这里的场 可以是标量, 也可以是向量。

如果是标量 (如声压、密度扰动), 那就是标量波动方程。

如果是向量 (如电场 、磁场 、位移场 ), 那就是向量波动方程。例如, 在真空中, 麦克斯韦方程组可以推导出 分别满足一个向量波动方程。

标量波动方程,是波动方程在描述标量场时的特例。它描述的是物理量只有大小、没有方向的波动。

其中, 是拉普拉斯算符,在直角坐标系中为

一维形式(例如,振动弦):

三维形式(例如,声波在空气中传播):

在标量波动方程中,

:这是我们要研究的标量场。它代表一个物理量,比如 弦的横向位移 u(x,t);声波中的压强扰动 p(x,y,z,t);浅水波的水面高度 h(x,y,t)

**表示空间位置矢量,**在直角坐标系中可展开为 (x, y, z)。

:场对时间的二阶偏导数。在力学中,这直接对应于加速度。

:场的空间分布曲率乘以一个常数。这描述了由于场在空间中"不均匀"而产生的净恢复力。

:一个常数,代表波在该介质中传播的相速度(波峰移动的速度)。它由介质的本质属性决定(例如,弦的张力与密度之比、空气的弹性与密度之比)。

**其核心物理思想是,一个"动态平衡"方程,**可以直观地理解为 "加速度 = 恢复力" 的波动版本,即 牛顿第二定律(F=ma)在连续介质中的体现。

**左边()代表"惯性"。**场在某个点随时间变化的"加速度"越大,它就越倾向于改变。

右边( 代表"弹性恢复力"。 拉普拉斯算符 衡量了该点与其周围点的平均差异

方程的物理内涵就是:空间上的任何"不平"(由判断),都会立即转化为时间上的"加速变化"(),而这种变化的传播速度就是

分离变量法

在分离变量法中, 我们将波动方程的解设为 的形式。代入波动方程 , 得到:

两边除以 (假设解不为零), 得到:

此时, 左边仅是时间 t 的函数, 右边仅是空间变量 的函数。由于 t 和 是独立变量, 要使等式恒成立, 两边必须等于同一个常数, 记为 (或 , 其中 k 为实数)。

为什么是负常数?

考虑时间部分的方程:

,即

(即常数为负) : , 则方程变为 。其解为:

表示简谐振动, 符合波动现象中周期振荡的物理图像 (如弦振动、声波、光波等)。

(即常数为正) : , 则方程变为 。其解为:

表示指数增长或衰减, 这通常描述非守恒系统的瞬态行为 (如扩散过程), 而非稳定的波动。

:, 解为 , 表示线性变化, 同样不符合波动行为。

在典型的波动问题 (如弦振动、声波、电磁波) 中, 能量守恒且系统保守, 解应呈现振荡形式而非指数发散或衰减。此外, 空间部分的方程 (亥姆霍兹方程) 在 时具有振动特性的解 (如正弦函数、贝塞尔函数等), 这对应于波在空间中的驻波模式。

因此, 选择负的分离常数 (即 ) 是为了得到物理上合理的振动解, 并与边界条件结合确定本征值。当然, 理论上常数可正可负, 但**只有正值常数能描述波动现象;**负值常数通常对应非物理或特殊衰减模式, 在标准波动问题中较少出现。

柱坐标系下分析波动方程

考虑柱坐标系 下的标量波动方程:

其中拉普拉斯算子在柱坐标系下的形式为:

(推导见附录2)

因此,波动方程化为:

分离变量法中,假设解可以写成时间函数和空间函数的乘积形式:

代入波动方程:

由于 不依赖于空间变量, 可以提取出来:

整理得:

左边只是空间变量的函数,右边只是时间变量的函数,因此两边必须等于同一个常数。我们记这个常数为 ,则有:

(时间方程)

(亥姆霍兹方程)

时间方程:

其解为 ,表示简谐振动,角频率为

空间部分的亥姆霍兹方程

假设空间部分可以进一步分离:

代入亥姆霍兹方程:

两边除以

整理得:

左边是 的函数, 右边是 的函数, 因此两边必须等于常数。设此常数为 :

方向的方程)

(角向与径向的方程)

对于 方向的方程:,其解为 , 表示沿 方向的行波。

对于角向与径向的方程:

乘以

左边是 的函数, 右边是 的函数, 因此两边必须等于常数。设此常数为 :

(角向方程)

(径向方程)

对于角向方程: ,其解为 。由于 是角度变量, 要求周期性边界条件 , 因此 必须为整数:

对于径向方程,展开左边第一项得到:

因此:

整理得:

, 则:

再令 , , 则:

代入方程:

化简:

这就是标准的贝塞尔方程

贝塞尔函数

前面已经介绍,贝塞尔方程是在求解许多具有圆柱对称性或球对称性的物理问题(如热传导、振动、电磁波)时,通过分离变量法自然出现的一个二阶线性常微分方程。

贝塞尔方程

其中,m是一个常数,称为方程的阶(可以是整数或非整数)。

贝塞尔函数是贝塞尔方程的解本质上就是 y 关于 x 的函数 ,即 y=f(x),但它们不是我们熟悉的幂函数、指数函数或三角函数等初等函数,而是一种特殊函数

1.**贝塞尔函数没有"封闭表达式":**你无法用一个简单的、有限的初等函数组合公式来写出它。它通常被定义为:

a.无穷级数 (最根本的定义方式): 这个级数正是通过求解贝塞尔方程 (如幂级数法) 而得到的。

b.积分表达式。某些贝塞尔函数可以表示为特定积分。这些积分形式同样满足贝塞尔方程。

c.生成函数: 。这里的系数也被证明是贝塞尔方程的解。。

2.贝塞尔函数是一个"函数族" : 我们说"贝塞尔函数"时, 通常指的是一个大家族, 包括:

a.不同阶数: 都是不同的函数。

b.不同类型: 第一类 、第二类 、汉克尔函数 等, 每一个都是独立的函数。

它的所有关键特性(如振荡性、衰减性、在原点的行为)都源于它是贝塞尔方程的解这一身份。这意味着它天然地适合描述那些在柱坐标或球坐标下具有对称性的物理现象(如圆柱中的振动、波的传播、热扩散)。

也就是说,贝塞尔方程不仅是"描述"了贝塞尔函数,它正是贝塞尔函数最核心、最根本的"定义性"特征。

物理图像: 想象一个半径为 的完美圆形鼓膜, 边缘被紧紧固定住。当你敲击它时, 它会以某些特定的"模式"振动, 这些模式称为本征模或模态 。每个模式有自己特定的形状和频率。

数学模型 (简化流程):

建立方程: 根据牛顿定律, 鼓膜的微小横振动由二维波动方程描述。

分离变量: 假设解可以写成"空间部分×时间部分"。由于鼓膜是圆形的, 使用极坐标

得到空间方程: 分离变量后, 径向部分 满足的方程, 经过适当的变量代换, 正好变成了一个贝塞尔方程! 其阶数 对应于角向的振动节线数 (是一个整数 )。

写出通解: 方程的通解是贝塞尔函数。由于在鼓膜中心 () 位移必须是有限的 (不能无限大), 我们必须抛弃在原点发散的第二类贝塞尔函数 , 只保留第一类贝塞尔函数

所以, 径向的解是 , 其中 是一个与振动频率相关的常数。

数学上看,贝塞尔方程是一个二阶线性微分方程,它有两个线性无关的解,分别是
第一类贝塞尔函数 :是在原点 处有限的解(对于 )。
第二类贝塞尔函数 (又称诺伊曼函数):是在原点处发散(趋于无穷大)的解。
在物理问题中,如果问题的区域包含圆心 (比如一个完整的实心圆盘),那么为了保证解的物理合理性(能量有限),我们必须舍弃在原点发散的 ,只保留 。这就是为什么在雅可比-安格尔展开等许多物理问题中,第一类贝塞尔函数是主角。

Matlab 复制代码
%% 圆形鼓膜振动模式可视化
% 基于二维波动方程和贝塞尔函数解

clear all; close all; clc;

%% 参数设置
R = 1.0;           % 鼓膜半径 [m]
c = 100;           % 波速 [m/s] (简化值)
max_m = 3;         % 最大角向阶数
max_n = 3;         % 最大径向阶数
Nr = 200;          % 径向网格点数
Ntheta = 200;      % 角向网格点数
t = 0;             % 初始时间 [s]
omega_scale = 1;   % 频率缩放因子(为了可视化)

%% 创建极坐标网格
r = linspace(0, R, Nr);
theta = linspace(0, 2*pi, Ntheta);
[R_grid, Theta_grid] = meshgrid(r, theta);

% 转换为笛卡尔坐标用于绘图
X = R_grid .* cos(Theta_grid);
Y = R_grid .* sin(Theta_grid);

%% 计算不同模式的振动形状
figure('Position', [100, 100, 1200, 900]);
sgtitle('圆形鼓膜振动模式(本征模)', 'FontSize', 16, 'FontWeight', 'bold');

for m = 0:max_m  % 角向模式数(节径数)
    for n = 1:max_n  % 径向模式数(节圆数,不包括边界)
        % 计算当前子图索引
        subplot_idx = m * max_n + n;
        subplot(max_m+1, max_n, subplot_idx);
        
        % 找到贝塞尔函数J_m(x)的第n个正根(边界条件:J_m(k_{mn}R)=0)
        % 使用数值方法寻找根
        f = @(x) besselj(m, x);
        
        % 估计根的位置并精确查找
        % 贝塞尔函数的根大致等间距分布
        k_guess = (m/2 + n) * pi;  % 粗略估计
        options = optimset('TolX', 1e-10);
        kR = fzero(f, k_guess, options);
        
        % 计算波数
        k_mn = kR / R;
        
        % 计算本征频率(根据波动方程理论)
        omega_mn = c * k_mn;
        
        % 计算空间部分:R(r)*Θ(θ)
        % 径向部分:第一类贝塞尔函数 J_m(k_mn * r)
        R_part = besselj(m, k_mn * R_grid);
        
        % 角向部分:cos(mθ) 或 sin(mθ),这里选择 cos(mθ) 作为示例
        if m == 0
            Theta_part = ones(size(Theta_grid));  % m=0 时角向为常数
        else
            Theta_part = cos(m * Theta_grid);
        end
        
        % 完整空间模式(未归一化)
        Z_spatial = R_part .* Theta_part;
        
        % 时间部分:cos(ωt) 或 sin(ωt),这里用静态展示
        Z = Z_spatial * cos(omega_mn * omega_scale * t);
        
        % 绘制三维曲面
        surf(X, Y, Z, 'EdgeColor', 'none', 'FaceAlpha', 0.9);
        
        % 设置视图和光照
        view(45, 30);
        camlight left;
        lighting gouraud;
        
        % 设置坐标轴
        axis equal tight;
        xlim([-R, R]);
        ylim([-R, R]);
        zlim([-1, 1]);
        
        % 添加标题
        title(sprintf('模式 (m=%d, n=%d)\n频率 ∝ %.2f', m, n, omega_mn), ...
              'FontSize', 10);
        
        % 添加坐标轴标签
        xlabel('x [m]', 'FontSize', 8);
        ylabel('y [m]', 'FontSize', 8);
        zlabel('位移', 'FontSize', 8);
        
        % 添加颜色条
        colormap(jet);
        colorbar;
        
        % 固定边界条件可视化(边缘位移为0)
        hold on;
        plot3(cos(theta)*R, sin(theta)*R, zeros(size(theta)), ...
              'k-', 'LineWidth', 2);
        hold off;
    end
end

%% 添加整体说明
annotation('textbox', [0.02, 0.02, 0.96, 0.04], ...
           'String', ['物理图像:圆形鼓膜以不同本征模振动。m = 角向节线数(节径数),n = 径向节圆数(不包括边界)。', ...
                      ' 颜色表示位移幅度,边缘固定(位移为0)。'], ...
           'FontSize', 10, 'EdgeColor', 'none', 'HorizontalAlignment', 'center');

%% 绘制特定模式的动态振动
figure('Position', [100, 100, 1000, 800]);

% 选择要动态展示的模式
m_dynamic = 2;
n_dynamic = 1;

% 计算该模式的参数
f = @(x) besselj(m_dynamic, x);
k_guess = (m_dynamic/2 + n_dynamic) * pi;
kR_dynamic = fzero(f, k_guess);
k_mn_dynamic = kR_dynamic / R;
omega_dynamic = c * k_mn_dynamic;

% 计算空间模式
R_part_dynamic = besselj(m_dynamic, k_mn_dynamic * R_grid);
if m_dynamic == 0
    Theta_part_dynamic = ones(size(Theta_grid));
else
    Theta_part_dynamic = cos(m_dynamic * Theta_grid);
end
Z_spatial_dynamic = R_part_dynamic .* Theta_part_dynamic;

% 时间序列
t_vec = linspace(0, 2*pi/omega_dynamic, 50);

% 创建动画
for i = 1:length(t_vec)
    clf;
    
    % 计算当前时间的位移
    Z_dynamic = Z_spatial_dynamic * cos(omega_dynamic * t_vec(i));
    
    % 绘制三维曲面
    surf(X, Y, Z_dynamic, 'EdgeColor', 'none', 'FaceAlpha', 0.9);
    
    % 设置视图和光照
    view(45, 30);
    camlight left;
    lighting gouraud;
    
    % 设置坐标轴
    axis equal tight;
    xlim([-R, R]);
    ylim([-R, R]);
    zlim([-1, 1]);
    
    % 添加标题
    title(sprintf('模式 (m=%d, n=%d) 的动态振动\n时间 t = %.2f s', ...
          m_dynamic, n_dynamic, t_vec(i)), 'FontSize', 14);
    
    % 添加坐标轴标签
    xlabel('x [m]', 'FontSize', 12);
    ylabel('y [m]', 'FontSize', 12);
    zlabel('位移', 'FontSize', 12);
    
    % 添加颜色条
    colormap(jet);
    colorbar;
    
    % 固定边界
    hold on;
    plot3(cos(theta)*R, sin(theta)*R, zeros(size(theta)), ...
          'k-', 'LineWidth', 2);
    hold off;
    
    % 添加说明
    annotation('textbox', [0.02, 0.02, 0.96, 0.04], ...
               'String', ['红色区域:正向位移(鼓膜向外凸起)', ...
                          ' 蓝色区域:负向位移(鼓膜向内凹陷)', ...
                          ' 黑色圆圈:固定边界'], ...
               'FontSize', 10, 'EdgeColor', 'none', 'HorizontalAlignment', 'center');
    
    % 暂停以创建动画效果
    pause(0.05);
    
    % 如果是最后一帧,多停留一会
    if i == length(t_vec)
        pause(1);
    end
end

%% 绘制贝塞尔函数曲线(说明解的来源)
figure('Position', [100, 100, 1200, 500]);

subplot(1, 2, 1);
x = linspace(0, 20, 1000);
for m = 0:3
    plot(x, besselj(m, x), 'LineWidth', 2);
    hold on;
end
hold off;
grid on;
xlabel('x', 'FontSize', 12);
ylabel('J_m(x)', 'FontSize', 12);
title('第一类贝塞尔函数 J_m(x)', 'FontSize', 14);
legend('J_0(x)', 'J_1(x)', 'J_2(x)', 'J_3(x)', 'Location', 'best');
xlim([0, 20]);

subplot(1, 2, 2);
% 绘制第二类贝塞尔函数(在原点发散)
x = linspace(0.1, 20, 1000);  % 从0.1开始避免奇点
for m = 0:3
    plot(x, bessely(m, x), 'LineWidth', 2);
    hold on;
end
hold off;
grid on;
xlabel('x', 'FontSize', 12);
ylabel('Y_m(x)', 'FontSize', 12);
title('第二类贝塞尔函数 Y_m(x)(在原点发散)', 'FontSize', 14);
legend('Y_0(x)', 'Y_1(x)', 'Y_2(x)', 'Y_3(x)', 'Location', 'best');
xlim([0, 20]);
ylim([-2, 1]);

annotation('textbox', [0.02, 0.02, 0.96, 0.04], ...
           'String', ['左图:第一类贝塞尔函数 J_m(x) 在原点有限,用于描述鼓膜振动。', ...
                      ' 右图:第二类贝塞尔函数 Y_m(x) 在原点发散,物理上不可接受(被舍弃)。'], ...
           'FontSize', 10, 'EdgeColor', 'none', 'HorizontalAlignment', 'center');

disp('建模完成!');
disp(' ');
disp('物理解释:');
disp('1. 每个振动模式由两个整数 (m,n) 标识');
disp('   m: 角向节线数(直径方向的节线)');
disp('   n: 径向节圆数(同心圆状的节线,不包括边界)');
disp('2. 边界条件:鼓膜边缘固定,位移始终为0');
disp('3. 中心条件:在 r=0 处位移必须有限,因此只使用第一类贝塞尔函数 J_m');
disp('4. 本征频率由 J_m(k_{mn}R)=0 的根决定');

雅可比-安格尔展开

贝塞尔函数的雅可比-安格尔展开, 是一个将复指数形式的平面波(或调相波)展开为一系列角向谐波(三角函数)与径向特殊函数(贝塞尔函数)乘积的公式。

它的核心思想是:将一个复平面上的单位圆周运动(复指数函数)分解为一系列不同频率的简谐振动(三角函数)的叠加,而每个频率成分的"振幅"由贝塞尔函数给出。

它有什么用?

这是贝塞尔函数的一个极其强大的生成函数 。通过对该等式进行各种操作(如求导、积分、取实部/虚部),可以推导出几乎所有关于整数阶贝塞尔函数的递推关系加法定理

最常用的形式有两种。

形式一(余弦展开):

其中 是第一类 n 阶贝塞尔函数。

它表明,函数 (作为 的周期函数) 可以进行傅里叶级数展开,而其傅里叶系数恰好是整数阶贝塞尔函数乘以一个因子

形式二(正弦余弦分开):

通过分别考虑虚部与实部,可以得到:

可以把雅可比-安格尔展开看作是"傅里叶级数"的一个特例,但其系数不是常数,而是由自变量 z 决定的贝塞尔函数。

左边:

当 z 固定时,这是一个关于角度 的周期函数 (周期为 )。可以把它想象成一个点在复平面上做圆周运动,但其"半径"不是恒定的1,而是受到 调制的复杂运动。

右边:

这是一个标准的傅里叶级数。它表明,左边那个复杂的运动,可以分解成无数个简单的、频率为 n ( ) 的匀速圆周运动 (即) 的叠加。

关键点: 第 n 个频率分量的复振幅 (即系数) 正是 。也就是说,贝塞尔函数 描述了参数z如何决定第 n 个谐波的强度。

应用案例

Implicit Neural Compression(INR)

内容来源:《SCI: A Spectrum Concentrated Implicit Neural Compression for Biomedical Data**》**

在三层INR架构中,第一层对输入向量 (如体素坐标)进行频率映射,输出可表示为:

(1)

是第一层的权重矩阵, 是权重矩阵 的简化符号,代表输入频率的集合。是输入的空间坐标向量(如三维点的 (x,y,z)(x,y,z) 坐标)。

本质上是输入坐标与频率基的内积,是线性变化,用于将低维空间坐标映射到高维频率空间。然后,把线性的频率信号转换成了非线性的周期信号,是非线性变换。

(2)

其中, 表示权重矩阵的第 h 行。设 K 为 的行数,并将 表示为第 k 行。那么向量 的内积可以展开为:

其中 中的第 个元素。

利用欧拉公式,对于实数 x 有 ,其中 j 是虚数单位。由此可得:

由于一个和式的指数等于各指数的乘积:

于是有:

(3)

采用雅可比-安格尔展开式:

其中 表示第一类贝塞尔函数,其阶数为 t。对于乘积中的每一个因子,设

代入式子 3 :

.

将乘积与多重求和进行互换:

注意到,

因此,我们有:

在该论文中,为使表述更加简洁,将指数项写成""的形式置于求和符号内部,从而得出式(4):

(4)

在多重求和中, 各个求和指标 ( ) 相互独立, 没有任何约束关系 。每个都可以独立地取遍所有整数 (从负无穷到正无穷), 因此这个求和遍历了所有可能的整数组合 () 。

每个 对应第 k 个频率分量的谐波次数。由于非线性激活函数 (正弦函数) 的作用, 每个输入频率可以产生任意整数次的谐波 ( )。不同频率分量之间的谐波是独立的, 因此输出信号中会包含所有可能的线性组合 , 其中每个 是任意整数。

用欧拉公式将Im转为sin,得:

(5)

表示输入频率整数谐波的线性组合,表明INR架构对宽频段频率的表达能力。

由于 MLP 的权重在统计上集中在0附近,我们可以从贝塞尔函数的渐近展开式中推导出基频系数远大于高频系数**。** 换言之,中的高次谐波系数往往比输入频率Ω更小。

总体而言,上述三层甚至更多层的INR架构将起到感应偏置的作用,将输出信号的大部分能量集中在输入频率Ω附近的窄带内。我们将这种现象称为INR的频谱集中特性。

通过欧拉公式和傅里叶级数展开,我们把原来的非线性函数 分解成了不同频率正弦波的组合。这让我们可以从频谱的角度分析INR的表示能力,从而解释为什么INR具有"频谱集中"的特性,以及为什么这种特性会影响压缩效果。

附录

1 欧拉公式

欧拉公式,建立了三角函数和复指数函数之间的联系。

其中,j 是虚数单位,满足 j² = -1;x 是实数(弧度制);

从欧拉公式可以推导出正弦函数的复指数形式,公式为:

2 傅里叶级数

傅里叶级数展开,是一种把周期函数分解成不同频率正弦波和余弦波之和的方法。

一个周期为 T (角频率 ) 的周期函数 f(t),当其满足狄利克雷条件时,可以展开为三角形式的傅里叶级数:

其中:ω₀ = 2π/T 是基频;, , 是傅里叶系数;

这里 表示在一个周期内积分。

将欧拉公式代入三角形式的级数中:

现在我们观察到:

第一项 可以看作是 时的项。

第二项是关于正频率 的复指数求和。

第三项是关于负频率 的复指数求和,其中 n 从 1 开始。

为了形式上的统一和对称 ,我们定义一个新的复数系数 ,使其同时包含正负频率的信息:

定义复傅里叶系数

验证这个定义的合理性:

有了的定义,我们可以将前面冗长的求和式优雅地重写为一个统一的求和:

其中, 是基波角频率。

总结一下:**傅里叶级数的复指数形式通过欧拉公式,将三角形式的正弦和余弦分量统一为具有正负频率的复指数分量之和。**其核心公式极其简洁,时域信号等于所有整数倍频率的复指数分量之和,而每个分量的系数(频谱)由信号与对应复指数基的内积给出。

傅里叶级数的复指数形式的性质:

函数集 在周期 T 上构成一组完备的正交基,内积定义为:

3 平均值性质 (mean value property)

对于定义在 上的光滑函数 ,我们要证明拉普拉斯算子 与该点周围球面(或球体)平均值和该点值之差成正比。

是以点 为中心、半径为 维球体,其体积为

定义球体平均值 为:

其中,球体 定义为所有满足 的点 的集合。积分 表示对球体内的所有点 进行积分。

那么,当 时,有以下渐近展开:

证明如下:

,其中 。在点 处对 进行泰勒展开:

将展开式代入平均值计算:

下面逐项计算积分:

(常数项)

(线性项)

由于积分区域关于原点对称且被积函数 是奇函数,有:

(二次项)

计算积分

时,由于对称性(例如,对 是奇函数),积分为零。

时,由各向同性可知:

计算 。在球坐标下:

其中, 维单位球面的面积。

已知 d 维球体的体积为

因此,

于是,二次项贡献为:

(高阶项)

余项 的积分量级为 ,因此:

(合并结果)

代入平均值表达式:

代入,得:

整理即得:

由此公式可知物理推论,对于足够小的 R:

,则 ,该点压力低于周围平均值,为 低压点

,则 ,该点压力高于周围平均值,为 高压点

结合标量波动方程 ,立即得到:

对于高压点(),有 ,压力将 减小

对于低压点(),有 ,压力将 增大

这正体现了波动方程描述的 恢复力效应:任何偏离周围平均值的扰动,都会受到一个使其回归平衡的力。

4 柱坐标系下的拉普拉斯算子

拉普拉斯算子在柱坐标系下的形式:

可以通过坐标变换和复合函数求导法则推导得出。

一、坐标系转换关系

柱坐标系 与直角坐标系 的转换关系为:

直角坐标转柱坐标:

柱坐标转直角坐标:

二、偏导数转换关系

利用复合函数求导法则,将直角坐标系中的偏导数 () 转换为柱坐标系中的偏导数:

  1. 对 (x) 的偏导数:

通过转换关系求偏导:

代入得:

  1. 对 (y) 的偏导数

求偏导:

代入得:

  1. 对 (z) 的偏导数

三、计算二阶偏导数

拉普拉斯算子 (),需要分别计算 () 和 ():

  1. 计算 ()

展开并化简:

\

  1. 计算 ()

展开并化简:

四、合并得到拉普拉斯算子

将 () 和 () 相加,再加上 ():

代入化简后:

进一步整理为更简洁的形式:

相关推荐
民乐团扒谱机3 小时前
【微实验】基于MATLAB的一维条材下料优化问题求解
数学建模·matlab·线性规划·最优化模型·整数线性规划
小李独爱秋4 小时前
计算机网络经典问题透视:MD5报文是什么?有什么特点?
网络·网络协议·计算机网络·网络安全·信息与通信·信号处理
Heorine1 天前
数学建模 绘图 图表 可视化(6)
python·数学建模·数据可视化
Evand J1 天前
【课题推荐】基于超分辨率技术的低功耗定位系统|低功耗物联网|信号处理。附MATLAB运行结果
物联网·matlab·信号处理
安徽必海微马春梅_6688A2 天前
A实验:穿梭避暗实验箱 大鼠避暗箱 大鼠避暗系统
人工智能·硬件工程·信号处理
ECT-OS-JiuHuaShan2 天前
哲学第三次世界大战:《易经》递归生成论打破西方机械还原论
人工智能·程序人生·机器学习·数学建模·量子计算
进击中的小龙2 天前
基于rtklib的载波相位平滑伪距
c语言·算法·数学建模·gitee
Aaron15882 天前
基于VU13P在人工智能高速接口传输上的应用浅析
人工智能·算法·fpga开发·硬件架构·信息与通信·信号处理·基带工程
墨有6662 天前
数学分析栈的出栈顺序:从算法判断到数学本质(卡特兰数初探)
c++·算法·数学建模