Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
MatLab – Parte 2 Un polinomio tiene la forma: a1x n+a2x n-1+...+anx+an+1 Donde a1,a2...,an,an+1 son los coeficientes y el grado del polinomio es n. En MatLab existen dos formas de representarlos: En matemática En MatLab Forma simbólica Forma de vector f(x)= >>syms x >>f=5*x^3+4*x^2+6 >>% Necesariamente la variable x se declara como syms >> f=[ 5,4, 0, 6] En MatLab encontrará comandos para trabajar en forma simbólica y otros comandos para trabajar con polinomios expresados en forma de vector. Se puede pasar de una forma simbólica (función de transferencia) a forma de vector y viceversa con los comandos poly2sym y sym2poly : >> sym x % x es la variable simbólica ans = x >> f=5*x^3+4*x^2+6 %declaramos la función simbólica f = 5*x^3 + 4*x^2 + 6 >> b=sym2poly(f) % para obtener el vector de coeficientes de la función simbólica b = 5 4 0 6 Ahora el proceso inverso: >> f=[5,4,0,6] f = 5 4 0 6 >> poly2sym(f) MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 2 ans = 5*x^3 + 4*x^2 + 6 Polinomios (continuación) Comando Función Representación del polinomio roots Cálculo de las raíces de un polinomio vector poly Construye un polinomio con unas raíces específicas vector polyval Evalúa un polinomio vector polyfit Ajuste de un polinomio a unos datos vector polyder Derivada de un polinomio vector conv Multiplicación de polinomios vector deconv División de polinomios vector expand Escribe cada elemento de una expresión simbólica S como un producto de sus factores. EXPAND se utiliza con mayor frecuencia en los polinomios, sino que también se expande trigonométrica, exponencial y logarítmica. simbólica factor Factoriza el polinomio simbólica simplify Simplifica un polinomio simbólica pretty Presenta el polinomio bonito (traducción), mejor presentación simbólica solve Encuentra las raíces de un polinomio expresado en su forma simbólica simbólica Ejemplo 1) Sea el polinomio aplicar pretty. MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 3 >> syms x >> f=(2*x)/(6*x+5) + 4*x/7 f = (4*x)/7 + (2*x)/(6*x + 5) >> pretty(f) 4 x 2 x --- + ------- 7 6 x + 5 Ejemplo 2) Desarrollar (x+y)^3 >> syms x y >> z=(x+y)^3 z = (x + y)^3 >> expand(z) ans = x^3 + 3*x^2*y + 3*x*y^2 + y^3 Ejemplo 3) Desarrollar sin(x+y) >> syms x y >> q=sin(x+y) q = sin(x + y) >> expand(q) ans = cos(x)*sin(y) + cos(y)*sin(x) Ejemplo 4) Desarrollar MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 4 >> syms x y >> q=exp(x+y) q = exp(x + y) >> expand(q) ans = exp(x)*exp(y) Ejemplo 5) Factorizar: a5 + 5a4b + 10a3b2 + 10 a2b3 + 5ab4 +b5 >> syms a b >> a^5 + 5*a^4*b + 10*a^3*b^2 + 10*a^2*b^3 + 5*a*b^4 + b^5 ans = a^5 + 5*a^4*b + 10*a^3*b^2 + 10*a^2*b^3 + 5*a*b^4 + b^5 >> factor(ans) ans = (a + b)^5 Ejemplo 6) Factorizar: >> syms x y >> factor(9*(x-y)^2+12*(x-y)*(x+y)+4*(x+y)^2) ans = (5*x - y)^2 Ejemplo 7) Factorizar: x3 – 8 MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 5 >> factor(x^3 - 8) ans = (x - 2)*(x^2 + 2*x + 4) Ejemplo 8) Simplificar : >> simplify((a^2 - b^2)/(3*a^2 - 3*a*b)) ans = b/(3*a) + 1/3 Ejemplo 9) Simplificar >> simplify((x^3 - y^3)/(x - y)) ans = x^2 + x*y + y^2 Ejemplo 10) Encontrar las raíces del polinomio f(x)=x2 -5x +6 >> syms x >> f=x^2-5*x+6 f = x^2 - 5*x + 6 >> solve(f) ans = 2 3 Ejemplo 11) Dado el siguiente polinomio: MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 6 p(x) = 8x4 - 5x3 + x2 + 3x + 4 q(x)=x2-5x+6 Obtenga las raíces de cada polinomio: >> p = [ 8 - 5 1 3 4 ] p = 3 1 3 4 >> %Obtiene raíces de un polinomio dado >> roots(p) ans = 0.2788 + 1.1912i 0.2788 - 1.1912i -0.8909 >> q=[1,-5,6] q = 1 -5 6 >>%Obtiene raíces de un polinomio dado >> roots(q) ans = 3.0000 2.0000 Ejemplo 12) Ahora dada las raíces de un polinomio (3.0000 y 2.0000), construya el polinomio: >> q=[1,-5,6] q = 1 -5 6 >> raices=roots(q) raices = 3.0000 2.0000 >>% poly construye un polinomio a partir de sus raíces z=poly(raices) z = 1 -5 6 Ejemplo 13) Evaluar la función con X=5, tenemos: q(x)=x2-5x+6, para x=5, entonces 52-25+6=6 >> r=polyval(q,5) r = 6 MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 7 Ejemplo 14) Multiplicación de polinomios: f(x)=3x2 + 2x -1 g(x)=4x2 – 2x +2 En MatLab: >> f=[3,2,-1] f = 3 2 -1 >> g=[4,-2,2] g = 4 -2 2 >> r=conv(f,g) r = 12 2 -2 6 -2 Ejemplo 15) Multiplicación de polinomios p(x)*q(x) >> p = [ 8 - 5 1 3 4 ] p = 3 1 3 4 >> q=[1,-5,6] q = 1 -5 6 >> re_mul=conv(p,q) re_mul = 3 -14 16 -5 -2 24 MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 8 Ejemplo 16) Dado dos polinomios: P(x) = 7x4 + 4x2 + 7x + 2 Q(x) = 6x3 + 8x +3 Restar p(x)-q(x): Para el caso de la suma y la resta, ambos arreglos deben tener el mismo número de elementos, en este ejemplo el polinomio q(x) tiene menos términos que el polinomio p(x), entonces a q(x), completamos con cero el primer elemento del arreglo, para que ambos vectores sean del mismo tamaño. >> p=[7,0,4,7,2] p = 7 0 4 7 2 >> q=[0,6,0,8,3] q = 0 6 0 8 3 >> r=p-q % restando r = 7 -6 4 -1 -1 >> z=p+q % sumando z = 7 6 4 15 5 Ejemplo 17) Multiplicar un polinomio por un escalar: Para calcular P(X)*3: MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 9 >> p=[2,5,-6,7,1] p = 2 5 -6 7 1 >> p*3 ans = 6 15 -18 21 3 Ejemplo 18) Dado los polinomios: p(x)= 2x3 - 5x2 + 3x + 2 q(x)=x2 +2x +1 Obtener: >> p=[2,-5,3,2] p = 2 -5 3 2 >> q=[1,2,1] q = 1 2 1 >> [c,r]=deconv(p,q) c = 2 -9 r = 0 0 19 11 Ejemplo 19) Derivada de una función: f(x)=x3 -12x la derivada es f’(x)=3x2-12 MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 10 >> f=[1,0,-12,0] f = 1 0 -12 0 >> polyder(f) ans = 3 0 -12 Ejemplo 20) Derivada de una función: f(x)= - 2x2 + 3x - 4 f’(x)= -2*2x + 3 = - 4x +3 >> f=[-2,3,4] f = -2 3 4 >> polyder(f) ans = -4 3 Ejemplo 21) Integrar la función: f(x)= - 4x + 3 ∫ = - 2 >> f=[-4,3] f = -4 3 >> polyint(f) ans = -2 3 0 Ejemplo 22) Factorizar: a. b. MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 11 c. d. >> syms x >> factor(x^2+2*x+1) ans= (x + 1)^2 >> factor(x^2-1) ans = (x - 1)*(x + 1) >> factor(x^3-1) ans = (x - 1)*(x^2 + x + 1) >> factor(x^3+2*x) ans = x*(x^2 + 2) Ejemplo 23) Desarrollar: e. x(x2+2) f. (x-1)(x2+x+1) >>syms x >> expand(x*(x^2 + 2)) ans = x^3 + 2*x >> expand((x - 1)*(x^2 + x + 1)) ans = x^3 - 1 Ejemplo 24) factorizando : MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 12 = = Buscamos dos números que multiplicados den 30 y sumados den 7 = = ( ) = Factorizando: = factorizando: = Buscamos dos números que multiplicado den -40 y sumados -3, el mayor va en el primer (). = Factorizando: = Ahora todo junto: ( )( ) ( )( ) MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 13 Ahora en MatLab paso a paso: >> syms a b >>% factorizando primer numerador >> q=factor(2*a^2+7*a*b-15*b^2) q = (2*a - 3*b)*(a + 5*b) >>% factorizando primer denominador >> y=factor(a^3+4*a^2*b) y = a^2*(a + 4*b) >>% factorizando segundo numerador >> z=factor(a^2-3*a*b-40*b^2) z = (a - 8*b)*(a + 5*b) >>% fctorizando segundo denominador >> x=factor(a^2-4*a*b-32*b^2) x = (a - 8*b)*(a + 4*b) >>% entonces q/y dividido entre z/x >> %multiplicamos en q*x/y*z >> nu=q*x nu = (2*a - 3*b)*(a + 5*b)*(a - 8*b)*(a + 4*b) >> de=y*z de = a^2*(a + 4*b)*(a - 8*b)*(a + 5*b) >>%finalmente MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 14 >> nu/de ans = (2*a - 3*b)/a^2 Ejemplo 25) Dividir: En MatLab paso a paso: >> syms a m b >> f=a*m-b*m+a-b; >> g=m^3+1; >> h=a-b; >> i=m^2-m+1; % factorizando: >> ff=factor(f); >> fg=factor(g); >> fh=factor(h); >> fi=factor(i); >> r=(ff*fi)/(fg*fh) r = 1 Ejemplo 26) Obtener una tabla con 20 valores del polinomio: X3-1, en el intervalo: [-1,1]. >> p=[1,0,0,-1] p = 1 0 0 -1 >> x=linspace(-1,1,20) %para el eje abscisas x = Columns 1 through 7 MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 15 -1.0000 -0.8947 -0.7895 -0.6842 -0.5789 -0.4737 -0.3684 Columns 8 through 14 -0.2632 -0.1579 -0.0526 0.0526 0.1579 0.2632 0.3684 Columns 15 through 20 % ojo pedimos 20 terminos en ese rango 0.4737 0.5789 0.6842 0.7895 0.8947 1.0000 >> y=polyval(p,x) %eje de ordenadas y = Columns 1 through 7 -2.0000 -1.7163 -1.4921 -1.3203 -1.1941 -1.1063 -1.0500 Columns 8 through 14 -1.0182 -1.0039 -1.0001 -0.9999 -0.9961 -0.9818 -0.9500 Columns 15 through 20 -0.8937 -0.8059 -0.6797 -0.5079 -0.2837 0 >> tabla=[x;y] % se obtiene la table con ambos vectores tabla = Columns 1 through 6 -1.0000 -0.8947 -0.7895 -0.6842 -0.5789 -0.4737 -2.0000 -1.7163 -1.4921 -1.3203 -1.1941 -1.1063 Columns 7 through 12 -0.3684 -0.2632 -0.1579 -0.0526 0.0526 0.1579 -1.0500 -1.0182 -1.0039 -1.0001 -0.9999 -0.9961 Columns 13 through 18 0.2632 0.3684 0.4737 0.5789 0.6842 0.7895 -0.9818 -0.9500 -0.8937 -0.8059 -0.6797 -0.5079 Columns 19 through 20 0.8947 1.0000 MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 16 -0.2837 0 >> plot(x,y,'r*') >> title('x^3-1'); >> xlabel('x'); >> ylabel('y'); >> El gráfico es: Funciones en una sola línea Son funciones que se definen en una sola línea, utilizando el comando inline. En este comando tiene dos argumentos, primero se detalla un string o cadena con la función, anotada entre apóstrofes y en el segundo argumento también entre apóstrofes va la variable independiente. Ejemplo 27) Sea la función polinómica f(x)=x2 +x +1 >> f = inline('x^2 + x + 1', 'x') % f es el nombre de la funcion f = Inline function: f(x) = x^2 + x + 1 >> f(5) % para evaluar la función con x=5 ans = 31 >> f(2) %ahora evaluar la función con x=2 ans = 7 MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 17 Ejemplo 28) Dado un conjunto de pares de datos en el plano, encontrar la función que corresponde a estos puntos, x=[1,2,3,4] y y=[2,4,6,8] encontrar la función y graficar. >> x=[1,2,3,4] x = 1 2 3 4 >> y=[2,4,6,8] y = 2 4 6 8 >> z=polyfit(x,y,2) con esos puntos en el plano queremos la función de grado 2 z = 0.0000 2.0000 0.0000 % es una recta >> ezplot('2*x',[-1,4]) >> grid() Ejemplo 29) Dado los puntos en x=[1,2,3,4] y y=[1,-5,-15-29] encontrar la función que pasa por estos puntos. >> x=[1,2,3,4] x = 1 2 3 4 >> y=[1,-5,-15,-29] y = MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 18 1 -5 -15 -29 >> k=polyfit(x,y,2) k = -2.0000 0.0000 3.0000 % graficando >> ezplot('-2*x^2+3',[-2,2]) Gráficos con ezplot La forma más sencilla de representar gráficamente una función de una variable es con ezplot. Este comando ezplot, tiene como primer argumento el polinomio de una variable en forma de cadena, es decir entre apóstrofes, y como segundo argumento del rango de valores que se deben evaluar. Ejemplo 30) Graficar f(x)=x2 +x +1 ezplot('x^2 + x + 1', [-2 2]) MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 19 Gráficos con plot Representa gráfico en el plano donde” x” es el vector de abscisas y “ y” es el vector de ordenadas. Ejemplo 31) Para el polinomio x3-1 que las abscisas vayan en un rango de [ -2,2] se escribe x=linspace(-2,2); donde linspace genera 100 valores entre -2 y 2 x=linspace(-2,2,5); en este caso genera 5 valores. >> x=linspace(-2,2,5) x = -2 -1 0 1 2 >>p=[1,0,0,-1]; para el polinomio y=polyval(p,x) % evalúa cada elemento de x en el polinomio p y obtiene % de esta manera el vector y. >> y=polyval(p,x) y = -9 -2 -1 0 7 >> plot(x,y,'r') %imagen en rojo (red) >> title ('x^3-1') >> xlabel('Abscisas'); >> ylabel('Ordenada'); >> grid %imagen cuadriculada. MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 20 También puede agregar texto al lado del gráfico indicando las coordenadas conde debe salir el texto text(3,2,’figura’); Gráficos con polar Dibuja curvas en coordenadas polares Ejemplo 32) Graficar la ecuación de la rosa de 5 pétalos es: ρ(θ) = sen(5θ), θ ∈ [0,2π]. >> z = 0:pi/300:pi; >> r = sin(5*z); >>polar(z,r) MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 21Gráficos con plot3(x,y,z) Donde x, y y z son tres vectores de la misma longitud, traza una línea en el espacio de 3 dimensiones a través de los puntos cuyas coordenadas son los elementos de “x”, “y” y “z”. Ejemplo 33) Graficar con plot3 >> t=linspace(0,4*pi); >> x=sin(t); >> z=t; >> y=cos(t); >> plot3(x,y,z,'r',-x,-y,z,'b') Ejemplo 34) Ejemplo Ejemplo 35) Otro ejemplo con plot3 >> t = linspace(0,10*pi); >> x = t.*sin(t); >> y = t.*cos(t); >> plot3(x,y,t) Ejemplo 36) Ejemplo con plot3 >> t = 0:pi/50:10*pi; >>st = sin(t); >>ct = cos(t); >>plot3(st,ct,t) MATLAB SEGUNDA PARTE ELT-256 M.Sc.I.PRADO 22 Ejemplo 37) Ejemplo con plot : >> x = linspace(0,2*pi,25); >>y1 = sin(x); >>y2 = sin(x-pi/4); >>plot(x,y1,'--go',x,y2,':r*')
Compartir