Sunteți pe pagina 1din 64

HERRAMIENTAS COMPUTACIONALES

I. Q. Jos Antonio Zamora Plata


Introduccin a
Matlab
Volumen
1


1
Qu es MATLAB?
MATLAB es un programa que proporciona al usuario un ambiente apropiado
para el desarrollo de clculos totalmente integrados, es decir, MATLAB integra
anlisis numrico, clculo matricial, visualizacin grfica en un entorno muy
completo donde los problemas y sus soluciones son expresados del mismo
modo en que se escribiran matemticamente. Por ello, MATLAB opera
interactivamente ejecutando una por una, las instrucciones que el usuario va
introduciendo. Esto le permite al usuario resolver distintos problemas
numricos en una fraccin de tiempo menor al que le tomara el escribir un
programa en algn lenguaje de programacin. Otra de sus cualidades,
permite guardar una serie de instrucciones, a manera de guin o texto, en un
archivo o programa interpretativo que se ejecuta con solo llamarlo con el
nombre de archivo asignado. Esto es, se puede usar como un lenguaje de
programacin amigable al usuario con caractersticas mucho ms avanzadas
y ms fciles de utilizar que en los lenguajes tales como Fortran, C o Visual
Basic.
El programa MATLAB tiene muchas funciones predefinidas, sin embargo,
tambin es posible construir otras funciones a partir de las instrucciones y
funciones de MATLAB al crear archivos M. Las principales caractersticas de
Matlab son clculos con vectores y matrices que incluyen:
Operaciones matemticas de la misma forma que una
calculadora.
Efecta operaciones con matrices y vectores.
Resuelve ecuaciones lineales.
Encuentra las races de un polinomio.
Realiza inversin de matrices y determina valores propios de
vectores.


2
Dibuja grficos en 2 y 3 dimensiones.
Realiza ajuste de curvas e interpolacin de datos tabulados.
Resuelve derivadas e integrales numrica y simblicamente.
Evala ecuaciones diferenciales ordinarias.
Clculos estadsticos, y
Diseo de sistemas de control
Para realizar lo anterior, MATLAB tiene diferentes cajas de herramientas,
llamadas toolbox, que proporcionan funciones especializadas
(procesamiento de seales, sistemas de control, identificacin de sistemas,
optimizacin y estadstica).

El ambiente de MATLAB muestra en cualquier momento ayuda y guas de
cualquier instruccin o funcin, lo que facilita el aprender a utilizar el
programa.
Cmo iniciar MATLAB?
Hay dos formas de iniciar el programa: Del men inicio seleccionar el
programa MATLAB.





3

Del escritorio dar doble clic en el icono de MATLAB, y esperar a que
aparezca la ventana siguiente.



Esta ventana es el lugar fundamental desde donde se interacciona con
MATLAB. La cadena de caracteres >> es el indicativo de peticin de
ordenes de MATLAB, esto significa que MATLAB est esperando una orden
u operacin matemtica para responder.




4
Operaciones Bsicas
MATLAB realiza matemticas simples de la misma forma que una
calculadora. A continuacin se dan algunos ejemplos.
>>5 + 2
=
7
Para reducir los espacios entre lneas se escribe el comando:
>> format compact
>>5 + 2
=
7
Para regresar al formato anterior, utilice
>> format loose

Asignacin de valores a variables
La asignacin de valores a las variables escalares es similar a la de otros
lenguajes de programacin. Teclee a = 4, A = 6
Observe en la pantalla que la asignacin se repite para confirmar lo que
usted a hecho. Esta es una caracterstica de MATLAB. La repeticin puede
eliminarse al terminar la asignacin con punto y coma (;). Pruebe a = 4; A
= 6;
MATLAB considera a los nombres de una manera sensible; es decir, el
nombre a no es lo mismo que A. Valo en este ejemplo.


5


MATLAB tambin almacena informacin facilitando los clculos como
sigue:
>>16 + 28;
>>
El punto y coma (;) significa que no hay respuesta visible pero si efecto ya
que existe un resultado oculto, podemos pedir la respuesta escribiendo
ans que es la abreviatura de answer, y realizar otra operacin.
>> ans * 5
=
220
Las variables escritas en MATLAB pueden definirse en funcin de otras
variables.
>> b = a 30
b =
-15

Las variables que se crean en la asignacin no es necesario declararlas.
Un vector rengln se puede asignar como a = [ 1 2 3 4 5 ]. Los elementos
del vector deben ir separados por espacios o comas.
Nuevamente la repeticin confirma la asignacin. Observe que se ha
tomado la nueva asignacin de a.
Un vector columna se puede introducir de diferentes maneras. Intntelo.
b = [1; 2; 3; 4; 5]


6
b = [1.
2 .
3 .
4 .
5] .
Generan el mismo vector. El smbolo . indica la tecla Enter. Tambin se
puede transponer un vector rengln con el operador (apostrofo).
b = [ 1 2 3 4 5]
Una matriz de valores en dos dimensiones se puede asignar como sigue:
A = [ 1 2 3; 4 3 1; 7 8 9 ]
A = [ 1 2 3 .
4 3 1 .
7 8 9 ] .
Los valores almacenados por una variable pueden examinarse en cualquier
momento tecleando el nombre; por ejemplo:
b, A
Adems, se puede obtener una lista de todas las variables usadas con la
instruccin who o si se quiere con ms detalle teclee whos
Existen algunas variables predefinidas, por ejemplo, pi, i, j, exp(1).

Tambin es posible asignar valores complejos a las variables debido a que
MATLAB emplea la aritmtica compleja. Para hacer esto, es conveniente
asignar un nombre a la variable, por lo general se elige i o j, para la raz
cuadrada de -1.
i = sqrt(-1)
Entonces se puede asignar un valor complejo como x = 2 + i*4



7
Edicin de la lnea de comando
Para recordar rdenes previas MATLAB usa las flechas del
teclado. Las flechas arriba y abajo nos dan las lneas
anteriores y posteriores.
Limpiar la lnea: se utiliza la tecla Esc
Las expresiones: separadas por comas son (visibles), y las
expresiones separadas por punto y coma son (resultados
ocultos).

>> a = 2 + 6, b = 1 + 3; c = 2 + 8
a =
8
c =
10

Observe que la variable b no se muestra.
Operaciones Matemticas
Las operaciones se manejan de manera directa indicando el operador y la
secuencia lgica. Los operadores comunes en orden de preferencia son:

^ Exponenciacin
* / Multiplicacin y divisin
\ Divisin por la izquierda
+ - Adicin y sustraccin

Estos operadores trabajan en modo de clculo. Introduzca 2*pi
Tambin se pueden incluir variables escalares reales. Los resultados de los
clculos se pueden asignar a una variable y = pi / 4 o simplemente ser
desplegados como y ^2.45
Los clculos pueden involucrar cantidades complejas, Usando la x definida
anteriormente escriba
3*x


8
1 / x
x ^2
x + y

El verdadero potencial de MATLAB se demuestra con su capacidad para
realizar clculos con matrices. El producto interno de dos vectores
(producto punto) se puede calcular usando el operador *, (a * b) y, de la
misma manera, el producto externo (b * a). Para ilustrar la multiplicacin
vector-matriz, primero redefinimos a y b,
a = [ 1 3 3]
y
b = [4 5 6]
Una vez definidas realice las operaciones a*b y b*a
Ahora, intentemos con a*A o A*b
Qu ocurre cuando las dimensiones no son las requeridas por las
operaciones? Para verlo, escribamos A*a
La operacin no se realiza debido a que las dimensiones de las matrices
son distintas.
La multiplicacin matriz-matriz se lleva a cabo de la misma forma que A*A
Tambin son posibles las operaciones mezcladas con escalares: A / pi
Es importante recordar siempre que MATLAB aplicara las operaciones
aritmticas simples en forma de vectores y matrices, si es posible. En
ocasiones, se querr llevar a cabo el clculo paso por paso en una matriz o
vector. MATLAB tambin puede hacer eso. Por ejemplo, A^2 da como
resultado una multiplicacin matricial de A consigo misma. Pero, Qu
hacer si queremos elevar al cuadrado cada elemento de A? Esto se puede
hacer con A .^ 2
El punto que precede al operador ^ significa que la operacin ser llevada
a cabo paso por paso (o elemento a elemento). El manual de MATLAB
llama a stas operaciones entre arreglos.


