Red de conocimiento informático - Conocimiento sistemático - Código fuente Electromagnético

Código fuente Electromagnético

%PDEDEMO2 resuelve la ecuación de Helmholtz para estudiar ondas reflejadas.

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