MATLAB Answers

plot the probability distribution from Schrodinger Equation

9 views (last 30 days)
Hi everyone,
I have been trying t plot this probability of a function in 3D space with the following coding, but it always gives a blank plot. I'll appriciate your help.
The function is:
f(x,y,z) = 8*sqrt(sin(k*x)*sin(k*y)*sin(k*z)) on the interval: 0<x<1, 0<y<1, and 0<z<1. Note that k = n*pi/a, in this case a =1 and n = 1.
>> n=1; a=1;
>> x = linspace(0,0.01,1);
>> y = linspace(0,0.01,1);
>> z = linspace(0,0.01,1);
>> [X,Y,Z] = meshgrid(x,y,z);
>> f = 8.*sqrt(sin(n*pi*x/a).*sin(n*pi*y/a).*sin(n*pi*z/a));
>> figure
>> scatter3(f,X,Y,Z)

Accepted Answer

Star Strider
Star Strider on 11 Oct 2021
It gives a blank plot because the linspace calls are only producing one element. The third argument to linspace is the number of elements desired in the vector it produces. An argument of 1 returns the beginning point (first argument) and stops.
I am not certain what the desired result is, however here are two possibilities —
n=1; a=1;
x = linspace(0,0.01,25);
y = linspace(0,0.01,25);
z = linspace(0,0.01,25);
[X,Y,Z] = meshgrid(x,y,z);
f = @(x,y,z) 8.*sqrt(sin(n.*pi.*x/a).*sin(n.*pi.*y/a).*sin(n.*pi.*z/a));
scatter3(X(:),Y(:),f(X(:),Y(:),Z(:)), '.')
isosurface(X,Y,Z,f(X,Y,Z), 5E-13)
grid on
I leave the rest to you.

More Answers (2)

Paul on 10 Oct 2021
scatter3() is used to plot points in 3D space. But f is really a function of three variables, so you'll need an alternative to visualize f. Check the doc page for visualizing volume data.

VBBV on 11 Oct 2021
Edited: VBBV on 11 Oct 2021
n=1; a=1;
x = linspace(0,0.01,10); % change the number of points to 10
y = linspace(0,0.01,10);
z = linspace(0,0.01,10);
%[X,Y,Z] = meshgrid(x,y,z);
f = 8.*sqrt(sin(n*pi*x/a).*sin(n*pi*y/a).*sin(n*pi*z/a));
Meshgrid may not be necessary in your code, if you want to use scatter3 function,


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!