Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Práce s polynomy v Matlabu
Příklady z Matlabu 2 Práce s polynomy v 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)= =10 polyval(p,2) ans=10 Derivace polynomu (funkce polyder) : polyder(p) ans= [ ] Tedy d p(x)/dt = 10x 4 -12x 3 +2x-4
3
Kořeny polynomu (funkce roots) :
roots(p) ans= i i Vytvoření polynomu k zadaným kořenům (funkce poly): A=[1,3,2] r=roots(A) r= -2 -1 poly(r) ans= 1 3 2
4
Vynásobení a vydělení polynomů :
a=[1, 2, 3]; b= [2, -2, 1]; conv(a,b) %násobení polynomu ans= 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= p2=polyfit(x, y, 2) %prolozeni dat polynomem 2.radu p2= p5=polyfit(x, y, 5) %prolozeni dat polynomem 5.radu p5=
5
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') ;
6
Vykreslení do grafu:
7
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');
8
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 = [ ]; Výraz interp1(t,p,1975) interpoluje tuto hodnotu v roce Výsledek je ans = 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
9
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; clear x = [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í grafu xp=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');
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.