File:Scattering theory illust.png
De Wikimedia Commons
Salta a la navegació
Salta a la cerca
Mida d'aquesta previsualització: 144 × 596 píxels. Altres resolucions: 58 × 240 píxels | 480 × 1.988 píxels.
Fitxer original (480 × 1.988 píxels, mida del fitxer: 49 Ko, tipus MIME: image/png)
Informació del fitxer
Dades estructurades
Llegendes
DescripcióScattering theory illust.png | Illustration of en:Scattering theory. |
Data | (UTC) |
Font | self-made with en:Matlab. See the source at Image:Scattering_total_field.png |
Autor | Oleg Alexandrov |
Aquesta PNG imatge rasteritzada ha estat creada amb MATLAB.
Public domainPublic domainfalsefalse |
Jo, el titular del copyright d'aquesta obra, l'allibero al domini públic. Això s'aplica a tot el món. En alguns països això pot no ser legalment possible, en tal cas: Jo faig concessió a tothom del dret d'usar aquesta obra per a qualsevol propòsit, sense cap condició llevat d'aquelles requerides per la llei. |
Source code (MATLAB)[modifica]
function main(Nx, Iters)
Box_x = 3;
Scale = 0.5;
Box_y = Box_x/Scale;
%Nx = 50;
Ny = Nx/Scale;
wavenumber = 10;
XX = linspace(-Box_x, Box_x, Nx);
YY = linspace(-Box_y, Box_y, Ny);
hx = XX(2) - XX(1);
hy = YY(2) - YY(1);
[X, Y] = meshgrid(XX, YY);
Source_size = 0.5;
Source_shift = 0;
n0=0.5;
Scatterer = n0*sign(max(Source_size^2 - X.^2-(Y-Source_shift).^2, 0));
I = sqrt(-1);
Uinc = exp(I*wavenumber*Y);
% plot the initial planewave
figure(1); clf; hold on; axis equal; axis off; colormap copper;
Tweak=0*Uinc; Tweak(1, 1)=-2; Tweak(1, 2) = 4;
imagesc(real(Uinc)+Tweak); % a hack to have the same colormap as the images below
iter = 1;
saveas(gcf, sprintf('Scattering_frame%d_Nx%d.eps', iter, Nx), 'psc2');
%figure(3); clf; hold on; axis equal; axis off; colormap copper;
%imagesc(Scatterer);
% Approximate the Uscatter by 0
Uscatter = 0*Scatterer;
% Several iterations to improve upon the starting Born approximation
% I hope this is the right way to do things. The plotted solution looks plausible
% but I don't know if this is rigurous.
for iter=2:(1+Iters)
% Here we use an approximate source
Source = wavenumber^2*Scatterer.*(Uinc+Uscatter);
% calc the solution solution to the Helmholtz equation
Uscatter = 0*X;
[m, n] = size(Source);
for i=1:m
i
for j=1:n
if Source(i, j) ~= 0
x0 = X(i, j);
y0 = Y(i, j);
% add the contribution from the current source, average over four corners of current rectangle
Uscatter = Uscatter ...
+ (I/16)*(...
besselh(0, 1, wavenumber*sqrt((X-x0-hx/2).^2+(Y-y0-hy/2).^2) + eps)*Source(i, j) ...
+ besselh(0, 1, wavenumber*sqrt((X-x0-hx/2).^2+(Y-y0+hy/2).^2) + eps)*Source(i, j) ...
+ besselh(0, 1, wavenumber*sqrt((X-x0+hx/2).^2+(Y-y0-hy/2).^2) + eps)*Source(i, j) ...
+ besselh(0, 1, wavenumber*sqrt((X-x0+hx/2).^2+(Y-y0+hy/2).^2) + eps)*Source(i, j))*hx*hy;
%Uscatter = Uscatter +(I/4)*besselh(0, 1, wavenumber*sqrt((X-x0).^2+(Y-y0).^2) + eps)*Source(i, j)*hx*hy;
end
end
end
Utotal = Uinc + Uscatter;
figure(1); clf; hold on; axis equal; axis off; colormap copper;
imagesc(real(Utotal));
saveas(gcf, sprintf('Scattering_frame%d_Nx%d.eps', iter, Nx), 'psc2');
end
Aquesta imatge (de tipus math) s'hauria de tornar a crear utilitzant gràfics vectorials com ara un fitxer SVG. Això té diversos avantatges; en trobareu més informació a Commons:Media for cleanup. Si ja disposeu d'una versió d'aquesta imatge en format SVG, us preguem que la pengeu; després, reemplaceu aquesta plantilla amb la plantilla {{Vector version available|nom nou de la imatge.svg}} en aquesta imatge.
|
Historial del fitxer
Cliqueu una data/hora per veure el fitxer tal com era aleshores.
Data/hora | Miniatura | Dimensions | Usuari/a | Comentari | |
---|---|---|---|---|---|
actual | 04:44, 8 jul 2007 | 480 × 1.988 (49 Ko) | Oleg Alexandrov (discussió | contribucions) | Tweak | |
04:40, 8 jul 2007 | 480 × 2.054 (49 Ko) | Oleg Alexandrov (discussió | contribucions) | {{Information |Description=Illustration of en:Scattering theory. |Source=self-made with en:Matlab. See the source at Image:Scattering_total_field.png |Date=03:21, 8 July 2007 (UTC) |Author= Oleg Alexandrov }} {{PD- |
No podeu sobreescriure aquest fitxer.
Ús del fitxer
No hi ha pàgines que utilitzin aquest fitxer.
Ús global del fitxer
Utilització d'aquest fitxer en altres wikis:
- Utilització a ar.wikipedia.org
- Utilització a ca.wikipedia.org
- Utilització a en.wikipedia.org
- Utilització a es.wikipedia.org
- Utilització a pa.wikipedia.org
- Utilització a pt.wikipedia.org