数组化编程实例1——点电荷电场演示

数组化编程实例1——点电荷电场演示_第1张图片
1.[X,Y] = meshgrid(x,y) :基于向量 x 和 y 中包含的坐标返回二维网格坐标
2.subplot(m,n,p) 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区
3.mesh(X,Y,Z)我认为的就是绘制三维的网络图吧
4.[FX,FY]= gradient(F) 返回矩阵 F 的二维数值梯度的 x 和 y 分量。
附加输出 FY 对应于 ∂F/∂y,即 y(垂直)方向上的差分。
每个方向上的点之间的间距假定为 1。
5.quiver(x,y,u,v) 在 x 和 y 中每个对应元素对组所指定的坐标处将向量绘制为箭头。矩阵 x、y、u 和 v 必须大小相同并包含对应的位置和速度分量。
6.contour矩阵的等高线图

%点电荷电场的可视化
%抄写byTTY

clear all;
close all;
clc

%--参数设定及自变量取样--
q=1.6e-19;%点电荷电量
C0=1/(4*pi*8.85e-12);%合并系数,
                     %C0=1/(4*Π*ε0)
                     %ε0:真空介电常数
 
x=-5:0.3:5;%自变量
y=x;%自变量

%--求解电势--
[X,Y]=meshgrid(x,y);%自变量坐标矩阵
r=sqrt(X.^2+Y.^2);
U=q.*C0*(1./r);

%--绘图--
subplot(2,2,1)
mesh(X,Y,U);
xlabel('x');
ylabel('y');
zlabel('U');
title('点电荷电势分布图');

%--对数坐标绘图--
subplot(2,2,3)
mesh(X,Y,log10(U));
xlabel('x');
ylabel('y');
zlabel('log10(U)');
title('点电荷电势分布图')
%--场强分布--
[Ex,Ey]=gradient(-U);%求电场强度
AE=sqrt(Ex.^2+Ey.^2);
Ex=Ex./AE;
Ey=Ey./AE;
subplot(2,2,2)
quiver(X,Y,Ex,Ey)%场强绘制
hold on;
cs=contour(X,Y,U,60);%绘制等电势面
xlabel('x');
ylabel('y');
title('点电荷电场强度分布图');

数组化编程实例1——点电荷电场演示_第2张图片

你可能感兴趣的:(Matlab,matlab)