Você está na página 1de 53

FACULTAD DE INGENIERIA

INGENIERIA ELÉCTRICA
ELT – 256 COMPUTACION PARA INGENIERIA II
Laboratorio MATLAB Parte 1
M.S.C. IRMA PRADO VILLARROEL
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 2

INDICE
INTRODUCCIÓN ........................................................................................................................................... 4

ESCRITORIO DE MATLAB .............................................................................................................................. 4


PRIMEROS PASOS. ....................................................................................................................................... 5

COMANDOS PARA USO DEL ESCRITORIO ..................................................................................................... 6


OPERADORES ARITMÉTICOS ........................................................................................................................ 8

OPERADORES RELACIONALES Y LÓGICOS ..................................................................................................... 8


PRIORIDAD DE LOS OPERADORES ................................................................................................................ 9

FUNCIONES PARA TRABAJAR CON NÚMEROS COMPLEJOS ........................................................................ 11


FUNCIONES EXPONENCIALES ..................................................................................................................... 12
FUNCIONES TRIGONOMÉTRICAS ................................................................................................................ 12
FUNCIONES PARA REDONDEO Y AJUSTE .................................................................................................... 13

FORMATO DE LAS VARIABLES .................................................................................................................... 13


OPERADORES ENTRE ARREGLOS ................................................................................................................ 16

FUNCIONES MATRICIALES .......................................................................................................................... 19


PROGRAMACIÓN EN MATLAB.................................................................................................................... 21

VARIABLES. ............................................................................................................................................... 21
VARIABLES DEFINIDAS .................................................................................................................................. 22
VARIABLES VECTORIALES ............................................................................................................................... 22
ENTRADA DE DATOS INPUT .......................................................................................................................... 23
SALIDA DE DATOS FPRINTF ............................................................................................................................. 24
DISP. ........................................................................................................................................................ 24
IF ............................................................................................................................................................ 25
SWITCH .................................................................................................................................................... 26
FOR ......................................................................................................................................................... 26
WHILE ...................................................................................................................................................... 26

SCRIPT FUNCIONES ................................................................................................................................... 26


SCRIPT ..................................................................................................................................................... 26
FUNCTION ................................................................................................................................................. 28

POLINOMIOS ............................................................................................................................................. 31
PLOT(X,Y) ................................................................................................................................................... 33
HERRAMIENTAS DE CÁLCULO SIMBÓLICO.................................................................................................. 40
DERIVADA E INTEGRALES ............................................................................................................................... 42
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 3
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 4

MatLab Parte 1
Introducción
MATLAB es software para cálculo numérico y visualización. Integra: Análisis numérico, Cálculo
matricial, Procesamiento de señales, Gráficos. En un entorno fácil de usar, donde los problemas y
las soluciones son expresados como se escriben matemáticamente, sin la programación tradicional
de un lenguaje C o Java.
MatLab puede ser utilizado en computación matemática, modelado y simulación, análisis y
procesamiento de datos, visualización y representación de gráficos, así como el desarrollo de
algoritmos
El nombre MATLAB proviene de ``MATrix LABoratory'' (Laboratorio de Matrices).
MATLAB también proporciona una serie de soluciones específicas denominadas TOOLBOXES. Estas
son muy importantes para la mayoría de los usuarios de MATLAB y son conjuntos de funciones
MATLAB que extienden el entorno MATLAB para resolver clases particulares de problemas como:
Procesamiento de señales, Diseño de sistemas de control, Simulación de sistemas dinámicos,
Identificación de sistemas, Redes neuronales y otros.

Escritorio de MatLab
El escritorio de MATLAB, o entorno de desarrollo, es un conjunto de herramientas (interfaces
gráficas de usuario o GUI) para la gestión de los archivos, variables y aplicaciones asociadas con
MATLAB.
La primera vez que inicie MATLAB, el escritorio aparece con el diseño predeterminado de
ventanas, como se muestra en la siguiente ilustración. Algunas de las diferentes ventanas que se
presentan en

 Command Window, en esta ventana se escriben los comandos de MatLab, comandos que
se utilizan para realizar cálculos, también en esta ventana se hace correr los scripts o
programas.
 Command History , muestra en secuencia los comandos de MatLab que fueron utilizados
en la ventana de comandos.
 Workspace Window, proporciona información acerca de las variables que se están
utilizando; cada variable con su respectivo dato.
 Current Folder Window, muestra los archivos guardados en el directorio de trabajo. Es
decir en qué carpeta almacenará sus scripts.
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 5

Existen otras ventanas que se explicarán conforme se las utilice.

Primeros pasos.
Inicialmente trabajaremos directamente en modo consola; es decir, se escribe el comando en la
ventana de comandos (Command Window) y al digitar enter MatLab da el resultado. Para ello,
podemos escribir los comandos directamente en la ventana de comandos al lado del prompt de
MatLab, el prompt de MatLab es >>.

En el siguiente ejemplo escriba al lado del prompt de la ventana de comando pi, luego digite enter;
inmediatamente observe cómo se actualizan las diferentes ventanas. Primero en la ventana de
comandos indica el valor de pi que es igual a 3.1416. Observe ans, que es una variable por
defecto que el sistema asigna con los datos utilizados en la última transacción, en la ventana
workspace, vea que la variable por defecto ans tiene un valor de 3.1416. De manera similar en la
ventana command history se observa que pi fue utilizado. En este caso pi tiene asignado por
defecto el valor 3.1416. Observe la siguiente figura:
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 6

Ejemplo 1) Escriba al lado del prompt 10/3 y vea como la variable por defecto ans asume un
nuevo valor que es el resultado de la operación escrita:

