Plot Surface from Sum of Series
조회 수: 4 (최근 30일)
이전 댓글 표시
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
답변 (1개)
Karim
2022년 12월 27일
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
Torsten
2022년 12월 28일
We cannot tell what went wrong because you didn't include the code that produced the plot.
참고 항목
카테고리
Help Center 및 File Exchange에서 PDE Solvers에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!