You are on page 1of 8

Modelamiento y Simulacin de Procesos UNT - 2017

INICIANDO MATLAB II
Vectores y Matrices
Para crear un vector introducimos los valores deseados separados por espacios (o
comas) todo ello entre corchetes [ ]. Si lo que queremos es crear una matriz lo
hacemos de forma anloga pero separando las filas con puntos y comas (;).
Ejemplos:
>> x = [5 7 -2 4 -6] % es un vector, los elementos los
separamos con espacios
x =
5 7 -2 4 -6
>> y = [2,1,3,7] % es otro vector, los elementos los
separamos con comas
y =
2 1 3 7
>> z = [0 1 2,3 4,5] % es otro vector, da igual separar los
elementos por comas o espacios
z =
0 1 2 3 4 5
>> A = [1 2 3; 4 5 6] % es una matriz con 2 filas y 3
columnas
A =
1 2 3
4 5 6

Para acceder a los elementos individuales de un vector lo haremos utilizando


subndices, as x(n) sera el n-simo elemento del vector x. Si queremos acceder al
ltimo podemos indicarlo usando end como subndice.

>> x = [5 7 -2 4 -6];
>> x (2) % segundo elemento del vector x
ans =
7

>> x (end) % ltimo elemento del vector x


ans =
-6

Sistema de ecuaciones lineales


Un sistema de ecuaciones lineales, tambin conocido como sistema lineal de
ecuaciones o simplemente sistema lineal, es un conjunto de ecuaciones lineales (es
decir, un sistema de ecuaciones en donde cada ecuacin es de primer grado).
Se presentan tres maneras de resolver sistemas de ecuaciones con Matlab:
Mtodo de la matriz inversa (sistema de ecuaciones lineales).
Mtodo de la divisin matricial izquierda (sistema de ecuaciones lineales).
Utilizando el comando rref (sistema de ecuaciones lineales).
Utilizando el comando solve (sistema de ecuaciones lineales y no lineales).

Ejemplos:
2 + 4 + 6 = 18
4 + 5 + 6 = 24
3 + 2 = 4
ING. LUIS MONCADA TORRES 1
Modelamiento y Simulacin de Procesos UNT - 2017

>> A = [2,4,6;4,5,6;3,1,-2];
>> B = [18;24;4];
>> C = det(A)
C =
6 % Determinante distinto de 0, solucin nica
>> sol1 = inv(A)*B % Mtodo de la matriz inversa
sol1 =

4.0000
-2.0000
3.0000

>> sol2=A\B % Mtodo de la divisin matricial izquierda


sol2 =

4.0000
-2.0000
3.0000

>> AB=[A B] % Escribimos la matriz ampliada


>> rref(ab) % Eliminacin Gauss-Jordan
ans =

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

>> syms x b c %Declaramos variables simblicas


>> a1=2*a+4*b+6*c==18;
>> a2=4*a+5*b+6*c==24;
>> a3=3*a+b-2*c==4;
>> [x1,y1,z1]=solve(a1,a2,a3) %Mediante comando solve

x1 =
4

y1 =
-2

z1 =
3

Series
La funcin symsum(f,a,b) suma la expresin f a medida que la variable simblica vara
de a a b
5

= 2 = 12 + 22 + 32 + 42 + 52 = 55
=1
>> syms k; %Declaramos variable simblica
>> symsum(k^2,1,5) %Sumatoria de 1 a 5
ans =
55

ING. LUIS MONCADA TORRES 2


Modelamiento y Simulacin de Procesos UNT - 2017


( + 1)
=
2
=0
>> syms k N; %Declaramos variables simblicas
>> symsum(k,0,N) %Sumatoria de 0 a N
ans =
(N*(N + 1))/2

( + 1)(2 + 1)
2 =
6
=0
>> syms k N; %Declaramos variables simblicas
>> symsum(k^2,0,N) %Sumatoria de 0 a N
ans =
(N*(2*N + 1)*(N + 1))/6


=
!
=0
>> syms x k %Declaramos variables simblicas
>> symsum(x^k/sym('k!'),k,0,inf) %Sumatoria de k desde 0 a inf
ans =
exp(x)

Dado que hay dos variables simblicas x y k, especificamos en el segundo parmetro


de la funcin sysmsum que la suma se refiere a k

Polinomios
Un polinomio de grado n de coeficientes a1,a2...,an,an+1 es la expresin
1 + 2 1 + + + +1
en MATLAB se representa por el vector fila p=[a1,a2...,an,an+1]
El polinomio = 3 2 2 + 2 se representa por el vector p=[1 -2 1 -2]