>> 10/3
ans =
3.3333
Luego observe las ventanas Workspace y Command History.

Ejemplo 2) Escriba al lado del prompt la sgte expresión 5*3+2:

>> 5*3+2
ans =
17
Nuevamente observe las ventanas Workspace y Command History que se actualizan
automáticamente.

Comandos para uso del escritorio


Algunos comandos importantes para el manejo de la herramienta, del escritorio o entorno de
desarrollo de MatLab

Ejemplo 3) Para salir del software de MatLab; es decir, salir del paquete, utilice cualquiera de
los sgtes comandos.

>>exit >>quit
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 7

Ejemplo 4) Muestra y/o permite cambiar la carpeta de trabajo; es decir dónde almacenará sus
programas.

>> userpath En este caso muestra la


ans = carpeta de trabajo dónde
salvará nuestros
C:\Users\IRMA PRADO\Documents\MATLAB; programas.

>> userpath ('C:\Users\IRMA PRADO\Documents\lab1_256') Cambia la carpeta de


>> userpath trabajo a lab1_256, los
ans = nuevos programas serán
salvados en esta carpeta.
C:\Users\IRMA PRADO\Documents\lab1_256; Previamente fue creado
lab1_256.
Una ruta que puede
utilizar es su flash.

Ejemplo 5) Comando para limpiar ventana de comando

>>clc

Ejemplo 6) Permite utilizar comando de DOS

>>dos dir En este caso con el comando de dir, que es de


DOS, mostrará el directorio de MatLab, que es
donde se está ejecutando el programa
>> dos time Si utilizamos el comando time, permitirá
La hora actual es: 9:30:41,18 cambiar la hora del sistema.
Escriba una nueva hora: Entonces el comando dos permite utilizar y
ejecutar comandos de DOS.
ans =
0

Ejemplo 7) Help es un comando que permite ver la ayuda respecto a otros comandos

>>help Muestra en pantalla toda la ayuda relativa a


MatLab
>>help floor Muestra la ayuda del comando floor.
>>help mod Muestra la ayuda del comando mod.

Existen maneras de recuperar lo escrito para no tener que volver a escribirlo si deseamos corregir
o volver a ejecutar:
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 8

 Utilice la flecha del teclado hacia arriba para recuperar comandos anteriormente escritos.
Flecha hacia arriba una vez recupera el último comando, dos ves el penúltimo comando y
así sucesivamente.
 Otra manera de recuperar un comando ya utilizado es en la ventana del Command History
puede hacer clic dos veces para recuperar un comando ya utilizado, y éste se ejecutará en
la ventana de comandos.

Operadores Aritméticos
Operador Descripción
suma
+
resta
-
multiplicación
*
división
/
Potencia (alt 94)
^
Operadores Relacionales y lógicos
< Relación "menor que"

> Relación "mayor que"

<= Relación "menor o igual que"

>= Relación "mayor o igual que"

== Relación "igual que"

~= Relación "distinto que"

& producto lógico (operación ``y'')

| suma lógica (operación .o")

~ negación (operación "no")

Ejemplo 8) Varios operadores:


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 9

Prioridad de los operadores


En una expresión el orden de prioridad de los operadores que puede encontrar en una expresión
algebraica es la sgte:

1. Primero se operan o calculan las operaciones encerradas


en paréntesis, iniciando del paréntesis más interno.

2. Se calcula la potencia ^.
3. Luego / o * (división o multiplicación), operadores tienen
la misma prioridad.
4. finalmente + o – (suma o resta)

Ejemplo 9) Operaciones combinadas.


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 10

Ejemplo 10) calcular el factorial de 5

>> factorial(5)
ans =
120
>>

Ejemplo 11) Calcular la sumatoria de 2+4+6 .

>> syms k
>> symsum(k*2,1,3)
ans =
12

Ejemplo 12) Calcular 1+2+3+4+5+6+7+8+9+10

>> syms i
>> symsum(i,1,10)
ans =
55

Ejemplo 13) Redondeo al inmediato superior.

>> ceil(4.2) >> ceil(4.9)


ans = ans =
5 5
>> ceil(4) >> ceil(-3.2)
ans = ans =
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 11

4 -3
>> ceil(-0.5) >> ceil(0.5)
ans = ans =
0 1

Ejemplo 14) Redondeo hacia cero (de la recta real ).

>> fix(3.5) >> fix(-3.5)


ans = ans =
3 -3
>> fix(0.2) >> fix(-0.2)
ans = ans =
0 0

Ejemplo 15) Redondeo al infinito negativo (de la recta real)

>> floor(1.2) >> floor(-1.2)


ans = ans =
1 -2
>> floor(5.9) >> floor(-5.9)
ans = ans =
5 -6

Funciones para trabajar con números complejos


real(z) obtiene la parte real de z.
imag(z) obtiene la parte imaginaria de z.
conj(z) obtiene el complejo conjugado de z.
abs(z) obtiene el módulo de z.
angle(z) obtiene el argumento de z.

Ejemplo 16) Operaciones con números complejos

>> a=5+2i >> d=a*b


a= d=
5.0000 + 2.0000i 14.0000 +23.0000i

>> b=4+3i >> e=a/b


b= e=
4.0000 + 3.0000i
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 12

1.0400 - 0.2800i
>> c=a+b
c=
9.0000 + 5.0000i

Funciones exponenciales
exp Exponencial
Log Logaritmo natural (base e)
log2 Logaritmo en base 2
log10 Logaritmo en base 10

sqrt Raíz cuadrada

Funciones trigonométricas
Aquí se detallan las funciones trigonométricas con los resultados en radianes o grados:

