10
Příklady z Matlabu 2 Práce s polynomy v Matlabu

Příklady z Matlabu 2

  • Upload
    lynda

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

Příklady z Matlabu 2. Práce s polynomy v Matlabu. Zadávání polynomů Zadávají se jako vektory koeficientů polynomu. Polynom n-tého řádu je vektor o n+1 prvcích: p ( x )=2x 5 -3x 4 +x 2 -4x-2 p=[2, -3, 0, 1, -4, - 2] V yčí slen í pol y nomu (funkce polyval) pro x=2 : - PowerPoint PPT Presentation

Citation preview

Page 1: Příklady z Matlabu 2

Příklady z Matlabu 2

Práce s polynomy v Matlabu

Page 2: Příklady z Matlabu 2

• Zadávání polynomůZadávají se jako vektory koeficientů polynomu. Polynom n-tého řádu je vektor o n+1 prvcích:

p(x)=2x5-3x4+x2-4x-2

p=[2, -3, 0, 1, -4, -2]

Vyčíslení polynomu (funkce polyval) pro x=2 :

p(2)=2.25-3.24+22-4.2-2=10

polyval(p,2)

ans=10

Derivace polynomu (funkce polyder) :

polyder(p)

ans= [10 -12 0 2 -4]

Tedy d p(x)/dt = 10x 4 -12x 3 +2x-4

Page 3: Příklady z Matlabu 2

Kořeny polynomu (funkce roots) :roots(p)ans= 1.7900

0.5000 + 1.0790i 0.5000 - 1.0790i -0.7900

-0.5000 Vytvoření polynomu k zadaným kořenům (funkce poly):A=[1,3,2]r=roots(A)r= -2

-1poly(r)ans= 1 3 2

Page 4: Příklady z Matlabu 2

Vynásobení a vydělení polynomů :

a=[1, 2, 3]; b= [2, -2, 1];

conv(a,b) %násobení polynomu

ans= 2 2 3 -4 3

deconv(a, b) %dělení polynomů

ans=0.5

Proložení naměřených dat polynomy (funkce polyfit)

x=[ -4:0.5:4 ];

y=[ 0 : 0.5 : 3.5,4, 3.5:-0.5:0];

p1=polyfit(x, y, 1) %prolozeni dat polynomem 1.radu

p1= -0.0000 1.8824

p2=polyfit(x, y, 2) %prolozeni dat polynomem 2.radu

p2= -0.2229 0.0000 3.2198

p5=polyfit(x, y, 5) %prolozeni dat polynomem 5.radu

p5= 0.0000 0.0114 -0.000 -0.3972 0.0000 3.5285

Page 5: Příklady z Matlabu 2

Vykreslení do grafu:

x=[ -4:0.5:4 ];

y=[ 0 : 0.5 : 3.5,4, 3.5:-0.5:0];

p1=polyfit(x, y, 1); %prolozeni dat polynomem 1.radu

p2=polyfit(x, y, 2); %prolozeni dat polynomem 2.radu

p5=polyfit(x, y, 5); %prolozeni dat polynomem 5.radu

hold on

plot(x, y, 'r'); % původní data - červeně

plot(x, polyval(p1, x), 'b' ); % polynom 1.stupně - modře

plot(x, polyval(p2, x), 'g' ); % polynom 2.stupně - zeleně

plot(x, polyval(p5, x), 'k' ); % polynom 5.stupně - černě

hold off;

grid on

legend('lomena cara' , 'linearni prol. ', 'kvadraticke prol. ', 'polynom 5.radu') ;

Page 6: Příklady z Matlabu 2

Vykreslení do grafu:

-4 -3 -2 -1 0 1 2 3 4-0.5

0

0.5

1

1.5

2

2.5

3

3.5

4

lomena cara

linearni prol.

kvadraticke prol.

polynom 5.radu

Page 7: Příklady z Matlabu 2

Datová interpolace:

x1 = linspace( 0, 2*pi, 60 ); % lineární interpolace

x2 = linspace( 0, 2*pi, 6 );

plot(x1,sin(x1),x2,sin(x2), '--');

xlabel('x'); ylabel('sin(x)'); title('lineární interpolace');

0 1 2 3 4 5 6 7-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

x

sin(

x)

lineární interpolace

Page 8: Příklady z Matlabu 2

Splinová interpolace (s využitím funkce interp1):

Tyto 2 vektory representují sčítání lidu od roku 1900 do roku 1990 a tomu korespondující množství populace v USA v milionech obyvatel.

t = 1900:10:1990;p = [75.995 91.972 105.711 123.203 131.669... 150.697 179.323 203.212 226.505 249.633];

Výraz interp1(t,p,1975) interpoluje tuto hodnotu v roce 1975. Výsledek je

ans = 214.8585

Nyní interpolujeme hodnotu od roku 1900 do roku 2000 a vyneseme výsledek do grafu:

x = 1900:1:2000; y = interp1(t,p,x,'spline'); plot(t,p,'o',x,y) grid on

1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 200050

100

150

200

250

300

Page 9: Příklady z Matlabu 2

Př.: Máme naměřené hodnoty bodů o souřadnicích x=[ 0:9 ]; y=[ 0,2,3,4,6,9,11,11,10,8]; Proložte je polynomem 1 až 8 řádu a vykreslete je do grafu.

clc; clearx = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; y = [0, 2, 3, 4, 6, 9, 11, 11, 10, 8];plot(x, y, 'or', 'MarkerSize', 10, 'MarkerFaceColor', 'r'); % nakresleni bodůgrid on; xlabel('x'); ylabel('y'); title('Prolozeni namerenych hodnot');

hold on; % umožnění připisování grafuxp=linspace(0,9,100);p=polyfit(x,y,1); y1=polyval(p,xp); plot(xp,y1,'k');p=polyfit(x,y,2); y2=polyval(p,xp); plot(xp,y2,'r');p=polyfit(x,y,3); y3=polyval(p,xp); plot(xp,y3,'g');p=polyfit(x,y,4); y4=polyval(p,xp); plot(xp,y4,'b');p=polyfit(x,y,5); y5=polyval(p,xp); plot(xp,y5,'c');p=polyfit(x,y,6); y6=polyval(p,xp); plot(xp,y6,'m');p=polyfit(x,y,7); y7=polyval(p,xp); plot(xp,y7,'y');p=polyfit(x,y,8); y8=polyval(p,xp); plot(xp,y8,'k');hold off;legend('namerene hodnoty', '1. stupen', '2. stupen', '3. stupen', '4. stupen', '5.

stupen', '6. stupen', '7. stupen','8.stupen');

Page 10: Příklady z Matlabu 2

0 1 2 3 4 5 6 7 8 9

-2

0

2

4

6

8

10

12

x

y

Prolozeni namerenych hodnot

namerene hodnoty1. stupen

2. stupen

3. stupen

4. stupen5. stupen

6. stupen

7. stupen8.stupen