MATLAB Answers

What is wrong in code of diffusion equation problem?

4 views (last 30 days)
a=4; b=4; na=20; nb=16; k=5; to=80;
clear T
x=linspace(0,a,na);
y=linspace(0,b,nb);
[X,Y]=meshgrid(x,y);
for i=1:nb
for j=1:na
T(i,j)=0;
For n=1:k
Ns=2*n-1;
T(i,j)=T(i,j)+sin(ns*pi*X(i,j)/a).*sinh(ns*pi*Y(i,j)/a)/(sinh(ns*pi*b/a)*ns);
End
T(i,j)=T(i,j)*4*To/pi;
End
End
Mesh(X,Y,T)
Xlabel(x (m));ylabel(y (m));zlabel(T(^oC))

  0 Comments

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 18 Sep 2016
First of all you need to use for and end not For and End -- MATLAB is case sensitive.
Secondly, your line
Xlabel(x (m));ylabel(y (m));zlabel(T(^oC))
uses Unicode Character 'LEFT SINGLE QUOTATION MARK' (U+2018) and Unicode Character 'RIGHT SINGLE QUOTATION MARK' (U+2019) instead of apostrophe. U+2018 and U+2019 are also known as "smart quotes" because some editors automatically change apostrophes around words to these quotes because those quotes are used in publishing and writing text (but seldom in computer code.)

  1 Comment

Attila Monteiro de Abreu
Attila Monteiro de Abreu on 18 Sep 2016
Thank you so much brother!!! You help me in my work of conclusion of course in Engenering Mechanical! I'm really greatfull!!

Sign in to comment.

More Answers (1)

Byron Castillo
Byron Castillo on 22 Jan 2021
a=5; b=4; na=20; nb=16; k=5; T0=80;
clear T
x=linspace(0,a,na);
y=linspace(0,b,nb);
[X,Y]=meshgrid(x,y);
for i=1:nb
for j=1:na
T(i,j)=0;
for n=1:k
ns=2*n-1;
T(i,j)=T(i,j)+sin(ns*pi*X(i,j)/a).*sinh(ns*pi*Y(i,j)/
a)/(sinh(ns*pi*b/a)*ns);
end
T(i,j) = T(i,j)*4*T0/pi;
end
end
mesh(X,Y,T)
xlabel('x (m)'); ylabel('y (m)'); zlabel('T ( ^oC)')

  0 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!