abs(x) Valor absoluto de x


sqrt(x) Raíz cuadrada de x
nthroot(x,n) Raíz n de x. Si n=3 sería la raíz cúbica de x
sign(x) Devuelve -1 si x es menor que 0, 0 si x es igual a 0, y 1 en el otro caso
rem(x,y) Devuelve el resto de la división x/y . Por ejemplo, rem(26,4) devuelve 2
exp(x) Calcula ex
log(x) Calcula lnx, logaritmo natural
log10(x) Calcula log10x, logaritmo en base 10 de x
sin(x)
Calcula el seno de x, x en radianes (o grados)
sind(x)
cos(x)
Calcula el coseno de x, x en radianes (o grados)
cosd(x)
tan(x)
Calcula la tangente de x, x en radianes (o grados)
tand(x)
asin(x) Calcula el arco seno, donde x ha de ser un número comprendido entre -1 a 1. La
asind(x) función devuelve el ángulo en radianes entre -π/2 y +π/2 (o grados)
acos(x) Calcula el arco coseno, donde x ha de ser un número comprendido entre -1 a 1.
acosd(x) La función devuelve el ángulo en radianes entre 0 y π (o grados)
atan(x) Calcula el arco tangente. La función devuelve el ángulo en radianes entre -π/2 y
atand(x) +π/2 (o grados)
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 13

Una lista completa de todo tipo de funciones que se utilizan en MatLab la encontrará en la opción
HELP del menú del entorno de MatLab, haciendo clic en la opción Product help, luego busque
functions y obtendrá las funciones organizadas por diferentes temas, inclusive verá los ejemplos.

Ejemplo 17) Seno

Ejemplo 18) Calcular √

>> nthroot(27,3)
ans =
3
Ejemplo 19) Calcular √

>> nthroot(16,4)
ans =
2

Funciones para redondeo y ajuste


fix Redondear hacia cero
floor Redondear hacia menos infinito
ceil Redondear hacia más infinito
round Redondear hacia el entero más cercano
mod Módulo de la división entera
rem Resto de la división entera

Formato de las variables


format short 4 decimales
format long 15 decimales
format short e Notación científica con 4 decimales
format long e Notación científica con 14 decimales
format bank 2 decimales
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 14

Ejemplo 20) Formato con quebrados

>> s=0.5 >> rats(pi)


s= ans =
0.5000 355/113

>> rats(s)
ans = >> rat(pi)
1/2 ans =
3 + 1/(7 + 1/(16))

>> format rat >> 23/12


>> 12/4
ans =
ans = 23/12
3
>> format short
Short permite regresar al formato normal

Ejemplo 21) pi en diferentes formatos

>> pi
ans =
3.1416

>> format long


>> pi
ans =
3.141592653589793

>> format long e


>> pi
ans =
3.141592653589793e+000
>> vpa(pi,3)

ans =

3.14

>> vpa(pi,5)

ans =

3.1416
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 15

% vpa(variable,nro de decimales)
>>

Ejemplo 22) Redondeo

>> format long


>> round (2.5)
ans =
3

>> round (2.6)


ans =
3

>> round (2.4)


ans =
2

Ejemplo 23) Quitar decimales

>> fix(3.44)
ans =
3

>> fix(3.6)
ans =
3

>> fix (3.8)


ans =
3

Ejemplo 24) para obtener las variables que se tienen activas

>> a=2
a=
2

>> b=3
b=
3

>> who
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 16

Your variables are:


a b

Ejemplo 25) Números complejos.

>> c=complex(2,3)
c=
2.0000 + 3.0000i

>> b=complex(3,7)
b=
3.0000 + 7.0000i

>> c+b
ans =
5.0000 +10.0000i

>> d=c+b
d=
5.0000 +10.0000i
>>

Operadores entre arreglos


Multiplicación término a término
.*
División término a término
./
Potenciación término a término
.^
Ejemplo 26) Aplicación de los operadores.

>> k=5
k=
5

>> v=[3,4;6,7;2,9]
v=

3 4
6 7
2 9
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 17

>> y=v.*k
y=

15 20
30 35
10 45

>> z=v./k
z=

0.6000 0.8000
1.2000 1.4000
0.4000 1.8000

Ejemplo 27) Condicional implícita es cuando se realiza una comparación, no necesariamente


con el comando if, el resultado devuelto es 0 si es respuesta falsa y 1 si la respuesta es verdadera.

>> a=[3,4,5;-2,8,11]
a=

3 4 5
-2 8 11

>> b=a>1 %pregunta por cada elemento de la matriz que sea mayor que uno
b=

1 1 1
0 1 1
%solo -2 no es mayor que uno.

>> a(1,1)>1
ans =

1
% pregunta si a(1,1) es mayor a uno y la respuesta es verdad por lo tanto responde 1

>> a(2,1)>0
ans =
0
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 18

not(p) ~(p) Negación: toma el valor de verdad 1 cuando la expresión p toma el 0 y


viceversa
and(p,q) (p) & (q) Y lógico: Solo toma el valor 1 cuando p y q lo toman simultáneamente.
0 en los otros tres casos

or(p,q) (p) | (q) O lógico (inclusivo): Solo toma el valor 0 cuando p y q lo toman
simultáneamente. 1 en los otros tres casos.

Ejemplo 28) Obetener las tablas de verdad con el conector and y or


p=[1;1;0;0]
p=
1
1
0
0

>> q=[1;0;1;0]
q=
1
0
1
0

>> r=p&q
r=
1
0
0
0

>> s=p|q
s=
1
1
1
0
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 19

