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 7.

Odredimo sve nule polinoma p(x) = x3 - x2 - x + 1.Ponovo najprije moramo zadati matricu p svih koeficijenata polinoma:

p=[1 -1 -1 1];

Sada možemo pozvati funkciju roots:

roots(p)

pa će MATLAB ispisati:

ans =
-1.00000000000000
1.00000000000000 + 0.00000000938807i
1.00000000000000 - 0.00000000938807i

No, rastavljanje zadanog polinoma na faktore daje:

pa vidimo da zadani polinom ima ukupno tri realne nule: jednu dvostruku (to je 1) i jednu jednostruku (to je –1). Zbog čega nam je onda primjena funkcije roots dala ovako čudne rezultate? Razlog je – opet – približni račun. MATLAB ne računa nule zadanog polinoma rastavljanjem na faktore, nego primjenjuje neke metode numeričke matematike namijenjene približnom određivanju nula polinoma (u detalje ovdje ne ulazimo). Upotreba tih metoda nužno povlači pojavu grešaka aproksimacije nula. Te su greške ovdje reda veličine 10–9 pa ih praktično možemo zanemariti.

Želimo li izračunati vrijednost nekog polinoma u nekoj konkretnoj tački, koristimo naredbu polyval. Njena je sintaksa:

polyval(matrica_koeficijenata_polinoma, konkretna_tačka)

Ova je naredba vrlo pogodna prilikom grafičkog prikazivanja polinoma. Pogledajmo to na primjeru.

Primjer 6. x3 + x2 + x + 1    <    Index    >    Primjer 8. x3 - x2 - x + 1, p(1 – i) + p(1 + i)