Babylonian algorithm - square root of a number

14 vues (au cours des 30 derniers jours)
Francesco Rossi
Francesco Rossi le 21 Oct 2019
Commenté : Francesco Rossi le 22 Oct 2019
Dear all,
I am trying to bulid a function that should calculate the square root o a positive number. Unfortunatly I cannot run the code as expected.
Does anyone spot the error? Thank you in advance.
function y=sqrtB(x)
% It returns a row vector containing the approximation of the square roots of the elements of x.
% Using the Babylonian method.
% with precision 10^-10
%
% INPUT x ... 1xn vector of positive numbers
%
% OUTPUT y ... 1xn vector of square roots of x
%format long
xn=x./2; %starting number
err=abs(xn-x./xn); % the absolute error
while any(err > 1e-10) % upper bundary for the absolute error (vector compatible)
xn = 0.5 .* (xn + x./xn);
err=abs(xn-x./xn);
%disp(err);
end
y=xn;
disp(x);
disp(y);
end

Réponse acceptée

Stephan
Stephan le 21 Oct 2019
Modifié(e) : Stephan le 21 Oct 2019
What is the problem - works for me:
y = sqrtB([16 4 9]);
function y=sqrtB(x)
% It returns a row vector containing the approximation of the square roots of the elements of x.
% Using the Babylonian method.
% with precision 10^-10
%
% INPUT x ... 1xn vector of positive numbers
%
% OUTPUT y ... 1xn vector of square roots of x
%format long
xn=x./2; %starting number
err=abs(xn-x./xn); % the absolute error
while any(err > 1e-10) % upper bundary for the absolute error (vector compatible)
xn = 0.5 .* (xn + x./xn);
err=abs(xn-x./xn);
%disp(err);
end
y=xn;
disp(x);
disp(y);
end
i get correct results by calling the function properly.
  4 commentaires
Stephan
Stephan le 22 Oct 2019
Modifié(e) : Stephan le 22 Oct 2019
what shows up if you enter the following in the command window:
which format -all
Francesco Rossi
Francesco Rossi le 22 Oct 2019
OMG, thank you!!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Just for fun dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by