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! 🙂