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