Scilab - metoda siecznych niedziałający program

0

Witam!
Mam takie zadanie:
"Stosując metodę siecznych obliczyć pierwiastek równania x^3-0.5*x+1=0 w przedziale [-2,0] z dokładnością eps (dana wczytywana z klawiatury). Wynik porównać z otrzymanym za pomocą funkcji bibliotecznej fsolve". Jestem kompletnym laikiem. Próbowałem wzorować się na stronie http://edu.i-lo.tarnow.pl/inf/alg/005_root/0012.php. Coś tam nabazgrałem, ale program zawiesza sie po uruchomieniu. Bardzo proszę o wytłumaczenie co jest źle w kodzie obliczeniowym dla tej metody.
Kod:

function [y]=f(x)
y=x^3-0.5*x+1;
endfunction
disp('Obliczanie pierwiastka równania x^3-0.5*x+1=0 metodą siecznych. Podaj wartość eps')
eps=input('eps=');
x1=-2;
x2=0;
x0 = x1-f(x1)*(x2-x1)/(f(x2)-f(x1));
i=64;
if (3*x^2-0.5~=0) then
    disp('Pierwsza pochodna różna od 0. Warunek spełniony.');
else 
    disp('Pierwsza pochodna nie jest różna od 0. Warunek nie spełniony.');
    end
while abs(x1-x2)>eps
x0 = x1-f(x1)*(x2-x1)/(f(x2)-f(x1));
    f0=f(x0);
    if (f(f0)<eps) then break;
        x2=x1;
        f(x2)=f(x1);
        x1=x0;
        f(x1)=f(x0);
    end
end
disp('wynik metodą siecznych: '+string(x0));

ty=fsolve([x1],f);
disp('wynik z fsolve: '+string(ty));

dodanie znacznika <code class="scilab"> - Furious Programming

0

Tutaj masz info jak pisać, powinno to wystarczyć do tego algorytmu: http://fcds.cs.put.poznan.pl/MyWeb/Praca/NI/scilab_1.pdf
Tutaj masz gotowca: http://www1.maths.leeds.ac.uk/~kersale/2600/Scilab/secant.sce

0

Nic z tego nie rozumiem. Siedzę na tym od 2 dni bez przerwy i wciąż nie umiem :(

0 użytkowników online, w tym zalogowanych: 0, gości: 0