Szukanie przybliżonego pierwiastka funkcji metodą siecznych w Octave / MatLab

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ę:

Pozdrawiamy! 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *