Wpis gościnny hakerzy, znowu dzisiaj poruszający tematykę Octave i MatLaba. Dzisiaj szukamy przybliżonego pierwiastka funkcji metodą siecznych. Algorytm został napisany w Octavie (3.6.1), prawdopodobnie i tym razem działa w pełni w MatLabie. Poniższy skrypt metodą siecznych znajduje przybliżenie z dokładnością 10^-4 w przedziale [-3, -2], pierwiastka funkcji f(x)=x^{3}+3x^{2}-1. Z tego względu warto spojrzeć na 5 linijkę kodu, tam została zdefiniowana powyższa funkcja. Program posiada kilka komentarzy w kodzie źródłowym, więc zrozumienie jego nie powinno być trudne.
Octave / MatLab – szukanie przybliżonego pierwiastka funkcji metodą siecznych
clc;
function funOUT = f(x)
#parametry funkcji: x – wartość „x” do podstawienia do funkcji
funOUT = (x^3)+3*(x^2)-1;
endfunction
function [var1, var2] = Sieczne(f, a, b, eps)
#parametry funkcji: f- funkcja, a –poczatek przedzialu
#b – koniec przedzialu, eps – dokladnosc
warunek = eps+1;
while (warunek>(0.1*eps))
funkcjaA = feval("f", a); funkcjaB = feval("f", b);
tmp = b;
b = b - funkcjaB*(b-a)/(funkcjaB-funkcjaA);
a = tmp;
warunek = abs(a-b);
endwhile
var1 = b;
var2 = feval("f", b);
endfunction
a = input("Podaj poczatek przedzialu: ");
b = input("Podaj koniec przedzialu: ");
eps = input("Podaj dokladnosc: ");
disp(Sieczne("f", a, b, eps))
stop = input("");Teraz zapisujemy to jako skrypt.m i uruchamiamy za pomocą Octave. Jak widzimy szukanie metodą siecznych nie jest trudną metodą numeryczną. Może również zainteresuje Cię:
- Metoda Simpsona, całka oznaczone – w C++ algorytm
- Jak wykonać atak DDos na router?
- Nasz fanpage na fejsie HakerEduPL TUTAJ
Pozdrawiamy! 🙂