Sunteți pe pagina 1din 32

Tutorial de Matlab

Matlab Básico

1.1 Introducción
1.2 Características Básicas
1.3 Matlab como Calculadora
1.4 Números y Formatos
1.5 Variables
1.6 Caracteres y órdenes especiales en MATLAB
1.7 Explorador del espacio de trabajo (Workspace Browser)
1.8 Almacenar y recuperar datos
1.9 El comando "diary"
1.10 Comandos de lectura y Escritura
1.11 Funciones matemáticas en MATLAB
1.12 Otras funciones en matlab.
1.13 Vectores
1.14 Transposición de vectores
1.15 Matrices (Arrays)
1.16 Visualización de elementos de una matriz
1.17 Matemática de vectores con escalares
1.18 Matemáticas de arrays con arrays
1.19 Operadores Relaciónales y Lógicos en vectores
1.19.1 Operadores Relaciónales
1.19.2 Operadores Lógicos.
1.20 Manipulación de Texto
1.21 Representación ASCII de una cadena
1.22 Álgebra Lineal y Matrices
1.22.1 Adición de matrices:
1.22.2 Sustracción de matrices
1.22.3 Multiplicación de una matriz por un número
1.22.4 Multiplicación de matrices:
1.23 Clases de Matrices
1.23.1 Matriz Transpuesta
1.23.2 Matriz Simétrica
1.23.3 Matriz inversa
1.24 Determinante de una Matriz
1.25 Rango de una Matriz
1.26 Generación de matrices especiales en Matlab
1.26.1 Matriz identidad
1.26.2 Matriz Nula
1.26.3 Matriz Unidad
1.27 Funciones en matrices y vectores
1.28 Sistemas de Ecuaciones Lineales
1.29 Solución de sistemas lineales mediante matlab
1.29.1 Método de descomposición LU
1.29.2 Solución con el operador Slash (\ )
1.29.3 Solución por la matriz inversa
1.29.4 Método de reducción a la forma canónica
1.30 Funciones Poli nómicas
1.31 Raíces
1.32 Suma de Polinomios
1.33 Multiplicación de Polinomios
1.34 División de Polinomios:

Ing. Jaime Miguel Flores Mujica -1-


Tutorial de Matlab

1.1 Introducción:

El gran avance de la ciencia, en especial de las ramas de la ingeniería crea la necesidad de


recurrir a sistemas informáticos para encontrar soluciones rápidas a muchos problemas
reales, que se presentan en el área de la ingeniería.

MATLAB es un programa interactivo para computación numérica y visualización de datos,


ampliamente usado por Ingenieros de todas las especialidades tanto en el análisis y diseño,
posee además una extraordinaria versatilidad y capacidad para resolver problemas de
matemática aplicada, física, química, ingeniería, finanzas y muchas otras. Está basado en un
sofisticado software que permite resolver complicados problemas numéricos sin necesidad
de escribir un programa.

Es un entorno de computación y desarrollo de aplicaciones totalmente integrado orientado


para llevar a cabo proyectos en donde se encuentren implicados elevados cálculos
matemáticos y visualización gráfica de los mismos. Integra análisis numérico, cálculo
matricial, proceso de señal y visualización gráfica en un entorno completo donde los
problemas y sus soluciones son expresados del mismo modo en que se escribirían
tradicionalmente, sin necesidad de hacer uso de la programación tradicional.

El nombre de MATLAB proviene de la contracción de los términos Matrrix Laboratory y fue


inicialmente concebido para proporcionar fácil acceso a las librerías LINPACK y EISPACK, las
cuales representan en la actualidad dos de las librerías más importantes en computación y
cálculo matricial. MATLAB es un sistema de trabajo interactivo cuyo elemento básico de
trabajo son las matrices. El programa permite realizar de un modo rápido la resolución
numérica de problemas en un tiempo mucho menor que otros lenguajes de programación
tradicionales como Fortran, Basic o C.

MATLAB goza en la actualidad de un alto nivel de aceptación en escuelas colegios y centros


universitarios, como también en departamentos de investigación y desarrollo de muchas
compañías industriales. En entornos universitarios, por ejemplo, MATLAB se ha convertido
en una herramienta básica, tanto para los profesionales e investigadores, como una
importante herramienta para cursos universitarios, tales como sistemas e ingeniería de
control, álgebra lineal, procesamiento digital de imágenes y señales, etc. En el mundo
industrial, MATLAB está siendo utilizado como herramienta de investigación para la
resolución de complejos problemas planteados en la realización y aplicación de modelos
matemáticos en ingeniería. Los usos más característicos de la herramienta los encontramos
en áreas de computación y cálculo numérico tradicional, prototipaje algorítmico, teoría de
control automático, estadística, análisis de series temporales para el proceso digital de
señal.

MATLAB dispone en la actualidad de un amplio abanico de programas de apoyo


especializados, denominados Toolboxes, que extienden significativamente el número de
funciones incorporadas en el programa principal. Estos Toolboxes cubren en la actualidad
prácticamente casi todas las áreas principales del mundo de la ingeniería y la simulación,
destacando entre ellos el 'toolbox' de proceso de imágenes, control robusto, estadística,
análisis financiero, matemáticas simbólicas, redes neuronales, lógica difusa, identificación de
sistemas, simulación de sistemas dinámicos, etc. Además dispone del programa Simulink
que es un entorno gráfico interactivo con el que se puede analizar, modelizar y simular la
dinámica de sistemas no lineales.

MatLab emplea matrices porque con ellas se puede describir infinidad de situaciones de una
forma altamente flexible y matemáticamente eficiente. Una matriz de pixeles puede ser una
imagen o una película. Una matriz de fluctuaciones de una señal puede ser un sonido o una
voz humana. Y tal vez más significativamente, una matriz puede describir una relación lineal

Ing. Jaime Miguel Flores Mujica -2-


Tutorial de Matlab

entre los componentes de un modelo matemático. En este último sentido, una matriz puede
describir el comportamiento de un sistema extremadamente complejo. Por ejemplo una
matriz puede representar el vuelo de un avión a 40.000 pies de altura, o un filtro digital de
procesamiento de señales.

MatLab está disponible para una amplio número de plataformas: estaciones de trabajo como
SUN, Apollo, VAXstation y HP, VAX, MicroVAX, Gould, Apple Macintosh y PC AT compatibles
80386 o superiores. Opera bajo sistemas operativos UNIX, Macintosh y Windows.

1.2 Características Básicas

Luego de instalar el software en su computadora. Al ejecutarse MATLAB aparece en la


pantalla una ventana como se muestra en la figura. Desde esta ventana es dónde
interactuamos con MATLAB.

El prompt " >> " es el indicativo de petición de órdenes de MATLAB, el cual indica que
MATLAB está esperando una orden. Al lado de este símbolo ">>" aparecerá el cursor
parpadeando.

Cuando MATLAB da una respuesta, lo hará precedida de las letras "ans=" (que es la
abreviatura de answer).

Para empezar a utilizar MATLAB se debe conocer una serie de características, como que
MATLAB no tiene en cuenta los espacios en blanco a la hora de operar. Además, las
operaciones se evalúan de izquierda a derecha, con la operación de potencia teniendo el
orden de preferencia más alto, seguido por la multiplicación y la división (ambas con igual
preferencia), y seguidas por último por la suma y la resta (estas dos también con igual
preferencia).

1.3 Matlab como Calculadora.

Como se indico anteriormente, MATLAB realiza operaciones matemáticas simples, de la