Los polinomios se pueden representar de forma simblica mediante la funcin


poly2sym.

>> p=[1 -2 1 -2]; %Vector formado por sus coeficientes


>> poly2sym(p)
ans =
x^3 - 2*x^2 + x - 2

A su vez un polinomio en forma simblica se puede convertir en el vector formado por


sus coeficientes mediante sym2poly

>> syms x;
>> sym2poly(x^3-2*x-4) %Polinomio en forma simblica
ans =
1 0 -2 -4

Valor de un polinomio
Calculamos el valor de polinomio cuando se conoce el valor la variable x.
Sea = 5 3.5 4 + 2.75 3 + 2.125 2 3.875 + 1.25

ING. LUIS MONCADA TORRES 3


Modelamiento y Simulacin de Procesos UNT - 2017

Cuando se expresa un polinomio de forma simblica se utiliza la funcin subs

>> syms x;
>> p=x^5-3.5*x^4+2.75*x^3+2.125*x^2-3.875*x+1.25;
>> subs(p,x,1.5) %Valor de x de 1.5
ans =
-0.6250

La funcin polyval nos proporciona este valor cuando se expresa el polinomio en


forma de vector formado por los coeficientes.

>> p=[1 -3.5 2.75 2.125 -3.875 1.25];


>> x=1.5; %Valor de x de 1.5
>> polyval(p,x)
ans =
-0.6250
>> x=0:0.5:2; %Valor de x de 0 a 2 con un paso de 0.5
>> polyval(p,x)
ans =
1.2500 0 -0.2500 -0.6250 0

Suma de polinomios
Queremos sumar los polinomios p1=x3-2x-4 y p2=x2+3x+4
De forma simblica

>> syms x;
>> p1=x^3-2*x-4;
>> p2=x^2+3*x+4;
>> p1+p2
ans =
x^3 + x^2 + x

Para sumar dos polinomios en forma de vectores, los vectores tiene que tener las
mismas dimensiones

>> p1=[1 0 -2 -4];


>> p2=[2 3 4];
>> p1+p2
??? Error using ==> plus
Matrix dimensions must agree.
>> p2=[0 2 3 4];
>> p1+p2
ans =
1 2 1 0

Producto de dos polinomios


Queremos multiplicar los polinomios p1=x3-2x-4 y p2=x2+3x+4
De forma simblica

>> syms x;
>> p1=x^3-2*x-4;
>> p2=x^2+3*x+4;
>> p=p1*p2
p =
ING. LUIS MONCADA TORRES 4
Modelamiento y Simulacin de Procesos UNT - 2017

-(x^2 + 3*x + 4)*(- x^3 + 2*x + 4)


>> expand(p)
ans =
x^5 + 3*x^4 + 2*x^3 - 10*x^2 - 20*x - 16

Producto de dos polinomios mediante la funcin conv

>> p1=[1 0 -2 -4];


>> p2=[1 3 4];
>> p=conv(p1,p2)
p =
1 3 2 -10 -20 -16

Cociente
3 + 5 2 + 11 + 13 +1
2
= ( + 3) + 2
+ 2 + 4 + 2 + 4
De forma simblica

>> syms x;
>> p1=x^3+5*x^2+11*x+13;
>> p2=x^2+2*x+4;
>> p=p1/p2
p =
(x^3 + 5*x^2 + 11*x + 13)/(x^2 + 2*x + 4)
>> simplify(p)
ans =
x + (x + 1)/(x^2 + 2*x + 4) + 3

La funcin deconv nos proporciona el cociente y el resto de la divisin entre dos


polinomios.

>> p1=[1 5 11 13];


>> p2=[1 2 4];
>> [q r]=deconv(p1,p2)
q = 1 3 %Coeficientes del polinomio x+3
r = 0 0 1 1 %Coeficientes del resto x+1

Derivada
La regla de derivacin de cada trmino de un polinomio es

= 1

Mediante la funcin diff(p,n) calculamos la derivada n del polinomio p de forma
simblica

>> syms x;
>> p=x^3+4*x^2-3*x-2;
>> diff(p) %Primera derivada del polinomio p
ans =
3*x^2 + 8*x - 3
>> diff(p,2) %Segunda derivada del polinomio p
ans =
6*x + 8

ING. LUIS MONCADA TORRES 5


Modelamiento y Simulacin de Procesos UNT - 2017

La funcin polyder calcula la derivada de un polinomio expresado en forma de vector


formado por los coeficientes.
>> p=[1 4 -3 -2];
>> polyder(p)
ans =
3 8 -3

