how can I save my error term in an array within while loop?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am trying to save my Error term within While loop for this code in a list, could you please help me
thank you
clear
close all, clc
%Defining the constants
L=1; % length
H=2; % Height
deltax=0.05
deltay=0.05
Beta=deltax/deltay
Beta2=Beta^2
jn=H/deltay % Maximum number of grid points along y
im=L/deltax % Maximum number of grid points along x
T1=100; T2=0; T3=0; T4=0; % boundary conditions
y=2:-deltay:0; x=0:deltax:L;
% initialize T_old to the initial guess values
T_old=zeros(jn+1,im+1);
% set boundary conditions
T_old(1,1:im+1)=T1; T_old(jn+1,1:im+1)=T3; T_old(2:jn+1,1)=T2; T_old(2:jn+1,im+1)=T4; T_new = T_old;
Error = 0.011; % could be any number that is greater than Errormax
Errormax=0.01;
iter=0;
while Error > Errormax
iter=iter+1;
for i=2:jn
for j=2:im
T_new(i,j)=(1/(2*(1+Beta2)))* (T_new(i-1,j)+T_new(i+1,j)+Beta2*(T_new(i,j+1)+T_new(i,j-1)) ) ;
end
end
Error = sum(sum(abs(T_old-T_new),2)) ;
T_old = T_new;
end
iter
3 commentaires
SALAH ALRABEEI
le 6 Juin 2021
the iteration starts from 1 and keeps increasing +1. So when the while iteration stops. Thus iter will be the maximum number of interations. So to plot the error,
%
plot(1:iter,error)
Réponses (1)
Scott MacKenzie
le 6 Juin 2021
Modifié(e) : Scott MacKenzie
le 6 Juin 2021
I haven't examined your code in any detail. However, if I understand your question correctly, you simply want to save all the error terms calculated in your loop in a list, probably so you can process them in some way after the loop finishes. In this case...
errorSave = [];
while ...
Error = ...
errorSave = [errorSave Error];
end
% all the computed errors are in the vector errorSave
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!