Funciones matriciales
inv Matriz inversa
det Determinante
eig Autovalores
' Matriz traspuesta
eye Crear una matriz identidad dado el número de filas/columnas
zeros Crear una matriz de ceros dado el número de filas/columnas
ones Crear una matriz de unos dado el número de filas/columnas
length Longitud de un vector
size Dimensiones de una matriz

Ejemplo 29) Transpuesta de la matriz

>> a=[1,2,3;4,5,6]

a=

1 2 3
4 5 6

>> b=a'

b=

1 4
2 5
3 6

Ejemplo 30) Generar la matriz identidad de orden 3.

>> a=eye(3)

a=

1 0 0
0 1 0
0 0 1
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 20

Ejemplo 31) Matriz de ceros de 3x3

>> zeros(3)
ans =

0 0 0
0 0 0
0 0 0

Ejemplo 32) Rango de una matriz

>> b=[2,3,4,5;1,0,2,-1;3,2,0,4]

b=

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

>> rank(b)

ans =

Ejemplo 33) Dada las raíces de un polinomio obtener el polinomio

>> p=[1,-7,12] %el polinomio


p=
1 -7 12

>> r=roots(p) % las raíces


r=
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 21

4
3

>> poly(r) % para obtener nuevamente el polinomio


ans =

1 -7 12

Programación en MatLab
En este punto se realizará una referencia rápida porque los alumnos de Elt-256 ya saben
programar en lenguaje C y ahora en Java, por lo que programación en MatLab será sencillo.

Las sentencias básicas como entrada y salida de datos, if, for y while, no tienen mayores ejemplos,
debido a que necesita otras herramientas que aún no explicaron para ser entendidos, por este
motivos los ejemplos relativos a estos temas los tendrá disponibles en la sección ejercicios
resueltos

Variables.
Son campos de memoria donde se almacena información. Los nombres de las variables inician con
una letra y pueden continuar con letras, números o el carácter subrayado. MatLab hace diferencia
entre mayúsculas y minúsculas. Los comandos no pueden ser considerados como variables.

A diferencia de Java, MatLab no necesita declarar las variables con su tipo de dato, se pueden
utilizar variables directamente sin darle un tipo de dato. Con el comando format puede cambiar
de un tipo de variable a otro. Inclusive puede utilizar variables con datos complejos.

En el siguiente ejemplo se asigna a la variable “a” el número 5 y a la variable “b” con un un texto
que es el nombre ana. En Java seria int y String, pero en MatLab se asigna directamente:

Ejemplo 34) Asignación directa de variables

>> a=5 >> 25^0.5


a= ans =
5 5

>> b='ana'
b=
ana
>> v=5 >> v^2
v= ans =
5 25
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 22

Variables definidas
Representa el valor calculado de una expresión y que se puede reutilizar en el
ans
siguiente cálculo
pi Representa el número pi
Es la más pequeña diferencia entre dos números. Precisión de los números en
eps
coma-flotante
Representa el infinito, por ejemplo cuando se divide un número entre cero, se
inf
muestra ∞
No es un número. Resultado de una expresión indefinida, por ejemplo al dividir
NaN
cero entre cero
i, j √ Es el número complejo

Variables vectoriales
Para representar a un vector de n elementos se puede definir en MATLAB una variable de las
siguientes formas: elementos separados por comas ó elementos separados por espacio.

V = [v1, v2, v3, .......,vn]

V = [v1 v2 v3 ....... vn]

Ejemplo 35) Definir un vector

>> v=[11,12,4,-3,7,6,0] >> vector1=[1,4,9,2.25,1/4]


v= vector1 =
11 12 4 -3 7 6 0 1.0000 4.0000 9.0000 2.2500 0.2500

>> vector2=[0:5:25] >> b=[1:5]


vector2 = b=
0 5 10 15 20 25 1 2 3 4 5

>> vector2(2) >> a=b'


ans = a=
5 1
2
3
4
5
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 23

Ejemplo 36) Definir una matriz

>> matriz1=[1,5,-8;6,7,4;5,3,12] >> a=[1.2,5,5,3.1;4.3,5.6,7.0,8.9]


matriz1 = a=
1 5 -8 1.2000 5.0000 5.0000 3.1000
6 7 4 4.3000 5.6000 7.0000 8.9000
5 3 12

Entrada de datos INPUT


Permite la entrada de datos desde el teclado y es asignado a una variable

Ejemplo 37) Sumar dos valores que ingresan por teclado. En este caso disp, se utiliza para
mostrar el valor de la variable c.

>> a=input('primer dato?');


primer dato?3
>> b=input('segundo dato?');
segundo dato?7
>> c=a+b;
>> disp(c)
10

Ejemplo 38) Entrada de cadenas. Varía el formato en la entrada de cadenas, debe agregar ,’s’,
para la entrada de variables string.

>> a=input('escriba su nombre ','s');


escriba su nombre juan
>> disp(a)
Juan
Ejemplo 39) Lectura de los datos de una matriz con la sentencia input, luego desplegar la
matriz.

>> a=input('matriz a?');


matriz a?[1,2,3;4,5,6;7,8,9]
>> disp(a)
1 2 3
4 5 6
7 8 9
Este ejemplo evidencia que input permite el ingreso de una matriz o vector directamente, debe
anotar desde los corchetes.
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 24

Salida de datos fprintf


Permite la salida de datos con formato, entre apóstrofes se escribe el texto y en el lugar donde se
desea escribir el valor de la variable se anota el formato. los formatos son los sgtes:

%d para número entero

%s para cadena

%f para número real

En el caso de reales se puede indicar el total de caracteres que tendrá el número escribiendo %el
número de caracteres punto el número de decimales que se prefiere, seguido de la letra f.

