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); };
Proszę skorzystać z wikipedii i tam podanej metody pierwszego przybliżenia “strzału”. Skraca liczbę iteracji.