Código fuente Electromagnético
Echo
Centro de control de croma
%Resolvamos la ecuación de Helmholtz
% -div(grad(u) )-k ^2u=0
% y estudia las ondas reflejadas por un objeto cuadrado.
El % de las ondas incidentes provienen de la derecha.
Pausa% Pulsa cualquier tecla para continuar.
Centro de Control de Croma
% El número de onda de la onda incidente es 60.
k = 60
g = ' scatterb% círculo con agujero cuadrado
b = ' scatterb% Condición de Dirichlet suma de ondas incidentes sobre el objeto
% Condiciones de onda saliente en el límite exterior.
c = 1;
a=-k^2;
f = 0;
% Necesitamos una cuadrícula bastante precisa. para romper olas.
[p, e, t]= init mesh(g);
[p, e, t]=refinemesh(g, p, e, t); >
[p, e, t]=refinemesh(g, p, e, t);
%Esta es la grilla
pdemesh(p, e, t) ;Eje igual
Pausa % Pulsa cualquier tecla para continuar.
Centro de control de croma
%Solve Complex Amplitude
u = ensamblaje PDE(b, p, e, t, c, a, f < /); p>
La parte real del % del factor de fase multiplicado por u da el % de campo de onda instantáneo
. Esto está en la etapa 0.
%
%Utiliza el búfer Z para acelerar el dibujo.
h = newplotset(get(h, 'Parent'), 'Renderer', 'zbuffer')
pdeplot(p, e, t, 'xydata', real(u ), 'zdata', real(u), 'mesh', 'off');
Mapa de colores (frío)
Pausa % Pulsa cualquier tecla para continuar.
Centro de control de croma
%Ahora animemos una onda reflejada.
%Ten paciencia...
m = 10; % número de fotogramas
h = newplothf=get(h, ' Parent '); hf , ' Renderer ', ' zbuffer ')
Eje apretado, set(gca, 'DataAspectRatio', [1 1 1]); eje cerrado
M=moviein(m, HF );
Ma Xu = max(ABS(u));
Para j=1:m,...
uu = real(exp ( -j * 2 * pi/m * sqrt(-1))* u);...
fprintf('%d ',j);...
pdeplot (p,e,t,'xydata',uu,'colorbar','off','mesh','off'),...
Cax([-Ma Xu·Ma Xu ]);...
El eje está apretado, set(gca, 'DataAspectRatio', [1 1 1]); el eje está cerrado,...
m( :, j )= get frame(HF);...
Si j==m,...
fprintf(' hecho \ n ');...
Fin,...
Fin
%Reproducir película
Película(hf, M, 50);
Pausa %Presione cualquier tecla para finalizar.
Eco