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
|