You are on page 1of 4

PODSETNIK SA CASA

=================

*) Aproksimacija funkcija podrazumeva zamenu date funkcije f nekom


drugom funkcijom g koja joj je u izvesnom smislu bliska. Funkcija g
bira se iz nekog skupa funkcija G takvih da imaju neke pozeljne
osobine (npr, skup polinoma, skup racionalnih funkcija, skup
trigonometrijskih polinoma, i sl.).

*) Postoji vise razloga zasto je potrebno vrsiti aproksimaciju.


Ponekad nam je vrednost funkcije f poznata samo u nekim tackama, a
ne na celom domenu funkcije. Tada je potrebno pronaci neku funkciju
koja je bliska funkciji f, a koja ce nam biti poznata u svim
tackama nekog intervala. Sa druge strane, ponekad je funkciju f
moguce izracunati u svim tackama, ali je funkcija f zadata isuvise
komplikovanim izrazom, pa je sa njom tesko baratati. Zbog toga je
zgodno zameniti je nekom jednostavnijom funkcijom koja joj je na
neki nacin bliska.

*)
bliskost se definise tako da zahtevamo da funkcije imaju jednake vrednosti u
datom konacnom skupu tacaka, tada se takva aproksimacija zove INTERPOLACIJA,
a funkciju g zovemo INTERPOLACIONOM FUNKCIJOM

*)
Najjednostavniji vid interpolacije je interpolacija polinomima. Ako nam je
dato n + 1 tacaka u kojima znamo vrednost funkcije f, tada se moze
pokazati da postoji jedinstven polinom P_n stepena n koji se u svim
tim tackama poklapa sa funkcijom f (ovo je zato sto polinom stepena
n ima n + 1 koeficient koji treba odrediti, a oni se mogu
jednoznacno odrediti pomocu n + 1 uslova na osnovu zadatih
vrednosti u datim tackama).

*) Dva metoda za odredjivanje interpolacionog polinoma koja cemo


pokazati su metod neodredjenih koeficienata i Lagranzov metod. U
oba slucaja se dobija isti rezultat, jedino je postupak nesto
drugaciji. Metod neodredjenih koeficienata se svodi na resavanje
sistema linearnih jednacina po nepoznatim koeficientima polinoma,
dok se Lagranzov metod svodi na konstrukciju polinoma koji se
predstavlja kao linearna kombinacija polinoma P_i, takvih da je
P_i(x_j) = 1 akko je i = j, a 0 u suprotnom. Obe ove metode bice
demonstrirane kroz primere (pogledati resenja zadataka sa ovog
casa).

*) Polinomi se u Octave-u predstavljaju vektorom ciji su elementi


koeficienti polinoma (pocev od koeficienta uz najveci stepen,
tj. p(1) ce biti a_n). Neke korisne funkcije za rad sa polinomima
(koji su predstavljeni na opisan nacin):

-) polyval(p, x) racuna vrednost polinoma u tacki (ili tackama) x.


-) conv(p, q) racuna proizvod polinoma i vraca vektor koeficienata
tako odredjenog proizvoda
-) [d, r] = deconv(p, q) deli polinome i vraca kolicnik d i ostatak r.
-) roots(p) vraca nule polinoma
-) poly(z) vraca polinom sa zadatim nulama

Za vise informacija, pogledati help.


U MATLABU se za aproksimiranje podataka krivom polinomskog tipa koristi
funkcija polyfit. Ova funkcija koristi metodu najmanjih kvadrata, po kojoj se
koeficijenti polinoma određuju minimizacijom zbira kvadrata razlika u svim
tačkama.
Osnovni oblik funkcije polyfit je:
p=polyfit(x,y,n)
gde je p vektor koeficijenata polinoma koji aproksimira podatke; x je vektor s
horizontalnim koordinatama tačaka (nezavisna promenljiva); y je vektor s
vertikalnim koordinatama tačaka (zavisna promenljiva); n je stepen polinoma
sa kojim želimo da aproksimiramo te podatke.

Zadatak 1. Date su tacke A(1,1), B(2,3), C(3,2), D(4,4), E(5,5.5), F(6,5)


- Na grafiku prikazi ovih 6 tacaka
- Naci polinom 6-tog stepena cije su to nule i prikazi ga na istom grafu
- Naci polinom 3-ceg stepena koji to aproksimira, i prikazi ga na grafu za
svaku drugu tacku na x-osi
Koji polinom preciznije aproksimira podatke zadate tabelom
resenje
plot(1,1 ,"*",2,3 ,"*",3,2 ,"*",4,4 ,"*",5,5.5 ,"*",6,5 ,"*")
hold on
x=[1,2,3,4,5,6];
y=[1,3,2,4,5.5,5];
p6stepen=polyfit(x,y,6); %polinom 6 stepena, 7 koeficijenata
y1=polyval(p6stepen,x); %treba mi 6 vrednosti
plot(x,y1,'b') %x i y1 imaju isti broj koeficijenata