Ejemplo 40) Salida con formato con el comendo fprintf

>> a=2
a=
2
>> b=3
b=
3
>> c=a+b
c=
5
>> fprintf('la suma de %d + %d = %d \n',a,b,c);
la suma de 2 + 3 = 5
>> fprintf('la suma de %f + %f = %f \n',a,b,c);
la suma de 2.000000 + 3.000000 = 5.000000
>> fprintf('la suma de %5.2f + %5.2f = %5.4f\n',a,b,c);
la suma de 2.00 + 3.00 = 5.0000
>>

disp.
Este comando permite desplegar en pantalla un vector, una matriz, texto o un valor numérico.

Ejemplo 41) Desplegar en pantalla:

>> disp(1:10) % genera valor inicial 1, valor final 10


1 2 3 4 5 6 7 8 9 10

>> disp(1:2:10) % valor inicial 1, valor final 10, incremento 2


1 3 5 7 9

>> disp(1:-0.5:-3) % valor inicial 1: decremento: valor final


1.0000 0.5000 0 -0.5000 -1.0000 -1.5000 -2.0000 -2.5000 -3.0000
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 25

>> disp(-5:1) % valor inicial -5: valor final 1


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

>> disp(-5:1:1) %valor inicial -5:incremento 1:valor final 1, es igual al anterior


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

>> disp(-5:-1:1) %ilógico por eso no muestra nada

if
Permite evaluar una condición, y dependiendo del resultado de la condición ejecuta ciertas
sentencias.

Formato 1: Evalúa una condición y si la respuesta de la condición es verdadera ejecuta


Statements:

IF expression
Statements1
END

Formato 2: Si el resultado de la expresión es verdadero entonces ejecuta Statements1, si el


resultado de la condición es falso entonces ejecuta Statements2.
IF expression
Statements1
ELSE
Statements2
END

Formato 3.- En este caso si expression1 es verdad ejecuta Statements1. Si expression1 es falso
entonces evalúa la expression2, si expression2 es verdad ejecuta Statements2. Expression1 es
falsa y Expression2 es falsa entonces ejecuta Statements3.

IF expression1
Statements1
ELSEIF expression2
Statements2
ELSE
Statements3
END
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 26

switch
La sentencia switch es una sentencia que de acuerdo al valor de una variable ejecuta cierta parte
del código, dejando sin ejecutar otra parte del código que no responde al valor de la variable. su
formato general es:

switch expresion
case valor1
sentencias_1
case valor2
sentencias_2
case valor3
sentencias_3
otherwise
sentencias_4
end

for

Repite un segmento de programa un determinado número de veces. Su formato:

for variable=valor inicia: valor final



end

while
Repite un segmento de programa mientras que la condición sea verdadera. Su formato :

while expression
statements
end

Script funciones
Se utilizan para escribir programas en MatLab.

Script
Un script contiene una secuencia, una serie de comandos que se los escriben y almacenan bajo un
nombre de archivo con una extensión m. Es decir, nombre.m archivo que se almacena en un
dispositivo de almacenamiento secundario y se ejecuta cuando se llama al escribir el nombre del
script al lado del promp. Se recomienda escribir punto y coma al final de cada comando para
evitar que MatLab despliegue resultados intermedios.
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 27

Ejemplo 42) Crear un script para sumar dos datos que ingresan por teclado.

Para iniciar escribiendo el script

Esto habilita la siguiente ventana

Donde puede escribir la secuencia de comandos o programa de MatLab, al final salve el archivo
con extensión m.

Por ejemplo el script pedido en este ejemplo sería el siguiente, note que fue salvado con el

nombre uno.m y para ejecutarlo no debe tener errores. Para ejecutar haga clic en el ícono y
también note para escribir comentarios en MatLab se utiliza al principio del comentario el carácter
%.
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 28

Otra manera de ejecutar el script ya guardado o almacenado en disco es escribiendo su nombre al


lado del prompt.

>>uno

function
A diferencia de los script, las funciones reciben parámetros de entrada y asigna a una variable el
resultado.

Ejemplo 43) Realizar la función para sumar dos valores. (problema ídem al anterior de script).

Explicaremos la secuencia para la creación de una función:

Escriba la siguiente función y guarde con el nombre sumar.m


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 29

Con la explicación:

Esto quiere decir que para ejecutar esta función se necesita asignar datos para la variable “a” y
“b”. Luego de que esta función fue guardada se ejecuta de la siguiente manera:

>> sumar(4,5)

ans =

En este caso la variable “a” toma del valor de 4 y la variable “b” toma el valor de 5.

Ejemplo 44) Dado un vector y un elemento z (dato de selección); si z es par, obtener el vector
con cada uno de sus datos elevado al cuadrado; por otro lado, si z es impar obtener el vector
donde cada uno de sus datos esté multiplicado por 5.
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 30

Primero el script:

Ahora la función:

para ejecutarlos ingresamos a la ventana de comandos de MatLab:

>> dos
Dato de seleccion 1
impar
el resultado es 5 10 15 20 25 30

>>
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 31

Polinomios
Ejemplo 45) Raíces de un polinomio.

>> p=[1,0,-7,6]
p=
1 0 -7 6

>> r=roots(p)
r=

-3.0000
2.0000
1.0000

Ejemplo 46) A partir de las raíces se puede generar el polinomio.

r=

-3.0000
2.0000
1.0000

>> q=poly(r)
q=

1.0000 0.0000 -7.0000 6.0000


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 32

Ejemplo 47) Multiplicar dos polinomios.

