Funkcia | Opis |
---|---|
conv | násobenie polynómov |
deconv | delenie polynómov |
poly | konštrukcia polynómov zo špecifikovaných koreňov |
polyder | derivácia polynómu |
polyfit | aproximácia dát polynómom |
polyval | hodnota polynómu |
polyvalm | hodnota polynómu s maticovým argumentom |
residue | rozklad na parciálne zlomky |
roots | nájdenie koreňov polynómu |
Všeobecne polynóm p vieme zapísať nasledovne: p = [p1 p2 ... pn pn+1], čo vyjadruje p = p1sn+p2sn-1+ ... pns+ pn+1].
Jednotlivé funkcie uvedené v tabuľke si ukážeme na príkladoch.
>> b = [1 4 5 2]; a = [2 5 3]; >> conv(a,b) ans = 2 13 33 41 25 6
>> [q,r] = deconv(b,a)
q =
0.5000 0.7500
r =
0 0 -0.2500 -0.2500
% Spätná kontrola
>> conv(q,a)+r
ans =
1 4 5 2
>> p = [2 3 4 1]; >> polyval(p,1) ans = 10
>> polyval(p,[0 2 3]) ans = 1 37 94
>> roots([1 2 -9 -18]) ans = 3.0000 -3.0000 -2.0000
>> roots([1 -2 3 5]) ans = 1.4473 + 1.8694i 1.4473 - 1.8694i -0.8946
>> A = [1.2 3 -0.9;5 1.75 6;9 0 1]; >> poly(A) ans = 1.0000 -3.9500 -1.8500 -163.2750
>> a = [1.2 3 -0.9 0 1];
>> poly(a)
ans =
1.0000 -4.3000 3.1200 3.4200 -3.2400 0
% Spätná kontrola
>> roots(ans)
ans =
0
3.0000
-0.9000
1.2000
1.0000
>> a = [2 1 3]; >> polyder(a) ans = 4 1 >> b = [3 1 5 4]; >> polyder(b) ans = 9 2 5
>> polyder(a,b) ans = 30 20 60 32 19
>> [q,d] = polyder(b,a) q = 6 6 18 -10 11 d = 4 4 13 6 9
B/A = R(1)/(s-P(1)) + R(2)/(s-P(2)) + ... R(n)/(s-P(n)) + K
>> a = [1 5.5 -1.5 -27]; b = [2 5 1]; >> [R,P,K] = residue(b,a) R = 1.9487 -0.5333 0.5846 P = -4.5000 -3.0000 2.0000 K = []
p = polyfit(x,y,n)
kde
Poznámka:
Pretože nás okrem koeficientov aproximovaného polynómu väčšinou zaujímajú aj hodnoty polynómu P(x) vo všetkých prvkoch vektora x (napr. kvôli grafickému znázorneniu), existuje tiež funkcia polyval:
y_aprox = polyval(p,x)
kde
% namerene udaje, nezavisl. premenne >> u = [1 1.5 2.1 2.5 3 3.1 3.2 3.5]; % namerene udaje, zavisl. premenne >> v = [7.8 8.15 8.3 8.25 8.1 8.3 8.35 8.2]; >> p1 = polyfit(u,v,2) % koeficienty polynomu 2. stupna pre 'u' a 'v' p1 = -0.1629 0.8665 7.1462 >> v_aprox = polyval(p1,u); % hodnoty polynómu pre 'u' >> Sv = sum((v_aprox-v).^2) % suma stvorcov odchyliek Sv = 0.0556
>> p2 = polyfit(u,v,1) % koeficienty polynomu 1. stupna pre 'u' a 'v' p2 = 0.1313 7.8547 >> p_aprox = polyval(p2,u); % hodnoty polynómu pre 'u' >> Sp = sum((p_aprox-v).^2) % suma stvorcov odchyliek Sp = 0.1198
>> plot(u,v,'r+') % graf, povodne udaje ako cervene kriziky >> hold on % prikreslenie dalsich udajov >> plot(u,v_aprox,'k') % graf polynomu 2. stupna (cierne body spojene ciarou) >> plot(u,p_aprox,'b') % graf polynomu 1. stupna (modre body spojene ciarou)