p3stepen=polyfit(x,y,3); %polinom 3 stepena, 4 koeficijenta


x2=[1 3 5]; %svaka druga tacka x-ose
y2=polyval(p3stepen,x2); %vrednosti tog polinoma
plot(x2,y2,'y')

Zadatak 2. U m-fajlu, aproksimirati funkciju polinomom prvog reda (linearnom


funkcijom).

x 0 2 4 6 8 10 12 14 16 18 20 22
y 25 30 32 40 46 51 54 60 67 73 80 88
resenje
x=0:2:22;
y=[25 30 32 40 46 51 54 60 67 73 80 88];
IfP=polyfit(x,y,1)
plot(x,y)

Zadatak 3. Dati su podaci u tabeli.


x -5 -4 -2.2 -1 0 1 2.2 4 5 6 7
y 0.1 0.2 0.8 2.6 3.9 5.4 3.6 2.2 3.3 6.7 8.9
a) Pomoću funkcije polyfit aproksimirati podatke iz tabele pomoću polinoma
prvog stepena. Nacrtati grafik tačaka i polinoma.
b) Pomoću funkcije polyfit aproksimirati podatke iz tabele pomoću polinoma
trećeg stepena. Nacrtati grafik tačaka i polinoma.
c) resenje
x=[-5 -4 -2.2 -1 0 1 2.2 4 5 6 7];
y=[0.1 0.2 0.8 2.6 3.9 5.4 3.6 2.2 3.3 6.7 8.9];
% a) p1=polyfit(x,y,1);
% b) p3=polyfit(x,y,3);
plot(x,y,'b') %spajamo tacke duzima
hold on;
y1=polyval(p1,x);
plot(x,y1,'r') %grafik prvog linearnog polinoma
y3=polyval(p3,x);
plot(x,y3,'y') %grafik drugog kubnog polinoma
xlabel('x'),ylabel('y')

Zadatak 4. Broj stanovnika Kine između 1940. godine i 2000. godine dat je u
sledećoj tabeli:
Godina 1940 1950 1960 1970 1980 1990 2000
Broj stanovnika (u milionima) 537 557 682 826 981 1135 1262
a) Aproksimirati podatke pomoću polinoma 7-mog stepena.
b) Aproksimirati podatke pomoću polinoma 2-gog stepena.
Proceniti broj stanovnika 1955. Godine sa oba polinoma. Nacrtati grafik tačaka
podataka (označene kružićima) i grafik polinoma.
resenje
god=[1940:10:2000];
brst=[537 557 682 826 981 1135 1262];
p7=polyfit(god, brst, 7); %polinom 7-mog stepena
p2=polyfit(god, brst, 2); %polinom 2-gog stepena

brst1955=polyval(p7,1955) %vrednost polinoma u 1955 <==> broj stanovnika


brst1955=polyval(p2,1955) %vrednost polinoma u 1955 <==> broj stanovnika

Zadatak 5. Dat je polinom f ( x )=x 4 −2 x 2 +3 x+4 .


a)Izračunati vrednost polinoma za x=4
b) Izračunati vrednost polinoma za −3≤x ≤3 . Nacrtati grafik
polinoma u datom opsegu nezavisno promenljive x.
Resenje f=[1 0 -2 3 4]
f4=polyval(f,4);
xopseg=[-3:0.1:3];
fx=polyval(f,xopseg) ;
plot(xopseg,fx),xlabel('x'),ylabel('f');grid on

4 3 2
Zadatak 6. Dati su polinomi f 1 ( x )=4 x +9 x −2 x −5 x +6 i
2
f 2 ( x ) =x +2 x + 4
.
a) Odrediti korene (nule) ova dva polinoma
b) Odrediti zbir, razliku, proizvod i količnik ova dva polinoma.
c) Odrediti izvode polinoma, i izvod proizvoda polinima

Resenje f1=[4 9 -2 -5 6];


f2=[1 2 4];
% a)
n1=roots(f1)
n2=roots(f2)
% b)
Zf1f2=f1+[0 0 f2]
Rf1f2=f1-[0 0 f2]
Pf1f2=conv(f1,f2)
[kol ost]=deconv(f1,f2)
% c)
Df1=polyder(f1)
Df2=polyder(f2)
Df1f2=polyder(f1,f2)

You might also like