Question regarding while loop

5 vues (au cours des 30 derniers jours)
xxtan1
xxtan1 le 16 Août 2020
Modifié(e) : Alan Stevens le 16 Août 2020
function y = approx_sqrt(x)
y = x;
while abs(y^2 - x) > 1e-7*x
y = (x/y + y)/2
This is part of the code in my lecture class. I wonder what is the purpose of setting y = x at the begining?
Can anyone explain to me? Thank you so much.
  1 commentaire
KSSV
KSSV le 16 Août 2020
Modifié(e) : KSSV le 16 Août 2020
It is nothing but saving x into other vairable y. x is like an intital value; it is saved into y, there after value of y changes and gets updated.

Connectez-vous pour commenter.

Réponse acceptée

Alan Stevens
Alan Stevens le 16 Août 2020
Modifié(e) : Alan Stevens le 16 Août 2020
(1) Because you need a value in the logic test: abs(y^2 - x) > ...
(2) Because you need an initial guess on the right-hand side of the Newton-Raphson expresssion: (x/y + y)/2
  1 commentaire
xxtan1
xxtan1 le 16 Août 2020
Thank you so much!

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

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by