misma forma que si fuera una calculadora científica. Veamos un pequeño ejemplo de cómo
realizar cálculos en MATLAB. Comenzaremos por operaciones sencillas, como sumas y
multiplicaciones:

Ing. Jaime Miguel Flores Mujica -3-


Tutorial de Matlab

>>4+6+2
>>4*25+6*22+2*99
>>2^2+1
Si introducimos las anteriores operaciones en MATLAB, obtenemos los siguientes resultados:

>> 4 + 6 +2
ans =
12

>> 4*25+6*22+2*99
ans =
430

>> 2^2+1
ans =
5

Las operaciones aritméticas básicas en MATLAB son:

OPERACIÓN SÍMBOLO EJEMPLO


Suma ( a + b ) + 5+3=8
Resta ( a - b ) - 32 - 12 = 11
Multiplicación ( a x b ) * 5 * 4 = 20
10 / 2 = 5 = 2 \ 10
División (a / b) /ó\
2 / 10 = 0,2 = 10 \ 2
b
Potencia ( a ) ^ 5 ^ 2 = 25

Es importante resaltar que la división en MATLAB puede hacerse en dos sentidos,


dependiendo de hacia que lado esté inclinada la barra (se realiza la división del número que
se encuentre "encima" de la barra entre el que esté "debajo", "encima / debajo" ó
"debajo \ encima").

Se pueden emplear paréntesis para alterar la preferencia en las operaciones, en cuyo caso la
evaluación se inicia dentro del paréntesis más interno y procede hacia afuera:
Como ejemplo tenemos lo siguiente:

>> 3^2-5-6/3*2
ans =
0
>> 3^2-5-6/ (3*2)
ans =
3
>> 4*3^2+1
ans =
37
>> (4*3)^2+1
ans =
145

1.4 Números y Formatos.

MATLAB sigue algunas reglas para visualizar resultados numéricos. Por defecto, si un
resultado es entero, MATLAB lo visualiza como un número entero. Cuando un resultado es
un número real, MATLAB lo visualiza con cuatro dígitos a la derecha del punto decimal. Si los

Ing. Jaime Miguel Flores Mujica -4-


Tutorial de Matlab

dígitos significativos en el resultado están fuera de este rango, se visualiza el resultado en


notación científica.

Aparte de estas conductas por defecto, se puede especificar un formato numérico diferente
usando la opción "Numerical Format", en el menú "Options", o escribiendo la orden
apropiada en MATLAB:

RESULTADO QUE SE
ORDEN DE MATLAB ACLARACIÓN
VISUALIZA
format long 35.83333333333334 16 dígitos
format short e 3.5833e+01 5 dígitos + exponente
format long e 35.83333333333334e+01 16 dígitos + exponentes
format hex 4041eaaaaaaaaaab hexadecimal
format bank 35.83 2 dígitos decimales
indica si un número es
format + +
positivo, negativo o cero
format rat 215 / 6 aproximación racional
format short 35.8333 visualización por defecto

A pesar de todos estos formatos de visualización, MATLAB no cambia la representación


interna de un número cuando se cambian los diferentes formatos: sólo se modifica la
visualización en pantalla.

1.5 Variables.

Una forma de realizar cálculos es almacenando la información en variables. MATLAB lo


hace de forma muy sencilla, como se muestra a continuación, en el siguiente ejemplo.

>> A = 4;
>> B = 6;
>> C = A + B
C=
10
>> manzanas = 4;
>> plátanos = 6;
>> fruta = manzanas + plátanos
fruta =
10

MATLAB tiene reglas acerca de los nombres de las variables y estas son:

• a).- Los nombres de variables deben tener una sola palabra. Si se quiere usar dos o
más palabras se utiliza el guión de subrayado para unirlas, por ejemplo:

"coste_fruta" en lugar de "coste fruta"

• b).-Las variable son sensibles a las mayúsculas, por ejemplo, las siguientes variables
son totalmente distintas:

"fruta”, "Fruta”, "FrUta”, "FRUTA”...

• c).-Las variables pueden contener hasta 19 caracteres (los caracteres más allá de 19
se ignoran).

Ing. Jaime Miguel Flores Mujica -5-


Tutorial de Matlab

• d).- Las variables deben comenzar con una letra, seguida por un número de letras,
dígitos o guiones de subrayado. No se permiten los caracteres de puntuación, que
muchos tienen un significado especial en MATLAB.

Además de estas reglas de denominación, MATLAB tiene variables especiales. Estas


variables especiales también pueden redefinirse, pero cuando volvamos a arrancar MATLAB
se reestablecen los valores iniciales. Algunas de ellas son:

ans Nombre por defecto de la variable usada para los resultados


pi Razón de una circunferencia a su diámetro
Número más pequeño tal que cuando se le suma 1, crea un número en coma
eps
flotante mayor que uno en el computador
inf Infinito, por ejemplo, 1/0
NaN Magnitud no Numérica (Not a Number), por ejemplo, 0/0
iyj i = j = sqrt (-1)
realmin El número real positivo más pequeño que es utilizable
realmax El número real positivo más grande que es utilizable

Las variables en el espacio de trabajo de MATLAB se borran con la orden "clear":

>> clear manzanas Borra solo la variable manzanas


>> clear A B Borra ambas variables A y B
Borra todas las variables en el espacio de
>> clear trabajo, y no se pueden recuperar (cuidado, no
se pide confirmación para esta orden)

1.6 Caracteres y órdenes especiales en MATLAB

Algunos caracteres especiales en MATLAB son:

• ; El punto y coma al final de la línea le indica a MATLAB que evalúe la línea,


pero que no se visualice la repuesta, como ejemplo:

>> A = 4;
>> B = 6
B=
6
>>

• , El símbolo de coma permite escribir varias sentencias en una sola línea,


visualizando el resultado de todas ellas.

>> A = 4 , B = 6
A=
4
B=
6
>>

• ... Los puntos suspensivos indican a MATLAB que la sentencia continúa en


la línea siguiente, como ejemplo tenemos:

>> A = 4 ; B = 6 ; C = 2 ;
>>D = A*2 + B*1…………
C*2

Ing. Jaime Miguel Flores Mujica -6-


Tutorial de Matlab

D=
18
>>

• % Este símbolo al inicio de una sentencia indica que lo que viene detrás es
un comentario, y que MATLAB lo ignora. Esta característica nos permite
facilitar la comprensión de lo que se esta haciendo, documentando cada paso
si fuera necesario:

>> manzanas = 2 % Definimos el numero de manzanas


manzanas =
2
>>

También se puede encontrar una serie de comandos especiales como:

Quit o Las órdenes "quit" o "exit" terminan la ejecución de


exit MATLAB
clear Borra todas las variables de la memoria, aunque no
afecta a lo que vemos en pantalla
clc Despeja la ventana de comandos
Despeja la ventana de gráficos, borrando la figura
clf
actual

1.7 Explorador del espacio de trabajo (Workspace Browser)

El espacio de trabajo de MATLAB es un área de memoria accesible desde la línea de


comandos de MATLAB. Para ver el contenido de ese espacio de memoria, se puede usar dos
comandos: who y whos. La diferencia entre ellos es:

Who: muestra una lista corta de las variables que se definieron en Matlab.
• Por ejemplo, si a definido las siguientes variables: A=25, B=2, y C=2*A+B, al
teclear who en la línea de comandos de MATLAB se obtendrá lo siguiente:

>> A = 25;
>> B = 2;
>> C = 2* A+B;
>> who
Your variables are:
A B C

Whos: muestra la lista de variables, el tamaño que ocupan, e información de como está
almacenada la variable.

