以下是一段简单的 MATLAB 代码,可以实现超透镜消色差和位相分布的计算:
clear;
clc;
lambda = 632.8e-9; % 光波长
d = 0.1e-3; % 超透镜间距
f = 50e-3; % 焦距
R1 = 10e-3; % 光圈半径
k = 2*pi/lambda;
x = linspace(-R1, R1, 500);
y = linspace(-R1, R1, 500);
[X, Y] = meshgrid(x, y);
Z = sqrt(R1^2 - X.^2 - Y.^2);
E0 = ones(size(X));
E1 = exp(1j