Double fourier series in MATLAB -


i'd plot mesh both f , g functions below in matlab: f , it's double fourier series g

i'd tried f , g:

%% plot f [x,y] = meshgrid(linspace(-pi,pi,50)); f = x.*y ; subplot(1,2,1) mesh(f) title('f')  %% plot g syms  m n = 4*(-1)^(m+n)*(sin(m*x)*sin(n*y))/(m*n); g = symsum(symsum(a,n,1,inf),m,1,inf); subplot(1,2,2) mesh(g) title('g') 

the result of mesh is:

the result of mesh

the section plotting f running without error. other section plotting g show nothing in figure. how can plot g?

if you're going work symbolic math, it's idea comfortable assumptions, when dealing periodic functions , functions discontinuities. may want use fmesh (or ezmesh in older versions) plot meshes of symbolic expressions:

syms m n x y assume(in(m,'integer') & m>=1); assume(in(n,'integer') & n>=1); assume(x>-pi & x<pi); assume(y>-pi & y<pi); = 4*(-1)^(m+n)*(sin(m*x)*sin(n*y))/(m*n);  g = symsum(symsum(a,n,1,inf),m,1,inf); fmesh(g,5*[-pi pi -pi pi],'meshdensity',1e2); % or ezmesh(g,5*[-pi pi -pi pi]); 

this creates plot this: fmesh plot

another option evaluate g numerically using subs , double , use mesh plot:

[x,y] = meshgrid(linspace(-5*pi,5*pi,100)); g2 = real(double(subs(g,{x,y},{x,y}))); mesh(g2); 

or use matlabfunction create numeric function:

g2 = matlabfunction(g); [x,y] = meshgrid(linspace(-5*pi,5*pi,100)); mesh(real(g2(x,y))); 

in both these latter cases, real must used clip insignificant imaginary parts due numerical imprecision.


Comments

Popular posts from this blog

aws api gateway - SerializationException in posting new Records via Dynamodb Proxy Service in API -

asp.net - Problems sending emails from forum -