El vector p tiene los coeficientes del primer polinomio, el vector q tiene los coeficientes del
segundo polinomio, r es el vector con los coeficientes del polinomio resultado:

>> p=[4,-3,-2]
p=
4 -3 -2

>> q=[2,5,-1]
q=
2 5 -1

>> r=conv(p,q)
r=
8 14 -23 -7 2

Ejemplo 48) Dividir dos polinomios.


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 33

Solución.- P es el vector de coeficientes del dividendo, q es el vector de coeficientes del divisor

>> p=[3,-2,-5,-9]

>> q=[1,-2]

>> [c,r]=deconv(p,q)
c=

3 4 3

r=

0 0 0 -3

Como resultado de la división c es el cociente y r es el residuo.

plot(X,Y)
Grafica una función. X especifica el rango de valores del eje de abscisas por cada valor de la
función y que va hacer dibujada (es un vector). Y es el resultado de la función f(X) (también un
vector).
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 34

Ejemplo 49) Generar dos vectores y graficar

a=[-3:3]

a=

-3 -2 -1 0 1 2 3

>> b=[a.^2]

b=

9 4 1 0 1 4 9

>> plot(a,b)

Ejemplo 50) Si se agrega plot(x,y,'linewidth',4);


Grafica el ancho de línea con linewidth, línea su valor por defecto es 0.5
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 35

Ejemplo 51) Graficar con o de color rojo


Script gr11.m
x=-2:0.5:2;
y=x.^2;
plot(x,y,'ro');

4
Ejemplo 52) Graficar las raíces del polinomio x +1.
4 3 2
El polinomio es igual a 1x + 0x + 0x + 0x +1 obteniendo los coeficientes x=[1,0,0,0,1].
Script grf12.m :
p=[1 0 0 0 1];
val=roots(p); %obtiene las raices del polinomio, imaginarias en este caso
plot(real(val),imag(val), '*');
%real obtiene la parte real imag la parte imaginaria
title('Raices imaginarias');
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 36

xlabel('x')
Es la etiqueta de abscisas.

ylabel('Sin(x)')
Etiqueta ordenadas.

title('GRAFICO DE SENO(X)')
Título del gráfico

axis equal
Mismo factores de escala en ambos ejes.

axis square
El gráfico sale en área cuadrada.

grid
Cuadricula para el gráfico

otras propiedades:

 markersize, especifica el tamaño del símbolo que marca los puntos


 markeredgecolor, especifica el color de borde del símbolo que marca los puntos
 markerfacecolor, especifica el color de relleno del símbolo que marca los puntos

Por ejemplo

plot(x,y,'-mo','linewidth',2,'markersize',12, 'markeredgecolor','g','markerfacecolor','y')

El tercer parámetro es el especificador de línea que puede contener tres datos '-mo' entre comillas
simples: Estilo de línea (- significa sólido), Color de línea (m significa magenta), Marcador (o
significa círculo).

Las posibles opciones son:


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 37

Color Símbolo Estilo de línea Símbolo


Azul (defecto) b Sólido(defecto) -
Verde g A puntos :
Rojo r raya-punto -.
Cian c rayas --
Magenta m
Amarillo y
Negro k
Blanco w

Opciones de símbolos para marcar puntos en la gráfica

o círculo v Triángulo (hacia abajo)


. punto X Triángulo (hacia arriba)
x marca X < Triángulo (hacia la izquierda)
+ más > Triángulo (hacia la derecha)
* estrella p pentagrama
s cuadrado h hexagrama
d diamante

Ejemplos de plot:

plot(x,y), una línea azul sólida concecta los puntos (xi, yi)

plot(x,y,'r'), una línea roja sólida conecta los puntos (xi, yi)

plot(x, y,':g'), una línea de puntos de color verde conecta los puntos (xi, yi)

plot(x,y,'--ro','linewidth',2,'markersize',8), vea el sgte ejemplo

figure Genera una ventana gráfica


figure (n) Genera la ventana gráfica n, si ya existe la activa
close Cierra la ventana gráfica activada
close(n) Cierra la ventana gráfica número n
close all Cierra todas las ventanas gráficas
Clf Borra el contenido de la ventana gráfica activada, manteniendo la
ventana abierta

Ejemplo 53) Gráfico de seno(x)


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 38

El script seno.m

% graficar seno(x)
x=[-3:0.1:3]; %Valor inicial, incremento, valor final
y=sin(x);
plot(x,y,'linewidth',2); %ancho de linea 2
xlabel('x'); %etiqueta de abscisas
ylabel('Sin(x)'); %etiqueta ordenadas
title('GRAFICO DE SENO(X)'); %titulo del gráfico
legend('sin(x)');
axis equal;
axis square;
grid %cuadricula para el gráfico

En la ventana de comandos:

seno

Ejemplo 54) Grafico de seno y coseno

El script progra.m}

% graficar seno(x) y coseno(x)


x=[-3:0.1:3]; %Valor inicial, incremento, valor final
y=sin(x);
c=cos(x);
plot(x,y,x,c,'linewidth',2); %ancho de linea 2
xlabel('x'); %etiqueta de abscisas
ylabel('Sin(x)'); %etiqueta ordenadas
title('GRAFICO DE SENO, COSENO '); %titulo del gráfico
legend('sin(x)', 'coseno(x)');
axis equal;
axis square;
grid %cuadricula para el gráfico
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 39

>>progra

Ejemplo 55) Gráficos de seno y coseno utilizando ventanas diferentes

Sript: fig2.m

x=-pi : 0.1: pi;


