Coding an equation (with summation within equation) with nested for Loops

8 vues (au cours des 30 derniers jours)
AbeSal
AbeSal le 20 Nov 2020
Commenté : AbeSal le 21 Nov 2020
Hello,
I am attempting to code the following equation in matlab using three for loops:
However, my initial values are incorrect and I believe my issue is related to how I am handling the the summation inside the equation. I would appreciate any suggestions on how to alter my for loop.
for i=1:length(x)
for j=1:length(Temp(:,1))
for n=1:20
T_xt(i,j,n)= T_amb2 + (q_p./k).*(((exp(m.*(x(i)-2.*L))+...
exp(-m.*x(i)))/(m.*(1-exp(-2.*m.*L))))-...
((2.*exp(-m^2.*a.*t(j)))*(1./(2.*m.^2*L)+...
(L.*((cos((n.*pi.*x(i))./L).*...
exp((-n.^2.*pi.^2.*a.*t(j))./L.^2))./(m.^2.*L.^2 + n.^2*pi^2))))));
end
end
end

Réponse acceptée

Walter Roberson
Walter Roberson le 20 Nov 2020
You are probably summing T_xt(:,:,:) over the third dimension to get T(x,t) . However, when you do that, you would be adding T_amb2 once for each n value, which is not correct.
You can meaningfully create T_xt(i,j,n) but it should only be the cos*exp/sum term. Then you would sum those along the third dimension, multiply by 2*exp(-m^2*alpha*t), subtract from the [] and so on.
  1 commentaire
AbeSal
AbeSal le 21 Nov 2020
Thank you for the suggestion. After updating my code my plot looked better but there was an issue at t=0. Are there additionally changes you might suggest I make to the code?
S(1)=0;
for i=1:length(x)
for j=1:length(Temp(:,1))
T_xt(i,j)= T_amb + (q_p./k).*(((exp(m.*(x(i)-2.*L))+...
exp(-m.*x(i)))/(m.*(1-exp(-2.*m.*L))))-...
((2.*exp(-m^2.*a.*t(j)))*(1./(2.*m.^2*L)+...
(L.*S(end)))));
for n = 1:20
S(n+1) = S(n)+(cos((n.*pi.*x(i))./L).*...
exp((-n.^2.*pi.^2.*a.*t(j))./L.^2))./(m.^2*L.^2 + n.^2.*pi.^2);
end
end
end

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by