Contents
init; % k: wave number % k = 5; k = 250;
seti.k = k; seti.contrast = 'corner2D'; seti = setData(seti); qROI = seti.qROIexact; uIncROI = seti.dSInc.*seti.incField(:,1); % incident field of first transmitter (1, ..., seti.incNb)
uBorn
% Solution 1: % Define factor k^2 in the volume potential operator V. V = @(x) seti.k^2.*helmholtz2Dr2r(x, seti); % volume potential operator V: L^2(ROI) -> L^2(ROI) QU = @(x) qROI .* x; uBorn1 = V(QU(uIncROI)); % Solution 2: % As solution 1, but V and QU are defined in intOpsFuncs. % [V, ~, ~, ~, ~, QU, ~, ~, ~] = intOpsFuncs(qROI, seti); % uBorn2 = V(QU(uIncROI)); % Solution 3: % uBorn3 = seti.k^2.*helmholtz2Dr2r(qROI.*uIncROI, seti); % Test: % norm(uBorn1-uBorn2) % norm(uBorn2-uBorn3)
uScattROI
% Solution 1a: % uScattROI1 = solveLippmannSchwinger(@(x) V(QU(x)), V(QU(uIncROI)), seti); % Solution 1b: uScattROI1 = solveLippmannSchwinger(@(x) V(qROI.*x), V(qROI.*uIncROI), seti); % Solution 2: % [~, uScattROI2] = simo(qROI,uIncROI,seti); % Test: % norm(uScattROI1-uScattROI2)
uScattROI and uBorn are similar in case of small wavelengths
rel = norm(uBorn1-uScattROI1)/norm(uScattROI1); fprintf(' Wave number: %g\n',seti.k); fprintf(' Relative error: %g\n',rel');
figure(1); f1 = imagesc(real(seti.G(qROI))); colorbar; axis xy; % predefined contrast set(gca,'FontSize',20); axis square; print(1,'-depsc','pi3born1.eps'); figure(2); f2 = imagesc(real(seti.G(uIncROI))); colorbar; axis xy; % incident field set(gca,'FontSize',20); axis square; print(2,'-depsc','pi3born2.eps'); figure(3); f3 = imagesc(real(seti.G(uBorn1))); colorbar; axis xy; % Born approximation of scattered field set(gca,'FontSize',20); axis square; print(3,'-depsc','pi3born3.eps'); figure(4); f4 = imagesc(real(seti.G(uScattROI1))); colorbar; axis xy; % Scattered field (by solving Lippmann Schwinger eq.) set(gca,'FontSize',20); axis square; print(4,'-depsc','pi3born4.eps');