figure(1);
plot(x,sin(x),'b. ');
title('SENO(X)');
grid;
figure(2);
plot(x,cos(x), '-r. ');
title('COSENO(X)');
grid;
figure(3);
plot(x,sin(x),'b. ',x,cos(x),'-r. ');
legend('sin(x)', 'coseno(x)');
title('SENO(X) Y COSENO(X)');
grid

En la ventana de comandos:

>>fig2
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 40

Herramientas de cálculo simbólico


Se utilizan cuando el o los resultado de las operaciones son aproximadas, no son exactos. Para
solventar este tipo de problemas, podemos utilizar la herramienta cálculo simbólico de Matlab. A
las expresiones sobre las que se realiza el cálculo simbólico se las denomina expresiones
simbólicas y a las constantes y variables que aparecen en ellas constantes y variables simbólicas.

syms Se utiliza para crear variables simbólicas


sym Convierte a variable numérica a variable simbólica
double Convierte a variable numérica

Veamos la diferencia en la ventana de comandos

>> a=pi
a=
3.1416

>> b=sym(pi)
b=
pi
>>%ahora nuevamente convertimos la variable a numérica
>> >> z=double(b)
z=
3.1416

Ahora con matrices:

>> a=[1/2,pi;sqrt(5),1/3]
a=
0.5000 3.1416
2.2361 0.3333
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 41

>> b=sym(a)
b=
[ 1/2, pi]
[ 5^(1/2), 1/3]

Declarando variable simbólica se pueden tener expresiones simbólicas

>> syms a b c x
>> a*x^2 + b*x +c

ans =
a*x^2 + b*x + c

También se pude definir una expresión simbólica, sin haber declarado previamente como
simbólicas las variables que contiene, por medio de una cadena de texto, es decir, con los
caracteres que la componen escritos entre comillas simples.

>> f='a*x^2+b*x+c'
f=
a*x^2+b*x+c

Una vez declarada las expresiones simbólicas, se puede derivarlas, integrarlas, evaluarlas en un
punto, etc.

Ejemplo 56) Evaluar la función cuadrática 2*x^2+3*x+8 para x=4.

>> syms x
>> f='2*x^2+3*x+8'
f=
2*x^2+3*x+8
>> r=subs(f,x,4)
r=
52

Ejemplo 57) Sea f la ecuación cuadrática, formula general a) f=ax^2+bx+c; b) sustituir x por t; c)
obtenga el valor de f para a=2, b=1 , c=0 y t=2 d) obtenga el valor de f para a=2, b=1 , c=0 y t=[1:4].

>> syms a b c x
>> f=a*x^2+b*x+c %a)
f=
a*x^2 + b*x + c
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 42

>> syms t %b)


>> g=subs(f,x,t)
g=
a*t^2 + b*t + c

>> h=subs(g,{a,b,c},{2,1,0}) %c)


h=
2*t^2 + t
>> u=subs(h,t,2)
u=
10

>> v=subs(h,t,[1:4]) %e)


v=
3 10 21 36

Derivada e integrales
diff(f) Deriva f respecto de la variable simbólica preferente (en este
caso x)
diff(f,u) Deriva la función f respecto a la variable u.

int(f) Calcula una primitiva de f , respecto a la variable simbólica x

int(f,s) Calcula la primitiva de f respecto a la variable s

int(f,a,b) Calcula la integral definida de f respecto a la variable simbólica


preferente x,
int(f,s,a,b) Calcula la integral definida de f respecto a la variable s

Ejemplo 58) Dada dos expresiones simbólicas f=ax+b, g=y2 +z calcular:

a) ∫

b) ∫

c) ∫

d) ∫
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 43

>> syms a b x y z
>> f=a*x+b
f=
b + a*x

>> g=y^2+z
g=
y^2 + z

>> integral_a=int(f)

integral_a =
(a*x^2)/2 + b*x

>> integral_b=int(f,a)
integral_2 =
(x*a^2)/2 + b*a

>> integral_c =int(g,y)


integral_ c=
y^3/3 + z*y

>> integral_d=int(g,'z',0,1)

integral_d =
y^2 + 1/2

Ejemplo 59)

>> syms x
>> f=sin(x)+3^x+8/(x+1)
f=
sin(x) + 8/(x + 1) + 3^x

>> ezplot(f, [-2,2])


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 44
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 45

Ejercicios varios:
Ejemplo 60) Dado un número indicar si es positivo, negativo o igual a cero.

Elaborar el script:

luego ejecutar desde el prompt de la ventana de comandos de MatLab.

Ejemplo 61) Leer 2 valores, luego realice la operación aritmética seleccionada.


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 46

Primero se realiza el script:

para ejecutar en la ventana de comandos

>> cinco
primer valor?8
segundo valor?9
escriba operacion a realizar +,-,*,/
/
la div es 0.888889
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 47

>> cinco
primer valor?2
segundo valor?0
escriba operacion a realizar +,-,*,/
/
error div entre 0

Ejemplo 62) Realizar un script para calcular las raíces de la ecuación cuadrática, luego graficar.

Solución 1: Utilizando for.

Note desde la línea 10 a la línea 15 el proceso que en programación que normalmente


utilizaríamos en cualquier lenguaje de alto nivel como Java o C++.

coeficiente de x^2?1
coeficiente de x?2
termino independiente 1
Raices
-1

-1
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 48

Ejemplo 63) Idem al anterior ejemplo, pero ahora utilizando las ventajas de Matlab.

Script raices2.m

%raíces de una ecuación cuadrática


