Metoda babilońska liczenia pierwiastków

Poniższy algorytm oblicza pierwiastek kwadratowy metodą babilońską. Metoda polega na:
1. Zgadnięciu jakiejś liczby, im bliżej prawdziwej wartości pierwiastka, tym lepiej; W poniższym przykładzie brana jest liczba dwukrotnie mniejsza od pierwiastkowanej;
2. Obliczeniu wartości dzielenia pierwiastkowana/”strzał”;
3. Wyznaczeniu średniej arytmetycznej z tych liczb i użycie jej jako kolejnego “strzału”;
4. Powtarzaniu pkt. 2-3; Rozstrzał pomiędzy tymi liczbami z każdą iteracją kurczy się, a średnia przybliża się do realnej wartości pierwiastka.
W poniższym kodzie matlab użytkownik podaje ilość iteracji, jaką ma wykonać program.

% Program obliczajacy wartosc pierwiastka kwadratowego metoda babilonska
% Autor: Aleksander Kaweczynski e.vt0.pl
% 2017-12-17

clc; clear all; close all; format compact;
a=input('Podaj liczbe, z ktorej policzyć pierwiastek: ');
b=a/2; % aktualny 'strzal';
n=input('Podaj ilosc iteracji (liczba calkowita >2)');
c=0; % dzielenie a/strzal
d=0; % srednia z obu
for i=1:n
    c=a/b;
    d=(b+c)/2;
    b=d;
    disp(['Iteracja nr ', int2str(i), ' wynik: ', num2str(b)]);
end

Zamieszczam również wersję w Javascript:

document.getElementById('calculatebabylon').onclick=function(){
	var a = document.getElementById('babylonvalue').value;
    var b=a/2; // aktualny 'strzal';
	var n=10;
	var c=0; // dzielenie a/strzal
	var d=0; // srednia z obu
	document.getElementById('babylonsquare').innerHTML = '';
	for(var i=1;i<=n;++i) {
		c=a/b;
		d=(b+c)/2;
		b=d;
		document.getElementById('babylonsquare').innerHTML += 'Iteracja nr '+ i + ' wynik: ' + b +'<br />';
	}
	document.getElementById('babylonsquare').innerHTML += 'Faktyczna wartosc: ' + Math.sqrt(a);
};
			

Program obliczający wartość pierwiastka kwadratowego metodą babilońską


Jeden komentarz do “Metoda babilońska liczenia pierwiastków”

  1. Proszę skorzystać z wikipedii i tam podanej metody pierwszego przybliżenia “strzału”. Skraca liczbę iteracji.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.