9
Cuando el operador divisin / se usa con matrices, el uso de una matriz
inversa est implcito. Por tanto, si A es una matriz cuadrada no singular,
entonces B / A corresponde a la multiplicacin por la derecha de B por la
inversa de A. Un camino ms largo para hacer esto es usar a la funcin
inv; esto es, B*inv (A); sin embargo, usar el operador divisin es ms
eficiente, ya que X = B/A se resuelve, de hecho, como el conjunto de
ecuaciones X*A=B usando un esquema de descomposicin/eliminacin.
La "divisin por la izquierda" (\, diagonal invertida) se usa tambin en las
operaciones con matrices. Como se mencion, A \ B corresponde a la
multiplicacin por la izquierda de B por la inversa de A. sta ahora se
resuelve como el conjunto de ecuaciones A*X=B, un calculo comn en
ingenieria.
Por ejemplo si c es un vector columna con valores 0.1, 1.0 y 2, la solucin
de A * x = c, donde A fue definida antes, puede obtenerse al escribir
c = [0.1 1.0 2.0] y despus, x =A \ c

Uso de funciones predefinidas
MATLAB y sus cajas de herramientas (toolbox) tienen una rica coleccin de
funciones predefinidas. Se puede usar la ayuda en lnea para encontrar
ms informacin acerca de ellas. Una de sus propiedades importantes es
que operan directamente sobre cantidades vectoriales y matriciales.
Por ejemplo, intente log(A)
Observe que la funcin logaritmo natural se aplica en un estilo de arreglo,
elemento por elemento, a la matriz A. La mayora de las funciones, como
sqrt, abs, sin, acos, tan, exp, operan en una forma de arreglo. Ciertas
funciones, como la exponencial y la raz cuadrada, tambin tienen
definiciones de matriz. MATLAB evaluar la operacin de la matriz cuando
se agregue la letra m al nombre de la funcin. Pruebe con sqrtm(A)
Un uso comn de las funciones es evaluar una frmula para una serie de
argumentos. Cree un vector columna t que contenga valores de 0 a 100 en
incrementos de 5, con la siguiente instruccin.


10
t = [ 0:5:100]
Compruebe el nmero de entradas en el arreglo t con la funcin length (t)
Ahora, supongamos que quiere evaluar una formula y = f (t), donde la
formula se calcula para cada valor del arreglo de t, y el resultado se asigna
a una posicin correspondiente en el arreglo y. Por ejemplo,
y = t .^0.34 - Iog10(t) + 1 ./ t

Algunas de las funciones predefinidas son:
inv(A) es una funcin que calcula la inversa de la matriz. Tambin
se obtiene la solucin al emplear el operador de divisin matricial a la
izquierda, x = A \ b. Esta ecuacin utiliza el mtodo de factorizacin
LU, que es una modificacin de la eliminacin gaussiana.
eig(A) calcula los valores propios asociados con la matriz cuadrada
A.
lu (A) calcula la factorizacin LU de la matriz A.
qr(A) calcula la factorizacin QR de la matriz A.
svd(A) calcula la descomposicin en valores singulares de la matriz A.
rank(A) devuelve el rango de la matriz A.
cond(A) devuelve el numero de condicin de A.
norm(A) calcula la norma de la matriz A.
poly(A) encuentra el polinomio caracterstico de la matriz A.




11
Ejercicio.
En la siguiente ecuacin calcularemos el factor acntrico de Pitzer Curt del
acrilonitrilo donde aplicaremos el uso de las variables en MATLAB.

Las frmulas y datos del acrilonitrilo requeridos son los siguientes
w = -1 log10 [ p
sat
/ pC]
P
sat
= exp ( A-B / ( T
sat
+C))
p [=] mmHg T
sat
[=] K Tr = T
sat
/ TC Tr = 0.7
PC = 35.5 bar TC = 536 K A = 15.9253 B = 2782.21 C = -
51.15
760mmHg = 1.01325bar

Intente resolverlo sin consultar la solucin

SOLUCIN CON MATLAB
>>tc = 536; pc = 35.5; % Se almacenan los datos en MATLAB
>> tsat = 0.7 *tc % Se escribe la formula en MATLAB
tsat = 375.2000 % Se obtiene la Tsat
>> A = 15.9253; B =2782.21; C = -51.15; % Se almacenan los datos en MATLAB
>> psat = exp (A-B / ( tsat

+ C )) % Se escribe la formula en MATLAB
psat =
1.5400e+003
>> psat = psat / 760 * 1.01325
psat =
2.0532 % presin en bar

RESPUESTA
>> w = -1 log (psat /pc)
w =
0.2378


12
Matrices y Vectores
Existen muchas formas de manipular las matrices en MATLAB, ya que el
programa nos proporciona mecanismos fciles y rpidos para insertar,
extraer y manipular subconjuntos de ellas, identificando los subndices de
inters. El conocimiento de estas caractersticas es clave para poder usar
MATLAB de manera eficiente.

En su forma elemental, las matrices y vectores solo son listas de nmeros
reales en formatos diferentes.
Un vector q es una lista de n nmeros llamados:
a) vector fila o rengln, y
b) vector columna
a) (x1, x 2,...x n ) b)
|
|
|
|
|
|
.
|

\
|
x
.
.
.
x
1



El conjunto de todos los n-vectores (de valor real) se denota con R
N
, de
modo que los puntos de R
N
se llaman vectores. Los conjuntos R
N
cuando
n es pequea son muy conocidos. El conjunto R
1
= R es la recta numrica
real, el conjunto R
2
es el plano cartesiano y el conjunto R
3
esta formado
por puntos o vectores en el espacio tridimensional.

Una matriz m x n es el conjunto rectangular de nmeros con m filas y n
columnas as una matriz general de 2 x 3 tiene la siguiente forma:

