MATLAB Plotting Free Surface Using MATLAB | Get Results Quickly

  • Thread starter Thread starter hunt_mat
  • Start date Start date
  • Tags Tags
    Matlab Plotting
AI Thread Summary
The discussion revolves around a MATLAB user seeking assistance with plotting a free surface defined by a complex double integral. The integral involves parameters such as k, l, and μ, with μ being defined as the square root of the sum of squares of k and l. The user has implemented a trapezium rule for double integrals but is struggling to adapt it for the specific integrand provided. They emphasize that the choice of U ensures the denominator remains non-zero. The user shares their trapezium rule algorithm and a MATLAB function designed for 2D integration, which has been tested successfully with a Gaussian function. The main request is for a quick method or guidance to effectively compute the specified integral using MATLAB.
hunt_mat
Homework Helper
Messages
1,816
Reaction score
33
Hi,

I like to think that I can generally get MATLAB to do what I want and when I want but this has got me stumped. I want to plot a free surface defined by a double integral:
<br /> \eta =\frac{1}{4\pi^{2}}\int_{\mathbb{R}^{2}}\frac{\mu e^{-\mu^{2}/4}e^{i(kx+ly)}\tanh\mu}{U^{2}k^{2}-\mu (B-E_{b}\mu+\mu^{2})\tanh\mu}dkdl<br />
Where \mu=\sqrt{k^{2}+l^{2}}. I wrote a routine that does a double integral trapezium rule reasonably well but I need to get it working for the integrand above. Is there a quick method I can use to do this?

I should add that U is chosen such that the denominator has no zeros.
 
Physics news on Phys.org
I should add, the algorithm I used to compute the 2D trapezium rule is
<br /> \begin{array}{rcl}<br /> \int_{a}^{b}\int_{c}^{d}f(x,y)dxdy &amp; = &amp; \left(\sum_{i=1}^{N}\sum_{j=1}^{M}f(x_{i},y_{j})-\frac{1}{2}\sum_{i=1}^{N}f(x_{i},c)-\frac{1}{2}\sum_{i=1}^{N}f(x_{i},d)\right)\delta x\delta y \\<br /> &amp; - &amp; \left(\frac{1}{2}\sum_{j=1}^{M}f(a,y_{j})+\frac{1}{2}\sum_{j=1}^{M}f(b,y_{j})\right)\delta x\delta y -{} \\<br /> &amp; - &amp; \frac{1}{4}(f(a,c)+f(a,d)+f(b,c)+f(b,d))\delta x\delta y<br /> \end{array}<br />
The piece of Matlab code I used to compute the integral is given in here. I tested it out by computing the inverve 2D Fourier transform of a Gaussian and that seemed to work fine.
function y=trap_2d(A,dx,dy)
N=length(A(:,1));
M=length(A(1,:));

a=A(1,1)+A(1,M)+A(N,1)+A(N,M);
b=sum(A(1,:))+sum(A(N,:));
c=sum(A(:,1))+sum(A(:,M));
u=zeros(1,N);
for i=1:N
u(i)=sum(A(i,:));
end

d=sum(u);

y=(d-0.5*c-0.5*b-0.25*a)*dx*dy;
 
Back
Top