Matlab i pewna funkcja - interpretacja


(Groldominika) #1

Mam taki fragment kodu napisany w MATLABie

function x = bisekcja( f_str,a,b,eps )


f = inline(f_str);


if f(a)*f(b) >= 0

    disp('Niewlasciwe dane wejsciowe!') 

end

x = (a+b)/2;

while f(x) >= eps && f(x) <= -eps


    if f(a)*f(x) < 0

        b = x;

    else

        a = x;


    end


end

        disp('x =')

        disp((a+b)/2)

        disp('f(x)=')

        disp(f(x))



end

Potrzebuję go zinterpretować część mi się udało jednak nie wiem czy dalszy ciąg dobrze interpretuję:

x = (a+b)/2 - mam funkcję x zapisaną wzorem (a+b)/2

Wówczas gdy funkcja x jest większa bądź równa przybliżeniu eps i mniejsza bądź równa przybliżeniu eps

Jeśli iloczyn funkcji a i b jest mniejszy od zera to b = x podczas gdy a = x

Proszę o wyrozumiałość nie siedzę w tym temacie. Z góry dziękuję za poprawę interpretacji.


(Lukaszrasz) #2

Program działa dokładnie według ogólnego algorytmu : http://pl.wikipedia.org/wiki/Metoda_równego_podziału