• Cuando usamos estas órdenes, MATLAB no nos indica el valor de las variables,
simplemente da sus nombres. Para encontrar el valor de cada variable hay
que introducir el nombre de la variable en el indicativo o prompt de MATLAB, y
presionar Enter.

>> A = 25;
>> B = 2;
>> C = 2* A+B;
>> whos
Name Size Bytes Class
A 1x1 8 double array

Ing. Jaime Miguel Flores Mujica -7-


Tutorial de Matlab

B 1x1 8 double array


C 1x1 8 double array

Grand total is 3 elements using 24 bytes


>>
En MATLAB es posible recordar las órdenes previas que se han usado en el espacio de
trabajo mediante las teclas de flechas o cursores. Por ejemplo, pulsando la tecla de flecha
hacia arriba una vez, se obtiene la orden más reciente que se ha tecleado en MATLAB.
Pulsando la misma tecla repetidas veces, se obtendrán las órdenes anteriores en sentido
inverso una a una.

De forma similar, pulsando la flecha hacia abajo volvemos a desplazarnos hacia adelante. En
cualquier momento, se pueden emplear las teclas izquierda y derecha para mover el cursor
dentro de la orden y modificarla. De esta forma, se puede editar las órdenes, lo cual es muy
útil a la hora de corregir errores.

Para borrar todas las variables del espacio de trabajo de MATLAB, basta con teclear clear.
Sin embargo, si lo que queremos es borrar alguna variable concreta, pondremos clear
seguido del nombre de la variable, por ejemplo, >> clear A

Existe una forma de ver el espacio de trabajo de MATLAB, de igual forma que si utilizáramos
la orden whos, pero de una forma gráfica. Esto se consigue con el Explorador del espacio de
trabajo. Para ello, basta con ir a la opción Show Workspace del menú File o el botón de la
barra de herramientas Workspace Browser, como muestra la grafica.

El aspecto del workspace browser es el siguiente:

Desde aquí podemos borrar variables de forma directa.

Ing. Jaime Miguel Flores Mujica -8-


Tutorial de Matlab

Para renombrar una variable, basta con seleccionarla con el ratón y volver a clickar sobre
ella. Escribimos encima el nuevo nombre y pulsamos Enter.

1.8 Almacenar y recuperar datos

Además de recordar variables, MATLAB puede guardar y cargar datos en un archivo.


La orden "Save Workspace As…" en el menú "File" abre un cuadro de diálogo estándar
para guardar todas las variables actuales.

La orden "Load Workspace" en el menú "File" abre un cuadro de diálogo para cargar
variables de un espacio de trabajo guardado previamente.

Si cargamos variables que poseen el mismo nombre que las que se encuentran en el espacio
de trabajo de MATLAB, se cambian los valores de las variables a aquellos cargados en el
archivo.

También es posible teclear por pantalla las órdenes "Save" y "Load" para salvar o cargar el
espacio de trabajo, pero con especificaciones concretas, por ejemplo:

• Save. Almacena todas las variables del espacio de trabajo con formato
binario en un archivo llamado "matlab.mat". Los datos pueden recuperarse
con "Load"

• save nombre archivo. Usa el archivo "nombrearchivo. mat" en lugar del


archivo por defecto "matlab.mat"

• save nombre archivo variables. Guarda una selección de las variables del
espacio de trabajo actual que le indiquemos después del nombre del archivo.

• save nombre archivo keywords. Especifica las características de los


datos a ser guardados en formato ASCII, en lugar del formato binario -MAT.
Las palabras clave (keywords) válidas son:

• ascii (usa la forma ascii de 8 dígitos)


• double (usa la forma ascii de 16 dígitos)
• abs (indica que los datos están separados por tabuladores)

Load. Recupera todas las variables que están almacenadas en el archivo "matlab.mat"

Load nombrearchivo. Recupera las variables desde el archivo "nombrearchivo"

Load nombrearchivo.extensión. Lee el archivo "nombrearchivo.extensión" que puede


ser un archivo ASCII con un array rectangular de datos. El resultado es una matriz de
tamaño "m x n" con el mismo nombre que el archivo. Los datos ASCII deben estar en
formato de matriz, o MATLAB será incapaz de usarlos cuando se recuperan.

Si no salvamos el espacio de trabajo de ninguna forma, cuando reiniciemos MATLAB se


perderán todas las variables e información existentes que no hayamos guardado
anteriormente.

1.9 El comando "diary"

El comando diary crea un "diario" de las diferentes sesiones de MATLAB en un archivo que
se puede ver o modificar con cualquier procesador de texto. Este "diario" incluirá todos los

Ing. Jaime Miguel Flores Mujica -9-


Tutorial de Matlab

comandos que hayamos usado, así como su salida. Lo único que no mostrará serán las
gráficas.

Para empezar a grabar el diario, teclearemos >> diary, y para finalizar >>diary off. Si
se quiere usar un nombre determinado en el fichero, se realizara con: >>diary
nombre_archivo

1.10 Comandos de lectura y Escritura

Matlab provee una forma sencilla de leer variables desde el teclado y visualizar
mensajes en la pantalla a través de las siguientes funciones:

Input: Permite el ingreso de datos al programa a través del teclado asignándolo a una
variable, esta orden puede usarse con un mensaje en la línea de comandos. Luego de
imprimir el mensaje, la orden espera que el usuario digite el valor numérico, vector, matriz
o cualquier expresión valida de matlab.

>> z = imput ( );
o >> z = input (´ Ingrese un número ´);

Es decir asigna a la variable z el número ingresado.


Pero también es posible ingresar una cadena, esto se realiza con el siguiente
comando:

>> z = imput (`ingrese su nombre`, `s `)

Es decir a la variable z le asigna la cadena ingresada, en donde s indica que la


entrada que se realizara por teclado es una cadena.

fprintf: Permite la visualización de un valor numérico o el resultado de una


expresión guardada por el usuario.

>> vol = 49;


>> fprintf ( `el volumen de la esfera es: ´ %12.0 f \ n ´, vol )

En esta expresión (\ n ) indica que la impresión de la variable vol será en la


siguiente línea Además:

% 12.0 f : formato de un numero entero


% 12.5 f : formato de un numero real con 5 decimales

disp: Permite visualizar en pantalla un mensaje de texto o el valor de una matriz,


pero sin imprimir su nombre. En realidad disp siempre imprime vectores y/o matrices, lo
que quiere decir que las cadenas de caracteres se consideran un caso particular de
vectores. Ejemplo:

>> disp ( `Esto es una prueba ´) ;


