MATLAB Answers

While loop for a stopping criterion and check if it positive

1 view (last 30 days)
Rémi BERNARD on 2 Sep 2019
Commented: Rémi BERNARD on 2 Sep 2019
Hello everyone,
Sorry if the title is not clear enough, it is quite hard to put in to simple word. In the current Matlab code I am working on, I have a while loop of the type:
while and(X > eps1, Y > eps2) && count < it_max
with X, Y the variables of interest; eps1, eps2 the stopping criterias. My problem is that eps1 and eps2 are positive, and X and Y can take negative values. However these must be positive and I would like to add a condition to make the while loop continue when X and Y are negative (without any absolute value function).
Thank you.


Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 2 Sep 2019
I don't know why you don't want to use the abs() function but you can do it without it like this:
while ((X > eps1 && Y > eps2) || (X < eps1 && Y < eps2)) && count < it_max
count = count + 1;

  1 Comment

Rémi BERNARD on 2 Sep 2019
I give an example which is not my case but I think can illustrate it well. Let's say in this loop I can have viscosity, which cannot be negative but for computation purpose I say it can be.
So take eps = 0.1:
- if for a certain iteration, for example 5, I have my viscosity which is -0.06; with abs() my criteria is respected but the result is not physically acceptable. (ie Matlab accepts it but I don't)
- for iteration +1 I have viscosity = 0.05; so I would like to accept that result instead of the previous one.
Your code does more or less the same thing no?

Sign in to comment.

Sign in to answer this question.