How can I fix this iteration script
Afficher commentaires plus anciens
Hi, I'm trying to solve problem.
I have to set max 2 iteration and to be honest I am not skilled in this kind of script. If someone will help me u will give me good christmas present thank you.
it = 0; % Počet iterácií
while max(abs(U-UU))>eps
UU = U; %Saving previously iteration
for m = 1:length(U) %Solve of new iteration
if metoda == 1
U(m,1) = a(m,m)\(-b(m,:)*UU+c(m,:));
else
U(m,1) = a(m,m)\(-b(m,:)*U+c(m,:));
end
end
it = it+1;
end
[U.'*1e-3 it]
5 commentaires
Marek Endrizal
le 15 Déc 2020
KSSV
le 15 Déc 2020
You have to use for to have fixed number of iterations. If you want to run loop twice:
for i = 1:2
i
% do what you want
end
Marek Endrizal
le 15 Déc 2020
KALYAN ACHARJYA
le 15 Déc 2020
it = 0; % Počet iterácií
while max(abs(U-UU))>eps
UU = U;
for m = 1:length(1) %
if metoda == 1
U(m,1) = a(m,m)\(-b(m,:)*UU+c(m,:));
else
U(m,1) = a(m,m)\(-b(m,:)*U+c(m,:));
end
end
it = it+1;
if it>2
break;
end
end
end
[U.'*1e-3 it]
Marek Endrizal
le 15 Déc 2020
Réponses (1)
Hiro Yoshino
le 15 Déc 2020
All you need is add one more restriction on the top of the "while" loop.
it = 0; % Počet iterácií
while max(abs(U-UU))>eps || it <= 1
UU = U; %Saving previously iteration
for m = 1:length(U) %Solve of new iteration
if metoda == 1
U(m,1) = a(m,m)\(-b(m,:)*UU+c(m,:));
else
U(m,1) = a(m,m)\(-b(m,:)*U+c(m,:));
end
end
it = it+1;
end
[U.'*1e-3 it]
2 commentaires
KALYAN ACHARJYA
le 15 Déc 2020
while max(abs(U-UU))>eps && it <= 1
Hiro Yoshino
le 15 Déc 2020
@KALYAN Yes, you're right! Haha
Catégories
En savoir plus sur Structures dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!