Plot Surface from Sum of Series
4 views (last 30 days)
Show older comments
I have a series obtained from variable separation method.
I want to plot this a surface, I tried to write this in my matlab, and got error message. I'm confused in how to make the series as a matrix not scalar so that matlab can plot it as a surface.
L = pi;
x = linspace(0,L,60);
t = [linspace(0,0.05,20), linspace(0.5,5,10)];
n = 1000 ;
for i = 1:n
u_analitik = 2/pi*((2*sin(pi*n/2)-sin(n*pi))/n^2).*(exp((-n^2)*t)*sin(n*x));
end
figure(2);
surf(x,t,u_analitik);
0 Comments
Answers (1)
Karim
on 27 Dec 2022
Hi you need to set up a grid for each point that you want to evaluate. Afterwards you need to evaluate your function at each point and store it in a matrix. See below for a demonstration.
% define ranges for x and t
x = linspace(0,pi,60);
t = [linspace(0,0.05,20), linspace(0.5,5,10)];
% obtain the grid for the surface plot
[X,T] = meshgrid(x,t);
% initialize an array for the solution
U = zeros(size(X));
% set up the range for n
n = 1 : 1000;
for i = 1:numel(X)
% extract the current value of t and x (this is not really needed, just
% for readability)
xi = X(i);
ti = T(i);
U(i) = sum( 2/pi.*((2*sin(pi.*n/2)-sin(n.*pi))./n.^2).*(exp((-n.^2).*ti).*sin(n.*xi)) );
end
% create the figure
figure
surf(X,T,U)
grid on
xlabel('x'); ylabel('t'); zlabel('u')
view(3)
1 Comment
Torsten
on 28 Dec 2022
We cannot tell what went wrong because you didn't include the code that produced the plot.
See Also
Categories
Find more on PDE Solvers in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!