a=input('coeficiente de x^2?');
b=input('coeficiente de x?');
c=input('termino independiente ');
fprintf('Raices\n');
x1=(-b+sqrt(b^2-4*a*c))/2*a;
disp(x1);
x2=(-b-sqrt(b^2-4*a*c))/2*a;
disp(x1);
% la sgte línea muestra las facilidades de MatLab utilizando los
% operadores entre arreglos
%reemplaza las líneas 10 al 15 del programa anterior.
ejey=(ejex.^2).*a+ejex.*b+c;
%j=1;
%for i=-3:3
% ejex(j)=i; %valores de x
% ejey(j)=a*i^2+b*i+c; % resultado de f(x)
% j=j+1;
%end
plot(ejex,ejey,'--
ro','linewidth',3,'markersize',6,'markeredgecolor','b','markerfacecolor',
'b')
title('ECUACION CUADRÁTICA');
grid on;
xlabel('x');
ylabel('f(x)');

Ventana de comandos

coeficiente de x^2?2
coeficiente de x?2
termino independiente 1
Raices
-2.0000 + 2.0000i
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 49

-2.0000 + 2.0000i

Ejemplo 64) Lectura y listado de una matriz

El script: matrices.m

%lectura y listado de una matriz de nxm


n=input('Total de filas? ');
m=input('Total de columnas? ');
v=lectura_matriz(n,m);
fprintf('\n la matriz es \n');
disp(v);

La función: lectura_matriz.m

function x = lectura_matriz( f,c )


for i=1:f
for j=1:c
fprintf('V[%d][%d]',i,j);
x(i,j)=input('?');
end
end
end

En la ventana de comando se ejecuta:


Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 50

>> matrices
Total de filas? 2
Total de columnas? 3
V[1][1]?1
V[1][2]?-1
V[1][3]?1
V[2][1]?2
V[2][2]?1
V[2][3]?2

la matriz es
1 -1 1
2 1 2

Ejemplo 65) Inversa de una matriz

Script matrices2.m

%Inversa de una matriz


txt1='\nMatriz A:\n';
txt2='\n Matriz inversa de A:\n';
Ad=input('Dimension de matriz? ');
A=lectura_matriz(Ad,Ad);
fprintf(txt1);
disp(A);
%utilizando la funcion inv para invertir matrices
B=inv(A);
fprintf(txt2);
disp(B);

La función: lectura_matriz.m

function x = lectura_matriz( f,c )


for i=1:f
for j=1:c
fprintf('V[%d][%d]',i,j);
x(i,j)=input('?');
end
end
end

Se ejecuta en la ventana de comandos:

>> matrices2
Dimension de matriz? 3
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 51

V[1][1]?1
V[1][2]?0
V[1][3]?3
V[2][1]?0
V[2][2]?1
V[2][3]?-2
V[3][1]?1
V[3][2]?1
V[3][3]?2

Matriz A:
1 0 3
0 1 -2
1 1 2

Matriz inversa de A:
4 3 -3
-2 -1 2
-1 -1 1

Ejemplo 66) Suma y multiplicación de matrices:

Script matrices3.m

%Operaciones elementales con matrices


%lectura y listado de una matriz Anxm
An=0; Am=0; Bn=0; Bm=0;
fprintf('\nMatriz A');
while (An<=0 | Am<=0)
An=input('\nTotal de filas? ');
Am=input('\nTotal de columnas? ');
end
A=lectura_matriz(An,Am);

%ahora la matriz B
%lectura y listado de una matriz Bnxm
fprintf('Matriz B');
while (Bn<=0 | Bm<=0)
Bn=input('\nTotal de filas? ');
Bm=input('\nTotal de columnas? ');
end
B=lectura_matriz(Bn,Bm);

%suma de matrices
fprintf('\nSUMA DE MATRICES\n');
fprintf('\n la matriz es A:\n');
disp(A);
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 52

fprintf('\n la matriz es B:\n');


disp(B);
if (An==Bn & Am==Bm) % si son del mismo tamaño
C=A+B;
fprintf('\nResultado de la suma:\n');
disp(C);
else
fprintf('\nLas matrices no se pueden sumar\n ');
end

%multiplicacion de matrices
fprintf('\nMULTIPLICACION DE MATRICES\n');
fprintf('\n la matriz es A:\n');
disp(A);
fprintf('\n la matriz es B:\n');
disp(B);
if (Am==Bn) % si el nro de columnas de A es igual al nro de filas de B
D=A*B;
fprintf('\nResultado de la multiplicacion:\n');
disp(D);
else
fprintf('\nLas matrices no se pueden multiplicar\n ');
end

La función lectura_matriz ya fue desarrollada se encuentra en el ejercicio anterior.

Se ejecuta en la ventana de comandos:

>> matrices3

Matriz A
Total de filas? 3

Total de columnas? 3
V[1][1]?1
V[1][2]?2
V[1][3]?3
V[2][1]?4
V[2][2]?5
V[2][3]?6
V[3][1]?7
V[3][2]?8
V[3][3]?9
Matriz B
Total de filas? 3

Total de columnas? 3
Elt-256 MatLab - I Docente. M.Sc. Irma Prado Pág.: 53

V[1][1]?1
V[1][2]?0
V[1][3]?0
V[2][1]?0
V[2][2]?1
V[2][3]?0
V[3][1]?0
V[3][2]?0
V[3][3]?1

SUMA DE MATRICES

la matriz es A:
1 2 3
4 5 6
7 8 9
la matriz es B:
1 0 0
0 1 0
0 0 1
Resultado de la suma:
2 2 3
4 6 6
7 8 10

MULTIPLICACION DE MATRICES

la matriz es A:
1 2 3
4 5 6
7 8 9
la matriz es B:
1 0 0
0 1 0
0 0 1
Resultado de la multiplicacion:
1 2 3
4 5 6
7 8 9

Você também pode gostar