(

=
23 22 21
13 12 11
a a a
a a a
A





13
Aqu se utiliza la convencin de que las entradas de la matriz a i j estn
indicadas de modo que el primer subndice i se refiere a la fila y el
segundo subndice j a la columna.

OPERACIONES BSICAS CON VECTORES

Iniciando la sesin con MATLAB veremos como introducir un vector
rengln o fila y cual es su respuesta en MATLAB

>> A = [ 4 5 6 ]
A =
4 5 6

Es importante colocar el vector vectores entre corchetes [ ]

Para agregar otra fila se teclea el primer vector seguido de un punto y
coma posteriormente se teclea el segundo vector dejando espacio entre
nmero y nmero. De esta forma se puede escribir el nmero de filas
deseadas como sigue:

>> B = [4 5 6; 1 2 3; 7 8 9]
B =

9 8 7
3 2 1
6 5 4


El punto y coma dentro del corchete separa las filas y los espacios
separan a los elementos.
Tambin se puede emplear

>> B = [ A ; 123 ;789 ]

Otra forma de construir un vector fila o rengln en MATLAB es de la
siguiente forma

>> A = [ 2 : 6 ]


14
A =
2 3 4 5 6


En este caso los dos puntos (: ) son un operador general, con ellos se
puede entender como desde... hasta. En el ejemplo anterior la orden para
MATLAB fue crear un vector fila desde 2 hasta 6.

La construccin de un vector columna en MATLAB es de la siguiente
forma:

>>B = [ 2: 6 ]'

y MATLAB responde

B =
2
3
4
5
6


Otra forma de construir un vector columna es:


>>A = [7; 5; 3]
A =

3
5
7


>> A = [9 5 1; 3 6 7]
A =

7 6 3
1 5 9

Si deseramos cambiar un elemento de alguna columna o fila se escribe:
>> A = ( 1, 3)
=
1



15
MATLAB indica cual es el nmero que se encuentra en el rengln 1,
columna 3

Ahora cambiaremos el nmero 1 por el 8 de la siguiente forma

>>A(1,3 ) = 8
A =
9 5 8
3 6 7

Retomando el rengln 1 nuevamente
>> A (1, : )
=
9 5 8

Recordando la columna 2

>>A ( : ,2 )
=
5
6

Donde el operador ( : ) significa desde todo hasta todo

Se puede eliminar parte de una matriz o vector asignndole la matriz vaca:

>>A (1, : ) = [ ]
=
3 6 7

Es fcil realizar suma, multiplicacin y la divisin escalar en MATLAB, una
adicin vectorial se define como una adicin de componentes, del mismo
modo, la multiplicacin escalar se define como una multiplicacin de
componentes.
SUMA

>> A = [ 22 14; 46 13]; B = [41 27; 62 18];

>> A + B
=
63 41
108 31



16
La principal restriccin para poder sumar dos matrices es que las matrices
deben ser del mismo tamao. No se puede sumar una matriz de 4 x 3 con
una de 6 x 2, aun cuando ambas tengan 12 entradas.
MULTIPLICACIN

>> A *B
=

1476 2692
846 1770

>>

RESTA

>> A B
=
-19 -13
-16 - 5
>>


INVERSA DE (A) *B

>>A \ B
=
0.9358 - 0.2765
1.4581 2.3631


A* INVERSA (B)

>>A / B
=
0.5043 0.0214
-0.0235 0.7575




17
COMANDOS DE OPERACIONES BSICAS EN MATLAB

OPERACI N S MBOLO EJEMPLO
Adi c c i n, a + b + 12 + 8
Subs t r ac c i n, a - b - 75 - 23
Mul t i pl i c a c i n, a x b * 25 * 14
Di v i s i n, a b / o \ 81 / 4 o 4 \81
Expone nc i a l , a
b
^
5^2

MATRICES ESPECIALES

Existen matrices con diferentes formas como son:

MATRIZ CUADRADA

Es una matriz que tiene el mismo nmero de filas y columnas es decir una
matriz de n x n:

(
(
(

=
5 6 0
9 7 8
2 3 4
A


MATRIZ DIAGONAL

Es una matriz cuadrada cuyas nicas entradas diferentes de cero estn a
lo largo de la diagonal principal, esto es, s aij = 0 solo si i = j:
(
(
(

=
3 0 0
0 2 0
0 0 1
B


para introducir una matriz diagonal en MATLAB se teclea

>> diag ([1 2 3 ])





18
MATRIZ IDENTIDAD

La matriz identidad es aquella cuyas entradas diagonales son 1:


(
(
(

=
1 0 0
0 1 0
0 0 1
I


MATRIZ CERO

Es una matriz donde todas sus entradas son cero. En MATLAB para
definir una matriz A de m x n cuyas entradas sean todas iguales a cero,
basta escribir A = zeros (m, n )

MATRIZ TRANSPUESTA

La transpuesta de una matriz A m x n se obtiene al intercambiar filas y
columnas.
Sea la matriz A 3 x 2:
(
(
(

=
7
2
1
5
1
2
A


La transpuesta de la matriz A se denota como A
t
y se teclea A

(


=
7 2 1
5 1 2
A


Solucin de ecuaciones lineales
La motivacin fundamental para el estudio de vectores y matrices se basa
en el anlisis de la solucin de un sistema de ecuaciones lineales. Los
algoritmos que posibilitan el hallazgo de estas soluciones de ecuaciones


19
estn basados en ciertas clases de manipulaciones de matrices. Para
resolver cierto tipo de problemas matemticos, es necesario trabajar
simultneamente con dos o ms ecuaciones en varias variables. En este
caso, las ecuaciones determinan lo que se llama un sistema de ecuaciones.
Estas ecuaciones se pueden organizar en una ecuacin matricial donde la
manipulacin se define ahora en el sentido matricial.

Resolviendo el siguiente sistema de tres ecuaciones con tres incgnitas ( x1,
x2, x3 )



1 x1 + 2 x2 + 3 x3 = 366
4 x1 + 5 x2 + 6 x3 = 804
7 x1 + 8 x2 + 0 x3 = 351



(
(
(

=
(
(
(

+ +
+ +
+ +
351
804
366
0 8 7
6 5 4
3 2 1
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x




(
(
(

=
(
(
(

(
(
(

351
804
366
x
x
x
0 8 7
6 5 4
3 2 1
3
2
1

A X = b

Donde A es la matriz coeficiente del sistema, X es el vector incgnita y b el vector
de trminos independientes.
Primero el programa MATLAB tiene que conocer la matriz de coeficientes de la
ecuacin.
>> A = [1 2 3; 4 5 6; 7 8 0 ]
A =


20

0 8 7
6 5 4
3 2 1
, y el vector del lado derecho.
>> b = [ 366; 804; 351]
b =
366
804
351
Este problema tiene una nica respuesta siempre que el determinante de la
matriz A sea distinto de cero. Si se requiere obtener el determinante de la
matriz A, solo se tendr que escribir en MATLAB el comando det(matriz)
>> det (A)
=
27
Ahora MATLAB tiene toda la informacin necesaria y por lo tanto ya se puede
resolver el sistema de ecuaciones anterior. De tal forma que se pueda encontrar
la solucin de x = A \ b escribiendo en MATLAB
>> x = A \ b
x =
25.000
22.000
99.000

La respuesta de x interpreta los tres valores de las incgnitas x1, x2 y x3 en
forma ordenada:

X(1) = 25 X(2) = 22 X (3) = 99


21

Ejercicio
Hemos visto la manera de definir matrices y vectores en el programa;
ahora demostraremos cmo multiplicar una matriz por un vector usando
un producto vectorial [ A ] [ b ] con matrices.

Se carga la matriz A, y el vector b en el programa:


(
(
(

=
5 2 1
2 3 1
1 4 2
A

(
(
(

=
4
1
2
b



>> A = [ 2 4 -1; 1 3 2;-1 -2 5 ]

A =

5 2 1
2 3 1
1 4 2



>> b = [ 2; 1; 4]

b =

4
1
2

Ahora le pedimos a MATLAB que nos ayude a encontrar un vector x de 3
elementos tal que: Ax = b

>> x = A \ b % x = inversa (A)*b

x =

1111 . 1
7778 . 2
111 . 7



En el siguiente ejemplo encuentre un vector b de cinco elementos tal que b
= A *x


22
Se carga la matriz A en el programa:



(
(
(
(
(
(





=
9 . 6 8 . 9 2 9 1
4 . 8 5 . 2 1 . 1 1 . 4 9 . 0
9 . 5 7 . 4 7 . 9 9 . 9 8 . 0
1 . 5 5 . 2 3 8 3 . 6
6 . 1 6 9 . 3 8 . 0 2 . 0
A


Y el vector x


(
(
(
(
(
(

=
1 . 8
1 . 6
6 . 4
4 . 2
6 . 2
x



Esto es en MATLAB:

>> A = [-0.2 0.8 3.9 6 -1.6;6.3 8 3 2.5 5.1;-0.8 -9.9 9.7 4.7 5.9;

-0.9 -4.1 1.1 -2.5 8.4; 1 9 2 9.8 6.9];

>> x = [ -2.6; 2.4; 4.6; 6.1; 8.1];




23
La multiplicacin A por x se efecta al teclear

>> b = A * X
b =

27 . 82
85 . 80
06 . 42
68 . 42
02 . 33


Eliminacin de Gauss

El mtodo ms conocido y quiz el ms sencillo para resolver sistemas de
ecuaciones lineales, en especial los que tienen un nmero moderado o grande de
incgnitas es la eliminacin de Gauss, que funciona eliminando variables de
las ecuaciones, y que consiste en convertir en cero a los elementos que se
encuentran por debajo de la diagonal principal.
Las operaciones elementales que se utilizan en la eliminacin de Gauss se
pueden interpretar como operaciones de filas en la matriz aumentada. Estas
consisten en:
Permutar dos filas.
Multiplicar una fila por un nmero diferente de cero.
Sumar un mltiplo de un escalar a otro rengln.

A continuacin se resuelve con ayuda de MATLAB el siguiente sistema de
ecuaciones por eliminacin de Gauss.
Dado que la primera entrada de la matriz es igual a 4, el primer paso es
transformar en cero todas las entradas de la primera columna debajo del
nmero cuatro.
El sistema de ecuaciones es el siguiente:
4 x1 9 x2 + 2 x3 = 5


24
2 x1 4 x2 + 6 x3 = 3
x1 x2 + 3 x3 = 4
SOLUCIN
La matriz aumentada del sistema es:

(
(
(

4
3
5
3 1 1
6 4 2
2 9 4

Introducimos en MATLAB la informacin de la matriz aumentada:

>>A = [ 4 -9 2 5; 2 -4 6 3; 1 -1 3 4 ]
A =

4 3 1 1
3 6 4 2
5 2 9 4


Ahora empezaremos por llevar a cabo la eliminacin en MATLAB que como
ya se menciono anteriormente, se van convirtiendo en ceros los escalares que
se encuentre por debajo de la diagonal principal de acuerdo a la matriz
aumentada.
Comencemos por eliminar el 2 que es la primera entrada de la segunda fila
de la matriz A y entonces le pedimos a MATLAB que necesitamos sumar la
primera ecuacin multiplicada por (-2/4) a la segunda ecuacin,
escribimos en MATLAB la orden de la siguiente forma

>>A ( 2 , : ) = A ( 2 , : ) 2/4* A (1 , : )
A =

4 3 1 1
5 . 0 5 5 . 0 0
5 2 9 4


El primer dato indica el rengln, los dos puntos indica a todos los
elementos del rengln.



25
El siguiente paso es eliminar el 1 que es la primera entrada de la tercera
fila, de la misma forma que en el paso anterior le pedimos a MATLAB que
necesitamos sumar la primera ecuacin multiplicada por (-1/4) a la
tercera ecuacin y de esta forma hacer ceros a la primera columna de la
entrada principal. Escribimos en MATLAB.

>>A ( 3 , : ) = A ( 3 , : ) 1/ 4 *A (1 , : )
A =

75 . 2 5 . 2 25 . 1 0
5 . 0 5 5 . 0 0
5 2 9 4

Observe que en este paso la primera fila se mantiene sin cambio,
finalmente sumando a la segunda fila multiplicada por (-1.25 / 0.5) a la
tercera fila de la siguiente forma se obtiene
>> A (3 , : ) = A ( 3 , : ) - 1.25 / 0.5 *A ( 2 , : )
A =

5 . 1 10 0 0
5 . 0 5 5 . 0 0
5 2 9 4


que en trminos de sistemas de ecuaciones queda como

4 x1 9 x2 + 2 x3 = 5
0.5 x2 + 5 x3 = 0.5
- 10 x3 = 1.5

As de esta forma es ms fcil encontrar el valor de x3 al efectuar un
simple despeje e ir sustituyendo en las ecuaciones anteriores para poder
obtener los valores de x2 y x1.
x 3 = -0.15, x 2 = 2.5, y x 1 = 6.95


En MATLAB la solucin requiere cargar la matriz A, el vector b y encontrar la
incgnita x como sigue:
>> A [4 9 2; 0 0.5 5; 0 0 -10]


26
A =

10 0 0
5 5 . 0 0
2 9 4



>>b = [5; 0.5; 1.5; ]


b =

5 . 1
5 . 0
5


>> x = A \ b
x =

15 . 0
5 . 2
95 . 6



La instruccin x = rref(A) resuelve directamente el sistema propuesto.

15 . 0
50 . 2
95 . 6
1 0 0
0 1 0
0 0 1



Ejercicio. Utilizando MATLAB resuelva los siguientes incisos:

Sea A la matriz de 3 x 3

(
(
(

=
5 3 4
1 1 2
4 3 1
A


( a ) Reste dos veces la primera fila de la segunda.
( b ) Sume cuatro veces la primera fila de la segunda.
( c ) Divida la segunda fila entre 5.
( d ) Reste 15 veces la segunda fila de la tercera.



27
Cambio de formato (Corto, largo y racional)
En este ejercicio se ilustran algunas de las diferentes formas en que
MATLAB despeja nmeros usando los comandos format long, el format
short y format rational. Utilice el programa para resolver el siguiente
sistema de ecuaciones:


2 x1 4.5 x2 + 3.1 x3 = 4.2
x1 + x2 + x3 = - 5.1
x1 - 6.5 x2 + x3 = 1.3




>> a = [2 -4.5 3.1 ;1 1 1; 1 -6.5 1]

a =

1 2 . 6 1
1 1 1
1 . 3 5 . 4 2



>>b = [ 4.2; -5.1; 1.3]
b =

3 . 1
1 . 5
2 . 4


>> format long

>> x = a \ b

x =
-12.04949494949495
-0.88888888888889
7.83838383838384

el resultado tiene una precisin de 15 dgitos

>> format short

>> x = a \ b
x =


28

05 . 8
85 . 0
36 . 12



>> format rational

>> x = a \ b
x =

165 / 1328
75 / 64
227 / 2791




Races de polinomios
Hay muchas funciones de MATLAB que permiten operar sobre los arreglos
como si sus entradas fueran coeficientes o races de ecuaciones
polinomiales. Por ejemplo, introduzca
>> c = [ 1 -15 59 -81 36 ]

Y despus
>> r = roots( c)

Con ello, las races del polinomio x
4
15x
3
+ 59x
2
81x + 36 se imprimirn
y adems se almacenaran en el vector r.
De acuerdo al polinomio anterior las races del polinomio c son:
r =
9.7720
3.0000
1.2280
1.0000

Una vez encontradas las races del polinomio MATLAB dice que estas
races son vectores columna


Siguiente ejemplo. Sea el polinomio x
4
16x
3
+ x
2
+22x + 116, hallar sus
races.


29

En este caso se deben introducir en MATLAB tambin los trminos nulos
ya que MATLAB no tiene forma de saber cuales son a menos que se
indiquen, por lo tanto el polinomio se introduce como:
>> p = [ 1 16 0 22 116 ]


>> r = roots ( p )

r =
15.8839
2.2995
-1.0917 + 1.4086i
-1.0917 - 1.4086i

Dos de las races son complejas, y MATLAB trabaja indistintamente con
nmeros reales y complejos.


MULTIPLICACIN DE POLINOMIOS
La multiplicacin de polinomios en MATLAB se realiza utilizando la
funcin convolucin para dar los coeficientes del producto polinomial. Para
ello, escriba el comando conv y entre parntesis ambos polinomios.
Considere como ejemplo el producto de los dos polinomios siguientes

A (x)= x
3
+ 4x
2
+6x +8 y B (x)= x
3
+3x
2
+5x +12


En MATLAB se introducen los polinomios as:

>>A = [1 4 6 8 ]; B = [1 3 5 12 ];


El producto se obtiene escribiendo la funcin conv en MATLAB

>> C = conv (A, B )

C =
1 7 23 58 102 112 96
el resultado es un polinomio de sexto grado

C (x ) = x
6
+7x
5
+23x
4
+58x
3
+ 102x
2
+112x +96


30

DIVISIN DE POLINOMIOS
La funcin desconvolucin puede usarse para dividir un polinomio entre
otro. Por ejemplo,
>>[q,r] = deconv(c, d)
Produce el vector q que muestra los coeficientes del polinomio cociente, y el
vector r son los coeficientes del polinomio residuo.
ADICIN DE POLINOMIOS
MATLAB no mantiene una funcin directa proveniente del polinomio. La
suma de polinomios se da si ambos vectores son del mismo tamao.
Sumando los polinomios anteriores en MATLAB esto es:
>> D = A + B
D =
2 7 11 20
Expresado algebraicamente como
D( x ) = 2x
3
+7x
2
+11x +20
Cuando dos polinomios son de orden diferente, en el polinomio de ms bajo
orden se le deben colocar ceros para hacerlo del mismo orden, como en el
siguiente ejemplo.
Considere la suma de los polinomios C y D escribiendo en MATLAB:
>> E = C + [0 0 0 D]
E =
1 7 23 60 109 123 116
la respuesta es un polinomio de sexto grado

E(x) = x
6
+ 7 x
5
+ 23x
4
+ 60x
3
+ 109x
2
+ 123x + 116


31
DERIVACIN DE POLINOMIOS
Para llevar a cabo la realizacin de la derivada se usa la funcin polyder
en MATLAB.
Se tiene el polinomio E(x) = x
6
+ 7 x
5
+ 23x
4
+ 60x
3
+ 109x
2
+ 123x + 116
>> P = [ 1 7 23 60 109 123 116 ] ;

>> F = polyder (P)

F =
6 35 92 180 218 123

el resultado de la derivacin es un polinomio de quinto grado

F = 6 x
5
+ 35 x
4
+ 92 x
3
+ 180 x
2
+ 218 x + 123

Grafica de un polinomio
Para obtener la grfica del polinomio anterior en MATLAB, empezaremos
por utilizar la funcin linspace
Esta funcin genera un vector x con N puntos igualmente espaciados a
partir de un valor de x mnimo y uno mximo; es decir, nos permite
manejar un rango de puntos que mejor ajuste al polinomio en el eje x.
Escribimos la funcin en MATLAB
>> x = linspace ( -2 , 3 ) ;

produce un vector de 100 entradas con la primera igual a -2 y la ultima
igual a 3
linspace (-2,3,10) produce diez datos equidistantes entre -2 y 3.

EVALUACIN DE UN POLINOMIO EN MATLAB

Dado que MATLAB puede sumar, multiplicar, dividir, restar y diferenciar
polinomios basados en los vectores fila de sus coeficientes, tambin debe
ser capaz de evaluarlos. En MATLAB esto es fcil de lograr con la funcin
polyval (evala el polinomio).



32
Introduciendo p (x) = x
3
+ 2 x
2
+ 10 x 20 en MATLAB:

>> P = [ 1 2 10 -20];

Evaluando p(x) en x y almacenando el resultado en v con el comando
polyval
>> v = polyval ( p , x );

Para obtener la grfica del polinomio anterior en MATLAB, es necesario
utilizar la funcin plot , esta funcin traza una curva al unir los puntos (x
(i) , y (i)) en secuencia y de manera automtica, esta funcin se escribe en
MATLAB de la forma:
>> plot (x , v)

La funcin title permite colocar un titulo a la grfica seguido del vector
entre parntesis y comillas esto se escribe en MATLAB como sigue:
>>title ( ' x ^3 + x ^2 + 10x -20 ' )

Es importante marcar los ejes de la figura con el comando xlabel (x) y,
ylabel (y)

>> xlabel ( 'x ')

>> ylabel ( y )

Sabemos que es un polinomio de tercer orden y que por consiguiente tiene
tres races las cuales se obtienen con la funcin roots mencionada
anteriormente.
>> r = roots (p)
r =
- 1.6844 + 3.4313i
- 1.6844 3.4313i
1.3688

El resultado es 1.3688 lo cual indica que tiene una raz real.
>> grid




33



Etiquetas en grficos 2-D
La orden ms comn para representar datos bidimensionales es la orden
plot. Esta orden representa conjuntos de datos sobre ejes apropiados y
conecta los puntos con lneas rectas.

Esto se escribe en MATLAB

>> x = linspace (0,2*pi,30);
>> y = sin (x);
>> plot (x,y)



34


Este ejemplo crea 30 datos en el intervalo 0 x 2 para formar el eje
horizontal del grfico y crea otro vector que contiene la funcin seno de
los datos en x. La orden plot abre una ventana grfica, llamada ventana de
figura, escala los ejes para ajustar los datos, representa los puntos y a
continuacin conecta los puntos una lnea recta. Tambin aade una
escala numrica y coloca de forma automtica marcas en ambos ejes. Si ya
existe una ventana de la figura, plot borra la ventana de la figura actual y
dibuja una nueva grfica.

Ahora representamos un seno y un coseno sobre la misma grfica:
>> z = cos (x);
>> plot (x, y, x, z)
>> grid




35





Este ejemplo muestra que se puede representar ms de un conjunto de
escalares al mismo tiempo, simplemente dando a plot otro par de
argumentos y automticamente dibuja la segunda curva en un color
diferente sobre la pantalla. De esta forma se pueden representar al mismo
tiempo muchas curvas suministrando parejas adicionales de argumentos a
plot. La instruccin hold on permite ingresar varias graficas con varios
plot. Para desactivar se emplea hold off.

REJILLAS Y ETIQUETAS
La orden grid aade una rejilla sobre la grafica actual en las marcas, este
comando ayuda a observar la solucin de una forma mas exacta. En
MATLAB se escribe:
>> grid

Los ejes horizontal y vertical se pueden etiquetar respectivamente con las
ordenes xlabel e ylabel. La orden title aade una lnea de texto en la parte
superior de la grfica. Si se toma como ejemplo la grfica anterior del seno
y del coseno, entonces se escribe en MATLAB.


36

>> xlabel ( Variable independiente x ) % etiqueta del eje x

>> ylabel ( Variable dependiente y ) % etiqueta del eje y

>> titlle (curvas seno y coseno) % titulo de la grfica



ESTILO DE LNEAS, MARCADORES Y COLORES

Se puede especificar el tipo de color y estilo de lnea para las graficas
segn se desee escribiendo un argumento adicional a plot despus de
cada par de datos como se escribe

>> plot (x, y, 'm+' ,x, y, 'g* ' )


SMBOLO COLOR SMBOLO ESTILO DE LNEA
y Amarillo . Punto
m Magenta o Crculo
c Cien x Marca x
r Rojo + Ms
g Verde * Estrella
b Azul - Lnea slida
w Blanco : Lnea punteada
k Negro - . Lnea punto -raya




ESCALAS DE LOS GRFICOS 2-D

loglog es lo mismo que plot, excepto que se usan escalas
logartmicas para ambos ejes.
>>loglog (x,y)
Semi logx es lo mismo que plot, excepto que se usa escala
logartmicas en el eje x y escala lineal en el eje y.
>>semilogx (x,y)
Semi logy es lo mismo que plot, excepto que usa escala logartmica
en el eje y y escala lineal en el eje y.
>>semilogx (x,y)




37
OPCIONES PARA EL GRFICO
Suponga que quiere graficar con MATLAB una funcin lineal de una sola
variable.
Por ejemplo: y = 3x^2 + 2x - 4 en el intervalo [-3 ,5 ]
Primero se define el dominio de x.
>> x = linspace (-1 , 5 );

Despus se evala la funcin
>>y =3* x . ^2 + 2-x - 3;
Ahora slo se grafica con
>> plot (x, y)
Una vez realizada la grafica de la funcin no lineal utilizaremos el
comando grid y las etiquetas para interpretar mejor la presentacin de la
grafica
>> grid
>> title ( y = 3x2 + 2x -4)
>> x label (x)
>> y label (y)



38
El resultado final es mostrado en la figura siguiente.

Aplicando la opcin semilogy (x,y) se obtiene




39

Mnimos Cuadrados
El mtodo de mnimos cuadrados sirve para hallar un mejor ajuste de
curvas generadas a partir de un conjunto de datos. El termino mnimos
cuadrados es simplemente una forma abreviada de decir minimizar la
suma del error al cuadrado. En MATLAB, la funcin polyfit resuelve el
problema de ajuste por mnimos cuadrados. Para ilustrar el uso de esta
funcin, utilizaremos el siguiente ejemplo.
El calor especifico Cp (cal/Kgmol) de una sustancia varia con la
temperatura de acuerdo a la siguiente tabla.
Puntos 1 2 3 4 5 6
T (K) 280 650 1000 1200 1500 1700
Cp (cal / Kgmol
)
32.7 45.4 52.15 53.7 52.9 50.3

Para usar polyfit debemos dar los datos y el orden que deseamos que
mejor se ajuste a los datos. Si escogemos n = 1 como el orden, se
encontrara la mejor aproximacin lneal. Esto se llama regresin lineal.
Por otra parte si escogemos n = 2, se buscar un polinomio cuadrtico.
Para los datos tabulados, se observa que el calor especfico aumenta con la
temperatura hasta el valor tabulado de 1200K, pero disminuye
posteriormente a temperaturas ms altas. Esto sugiere utilizar un
polinomio con curvatura en vez de una recta.
Introduciendo est informacin como polinomios en MATLAB se procede a
obtener el polinomio de interpolacin por el mtodo de mnimos
cuadrados.


40
Se carga la informacin necesaria en MATLAB como son los datos de la
temperatura y calor especifico.

>> t = [ 280 650 1000 1200 1500 1700] ;

>> cp = [ 32.7 45.4 52.15 53.7 52.9 50.3] ;

Donde la temperatura es la variable independiente (abscisa) y el calor
especifico es la variable dependiente (ordenada)
En MATLAB se carga el orden del polinomio de ajuste o regresin:
>> n = 2 ;

La funcin polyfit de MATLAB ajusta el polinomio de segundo grado a los
datos de temperatura y calor especifico
>> p = polyfit ( t, cp, n );
p =
2954 . 19 0537 . 0 0000 . 0
La salida de polyfit es un vector fila de los coeficientes de los polinomios.
En este caso la solucin es:
y = 0.0000x
2
+ 0.0537x + 19.2954.
Para comparar la solucin del ajuste de curvas a los datos, representemos
grficamente ambos:
>> ti = linspace ( 200, 1800,100 );

Crea el eje x para representar el polinomio.

>> z = polyval ( p, ti );

Llama a la funcin polyval de MATLAB para evaluar el polinomio p con
los datos en ti.
>> plot (t, cp,o,t, cp,ti ,z,' : ' )

Representa los datos originales x e y marcando los datos con ' o ',
representa otra vez los datos originales dibujando lneas rectas entre ellos
y los polinomios ti y z usando una lnea a tramos.
>> xlabel ( ' temperatura ' )
>> ylabel (' cp (cal / k gmol )' )
>> title (Variacin de temperatura del Mn3O4 de acuerdo al Cp (cal / Kgmol)' )


41



Interpolacin
La interpolacin se define como la forma de estimar valores de una
funcin entre aquellos dados por un conjunto de datos. La interpolacin es
una herramienta valiosa cuando no se puede avaluar rpidamente el valor
de una funcin en puntos intermedios, existen mltiples mtodos para
hacer la interpolacin dependiendo de la hiptesis que se hagan. Ms
an, es posible interpolar en ms de una dimensin.
Tal como se muestra en las grficas, MATLAB dibuja lneas que interpolan
linealmente los puntos. Para estimas el Cp en cualquier momento dado se
necesita usar la funcin interp1.
Retomando el ejemplo anterior, el calor especifico del Mn3O4 a una
temperatura de 800 K y utilizando la funcin interp1en MATLAB esto a:
>> Cp = interp1( t,cp, 800)
Cp =
48.2929


42
Interpolacin Bidimensional
La interpolacin bidimensional se basa en las mismas ideas
fundamentales que la interpolacin unidimensional. Sin embargo, como su
nombre lo indica, la interpolacin bidimensional interpola funciones de
dos variables, z = f (x, y) para ilustrar esta dimensin, considrese el
siguiente problema

Las densidades de las soluciones acuosas del cido sulfrico varan con la
temperatura y la concentracin de acuerdo con la siguiente tabla:
T ( C )
C ( % ) 10 30 60 100
5 1.0344 1.0281 1.0140 .9888
20 1.1453 1.1335 1.1153 1.0885
40 1.3103 1.2953 1.2732 1.2446
70 1.6923 1.6014 1.5753 1.5417


43

>> temp = [10 30 60 100];
>> conc = [5 20 40 70];
>> dens = [1.0344 1.0281 1.0140 .9888;
1.1453 1.1335 1.1153 1.0885;
1.3103 1.2953 1.2732 1.2446;
1.6923 1.6014 1.5753 1.5417];
ti = [15 30 50];
ci=[40 50 60];
>>z= interp2 ( temp, conc, dens, ti, ci );
>>plot(ti,z,':')

El resultado es la siguiente grafica



Para grficos en 3-D se emplea la orden plot3(x, y, z)


44
Expresiones Simblicas
Las expresiones simblicas son cadenas de caracteres, que representan
nmeros, funciones, operadores y variables, las variables no necesitan
tener valores definidos. La aritmtica simblica es el ejercicio de resolver
estas ecuaciones simblicas aplicando reglas e identidades conocidas a los
smbolos exactamente en la forma en que se aprendi a resolver en
lgebra y clculo. En esta seccin los comandos y funciones introducidas
en esta prctica pueden hacer ms fcil esto. Ahora le podemos pedir a
MATLAB que manipule expresiones que se calculan con smbolos
matemticos en lugar de operar con nmeros. A continuacin mostramos
algunos ejemplos de expresiones simblicas, junto con su equivalente en
MATLAB.
EXPRESIN SIMBLICA REPRESENTACIN EN MATLAB
n
x 2
1
' 1 / (2 * x^ n) '
x 2
1
y = y = ' 1 / sqrt (2x) '
cos ( x
2
) sin (2x)

' cos ( x^2 ) - sin (2 * x ) '

(

=
d c
b a
M M = sym ( ' | | d c b a , ; , ' )

Las funciones simblicas de MATLAB permiten manipular estas
expresiones de muchas formas.
>> diff (sym( ' cos ( x) )' ) % deriva cos (x) con respecto a x
ans =
- sin ( x )


45
La expresin simblica fue definida con la instruccin sym y usando
comillas simples para decirle a MATLAB que ' cos ( x ) ' es una cadena de
caracteres y dar a entender que se trata de una expresin simblica, en
vez de una expresin numrica. Dependiendo de la versin de Matlab que
se utilice se requerir o no incluir sym en la orden.
EJEMPLO
>> diff (sym('x^5- 4*x^3 +2*x- 3')) % El argumento es equivalente a ' x^5 4*x^3
+2*x - 3 '
ans =
5*x^4-12*x^2+2
Si no se emplean los parntesis se obtendrn valores no deseados o
errores.
>> diff x^5- 4*x^3 +2*x- 3
??? Error using ==> diff
Too many input arguments.
Las expresiones simblicas tendrn su mayor aplicacin en el rea del
clculo.

Variables simblicas
Cuando se trabaja con expresiones simblicas, conteniendo ms de una
variable, solo una es la variable independiente, si a MATLAB no se le
especifica cual es la variable independiente entonces se selecciona una de
acuerdo a la siguiente regla
1 .- La variable independiente por defecto de una expresin simblica es la
nica letra minscula distinta de i y j , que no es parte de una


46
palabra. Si no existe tal carcter, se elige x. Si el carcter no es nico,
se elige el ms cercano alfabticamente a x.
2 .- La variable independiente por defecto, conocida algunas veces como
la variable libre, en la expresin 1 / ( 5 + cos ( x ) ) es x ; la variable
libre en la expresin 3* y + z es y; y la variable libre en la expresin
a + sin (t) es t .
3 .- La variable simblica libre en la expresin sin ( pi / 4 ) cos (3 /5)
es x puesto que esta expresin es una constante simblica, que no
contiene variables simblicas. Usando la funcin symvar se puede
preguntar a MATLAB qu variable de una expresin simblica se toma como
variable independiente.
EJEMPLO
>> symvar ( ' a * x + y ' )
ans =
a
x
y
>> symvar (' a*t + s / ( u + 3 ) ' )
ans =
'a'
's'
't'
'u'
>> symvar ( ' sin ( omega) ' )
ans =
omega

S usando la regla symvar no puede encontrar una variable simblica por
defecto se supondr que no hay ninguna y devuelve a x. Esto siempre se


47
cumple tanto para expresiones que contienen variables de varios
caracteres, como constantes simblicas que no contienen variables.

Para cada una de las expresiones simblicas siguientes, usaremos la
sintaxis de MATLAB para crear la expresin simblica equivalente:
A = ax
2
+ bx + c B = 5 x 2 x 3
dx
d
2
+ +
>> A = ' a*x^2 + b*x + c '
A =
a*x^2 + b*x + c
>> B = diff (sym( ' sqrt ( 3*x^2 + 2*x +5 ) ' ))
B =
1/2/(3*x^2+2*x+5)^(1/2)*(6*x+2)
Ejercicios
Para las siguientes expresiones, encuentre la variable independiente
devuelta por la funcin symvar en MATLAB
Z = 3ac + 4b 2 f = s
3nt
x = 4a + 3c + b
2
+ 1
n = 3r + 2s
2
+5 q = r + p 2 k 3
2
+ y =
p
k
v
z

) 2 sin(
) 3 tan(

>> z = symvar ( ' 3*a*c + 4*b 2 ' )
>> f = symvar ( ' s ^ 3*n*t ' )
>> x = symvar ( ' 4*a +3*c +b^2 +1')
>> n = ( ' 3*r +2*s^2 + 5 ' )
>> q = symvar ( ' r + sqrt ( 3*k^2 +2*p ' )
>> y = symvar (' tan(3*z) / sin (2*v) ( k / p) ' )


48
La funcin sym se usa para definir explcitamente una expresin simblica
en los casos en los que pueda existir ambigedad.


Operaciones sobre expresiones simblicas
Una vez creada una expresin simblica, probablemente se puede querer
combinar de alguna forma, puede desear obtener parte de una expresin o
encontrar el valor numrico de una expresin simblica, hay muchas
herramientas simblicas en MATLAB que permiten realizar estas tareas.
Todas las funciones simblicas actan sobre expresiones simblicas
devolviendo expresiones simblicas, el resultado puede verse algunas
veces como un numero, pero es una expresin simblica representada
internamente por una cadena de caracteres.
Si la expresin es un polinomio racional, se puede expandir como un
polinomio racional, se puede extraer el numerador y el denominador
usando la funcin numden en MATLAB. Es importante que no se dejen
espacios entre los operadores para que la funcin no indique errores.

EJEMPLO
z =
x b
ax
2

m =
5
3
x
3
2
x
2
3
2
+ h =
1 x
x 3
1 x 2
3 x
2

+


>> z = 'a*x^2/(bx)' % crea una expresin simple
>> [n,d]=numden(sym(z)) % obtiene el numerador y el denominador
n =
a*x^2

d =
b - x

>> m = ' 3 /2 *x^2 + 2 / 3 *x 3 / 5 ' % racionaliza y separa trminos
[n ,d ] = numdem (sym(m))
n =
45*x^2+4*x3


49
d =
30
>> h = '(x^2+3)/(2*x1)+3*x/(x1)'
>> [n,d]=numden(sym(h))
n =
x^2+3+6*x
d =
2*x1



50
OPERACIONES AVANZADAS
MATLAB tiene la capacidad de realizar ms operaciones avanzadas sobre
expresiones simblicas. La funcin compose combina expresiones, la
funcin finverse obtiene la inversa funcional de una expresin y la
funcin symsum obtiene la suma simblica de una expresin

Dadas las expresiones:
F =
2
1
1
x +
g = sin ( x)
Encuentre una expresin compuesta para f (g(x)).
>> f = ' 1 / ( 1 +x^2 ) ' ;

>>g = ' sin (x) ' ;

>> compose (sym(f), sym(g))

ans =
1/(1+sin(x)^2)

>> compose ( sym(g), sym(f )) % encuentra una expresin para g ( f (x) )
ans =
sin(1/(1+x^2))
La funcin finverse devuelve la funcin inversa de una expresin y avisa
si el resultado no es nico
>> f1= '1 / tan (x) '

>>finverse ( sym(f1) )
ans =
atan(1/x)

>> t ='log(x)' ; finverse (sym(t) )
ans =
exp (x)



51

Integracin
La funcin de integracin int (f ), donde f es una expresin simblica,
intenta obtener otra expresin simblica f tal que diff (f) = f , la integral
es ms complicada que la diferenciacin, la integral o antiderivada puede
no existir en forma cerrada o puede existir pero el software no puede
encontrarla. Cuando MATLAB no puede encontrar la antiderivada,
devuelve el comando sin evaluarlo.

La funcin int se usa para expresar una funcin simblica, se puede usar
argumentos opcionales para especificar la variable simblica y los limites
de una integral definida.


>> z = ' cos ( s +2*x ) ' % crea una funcin simblica
z =
cos ( s + 2 * x )

>> int ( z ) % integra con respecto a x variable
independiente
ans =
1/2* sin (s+2*x)

> > int ( z, ' s ' ) % integra con respecto a s
ans =
sin (s + 2 *x )


>> U = '(log(x))^2/x' % Crea una funcin simblica

U =
(log(x))^2/x


>>int ( U ) % Integra con respecto a la variable x
ans =
1/3*log(x)^3

Con MATLAB es posible resolver integrales definidas del tipo numrico:


52
g =
}
b
a
dx x g ) (
Hay varios mtodos de integracin numrica, y son llamados cuadratura
numricas en donde MATLAB requiere de la funcin quad, con dicha
funcin podemos obtener los valores de la integral g, y con la funcin
trapz MATLAB calcula la integral usando el regla del trapezoide, estas
funciones pueden ser tiles cuando hay solo puntos discretos de datos en
la integral.

Quad: es un mtodo numrico de encontrar el rea bajo la grafica de una
funcin, esto es calcula la integral definida.


COMANDOS DE INTEGRALES DEFINIDAS
trapz (x, y ) Calcula la integral de y como una funcin de x. Los
vectores de x y y tiene la misma longitud (xi ,yi) representando
puntos sobre la curva. El espacio entre los puntos no tiene que
ser equidistante y el valor de x no tiene que ser almacenado,
sin embargo los intervalos negativos son considerados como
una integral negativa.

trapz ( y ) Calcula la integral de y anterior, y los valores de x son
considerados a tener espacio con distancia 1.

Calcule la siguiente integral con diferentes mtodos usando MATLAB

}

1
0
dx
2
x
e




53
Resolviendo por el mtodo del trapezoide primero hay que crear un vector
con valores de x de 5 y 10

>> x5 = linspace ( 0,1,5 );
>>x10 = linspace ( 0, 1, 10 );
luego creamos el vector y como una funcin de x
>> y5 = exp (-x5.^2) ;
>> y10 = exp ( -x10.^10);
Una vez dados los datos a MATLAB la integral puede ser calculada
>> format short;
>>integral5 = trapz ( x5, y5)
integral5 =
0.7430
>> integral10 = trapz ( x10, y10 )
integral10 =
0.9245

Calcule la siguiente integral con MATLAB

F = dx
x
x
}

1
0
3
1

Representacin en MATLAB
>> F = int(('x^3/sqrt(1-x)'),'0','1') % integra con respecto a x

F =
32 / 35
>> 32/ 35
=
0.9143

Calcule la siguiente integral con MATLAB



54
G = ) x x 4 (
4
0
2
}
dx
Representacin en MATLAB

>> G = int ( '4*xx^2

', '0', '4' )
G =
256/3

Ecuaciones diferenciales simples
Las ecuaciones diferenciales ordinarias son algunas veces difciles de
resolver. MATLAB, da una herramienta potente para ayudar a encontrar
las soluciones de las ecuaciones diferenciales. La funcin dsolve calcula
las soluciones simblicas de ecuaciones diferenciales ordinarias. Las
ecuaciones son especificadas con la letra D para indicar diferenciacin.
La solucin general de la ecuacin de primer orden es la siguiente:
dx
dy
= 1 + y
2

Resolviendo mediante MATLAB
>>dsolve ( ' Dy = 1+ y^2 ' ) % Calcula la solucin general
ans =
tan(t+C1)
donde C1 es una constante de integracin.
Resolviendo la misma ecuacin con la condicin inicial y ( 0 ) = 1 se
reproducir:
>> dsolve ( 'Dy=1+y^2' , 'y(0)=1') % aadiendo la condicin inicial
y =
tan(t+1/4*pi)
La variable independiente se puede especificar usando esta forma:
>> dsolve ( 'Dy =1+y^2','y(0)=1','v') % Calcula la solucin a dy / dv
ans =
tan(v+1/4*pi)


55
Para resolver el siguiente ejemplo de ecuaciones diferenciales ordinaria es
importante conocer que es un archivo-M.

Archivos .m
Los archivos m permiten almacenar varias instrucciones en un documento
que acta como programa de cmputo. Estos archivos hacen que las
funciones sean herramientas muy poderosas para evaluar rdenes que
encapsulan funciones matemticas tiles o secuencia de rdenes que
aparecen a menudo cuando se resuelve algn problema mayor.
A causa de esta potencia MATLAB proporciona una estructura para crear
funciones propias en la forma de archivos-M de texto almacenado en el
conmutador.

Para crear un archivo-M, desde la ventana de inicio de MATLAB, se da un
clic al men File
Luego se da un clic en new y de ah se va a M-file y en seguida aparecer
la ventana block de notas donde se escribirn las instrucciones
necesarias. Para familiarizarse con este archivo considere el siguiente
ejemplo de la figura.



56

Escriba las 17 lneas del programa y despus de clic en el icono Run, .
Para poder ejecutarse debe darle nombre al archivo. En este ejemplo se le
llam basico1, la extensin se asigna automticamente.
Hay algunas instrucciones que no se han descrito pero si conocen un poco
de ingls notar que se explican por s mismas. La orden pause permite
que vaya notando los cambios que se presentan sobre la figura.

Runge Kutta mltiple
Al evaluar un sistema de ecuaciones diferenciales el empleo de los archivos
M y la declaracin de funcin del usuario ofrecen mayor potencialidad a
Matlab. A continuacin se da un ejemplo aplicando un sistema de


57
ecuaciones diferenciales ordinarias y resolviendo el sistema por medio del
mtodo de Runge Kutta de cuarto orden.

PROBLEMA DE APLICACIN
Se tienen tres tanques de 1000 litros de capacidad cada uno,
perfectamente agitados. Los tres recipientes estn completamente llenos
con una solucin cuya concentracin es 30 g/ l. A partir de cierto
momento se alimenta al primer tanque una solucin que contiene 50 g / l
con un gasto de 300 l / min ( hay un arreglo entre los tres recipientes tal
que al haber un gasto al primero, la misma cantidad fluye de este al
segundo, del segundo al tercero y de este afuera del sistema, con lo cual
se mantiene constante el volumen en todos ello). Determine las
concentraciones en cada tanque despus de los 10 minutos de haber
empezado agregar solucin al primero.

Solucin:
Balance de soluto en el primer tanque
Acumulacin = Entrada - Salida

dt
V dC
1 1
= 300(50) - 300C1
como V1 = 1000 y permanecen constantes

dt
dC
1
= 15 0.3 C1 y C1 (0) = 30
Balance de soluto en el segundo tanque
V2
dt
dC
2
= 300 C1 - 300C2
Como V2 = 1000 litros

dt
dC
2
= 0.3 ( C1 C2 ) y C2 ( 0 ) = 30



58

Balance de soluto en el tercer tanque
V3
dt
dC
3
= 300 C2 300C3
Como V3 = 1000 litros

dt
dC
3
= 0.3 ( C2 C3 ) y C3 ( 0 ) = 30
El sistema de ecuaciones diferenciales resultante es:
( )
( )
3 2
3
2 1
2
1
1
C C 3 . 0
dt
dC
C C 3 . 0
dx
dC
C 3 . 0 15
dx
dC
=
=
=

Una vez que se tienen las ecuaciones para cada uno de los tanques se
escriben en archivo-M de la siguiente forma:

function otra = mezcla (t,x)
otra =[15-0.3*x(1);0.3*x(1)-0.3*x(2);0.3*x(2)-0.3*x(3)];

En la ventana de comando de Matlab escriba las siguientes lneas y
observar la grafica del sistema.
>> [t,x]=ode45('mezcla',0,10,[30;30;30])

>> plot(t,x,'o',t,x,'-')
MATLAB da el resultado de las concentraciones de cada tanque de 0 a
10 minutos despus de haber agregado la solucin al primero.


59


Intente resolver el siguiente sistema de ecuaciones diferenciales
Resuelva el siguiente sistema de ecuaciones diferenciales
3 2
3
2 3 1
2
1 2 3
1
x * 47 . 0 x * 47 . 0
dx
dy
x * 59 . 0 x * 07 . 0 x * 52 . 0
dx
dy
x * 52 . 0 x * 12 . 0 x * 1 . 0 15
dx
dy
=
+ =
+ + =


Solucin
function xprim = nombre (t,x)
xprim = [15+.1*x(3)+.12*x(2)-.52*x(1) ;
.52*x(1)+.07*x(3)-.59*x(2);
0.47*x(2)-.47*x(3)];
Guarde el archivo con el nombre que desee, en este ejemplo se le asigna
nombre.m

[t,x]=ode45('nombre',0,10,[15;10;0]);





60
Anlisis estadstico
La caja de herramientas estadstica contiene muchas caractersticas
para el anlisis estadstico; sin embargo, los clculos estadsticos
comunes pueden realizarse con el conjunto bsico de funciones de
MATLAB. Esto es, se puede generar una serie de nmeros aleatorios con la
funcin rand y aplicar medidas estadsticas a la muestra de datos.
>>n = 0 : 5 : 1000;
>>num = rand(size(n));
Probablemente entienda por que es importante el uso del punto y coma al
final de las instrucciones anteriores, en especial si no tuvo cuidado en
hacerlo.
Si desea ver una grafica de los datos aleatorios intente
>>plot (num)
Aqu se ha supuesto que los nmeros estn distribuidos normalmente con
una media de cero y una varianza (y desviacin estndar) de uno. Pruebe
con las funciones
>>mean(num)
>> std(num)
Para hallar los valores mnimos y mximos utilice,
>>min(num)
>> max(num)
Hay una funcin conveniente para trazar un histograma de los datos:
>> hist(num,10)
donde 10 es el numero de compartimientos.
Si quiere ajustar un polinomio con algunos datos por mnimos cuadrados,
puede usar la funcin polyfit.
Intente el siguiente ejemplo:
>> t = 0 : 5
>> y = [ -0.45 0.56 2.34 5.6 9.45 24.59 ]
>> coef = polyfit( t, y, 3 )


61
Los valores de coef son los coeficientes polinomiales ajustados. Para
generar el valor calculado de y, utilice
>> yc = polyval (coef, t)
y para graficar los datos contra la curva ajustada
>> plot ( t, yc, t, y, 'o )
La grafica de la curva continua es lineal por partes; por tanto, no parece
muy suave. Para mejorarla, se hace lo siguiente:
>> t1 =[0:0.05:5 ];
>> yc = polyval(chef, t1)
>> plot (t1, yc, t, y, 'o' )

Bibliografa

The Student Edition of MATLAB. The Ultimate Computing
Environment for Technical Education. Version 4 Users Guide.
The Math Works Inc. Prentice Hall. USA 1995.
Golubitsky, M., Dellnitz, M., Algebra lineal y ecuaciones
diferenciales, con uso de Matlab. Thomson, Mxico 2001.






62
INGENIERA QUMICA.
FACULTAD DE ESTUDIOS SUPERIORES ZARAGOZA
Centro de Cmputo
I. Q. Jos Antonio Zamora Plata
Edificio de Tecnologa Planta Alta
zamora_plata@yahoo.com.mx
cel 5512 27 8083

consulta otros materiales en
http://mx.groups.yahoo.com/group/claseszamora


63
Tabla de contenido
Qu es MATLAB? .....................................................
Cmo iniciar MATLAB? .............................................
Operaciones Bsicas ...................................................
Asignacin de valores a variables ................................
Edicin de la lnea de comandos .................................
Operaciones matemticas ...........................................
Uso de funciones predefinidas ....................................
Matrices y Vectores .....................................................
Solucin de Ecuaciones lineales .................................
Eliminacin de Gauss .................................................
Cambio de formato .....................................................
Races de polinomios ..................................................
Grfica de un polinomio .............................................
Etiquetas en grficos 2-D ............................................
Mnimos cuadrados ...................................................
Interpolacin ..............................................................
Interpolacin bidimensional ........................................
Expresiones simblicas ...............................................
Variables simblicas ...................................................
Operaciones entre expresiones simblicas ..................
Integracin .................................................................
Ecuaciones diferenciales simples ................................
Archivos .m ................................................................
Runge Kutta mltiple .................................................
Anlisis estadstico .....................................................
Bibliografa .................................................................

S-ar putea să vă placă și