Effacer les filtres
Effacer les filtres

Update values in while loop and store values from a while loop in arrays

18 vues (au cours des 30 derniers jours)
Hi I am trying to run a while loop to calculate the error values. I am struggling to update the values in the while loop and then store them all. I need to store the number of iterations and all the error values per iteration while update the value of x_old to call my function again. I have my code posted below, but I can't get my values to update. Any helo would be appreciated.
% Exercise 2.1 Order of Convergence
clear
close
clc
% Define Variables
F = 12;
x_old = 0;
itr = 0;
epsilon_new = 1e30;
epsilon_target = 1e-6;
while epsilon_new > epsilon_target
itr = itr+1;
[x_new] = springcalc(F, x_old);
epsilon_new = abs(x_new - x_old);
eps_matrix = [epsilon_new];
x_old = x_new;
end
semilogy(itr, epsilon_matrix);
function [x_new] = springcalc(F, x_old)
k_0 = 30;
x_new = F/(k_0*(1+x_old^(0.1)));
end

Réponse acceptée

David Hill
David Hill le 3 Sep 2020
Modifié(e) : David Hill le 3 Sep 2020
% Exercise 2.1 Order of Convergence
clear
close
clc
% Define Variables
F = 12;
x_old = 0;
itr = 0;
epsilon_new = 1e30;
epsilon_target = 1e-6;
while epsilon_new > epsilon_target
itr = itr+1;
x_new = springcalc(F, x_old);
epsilon_new = abs(x_new - x_old);
epsilon(itr)=epsilon_new;
x_old = x_new;
end
semilogy(1:length(epsilon), epsilon);
function [x_new] = springcalc(F, x_old)
k_0 = 30;
x_new = F/(k_0*(1+x_old^(0.1)));
end
  3 commentaires

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

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by