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

18 次查看(过去 30 天)
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

采纳的回答

David Hill
David Hill 2020-9-3
编辑:David Hill 2020-9-3
% 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 个评论

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by