Professional Documents
Culture Documents
Vật Lý mô phỏng
Vật Lý mô phỏng
Code:
clear all;
close all;
clc;
x=linspace(-4,4,100);
y=linspace(-4,4,100);
z=linspace(-4,4,100);
[X, Y, Z]=meshgrid(x,y,z);
Ex = sin(2*pi*Z/3);
Ey=0*X;
Ez=0*X;
[Bx, By,Bz]=curl(X, Y, Z, Ex, Ey, Ez);
for k=1:100
E(k)= mean(mean(Ex(:,:,k),1),2);
B(k)= mean(mean(By(:,:,k),1),2);
end
plot3(0*x,y,E,'red','Linewidth',2); hold on
quiver3(0*x(1:3:100),y(1:3:100),0*z(1:3:100),0*x(1:3:100), 0*y(1:3:100),
E(1:3:100),0, 'r', 'Linewidth',1.5);
hold on
plot3(B,y,0*z,'g','Linewidth',2);
quiver3(0*x(1:3:100),y(1:3:100),0*z(1:3:100),0*x(1:3:100), 0*y(1:3:100),
0*z(1:3:100),0, 'r', 'Linewidth',1.5);
grid on, axis square
set(gca,'FontSize', 15 ,'Linewidth',2);
xlabel('x')
ylabel('y')
zlabel('z')
legend('Electric field ','Electric field vector','Magnetic field','Magnetic field
vector')
Phương trình sóng 2D:
%% Solving a PDE
clear;
% Equation
% wtt = c^2 wxx + c^2 wyy + f
%% Domain
% Space
Lx=10;
Ly=10;
dx=0.1;
dy=dx;
nx=fix(Lx/dx);
ny=fix(Ly/dy);
x=linspace(0, Lx, nx);
y=linspace(0, Ly, ny);
% Time
T=10;
%% Field variable
% Variables
wn=zeros(nx,ny);
wnm1=wn; % w at time n-1
wnp1=wn; % w at time n+1
% Parameters
CFL=0.5; % CFL = c.dt/dx
c=1;
dt=CFL*dx/c;
%% Initial Conditions
while(t < T)
% Reflecting Boundary Conditions
wn(:,[1 end])=0;
wn([1 end],:)=0;
% Solution
t=t+dt;
wnm1=wn; wn=wnp1; % Save current and previous arrays
% Source
wn(50,50)=dt^2*20*sin(30*pi*t/20);