Why is the Fourier Transform of symbolic Laplacian function (2nd partial derivative) not being found?
Show older comments
I am needing to find the Fourier Transform of the following symbolic expression:
syms U(x,y,z) beta k
LHS = laplacian(U) + beta.^2*U
LHS_FT = fourier(LHS)
That is, 
I'm needing to take the spatial 3D Fourier Transform of LHS.
This is the output I get:
LHS(x, y, z) =

LHS_FT(y, z) =

I am stuck here, any help would be much appreciated! Thank you in advance!
7 Comments
Not sure how that result was obtained. Are your symprefs not the defaults?
syms U(x,y,z) beta k
LHS = laplacian(U) + beta.^2*U
LHS_FT = fourier(LHS)
What result is expected?
Emmanuel J Rodriguez
on 17 Aug 2021
Still not able to recreate the result in the Question, although it looks like it can be simplified further to what's shown here, though I'm still confused why the transform variable is k and not w.
syms U(x,y,z) beta k
LHS = laplacian(U) + beta.^2*U
sympref('FourierParameters',[1/(sqrt(2*sym(pi))) -1]);
LHS_FT = fourier(LHS)
simplify(LHS_FT)
Considering that U(x,y,z) is not defined, I don't see how fourier() is supposed to know what it's supposed to find the Fourier transform of. I mean, what more can be expected with the input fourier() as U and no furhter definition of U as a function of x,y, and z?
David Goodmanson
on 18 Aug 2021
Hi Emmanuel,
Since it's a 3d transform you will need three k's as in
syms U(x,y,z) beta kx ky kz
LHS = laplacian(U) + beta.^2*U
LHS_FT = fourier(fourier(fourier(LHS,x,kx),y,ky),z,kz)
but it looks like it's not smart enough to do it.
Paul
on 18 Aug 2021
What is fourier() not smart enough to do? I'm unclear what more fourier() can be expected to do given that U(x,y,z) is not defined.
David Goodmanson
on 18 Aug 2021
Edited: David Goodmanson
on 18 Aug 2021
Hi Paul,
the answer was
LHS_FT =
beta^2*fourier(fourier(fourier(U(x, y, z), x, kx), y, ky), z, kz)
- kx^2*fourier(fourier(fourier(U(x, y, z), x, kx), y, ky), z, kz)
+ fourier(fourier(fourier(diff(U(x, y, z), y, y), x, kx), y, ky), z, kz)
+ fourier(fourier(fourier(diff(U(x, y, z), z, z), x, kx), y, ky), z, kz)
so it could do the conversion d^2/dx^2 --> -kx^2, but it couldn't convert d^2/dy^2 or d^2/dz^2, which would have made the nice symmetric expression
beta^2*fourier(fourier(fourier(U(x, y, z), x, kx), y, ky), z, kz)
- kx^2*fourier(fourier(fourier(U(x, y, z), x, kx), y, ky), z, kz)
- ky^2*fourier(fourier(fourier(U(x, y, z), x, kx), y, ky), z, kz)
- kz^2*fourier(fourier(fourier(U(x, y, z), x, kx), y, ky), z, kz)
Emmanuel J Rodriguez
on 18 Aug 2021
Answers (0)
Categories
Find more on Mathematics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!