>> disp (pi);
>>disp (`El programa ha terminado)
>> A = rand( 4,4)
>> disp(A)

1.11 Funciones matemáticas en MATLAB

Ing. Jaime Miguel Flores Mujica - 10 -


Tutorial de Matlab

MATLAB ofrece un sin número de funciones, las que aceptan como argumento
variables reales y/o complejas sin discriminación, así como argumentos matriciales.

Funciones Trigonométricas.

Función Descripción
sin(x) Seno de x
asin(x) Arcoseno de x
sinh(x) Seno hiperbolico de x
asinh(x) Arcoseno hiperbolico de x
cos(x) Coseno de x
acos(x) Arcoseno de x
acos(x) Arcocoseno(x)
cosh(x) Coseno hiperbolico de x
acosh(x) Arcocoseno hiperbolico de x
tan(x) Tangente de x
atan(x) Arco tangente de x
tanh(x) Tangente hiperbolico de x
Arcotangente hiperbolico de
atanh(x)
x
cot(x) Cotangente de x
sec(x) Secante de x
csc(x) Cosecante de x

Ejemplo:
>> x = [1, 2,3; 9, 8,7]
>> sin (x)

Devuelve como resultado

0.8415 0.9093 0.1411


0.41121 0.9894 0.6570

Los corchetes se utilizan para definir una variable con múltiples valores:

>> x = [0.8 0.9 0.1; 0.8 0.9 0.1; 0.4 0.9 0.6]
>>z = asin(x)

Devuelve

0.9273 1.1198 0.1002


0.9273 1.1198 0.1002
0.4115 1.1198 0.6435

>> x = 5* cos (pi /6), y = 5* sin (pi /6)


x=
4.3301
y=
2.500

1.12 Otras funciones en matlab.

Funcion Descripción
abs(x) Valor absoluto de x

Ing. Jaime Miguel Flores Mujica - 11 -


Tutorial de Matlab

sqrt(x) Raíz cuadrada de x


real(x) Parte real del numero complejo x
imag(x) Parte imaginaria del numero complejo x
sign(x) Función signo de x
exp(x) Exponencial de x
log(x) Logaritmo natural de (x)
Log10(x) Logaritmo decimal de x
Log2(x) Logaritmo en base 2 de x
min(x) Devuelve el valor mínimo de un arreglo x
max(x) Devuelve el valor máximo de un arreglo
Ordena los elementos del arreglo x en forma
sort(x)
ascendente
Calcula la suma de todos los elementos del arreglo
sum(x)
x
Num2str(x) Convierte en cadena el numero x
Str2double(x) Convierte en numero real la cadena x

Ejemplo:
>> x = [-3 4 -11 0]
>> abs( x)
3 4 11 0

>> x = [2 1 5]
>> sort(x)
1 2 5
>>sort( [2 1 5]´ )
1
2
5
1.13 Vectores

Una variable que representa un vector de longitud "n" se define en MATLAB


introduciendo entre corchetes los elementos del vector, separados por comas o por espacios
en blanco:
Según su orientación, es posible hablar de vectores fila:

>>vector = [1, 2, 3, 4,5] % vector fila separado por comas


vector =
1 2 3 4 5

>> vector = [ 1 2 3 4 5 ] % vector fila, separado por espacios


vector =
1 2 3 4 5

O vectores columna, separando las columnas por puntos y comas:

>> vector 2 = [ 1 ; 2 ]
vector 2 =
1
2

Al aplicar la mayoría de los comandos y funciones de MATLAB sobre una variable


vectorial, el resultado que se obtiene es la aplicación del comando o función sobre cada
elemento del vector:

Ing. Jaime Miguel Flores Mujica - 12 -


Tutorial de Matlab

>> vector1 = [1 2 3 4 5];


>> vector 1*2
ans =
2 4 6 8 10

Existen diferentes formas de definir una variable vectorial sin necesidad de explicitar
entre corchetes todos sus elementos separados por comas o espacios en blanco. Estas otras
formas crean vectores cuyos elementos siguen una relación dada:
Vector = [primer _ elemento: último _elemento]

Define el vector cuyos primero y último elementos son los especificados, y los
elementos intermedios se diferencian en una unidad. Entre el primer y último elemento se
utiliza el símbolo " : "

>> vector1 = [1: 10]


vector1 =
1 2 3 4 5 6 7 8 9 10
La instrucción:

Vector = [primer elemento: incremento: último elemento].

Define el vector cuyos primero y último elementos son los especificados, y los
elementos intermedios se diferencian en la cantidad especificada por el incremento. También
los separamos por " : "

>> vector2 = [0: 5: 20]


vector2 =
0 5 10 15 20
La instrucción:

vector = linspace (primer elemento, último elemento , n)

Define el vector cuyos primero y último elementos son los especificados, y que tiene
en total "n" elementos uniformemente espaciados entre sí. En este caso, los datos son
separados por comas, y en lugar de corchetes, utilizamos paréntesis:

>> vector3 = linspace ( 0,20,6)


vector3 =
0 4 8 12 16 20
% Se obtiene 6 números entre 0 y 20 uniformemente espaciados

1.14 Transposición de vectores

Matlab puede convertir vectores fila a vectores columna y viceversa con mucha
facilidad utilizando para ello (‘).

Ejemplo:
>> W, W’
>> W = [1 -2 3]
W=
1 -2 3
ans =
1
-2
3

Ing. Jaime Miguel Flores Mujica - 13 -


Tutorial de Matlab

Cuando los vectores son números complejos se realiza de la misma forma, Ejemplo:

>> X = [1+3i, 2-2i ];


>> X , X'
X=
1.0000 + 3.0000i 2.0000 - 2.0000i
ans =

1.0000 - 3.0000i
2.0000 + 2.0000i

En el ejemplo se realizo la transposición del vector fila a un vector columna pero


obtenemos el conjugado de los números complejos, para realizar la transposición sin la
conjugada se utiliza lo siguiente, (.’). En el ejemplo:

>> X=[1+3i, 2-2i];


>> X , X.'
X=
1.0000 + 3.0000i 2.0000 - 2.0000i
ans =

1.0000 + 3.0000i
2.0000 - 2.0000i

1.15 Matrices (Arrays)

Para definir una matriz en MATLAB, basta con introducir entre corchetes todos sus
vectores fila separados por punto coma. A su vez, los vectores fila se pueden introducir
separando sus componentes por espacios en blanco o por comas, tal como se vio
anteriormente.

>> matriz1=[a11 a12 a13 ; a21 a22 a23 ; a31 a32 a33 ]
>> matriz1=[a11 , a12 , a13 ; a21 , a22 , a23 ; a31 , a32 , a33 ]

Ejemplo:
>> X= [1, 4, 5,8; 5, 0, 0,2; 0, 1,-7,3]
X=
1 4 5 8
5 0 0 2
0 1 -7 3

1.16 Visualización de elementos de una matriz

En MATLAB, los elementos individuales de una matriz (array) se acceden utilizando


"subíndices". Por ejemplo, para el caso de un vector x(1) es el primer elemento en "x", x(2)
es el segundo elemento en "x", etc...

>> x = [2 4 6 8 10];
>> x(1)
ans =
2
>>x(3)
ans =
6

Ing. Jaime Miguel Flores Mujica - 14 -


Tutorial de Matlab

Esta instrucción funciona tanto para elementos de vectores fila como de vectores
columna. Para el caso de elementos de una matriz tenemos X (i, j).

>> X= [1, 4, 5,8; 5, 0, 0,2; 0, 1,-7,3]


X=

1 4 5 8
5 0 0 2
0 1 -7 3

>> X(2,3)
ans =
0

Es decir se esta visualizando el elemento de la matriz que se encuentra ubicado en la


fila 2 y la columna 3, si se quiere visualizar el elemento que se encuentra en la fila 3 y
columna 4 tendremos:

>> X(3,4)
ans =
3

Pero en una matriz también es posible visualizar todos los elementos de una fila o
de una columna, para ello hacemos X( i,:)

>> X(2,:)
ans =
5 0 0 2

En este caso con la instrucción se visualizo todos los elementos de la fila 2. De la


misma forma para visualizar todos los elementos de una columna se realiza X(:, j ).

>> X(:,3)
ans =
5
0
-7

Es decir se visualiza los elementos de la columna 3


Es posible acceder al mismo tiempo a un bloque cualquiera de elementos,
Ejemplo:
>> X= [1, 4, 5,8; 5, 0, 0,2; 0, 1,-7,3]
X=

1 4 5 8
5 0 0 2
0 1 -7 3
>> X(2:3)
ans =
5 0
>> X(2:4)
ans =
5 0 4

Ing. Jaime Miguel Flores Mujica - 15 -


Tutorial de Matlab

1.17 Matemática de vectores con escalares

La suma, resta, multiplicación, división y potencia de un vector por un escalar,


simplemente aplica la operación a todos los elementos del vector:

>>x = [2 4 6 8 10];
>> x-2 % Resta 2 a cada elemento de x
ans =
0 2 4 6 8
>>2* x-1 % multiplica por 2 cada elemento de x, y le
resta 1
ans =
3 7 11 15 19

En las operaciones entre vectores y escalares, existe el mismo orden de preferencia


que en las expresiones de solo escalares.

1.18 Matemáticas de arrays con arrays

Las operaciones matemáticas entre arrays no son tan simples como las que ocurren
entre escalares y arrays. Las operaciones entre arrays de diferentes longitudes son difíciles
de definir.

Cuando dos arrays tienen la misma longitud, la suma, la resta, la multiplicación y la


división pueden aplicarse de la forma elemento a elemento. Por ejemplo:

>> a = [1 2 3 4 5];
>> b = [1 3 5 7 9];
>> a + b % Suma los dos vectores elemento a elemento
ans =
2 5 8 11 14
>> ans-b % Resta b del resultado mas reciente.
ans =
1 2 3 4 5

La multiplicación y división elemento a elemento utiliza una notación ligeramente


distinta. Hay que poner un punto antes del símbolo de multiplicación o división, para indicar
que es elemento a elemento:

>> a.*b % Multiplica elemento a elemento


ans =
1 6 15 28 45

>> a./b % División elemento a elemento


ans =
1.000 0.6000 0.5714 0.5556

Si lo que se quiere es realizar una multiplicación matricial, no utilizamos el punto


antes del símbolo " * “:

>> c = [1:2;3:4];
>> d = [5:6;7:8];
>> c*d % Multiplicación matricial

ans =

Ing. Jaime Miguel Flores Mujica - 16 -


Tutorial de Matlab

19 22
43 50

Al igual que ocurre en la multiplicación y la división, el símbolo "^" se reserva


para la potencia de una matriz, y ".^" se utiliza para denotar potencia elemento a
elemento:

>> a= [1 2 3 4 5]
>> b= [1 3 5 7 9]
>> a.^2 % Eleva al cuadrado los elementos de a
ans =
1 4 9 14 25
>> b.^a % Eleva los elementos de b a los elementos de a
ans =
1 9 125 2401 59049

Podemos hacer un resumen de las operaciones básicas con arrays:

a= [a1 a2 ...an ] ; b= [b1 b2 ...bn ] ; c= escalar

Suma escalar a + c = [a1+c a2+c ...an+c ]


Multiplicación escalar a*c =[a1*c a2*c ...an*c ]
Suma de arrays a+b =[a1+b1 a2+b2 ... an+bn ]
Multiplicación de arrays a.*b=[a1*b1 a2*b2 ... an*bn ]
División a derechas de arrays a./b=[a1/b1 a2/b2 ... an/bn ]
División a izquierdas de arrays a.\b=[a1\b1 a2\b2 ... an\bn ]
Potencia de arrays a.^c =[a1^c a2^c ... an^c ]
a.^b=[a1^b1 a2^b2 ... an^bn ]

1.19 Operadores Relaciónales y Lógicos en vectores

Además de las operaciones aritméticas tradicionales, MATLAB permite utilizar


operaciones relacionales y lógicas. El objetivo de estos operadores y funciones es
proporcionar respuesta a cuestiones Verdadero/Falso. Un uso importante de esta
capacidad es controlar el flujo u orden de ejecución de una serie de órdenes de MATLAB
basado en los resultados de estas cuestiones verdadero/falso.

Como entradas a todas las expresiones relacionales y lógicas, MATLAB considera


que cualquier número distinto de cero es verdadero, y si es igual a cero es falso. La salida
de todas las expresiones relacionales y lógicas produce 1 si es verdadero, y 0 si es falso.

1.19.1 Operadores Relaciónales.

Los operadores relacionales de MATLAB incluyen todas las comparaciones comunes:

OPERADOR DESCRIPCIÓN
< menor que
menor o igual
<=
que
> mayor que
mayor o igual
>=
que
== igual a
~= no igual a

Ing. Jaime Miguel Flores Mujica - 17 -


Tutorial de Matlab

Los operadores relacionales de MATLAB se pueden utilizar para comparar dos


vectores del mismo tamaño o para comparar un vector con un escalar. En este último caso,
el escalar se compara con todas los elementos del vector, y el resultado tiene el mismo
tamaño que el vector.
Ejemplo:

>> A= [1: 8]
A=
1 2 3 4 5 6 7 8
>> B = [2:9]
B=
2 3 4 5 6 7 8 9
>> % Vamos a encontrar los elementos de A que son mayores que 4
>> % Donde A>4, aparecerá un uno, y donde A< 4 aparecerá un cero
>> mayor = A>4
mayor
0 0 0 0 1 1 1 1
>> % Ahora los elementos de A que son iguales a los elementos de B
>> igual = A == B
igual
0 0 0 0 0 0 0 0

1.19.2 Operadores Lógicos.

Los operadores lógicos proporcionan un medio de combinar o negar expresiones


relaciónales. MATLAB incluye los siguientes operadores lógicos:

OPERADOR DESCRIPCIÓN
& AND
| OR
~ NOT

Algunos ejemplos del uso de operadores lógicos en MATLAB son:

>> A = [1 : 9]
A=
1 2 3 4 5 6 7 8 9
>>no_mayor = (A>4) % Niega los números mayores que 4 del
vector A
no_mayor =
1 1 1 1 0 0 0 0 0

>> mayor_menor= (A>2)&(A<6) % Devuelve unos donde A>2 y


A<6 a la vez
mayor_menor =
0 0 1 1 1 0 0 0 0

Además de las operaciones relacionales y lógicas básicas anteriores, MATLAB


proporciona una serie de funciones relacionales y lógicas adicionales, que incluyen:

FUNCIÓN DESCRIPCIÓN
xor(x) Operación OR exclusiva
any(x) Devuelve 1 si algún elemento del vector "x" es no nulo. Si se
trata de una matriz, devuelve 1 para cada columna de la

Ing. Jaime Miguel Flores Mujica - 18 -


Tutorial de Matlab

matriz que tiene elementos no nulos


all(x) Devuelve 1 si todos los elementos del vector "x" son no
nulos. Si se trata de una matriz, devuelve 1 cuando todos los
elementos de cada columna son no nulos.

El orden de preferencia en MATLAB para operadores aritméticas, relacionales y


lógicas es, de mayor a menor preferencia:
Mayor
^ .^ ' .'
preferencia
* / \ .* ./ .\
+ - ~
: > < >= <= == ~=
Menor
| &
preferencia

1.20 Manipulación de Texto

Hay veces en MATLAB que es deseable manipular texto, por ejemplo, para poner
etiquetas o títulos en las gráficas. A este texto, MATLAB le llama "cadena de caracteres" o
simplemente "cadenas". Una cadena de caracteres es simplemente texto rodeado por
comillas simples.

Las cadenas de caracteres se manejan como vectores fila, y se pueden manipular de


la misma forma que si se tratara de arrays. Aquí podemos ver algunos ejemplos:
Primero se introducirá una cadena de caracteres:

>> t = ‘Esto es un ejemplo de cadena de caracteres’


t=
Esto es un ejemplo de cadena de caracteres

Si se quiere mostrar los elementos del 23 al 28, se realiza de la misma forma que
cuando tratamos vectores fila:

>> u = t(23:28)
u=
cadena

Si se quiere mostrar los elementos del 23 al 28, pero en orden inverso, se realiza de
la misma forma que cuando tratamos vectores fila:

>> u = t(28:-1:23)
u=
anedac

Como con las matrices, las cadenas de caracteres pueden tener múltiples filas, pero
cada fila debe tener un número igual de columnas. Por tanto, si no coincide el número de
caracteres en todas las filas, será necesario completar con espacios en blanco:

>> v = [‘ En la cadenas de caracteres todas las ‘ ;……


‘filas deben tener el mismo numero de ‘;…….
‘columnas, como las matrices ‘]
v=
En las cadenas de caracteres todas las
Filas deben tener el mismo numero de

Ing. Jaime Miguel Flores Mujica - 19 -


Tutorial de Matlab

Columnas, como las matrices

También son posibles las operaciones matemáticas sobre cadenas, sin embargo,
una vez que se realiza una operación matemática sobre una cadena, ésta no se visualiza ya
como una cadena, sino como un array de números en el estándar ASCII.

1.21 Representación ASCII de una cadena

Para ver la representación ASCII de una cadena, podemos tomar el valor absoluto o
sumarle cero. Por ejemplo, para ver la representación ASCII de la cadena "m":

>> m = ‘ABCDEFG’
m=
ABCDEFG
>> n = abs(m)
n=
65 66 67 68 69 70 71
>> n = m+0
n=
65 66 67 68 69 70 71

Luego de que una cadena ha sido convertida a su representación ASCII, la cadena


puede ser restaurada de manera que se pueda volver a ver como una cadena de
caracteres, utilizando la orden “setstr”.

>> setstr (n)


ans =
ABCDEFG

Además de este manejo básico de cadenas de caracteres, existen multitud de


comandos dirigidos a cadenas. Podemos ver algunos mediante la ayuda de MATLAB, si
tecleamos

>>help strfun

1.22 Álgebra Lineal y Matrices

Históricamente, MATLAB fue escrito para simplificar los cálculos, de cálculo lineal
que aparece en muchas aplicaciones. Existiendo los operadores aritméticos de matrices,
que en matlab están definidas como las operaciones usuales.

1.22.1 Adición de Matrices:

Dadas las matrices A = ( a ij ) y B= ( b ij ) la suma de A y B se define como una


matriz C tal que c ij = a ij + b ij , es decir se realiza la suma de los elementos de las
matrices de acuerdo a su posición.

>>A = [ 0 6 0 ; 8 6 8 ; 3 2 2];
>>B = [29 -21 27; 11 13 5; -19 19 19];
>> C = A + B
C=
29 -15 27
19 19 13
-16 21 21

Ing. Jaime Miguel Flores Mujica - 20 -


Tutorial de Matlab

1.22.2 Sustracción de matrices:

De la misma forma que en la suma, se realiza la resta de las matrices de acuerdo a


su posición.

>> X = [1 -3 5; 4 1 6; 6 -1 2];
>>Y = [2 3 2; 6 0 3; 4 1 -1];
>> Z = X-Y
Z=
-1 -6 3
-2 1 3
2 -2 3

1.22.3 Multiplicación de una matriz por un número:

Realiza el producto de cada elemento de la matriz por el número dado.

>> D = [3 -2 7; 6 5 4];
>> E = 2 * D
E=
6 -4 14
12 10 8

1.22.4 Multiplicación de matrices:

La multiplicación de matrices se realiza considerando filas de la primera matriz por


columnas de la segunda matriz entre los elementos correspondientes, luego se realiza la
suma ubicando el resultado en la posición de acuerdo a la fila y columna que se
multiplicaron.

Es decir sean A = (a ij) una matriz de orden mxn, B = (b ij) una matriz de orden
nxp, entonces la matriz C = (c ij) es el producto de A con B resultando una matriz de
orden mxp.

C ij
= ∑a b
k
ik k j

Ejemplo:

⎡3 0 2⎤ ⎡2 1⎤ ⎡8 3⎤

A= 1 2 0
⎥ ⎢ ⎥
y B = 0 1 entonces A x B =
⎢2 3⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣0 1 1 ⎥⎦ ⎢⎣1 0⎥⎦ ⎢⎣1 1⎥⎦

En matlab tenemos:

>> F = [3 -2 7; 6 5 4; 0 4 9]
>>G = [1 7; 0 4; 2 9]
>> H = F x G
H=
17 76
14 98
18 97

1.23 Clases de Matrices:

Ing. Jaime Miguel Flores Mujica - 21 -


Tutorial de Matlab

Por los conocimientos adquiridos en álgebra lineal, existen varias clases de matrices
que es posible trabajarlas en Matlab.

1.23.1 Matriz Transpuesta:

La matriz transpuesta es aquella que se obtiene a partir de una matriz dada


intercambiando las filas por las columnas y se la denota como At .
Ejemplo:
⎡ 2 1 − 4⎤
Si tenemos la matriz A = ⎢ ⎥ entonces la matriz transpuesta será:
⎣3 2 5 ⎦

⎡ 2 3⎤
t ⎢
= 1 2⎥⎥
A ⎢
⎢⎣− 4 5⎥⎦

´
En matlab la matriz transpuesta se obtiene utilizando el apostrofe A como
ejemplo tenemos:
>> A = [ 1 -3 0 -2; 3 -12 -2 -6;-2 10 2 5; -1 6 1 3]
A=

1 -3 0 -2
3 -12 -2 -6
-2 10 2 5
-1 6 1 3

>> Y = A'
Y=

1 3 -2 -1
-3 -12 10 6
0 -2 2 1
-2 -6 5 3

1.23.2 Matriz Simétrica:

Una matriz dada es simétrica cuando la matriz transpuesta es igual a la matriz dada.

A = A'
1.23.3 Matriz inversa:

En álgebra lineal el concepto de matriz inversa es muy importante, ya que a partir


de ella se puede obtener soluciones a muchas aplicaciones. En matlab se puede obtener la
matriz inversa de una matriz mediante la orden inv(A)

>> A = [ 1 -3 0 -2; 3 -12 -2 -6;-2 10 2 5; -1 6 1 3]


A=
1 -3 0 -2
3 -12 -2 -6
-2 10 2 5
-1 6 1 3
>> P = inv (A)

Ing. Jaime Miguel Flores Mujica - 22 -


Tutorial de Matlab

P=
0 1.0000 0.0000 2.0000
1.0000 -1.0000 -2.0000 2.0000
0 1.0000 3.0000 -3.0000
-2.0000 2.0000 3.0000 -2.0000

1.24 Determinante de una Matriz:

En matlab es posible calcular el determinante de una matriz cuadrada a través de la


instrucción det (A).

Ejemplo:
>> A = [ 1 -3 0 -2; 3 -12 -2 -6;-2 10 2 5; -1 6 1 3]
A=
1 -3 0 -2
3 -12 -2 -6
-2 10 2 5
-1 6 1 3

>> det(A)
ans =
-1

1.25 Rango de una Matriz:

Por álgebra lineal conocemos que el rango de una matriz es igual al número de filas
no nulas que quedan en la última iteración de las sucesivas transformaciones elementales
que se hacen con la matriz.

En matlab se puede hallar el rango de una matriz mediante la instrucción rank(A).


Ejemplo:
>> C = [0 2 -4; 1 4 -5; 3 1 7; 0 1 -2; 2 3 0]
C=

0 2 -4
1 4 -5
3 1 7
0 1 -2
2 3 0
>> Z= rank(C)
Z=
2

1.26 Generación de matrices especiales en Matlab:

1.26.1 Matriz identidad:

Para generar la matriz identidad en matlab se utiliza el comando eye (m).

>> A = eye(3)
A=
1 0 0
0 1 0
0 0 1

Ing. Jaime Miguel Flores Mujica - 23 -


Tutorial de Matlab

>> B=eye(4)
B=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

1.26.2 Matriz Nula:


Matriz donde todos los elementos son nulos, en matlab generamos una matriz nula
con el comando A = zeros (m,n) , donde m es el numero de filas y n el numero de
columnas.
>> B = zeros (3,2)
B=
0 0
0 0
0 0

1.26.3 Matriz Unidad:

Matriz en donde todos los elementos son unos, y se obtiene con el comando ones(
m,n).
>> B = ones (3,2)
B= 1 1
1 1
1 1

1.27 Funciones en matrices y vectores:

diag(A) .Este comando permite obtener los elementos de la diagonal de una matriz
dada.
Ejemplo: >> A = [1 -3 0; 3 -2 -6; 10 2 5]
A=
1 -3 0
3 -2 -6
10 2 5
>> diag(A)
1
-2
5
rand(p) : Este comando genera una matriz de orden nxn en forma aleatoria donde
sus elementos son uniformemente distribuidos en el intervalo ( 0, 1).
>> X = rand(2)
X=
0.447 0.7919
0.6154 0.9218

norm(v,p): Este comando calcula la norma de un vector v. donde p>1, los valores
comunes son 1 , 2 ,inf , esto significa que :

p = 1; calcula la suma de los valores absolutos de todos sus elementos


p = 2; corresponde a la norma euclidiana. Matlab lo considera por defecto
p = inf; calcula el máximo valor absoluto de sus elementos.

Ejemplo:
>> A = [2 0 1 -4]

Ing. Jaime Miguel Flores Mujica - 24 -


Tutorial de Matlab

>> norm(A,1)
7
>> norm(A,2)
4.5826
>> norm(A, inf)
4

norm(A.p); Este comando permite calcular la norma de una matriz A.


>> A =[2 0;1 -4]
A=
2 0
1 -4
>> norm(A,1)
ans =
4
>> norm(A,2)
ans =
4.1594
>> norm(A,inf)
ans =
5
cross(u,v); Este comando calcula el producto vectorial entre dos vectores u y v de
3
R
>> u = [2 -5 1]
>> v = [3 1 -4]
>> cross(u,v)
19 11 17
eig(A);Este comando calcula los valores y vectores propios de la matriz A

>>A = [1 2; 3 4]
>>[ V, D] = eig(A)
V=
-0.8246 -0.4160
0.5658 -0.9094
D=
-0.3723 0
0 5.3723
Donde V es una matriz que contiene a los vectores propios ordenados en columnas
y D es una matriz diagonal que contiene los valores propios.

Length(u); Este comando calcula la dimensión del vector u.

>> u = [13 -5 1]
>> length(u)
3

size (A); Este comando calcula la dimensión de la matriz A.

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

1.28 Sistemas de Ecuaciones Lineales.

Ing. Jaime Miguel Flores Mujica - 25 -


Tutorial de Matlab

Una de las aplicaciones del álgebra lineal es la solución de ecuaciones lineales, así por
ejemplo, si disponemos del siguiente sistema de ecuaciones:

x1 + 2 x 2 + 3 x 3 = 366
4 x1 + 2 x 2 + 6 x 3 = 804
7 x1 + 8 x 2 + = 366
Estas ecuaciones se pueden organizar en una ecuación matricial, de la forma "A X = B":
⎡1 2 3⎤ ⎡ x1 ⎤ ⎡366⎤
⎢4 5 6⎥ x ⎢ ⎥ = ⎢804⎥
⎢ ⎥ ⎢ x2 ⎥ ⎢ ⎥
⎢⎣7 8 0⎥⎦ ⎢⎣ x3 ⎥⎦ ⎢⎣ 351⎥⎦

Para encontrar la solución a este sistema, nos encontramos con numerosos métodos.
Analíticamente, como A X = B, la solución se escribe como X = A-1 · B, donde A-1 es la
matriz inversa de A.

Para resolver este problema de esta forma, es necesario introducir directamente las
matrices A y B, que ya hemos definido anteriormente:

>> A = [1 4 7; 2 5 8; 3 6 0]
A=
1 2 3
4 5 6
7 8 0

>>B =[366;804;351]
B=
366
804
351
Primeramente realizamos un análisis del tipo o tipos de solución que el sistema de
ecuaciones ha de tener, para ello tememos que hallar el determinante de la matriz A, y
esto se halla mediante el comando det(A), visto anteriormente, es decir si el determinante
de la matriz es distinto de cero tendrá Una solución única.

>> det ( A)
ans =
27

La solución la podremos calcular de dos maneras: calculando ( x = A-1 · b ), o


calculando ( x = b / A). Para calcular A-1 hacemos la inversa de la matriz A. Con cualquiera
de los dos métodos, la solución es la misma.

>> x = inv(A) * B
x=
25.0000
22.0000
99.0000

Cuando difieren el número de ecuaciones y el número de incógnitas, normalmente no


existe una única solución. Sin embargo, MATLAB puede encontrarla.

Ing. Jaime Miguel Flores Mujica - 26 -


Tutorial de Matlab

Cuando hay más ecuaciones que incógnitas:

Cuando utilizamos el operador de división / ó \, automáticamente encuentra la


solución que minimiza el error al cuadrado en (A x – b = 0). A esta solución, de gran valor
práctico, se la llama "solución de mínimos cuadrados".

Cuando hay menos ecuaciones que incógnitas:

Existe un número infinito de soluciones. Sin embargo, MATLAB calcula de forma


directa. El uso del operador de división da una solución que da cero para algunos elementos
de x. Alternativamente, si calculamos "x = pinv (A) * b" (donde pinv (A) =
pseudoinversa de A), se obtiene una solución donde la longitud o norma euclídea de "x" es
más pequeña que todas las otras posibles soluciones. Esta solución, que también tiene un
gran valor práctico, se llama "solución de norma mínima".

1.29 Solución de sistemas lineales mediante matlab

Tal como se menciono anteriormente matlab tiene diversas formas de resolver un


sistema de ecuaciones lineales de la forma A X = B. Consideremos como ejemplo el
siguiente sistema de ecuaciones:

3x + 4y + z + 2w = -3
3x + 5y + 3z + 5w = -6
6x + 8y + z +5 w = -8
3x + 5y + 3z +7 w = -8

1.29.1 Método de descomposición LU:

El procedimiento de descomposición LU, transforma a la matriz de coeficientes A en


un producto de matrices triangulares uno superior (U ) y el otro inferior ( L ) , es decir

A=L U
>> A = [3 4 1 2; 3 5 3 5;6 8 1 5; 3 5 3 7]
A=

3 4 1 2
3 5 3 5
6 8 1 5
3 5 3 7

>> [L,U,P]=lu (A)


L=

1.0000 0 0 0
0.5000 1.0000 0 0
0.5000 0 1.0000 0
0.5000 1.0000 0 1.0000
U=

6.0000 8.0000 1.0000 5.0000


0 1.0000 2.5000 2.5000
0 0 0.5000 -0.5000
0 0 0 2.0000
P=
0 0 1 0

Ing. Jaime Miguel Flores Mujica - 27 -


Tutorial de Matlab

0 1 0 0
1 0 0 0
0 0 0 1

Donde P es una matriz unitaria de tal manera que:

P*A=L*U

Entonces el sistema original se escribe como:

P*AX=P*B
Luego como:
L*U*X=P*B
>> X = inv (L * U)*(P * B)
X=
2
-2
1
-1

1.29.2 Solución con el operador Slash (\).

El operador slash se utiliza en los casos donde la matriz desconocida se encuentra


en la izquierda o derecha de la matriz de coeficiente, esto es indica a pensar que se puede
dividir en ambos lados de la ecuación, ósea:

AX=B ó XA=B por A


Lo que quiere decir que:

• X = A \ B denota la solución para la ecuación de la matriz A X = B.


• X = B/A denota la solución para la ecuación de la matriz X A =B

En el primer caso se requiere que las dos matrices A y B tengan el mismo numero
de filas, por lo que la solución de X tendrá el mismo numero de columnas de B, la
dimensión de la fila es igual a la dimensión de la columna de A.

En el segundo caso, los papeles de filas y las columnas son intercambiables.


Generalmente en la práctica es mas frecuente el uso del operador (\).

Por lo general si el sistema m x n es cuadrado, Matlab presenta una solución


exacta, si el sistema m x n es Overdetermined matlab presenta una solución por
mínimos cuadrados, por otra parte si el sistema es uderdetermined. Matlab presenta una
solución básica con la mayoría de componentes ceros, veamos ahora unos ejemplos.

Sea: 3 x +4 y +z +2w = -3
3x+5y +3z+5w = -6
6x+8y + z +5w = -8
3x+5y +3z+7w = -8

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

Ing. Jaime Miguel Flores Mujica - 28 -


Tutorial de Matlab

>> B = [-3;-6;-8;-8]
B=
-3
-6
-8
-8

>> X =A \ B
X=
2
-2
1
-1

Consideremos ahora el sistema de ecuaciones:

3 x +4y+ 2z = 9
3 x + y + 5z = 9
6 x + y + 5z = 12
-2 x + 3y+7z = 8

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

>> B = [9; 9; 12; 8]


B=
9
9
12
8
>> X = A \B
X=
1.0000
1.0000
1.0000

Consideremos ahora el caso del siguiente sistema de ecuaciones:

3 x +4y +2 z =8
3 x + y + 5 z = 11

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

>> B = [8; 11;]


B=
8
11

Ing. Jaime Miguel Flores Mujica - 29 -


Tutorial de Matlab

>> X = A \ B
X=
0
1.0000
2.0000

1.29.3 Solución por la matriz inversa:


Consideremos el siguiente sistema de ecuaciones:

4x +4y+ z + 2 w = -3
3x +5 y + 3z + 5 w = -6
6x +8 y + z + 5 w = -8
3x +5y+ 3z + 7 w = -8

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


>> B =[-3;-6;-8;-8];
>> X = inv(A)*B

X=
2
-2
1
-1

1.29.4 Método de reducción a la forma canónica.

4 x+4y + z +2w = -3
3 x +5 y +3z +5w = -6
6 x +8 y +z +5 w = -8
3x +5y +3z +7 w = -8

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


>> X = rref(A)
X=
1 0 0 0 2
0 1 0 0 -2
0 0 1 0 1
0 0 0 1 -1

Veamos ahora otros comandos que permiten la manipulación de matrices

A.' Transpuesta de la matriz A


A' Transpuesta compleja conjugada de A
*, \ y / Multiplicación y división matriciales
det(A) Determinante de la matriz cuadrada A
inv(A) Inversa de la matriz cuadrada A
pinv(A) Pseudoinversa de la matriz rectangular A
d=eig(A) Devuelve los valores propios asociados con la matriz
[V,D]=eig(A) Devuelve los vectores propios de la matriz V y los valores
propios como los elementos diagonales en la matriz D.
[L,U]=lu(A) Calcula la factorización LU de la matriz cuadrada A
[Q,R]=qr(A) Calcula la factorización QR de la matriz A
Calcula la descomposición en valores singulares de la
[U,S,V]=svd(A)
matriz A

Ing. Jaime Miguel Flores Mujica - 30 -


Tutorial de Matlab

rank(A) Devuelve el rango de la matriz A


cond(A) Devuelve el número de condición de la matriz A
norm(A) Calcula la norma de la matriz A
poly(A) Encuentra el polinomio característico asociado con la
matriz cuadrada A
polyvalm(v,A) Evalúa el polinomio característico "v" usando la matriz
cuadrada A

1.30 Funciones Polinómicas.

MATLAB permite el trabajo ágil con polinomios. El programa habilita varios comandos
para el manejo algebraico de las expresiones poli nómicas. Estas expresiones pueden
tratarse también como expresiones algebraicas en general, pero MATLAB también incluye
comandos específicos.

1.31 Raíces.

MATLAB resuelve el problema de encontrar las raíces de un polinomio, es decir, los


valores para los que el polinomio es cero. En MATLAB, un polinomio se representa por un
vector fila con sus coeficientes en orden descendente. Por ejemplo, el polinomio

X 4 - 12x 3
+ 0x 2
+ 25x + 116
En matlab se introduce como:

>> p = [1 -12 0 25 116]


p=
1 -12 0 25 116
>>

Obsérvese que se deben incluir los términos con coeficientes nulos, poniendo un cero
en su lugar. Las raíces de un polinomio se encuentran utilizando la función roots:

>> r = roots(p)
r =
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 – 1.4672i
>>

Como ambos, el polinomio y las raíces, son vectores en MATLAB, se adopta el


convenio de que los polinomios son vectores fila, y las raíces son vectores columna.

También es posible construir un polinomio cuando nos dan sus raíces, con la orden
"poly".

1.32 Suma de Polinomios

MATLAB no proporciona una función directa para sumar polinomios. La suma de


arrays estándar funciona si ambos vectores polinomios son del mismo tamaño. Si queremos
sumar los polinomios a(x) y b(x):
a(x)=x3 + 2x2 +3x + 4

b(x)=x3 + 4x2 +9x + 16:

Ing. Jaime Miguel Flores Mujica - 31 -


Tutorial de Matlab

Obtenemos d(x)=2x3 + 6x2 + 12x + 20.

>> d = a + b
d=
2 6 12 20
>>
Cuando dos polinomios son de diferente grado, el que tiene menor orden debe
rellenarse en la parte delantera con ceros para hacer que tenga el mismo grado efectivo que
el polinomio de mayor grado.

1.33 Multiplicación de Polinomios

La multiplicación polinomial se realiza mediante la función conv, que efectúa la


convolución de dos arrays.

Ejemplo: Considérese el producto de los dos polinomios

a(x)=x3 + 2x2 +3x + 4

b(x)=x3 + 4x2 +9x + 16:

>> a = [1 2 3 4]; b = [1 4 9 16];


>> c = conv (a, b)
c =
1 6 20 50 75 84 64

El resultado es c(x)=x6 + 6x5 + 20x4 + 50x3 +75x2 + 84x + 64.

La multiplicación de más de dos polinomios requiere el uso repetido de "conv".

1.34 División de Polinomios:

En algunos casos especiales es necesario dividir un polinomio por otro. En MATLAB,


esto se consigue con la función deconv. Utilizando los polinomios "b" y "c" anteriores:

>> [ q , r ] = deconv( c , b )
q=
1 2 3 4
r =0 0 0 0 0 0 0

Este resultado dice que "b" dividido entre "c" da el polinomio cociente "q" y el resto
"r", que es cero en este caso, puesto que el producto de "b" y "q" es exactamente "c" ("c" se
formó previamente como el producto de "b" y "q" = "a")

Ing. Jaime Miguel Flores Mujica - 32 -

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