Integral
La integral de cada uno de los trminos del polinomio se calcula mediante la frmula
+1
=
+1
La funcin int calcula la integral de forma analtica, suponiendo que la constante de
integracin vale 0
>> syms x; %Declaramos variable simblica
>> p=4*x^3+4*x^2-2*x-2;
>> int(p)
ans =
x^4 + (4*x^3)/3 - x^2 - 2*x

La funcin polyint calcula la integral cuando se expresa un polinomio como vector


formado por los coeficientes
>> p=[4 4 -2 2];
>> polyint(p)
ans =
1.0000 1.3333 -1.0000 2.0000 0

Races de un polinomios
Cuando se expresa un polinomio de forma simblica se utiliza la funcin solve
>> syms x; %Declaramos variable simblica
>> p=x^5-3.5*x^4+2.75*x^3+2.125*x^2-3.875*x+1.25;
>> solve(p)
ans =
2
-1
1/2
i/2 + 1
1 - i/2

Cuando se expresa un polinomio como vector formado por los coeficientes, se emplea
la funcin roots.
>> p=[1 -3.5 2.75 2.125 -3.875 1.25];
>> roots(p)
ans =
2.0000
-1.0000
1.0000 + 0.5000i
1.0000 - 0.5000i
0.5000

Conocidas las races del polinomio podemos calcular el vector que guarda los
coeficientes mediante poly
>> r=[2 -1 1+0.5i 1-0.5i 0.5]; %races del polinomio
>> poly(r)

ING. LUIS MONCADA TORRES 6


Modelamiento y Simulacin de Procesos UNT - 2017

ans = 1.0000 -3.5000 2.7500 2.1250 -3.8750


1.2500
Obtenemos el polinomio p a partir de sus races

Factorizacin
La funcin factor convierte un polinomio expresado en forma simblica en factores
>> syms x; %Declaramos variable simblica
>> p=x^3-6*x^2+11*x-6;
>> factor(p)
ans =
(x - 3)*(x - 1)*(x - 2)

Expansin
La funcin expand realiza operaciones con polinomios, por ejemplo, devuelve el
polinomio p a partir de sus factores
>> syms x; %Declaramos variable simblica
>> p=(x - 3)*(x - 1)*(x - 2);
>> expand(p)
ans =
x^3 - 6*x^2 + 11*x - 6
>> p=(x-1)^3+2*(x+3)^2+x^2-2*x-2;
>> expand(p)
ans =
x^3 + 13*x + 15

Ecuaciones diferenciales
Resolucin exacta de ecuaciones diferenciales ordinarias
Para resolver de forma exacta una o varias ecuaciones diferenciales, MATLAB
dispone de la orden dsolve. Por defecto, la variable independiente es t, pero se puede
usar cualquier otra variable si se incluye como ltimo argumento:

dsolve(ec1, ,ecn) resuelve el sistema diferencial de ecuaciones y


condiciones iniciales (ec1, ., ecn)
dsolve(ec1,,ecn,var) resuelve el sistema diferencial de ecuaciones y
condiciones iniciales (ec1, ., ecn) y usa var como
variable independiente
La letra D se utiliza para representar la derivacin con respecto a la variable
independiente, es decir, u se escribe Du; las derivadas orden superior u, u, se
escriben D2u, D3u,
Ejemplos:
1 1
= , (0) =
2 4
>> u = dsolve('Du= u/2','u(0)= 1/4')
u =
exp(t/2)/4

Es posible obtener la solucin general de una ecuacin diferencial:


>> u = dsolve('Du=u/2')
u =
C2*exp(t/2)
Esto significa que la solucin de la ecuacin diferencial = /2 es.
() = 1 2 , (1 )

ING. LUIS MONCADA TORRES 7


Modelamiento y Simulacin de Procesos UNT - 2017

= 2 + , (1) = 0.5
>> u = dsolve('Du= 2*t+u','u(1)= 0.5')
u =
(9*exp(-1)*exp(t))/2 - 2*t 2

El operador simblico dsolve no siempre puede encontrar una solucin de forma


cerrada (algo probable puesto que slo clases particulares de EDOs pueden ser
resueltas en forma simblica cerrada).
Y cuando no podemos resolver la EDO de manera simblica, debemos cambiar a un
solucionador numrico.
Ejemplos:
Para el intervalo de [0,5], calcular:
= 2 (0) = 0
>> tspan = [0 5]; %Definimos los limites
>> u0 = 0; %Valor de u con t=0
>> [t,u] = ode45(@(t,u) 2*t, tspan, u0);
>> plot(t,u) %Graficamos el resultado

ING. LUIS MONCADA TORRES 8

You might also like