Plot Surface from Sum of Series
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Karim
am 27 Dez. 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 Kommentar
Torsten
am 28 Dez. 2022
We cannot tell what went wrong because you didn't include the code that produced the plot.
Siehe auch
Kategorien
Mehr zu Geometry and Mesh finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!