Contents
Harj. 2 Teht. 6
%{ Seuraavassa p,q jne ovat vektoreita, jotka edustavat polynomeja (siis polynomien kerroinvektoreita). a. Kirjoita yleispätevä Matlab-lauseke, joka laskee polynomien p ja q summan. Olkoot p:n ja q:n asteluvut m ja n, oletetaan: m <= n. b. Kirjoita Matlab-lauseke, joka muodostaa polynomin p derivaatan. Vast: Kts. Matlab-funktion polyder koodia. Mutta älä vielä! c. Muodosta tehtävän 1 polynomien p ja q tulo r funktiolla conv "konvoluutio". Tarkista, päteekö polyval(r,x)==polyval(p,x)*polyval(q,x) missä x on sopiva vektori. (Pituus vähintään asteluku+1) %}
a)
clear % Poistetaan muuttujat close all % Suljetaan kaikki grafiikkaikkunat. format compact % Tulostus tiiviiksi. % Esimerkki: p=[1 0 2 -1] q=[2 0 0 0 0 3] k=length(q)-length(p) ; % Tämä on se yleinen lauseke. p=[zeros(1,k) p] s=p+q
p = 1 0 2 -1 q = 2 0 0 0 0 3 p = 0 0 1 0 2 -1 s = 2 0 1 0 2 2
a') Miten tuo sujuisi ilman tietoa siitä, kumpi on korkeampiasteinen?
%{ Ajatus: Tehdään 2-rivinen 0-matriisi, jossa max-asteluvun verran sarakkeita. Työnnetään polynomivekorit perille saakka. Helpottaa, kun end:llä voi viitata viimeiseen alkioon (sarakkeeseen), %} m=length(p); n=length(q); M=max(m,n) % tai M=max([m n]) S=zeros(2,M) S(1,end-m+1:end)=p; S(2,end-n+1:end)=q; S sum(S) % Hauska tapa, vai mitä?
M = 6 S = 0 0 0 0 0 0 0 0 0 0 0 0 S = 0 0 1 0 2 -1 2 0 0 0 0 3 ans = 2 0 1 0 2 2
b)
%{ Laske kynällä ja paperilla thän tapaan: pf(x)= a_4*x^3 + a_3*x^2 + a_2*x + a_1 dpf(x) = 3*a_4*x^2 + 2*a_3*x + a_2 Kerroinesitykset: p=[a4 a3 a2 a1] dp=[3 2 1].*p(1:end-1) Yleisesti: n=length(p); dp=(n-1:-1:1).*p(1:end-1) %} % Testataan: p=[2 0 1 -1 3] n=length(p); dp=(n-1:-1:1).*p(1:end-1) % Oikein menee.
p = 2 0 1 -1 3 dp = 8 0 2 -1
c)-kohdan saat tehdä itse. Siinä ei ole teknisesti eroa a)-kohtaan,
paitsi, että on helpompi.
%{ Hyvä huomata, että signaalinkäsitelyssä tarvittava konvoluutio on polynomien kertomista. (Ihan elegantisi toteutettavissa Matlab:lla, mutta antaapa nyt olla.) Kysymys riittävästä määrästä x-pisteitä tarkoittaa sitä, että jos n-asteiset polynomit yhtyvät n+1:ssä pisteessä, niin ne yhtyvät kaikkialla. %}