abc Matlab - elektronski priručnik
IX dio NUMERIČKA MATEMATIKA U MATLAB-u - 9.1. Numeričko rješavanje nelinearnih jednačina s jednom nepoznatom

Primjer 1.

Odredimo približnu vrijednost rješenja jednačine

sin x + ln x = 0

s tačnošću ε = 0.0001, te odredimo najmanji broj polovljenja potrebnih da bi se postigla ta tačnost.

Da bismo mogli primijeniti metodu polovljenja, najprije moramo odrediti donju i gornju granicu segmenta u kojem se nalazi (bar jedno) rješenje zadane jednačine. U tu svrhu, napišimo jednačinu u obliku
sin x = – ln x

pa je riješimo grafički. Nacrtajmo grafove funkcija  f(x) = sin x  i  g(x) = –ln x  koristeći MATLAB.
Budući da je funkcija g(x) definisana samo za strogo pozitivne realne brojeve, nema smisla crtati graf funkcije f(x) za x ≤ 0. Stoga nacrtajmo grafove tih funkcija na istoj slici, i to u intervalu  [0.1, 7]. U radnom prostoru ukucajmo redom:

x=0.1:0.01:7;
y1=sin(x);
y2=-log(x);
plot(x,y1,x,y2)

pa ćemo dobiti sljedeću sliku:

 

(Plava kriva je graf funkcije f(x), a zelena funkcije g(x).) Odmah uočavamo da se tražena nula nalazi u segmentu [0.1, 1], pa ćemo uzeti a = 0.1, b = 1. Izračunajmo sada najmanji broj polovljenja potrebnih za postizanje tačnosti ε = 0.0001. Koristimo nejednakost

U novi red radnog prostora ukucajmo:

n=round((log(1-0.1)-log(0.0001))/log(2))

pa će MATLAB ispisati:

n =
13

Otvorimo novu m–datoteku pa ukucajmo:

function y=f(x);
y=sin(x)+log(x);

Pohranimo unesene naredbe pod imenom f.m i vratimo se u radni prostor. Pozivamo funkciju bis s ulaznim varijablama 0.1, 1 i 13:

bis(0.1,1,13)

pa će MATLAB ispisati:

ans =
0.57867431640625

Možemo zaključiti da je x = 0.57867 približno rješenje zadane jednačine (s tačnošću ε). Da se uvjerimo u to, u novi red radnog prostora ukucajmo:

sin(0.57867)+log(0.57867)

pa će MATLAB ispisati:

ans =
-1.119549821093635e-004

Numeričko rješavanje nelinearnih jednačina s jednom nepoznatom    <    Index    >    Primjer 2. x3 + x3 + x + 2