标量场得可视化

% 创建网格
[x, y] = meshgrid(-2:0.2:2, -2:0.2:2);

% 计算标量场函数
z = sin(x) + cos(y);

% 绘制标量场
figure;
surf(x, y, z);
xlabel('x'); % 设置 x 轴标签
ylabel('y'); % 设置 y 轴标签
zlabel('z'); % 设置 z 轴标签
title('Scalar Field Visualization'); % 设置图形标题
colorbar; % 添加颜色条

% 注释解释:
% - 创建一个二维网格,范围为 x: -2 到 2,y: -2 到 2,间隔为 0.2
% - 使用 sin(x) + cos(y) 计算标量场的值
% - 使用 surf 函数绘制标量场的三维图形
% - 添加坐标轴标签和标题,以及颜色条


矢量场的可视化

% 创建网格
[x, y] = meshgrid(-2:0.5:2, -2:0.5:2);

% 计算矢量场函数的分量
u = -y; % x 方向的分量,这里取为 -y
v = x;  % y 方向的分量,这里取为 x

% 绘制矢量场
figure;
quiver(x, y, u, v); % 使用 quiver 函数绘制矢量场
xlabel('x');        % 添加 x 轴标签
ylabel('y');        % 添加 y 轴标签
title('Vector Field Visualization'); % 添加标题


等势面的可视化

% 创建网格
[x, y] = meshgrid(-2:0.1:2, -2:0.1:2);

% 计算等势面函数的值
z = x.^2 + y.^2; % 这里的等势面函数定义为 x^2 + y^2

% 绘制等势面
figure;
contour(x, y, z); % 使用 contour 函数绘制等势面
xlabel('x');      % 添加 x 轴标签
ylabel('y');      % 添加 y 轴标签
title('Contour Plot of Scalar Field'); % 添加标题


标量场散度旋度梯度的可视化

% 创建网格
[x, y] = meshgrid(-2:0.1:2, -2:0.1:2);

% 计算标量场函数的值
z = exp(-x.^2 - y.^2); % 这里的标量场函数定义为 exp(-x^2 - y^2)

% 计算标量场的梯度
[dx, dy] = gradient(z);

% 计算标量场的散度
div = dx + dy;

% 计算标量场的旋度
curl = dy - dx;

% 绘制标量场的散度
figure;
contour(x, y, div); % 绘制散度的等势面图
xlabel('x');
ylabel('y');
title('Divergence of Scalar Field');

% 绘制标量场的旋度
figure;
contour(x, y, curl); % 绘制旋度的等势面图
xlabel('x');
ylabel('y');
title('Curl of Scalar Field');

% 绘制标量场的梯度
figure;
quiver(x, y, dx, dy); % 绘制梯度的箭头图
xlabel('x');
ylabel('y');
title('Gradient of Scalar Field');


矢量场散度旋度梯度的可视化

% 创建网格
[x, y] = meshgrid(-2:0.2:2, -2:0.2:2);

% 定义矢量场的 x 和 y 分量
u = -y;
v = x;

% 计算矢量场的散度
div = divergence(x, y, u, v);

% 计算矢量场的梯度
[du_dx, du_dy] = gradient(u);
[dv_dx, dv_dy] = gradient(v);

% 绘制矢量场
figure;
quiver(x, y, u, v); % 绘制矢量场的箭头图
xlabel('x');
ylabel('y');
title('Vector Field');
colorbar;

% 绘制矢量场的散度
figure;
contour(x, y, div); % 绘制散度的等势面图
xlabel('x');
ylabel('y');
title('Divergence of Vector Field');

% 绘制矢量场的梯度
figure;
quiver(x, y, u, v); % 绘制矢量场的箭头图
hold on;
quiver(x, y, du_dx, du_dy); % 绘制 x 分量的梯度箭头图
quiver(x, y, dv_dx, dv_dy); % 绘制 y 分量的梯度箭头图
xlabel('x');
ylabel('y');
title('Gradient of Vector Field');
legend('Vector Field', 'Gradient (x)', 'Gradient (y)');