1 / 10

Příklady z Matlabu 2

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 :

lynda
Download Presentation

Příklady z Matlabu 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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)=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

  3. 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 -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= 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

  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í liduod 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ýrazinterp1(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

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

More Related