Está en la página 1de 75

Escuela Académica Computación Científica Prof.

Richard Mamani

UNIVERSIDAD NACIONAL MAYOR DE SAN


MARCOS

FACULTAD DE CIENCIAS MATEMATICAS


ESCUELA ACADÉMICA DE COMPUTACIÓN
CIENTÍFICA

Manual de
MATLAB

DERECHOS RESERVADOS
Escuela Académica Computación Científica Prof. Richard Mamani

INTRODUCCIÓN

MATLAB es un potente lenguaje diseñado para la computación a gran nivel. El


Nombre MATLAB viene de Matriz LABoratory, pues en la mayor parte del uso de
aplicación esta orientado a la gestión de este tipo de datos (arrays). MATLAB puede ser
utilizado en la computación matemática, modelado y simulación, analisis y
procesamiento de tos en la visualización de y presentación de gráficos, y bastante
utilizado en la generación de algoritmos.

MATLAB es ampliamente conocido por el uso que se dan en los primeros ciclos
en las facultades en la enseñanza de cursos básicos de programación, avanzados de
programación en matemática, ciencia y la ingeniería. Ahora no solo es utilizado en las
universidades, también la industria en donde da bastante apoyo en la investigación,
desarrollo y en el diseño de prototipos.

De gran ayuda resulta la utilización de toolboxes. Que son colecciones de


funciones que están desarrolladas para la solución de problemas específicos.

MATLAB se ha convertido en el curso que se puede enseñar antes de un curso


verdadero de programación ya que su uso no condiciona un saber profundo de ningún
lenguaje de programación, ya que cuenta con su propio editor y compilar incorporados.

2
Escuela Académica Computación Científica Prof. Richard Mamani

CAPITTULO 1

1. Comenzado con MATLAB.

1.1 Ventanas.

Vamos a suponer que el programa ya esta instalado y que el usuario haya iniciado
el programa, entonces la primera ventana que aparece es la siguiente:

Barra de
Menús

Cursor

Directorio actual Ventana de


comandos

Ventana de comandos
Ejecutados

Inicio

Aquí solo aparecen tres de las ocho ventanas que tiene MATLAB que es la
versión por defecto que ofrece MATLAB. En la siguiente tabla se da de las ventanas
que tiene el programa:

3
Escuela Académica Computación Científica Prof. Richard Mamani

Tabla N°1 : ventanas de MATLAB


Nombre Signifiado
Command Window Ventana de comandos
Figure Window Ventana de gráficos
Help Window Ventana de ayuda
Editor de window Ventana del editor
Launch Pad window Ventana de plataforma
Command History window Ventana histórico de comandos
Workspace window Ventana del espacio de trabajo
Current Directory window Ventana del directorio actual

Command Window (ventana de comandos).

Es la ventana principal de MATLAB, esta siempre por defecto al inicializar el


programa es conveniente tenerla siempre activa.

Se puede tener solo la ventana de comandos haciendo lo siguiente: cerrando las


demás ventanas pulsando el icono (x) de cada ventana restante.

La segunda forma para realizar el siguiente proceso:

1 ir al menú Desktop (escritorio),


2 seleccionar Desktop Layout (distribución de escritorio)
3 luego seleccionar Command window Only (solo la ventana de
comandos)

Ver la figura siguiente:

4
Escuela Académica Computación Científica Prof. Richard Mamani

Ahora si quiere trabajar de manera correcta, se recomienda tener las tres ventanas
principales para ello hacer lo siguiente:

1 ir al menú Desktop (escritorio),


2 seleccionar Desktop Layout (distribución de escritorio)
3 seleccionar default (por defecto).

Ver la siguiente figura:

Figure Window (ventana de gráficos)

Esta ventana se abre automáticamente cuando se ejecuta un comando de


visualización grafica. La ventana muestra el grafico creado por comando y las
características que se muestran en el siguiente grafico:

5
Escuela Académica Computación Científica Prof. Richard Mamani

Editor window (ventana del editor).

Esta ventana se obtiene del menú FILE y se utiliza para escribir y editar
programas. En la figura siguiente se muestra esta ventana.

Help window (ventana de ayuda).

La centana de ayuda de MATLAB es el acceso que le da al usuario toda la


documentación para un mejor manejo de la aplicación. Esta opción se encuentra en el
menú HELP. Es interesante ya que puede ayudar al usuario en cualquier aspecto de
MATLAB.

6
Escuela Académica Computación Científica Prof. Richard Mamani

1.2 Utilización de la Ventana de Comandos.

La ventana de comandos es la ventana principal de MATLAB, y se utiliza para la


ejecución de comandos, abrir otras ventanas, ejecutar programas escritos por el usuario
y gestionar el software de MATLAB.

1.3 algunos detalles de la ventana de comandos.

Para escribir un comando el cursor debe estar después del símbolo ‘>>’, llamado
prompt.

Se puede teclear mas un comando en una sola línea, esto se logra con una coma
entre comando y comando.

Es imposible corregir un comando antes ejecutado, esto es reejecutar el comando,


pero es posible ir hacia arriba (con las flechas direccionales) y ejecutar como un nuevo
comando.

Un comando ejecutado puede ser invocado de nuevo con las flechas direccionales
hacia arriba o en defecto con las flechas hacia abajo.

Cuando un comando es demasiado grande puede ser distribuido en mas dos


líneas, esto se logra tecleando al final de la línea anterior puntos suspensivos y pulsando
la tecla intro.

Lo anterior tiene un límite de máximo de 4096 caracteres.

Cuando se usa punto y coma (;) al finalizar una instrucción lo que genera es que
sea visualizada la ejecución en la ventana de comandos. Lo contrario ocurre si no se
utiliza punto y coma.

El uso de (%) antes de un comando significara que es un comentario es quiere


decir que cuando se pulse la tecla intro la línea no se ejecutara, por lo general es
necesario utilizar comentarios en la ventana de comandos. Lo mismo sucede cuando se
esta editando en la ventana del editor.

Un comando importante es el clc que tiene como función borrar el contenido de la


ventana de comandos, es una buena forma de limpiar la ventana de comandos cuando
esta se va llenando de instrucciones. Lo mas importante es que no se borra los
comandos y las variables que se han creado o editado y pueden ser recuperados con las
flechas direccionales y usarse normalmente.

1.4 Operaciones aritméticas con escalares.

MATLAB permite hacer operaciones aritméticas directamente con los números y


no solo eso también trabajar con funciones matemáticas tales como seno o coseno pero
siempre con números fijos directamente, a este modo de utilizar MATLAB es conocido
con la función calculadora de MATLAB.

7
Escuela Académica Computación Científica Prof. Richard Mamani

Veamos en la siguiente tabla algunos ejemplos de operaciones aritméticas.

Tabla N° 2 operadores matematicos


Operaciones Símbolo Ejemplo
Suma + 2+3
Resta - 5-4
Multiplicación * 8*7
División izquierda \ 8\2=2/8
División derecha / 4/5
exponencial ^ 3^2 (32=9)

Ver que la división izquierda es la inversa de división habitual, que lo general se


utilizara para la operación con matrices, por lo demás son operaciones se pueden
encontrar en cualquier calculadora de mano.

En cuanto a las agrupaciones matemáticas que pueden utilizarse en MATLAB


son:

Tabla N° 3 de signos de agrupaciones


Precedencia Operaciones matemáticas
Primero Paréntesis. Si hubiera varios anidados
se ejecutara el más interno.
Segundo Exponenciales
Tercero Multiplicación y l división
Cuarto Suma y resta.

Ejemplo1

53
2

Solución con matlab:


>> 5^3/2
ans =
62.5000

Ejemplo 2

3
52

Solución con matlab:

>> 5^(3/2)
ans =
11.1803

8
Escuela Académica Computación Científica Prof. Richard Mamani

Ejemplo 3

((1 + 2(5 − 4) ) ) 2 +1 22
2

Solución

>> ((1+2*(5-4)^2)^(2+1))^(2^2)
ans =
531441

1.5 Formato de visualización de números.

En MATLAB existen varias formas de visualizar los resultados numéricos, por


ejemplo esta por defecto la visualización con 4 dígitos decimales; pero no son las únicas
que existen, en la siguiente tabla se muestran las demás formas:

Tabla N°4 formatos de visualización


Comando Descripción Ejemplo
Punto fijo con 4 dígitos >> 352/7
decimales ans =
Format short
Resolución: 50.2857
0.001 ≤ num ≤ 1000
Punto fijo con 14 dígitos >> 352/7
decimales ans =
Format long
Resolución: 50.28571428571429
0.001 ≤ num ≤ 100
Notación científica con 4 352/7
Format short e dígitos decimales ans =
5.0286e+001
Notación científica con 15 >> 352/7
Format long e dígitos decimales ans =
5.028571428571429e+001
Punto flotante de 5 dígitos >> 352/7
Format short g ans =
50.286
Punto flotante de 15 dígitos 352/7
Format long g ans =
50.2857142857143
2 dígitos decimales >> 352/7
Format bank ans =
50.29

9
Escuela Académica Computación Científica Prof. Richard Mamani

1.6 Funciones matemáticas básicas.

Además de las operaciones aritméticas básicas, las expresiones que se construyen


en MATLAB funciones matemáticas de mayor nivel, para ello MATLAB ofrece una
basta colección de librerias que contienen funciones predefinidas.

Una función se compone básicamente de un nombre y unos argumentos de entrada


que va entre paréntesis.

Como ejemplo tenemos la función raíz cuadrada de matlab:

sqrt(x), donde el nombre de la función es sqrt y el argumento de entrada es la


variable x. Esta función también se puede utilizar con escalares, veamos algunos
ejemplos.

Con escalares: Con variables

>> sqrt(1024) >> sqrt(x)


ans= ans =
32 x^(1/2)

Ahora también se puede trabajar con una agrupación de esclares y de variables.

>> sqrt(5+(4+5)*12/5*sqrt(14))
ans =

9.2639

En la siguiente tabla se presentan las demás funciones matemáticas, estas


funciones están predefinidas en MATLAB y la mayoría es utilizada con frecuencia en
algoritmo y instrucciones cotidianos.

Tabla N° 5 funciones matemáticas


Función Descripción Ejemplo
sqrt(x) Raíz cuadrada >>sqrt(9) ans= 9
exp(x) Exponencial (ex) >>exp(4) ans= 54.5982
abs(x) Valor absoluto >>abs(-45) ans= 45
Log(x) Logaritmo natural (ln) >>log(10) ans= 2.3026
Log10(x) Logaritmo en base 10 >>log10(100) ans= 2
Factorial(x) Función factorial x! >>factorial(5) ans= 120

Estas funciones pueden ser utilizadas de manera similar como la función sqrt.

10
Escuela Académica Computación Científica Prof. Richard Mamani

Lista de funciones trigonométricas.

Tabla N° 6 funciones trigonométricas


Función En matlab
Seno >>sin(x)
Coseno >>cos(x)
Tangente >>tan(x)
Cotangente >>cot(x)
Arco seno >>acos(x)
Arco coseno >>asin(x)
Arco tangente >>atan(x)
Arco cotangente >>acot(x)
Seno hiperbólico >>sinh(x)
Coseno hiperbólico >>cosh(x)
Tangente hiperbólico >>tanh(x)
Cotangente hiperbólico >>coth(x)
Arco seno hiperbólico >>asinh(x)
Arco coseno hiperbólico >>acosh(x)
Arco tangente hiperbólico >>atanh(x)
Arco cotangente hiperbólico >>acoth(x)

Nota: la variable x que aparece como argumento de cada función puede ser una
variable definida, esto es asignar un valor previamente; puede ser una variable
predefinida en MATLAB o puede ser una instrucción de varios comandos y funciones
matemáticas antes citas.

Funciones de redondeo en MATLAB.

Tabla N° 7 funciones de redondeo


función Descripción Ejemplo
round(x) Redondeo al entero mas >> round(85/12)
próximo ans = 7
fix(x) Redondeo hacia el cero >> fix(45/8)
ans = 5
Ceil(x) Redondeo hacia el infinito >>ceil(15/7)
ans = 3
Floor(x) redondeo al menos infinito >>floor(-12/5)
ans = -3
Rem(x) Retorna el resto del >> rem(5,2)
división ans = 1
Sign(x) Función signo* >> sign(45)
ans = 1

Nota: la funciones anteriores solo se usan con escalares y una agrupación de


operaciones aritméticas básicas.

*Recordar:

11
Escuela Académica Computación Científica Prof. Richard Mamani

La función signo se define como:

si x〈0 ⇒ sig ( x) = −1
si x=0 ⇒ sig ( x) = 0
si x〉 0 ⇒ sig ( x) = 1

1.7 Definición de variables escalares

Una variable es una letra, letras, letras o dígitos a la cual se le asignara un valor
numérico. La función de la variable es permite su uso tanto como argumento de una
función o de un comando en MATLAB.

Una variable en MATLAB puede contener expresiones matemáticas, funciones o


comandos, estas expresiones pueden ser tantas como se pueda.

A nivel de hardware lo que hace MATLAB, una vez asignado el valor numérico,
es localizar un espacio de memoria apropiado para tipo de dato a almacenar, de hecho,
es el nombre de la posición de memoria. Por lo que cuando se utiliza una variable lo que
se esta haciendo en realidad es utilizar su valor numérico asignado.

Lo mas importante en MATLAB es que cuando se le asigna un nuevo valor, lo


que se esta haciendo en realidad es reemplazar la posición de memoria por el nuevo
valor, en consecuencia el valor anterior es eliminado.

La pregunta que surge es si en una variable se puede almacenar también otras


variables internamente que no sea numérica. La respuesta a esta interrogante se dará
mas adelante.

El operador asignación.

El símbolo (=) es el operador de asignación en MATLAB, es mediante este


símbolo que se asignar un valor a las variables. Esto es:

>> a=12 >> a=sign(exp(2)*sqrt(2)+2*12)

a= a=

12 1

Ejemplo

>> a=12;
>> b=15;
>> c=a+b
c=

12
Escuela Académica Computación Científica Prof. Richard Mamani

27

>> b
b=

15
>> a=a+10*a
a=

132

Nota: Analizar lo que se esta haciendo en la ventana de comandos.

Algunas consideraciones sobre las variables.

Pueden tener un máximo de 63 caracteres en MATLAB 7.0


Pueden tener contener letras, dígitos, y el caracter de subrayado.
Deben empezar con una letra.
MATLAB es un lenguaje que distingue entre minúsculas y mayúsculas.
Se debe de evitar de asignar valores a los nombres funciones o comandos. Ya que
su utilización como nombre de una variable generara que se vuelva a utilizar.

Variables predefinidas de MATLAB

Existen una serie de variables predefinidas que pueden ser utilizadas por el
usuario ya que contienen valores constantes predefinidos. Se recomienda de igual forma
no asignar otros valores diferentes por lo que se debe de evitar de usar como nombres de
variables.

Como:

ans esta variable contiene el ultimo resultado de una sentencia al que no se le


haya asignado una variable. Esto es, si la sentencia no es asignada a una variable
MATLAB lo asigna automáticamente a ans.

pi es le valor numero de π

inf representa el infinito.

i define la raíz cuadrada de -1

NaN cuando MATLAB no puede determinar un valor numérico válido

Puede destacarse que los valore de pi e i pueden ser redefinidas desde la ventana
de comandos.

13
Escuela Académica Computación Científica Prof. Richard Mamani

Comandos útiles en el manejo de variables.

Clear: borra todas las variables de memoria.

Sentencia >>clear
>>clear all

Clear x y z : Borra solo las variables x, y, y z.

Sentencia >>clear x y z

Who: muestra en un listado todas variables almacenada memoria.

Whos muestra en un listado todas las variables almacenadas en memoria y su


tamaño, junto con la información de la clase y longitud.

14
Escuela Académica Computación Científica Prof. Richard Mamani

CAPITTULO 2

ARRAYS

Es una estructura o arreglo fundamental que MATLAB utiliza para almacenar y


manipular datos. Es una lista de números dispuestos en filas y/o columnas. Un array
unidimensional esta formado por una fila o columna, un array bidimensional es un
arreglo de números dispuestos en varias filas o columnas.

A los arrays unidimensionales en las matemáticas se les denomina comúnmente


vectores mientras que a los bidimensionales se llaman matrices.

Además de arrays numéricos, en MATLAB se pueden crear arrays de caracteres


que se denomina cadenas o strings que se verán más adelante.

2.1 creación de arrays unidimensionales.

La creación de un array unidimensional lo podemos relacionar con los vectores


que conocemos de las matemáticas; por ejemplo, tenemos un punto en el espacio
A(2,5,6), puede ser presentado por una sucesión de tres números 2,5 y 6 que presentan
las coordenadas de los puntos en cuestión. Así en general un vector de dimensión n
puede ser presentado por una sucesión de n números que serán las coordenadas del
vector.

Hora cualquier sucesión de números, como los números de una tabla de doble
entrada, puede ser transformada a un array o arreglo de números.

En MATLAB generalmente se crea arrays a partir de una sucesión de números ya


sea que pertenece a un punto o una lista de números, esto de hace directamente
asignando los valores a una variable o también se puede crear con comandos del
programa, si estos vectores tienen alguna características especial.

Creación de array de un alista de números conocidos.

Para la creación de array se debe asignar de la siguiente forma:

>>nombre_variable=[elementos de la lista conocida]

15
Escuela Académica Computación Científica Prof. Richard Mamani

Vector fila: Vector columna:

>> vector=[12 4 5 65] >> vector=[12;2;5;63]

vector = vector =
12
12 4 5 65 2
5
63

También se puede crear vectores con una distancia fija entre sus elementos:

>> vector=[1:2:10]
>> vector=[i:i+2:10]
vector =
vector =
1 3 5 7 9
0 2 4 6 8 10
>> vector=i:i+2:10
>> vector=[1
2 vector =
3
4] 0 2 4 6 8 10
vector = >> vector=[3:10]

1 vector =
2
3 3 4 5 6 7 8 9 10
4

Comando linspace:

Este comando permite crear un vector a partir de los elementos inicial y final, y
especificando una cantidad fija de elementos.

Sentencia:

>>nombre_variable=linspace(xi,xf,n)

>> vector=linspace(2,8,3) >> vector=linspace(2,8,5)

vector = vector =

2 5 8 2.0000 3.5000 5.0000 6.5000


8.0000

16
Escuela Académica Computación Científica Prof. Richard Mamani

Nota: cuando se obvia “n” MATLAB asigna uno por defecto, así tiene un valor de
100.

2.2 Creación de arrays bidimensionales (matrices).

Los arrays bidimensionales son los tipos de datos para lo esta diseñado
MATLAB. Ya que la matrices son usan tanto en la ingeniería como en las ciencias
básicas para modelar y resolver problemas, gracias a las propiedades que se derivan del
algebra lineal.

Es un tipo de dato que fácilmente puede ser visto como una tabla de doble entrada.

En MATLAB se pueden trabajar con matrices de orden mxn, esto es m filas y n


columnas. Para poder crear una matriz solo hay que asignar los elementos, por filas
separados por un espacio o una coma luego un punto y coma para la siguiente fila, a una
variable.

Veamos las formas para asignar los elementos:

>> matriz=[1 2 4 8 ;4 9 78 2] >> matriz=[4 5 7 8


1124
matriz = 4 5 7 1]
matriz =
1 2 4 8
4 9 78 2 4 5 7 8
1 1 2 4
4 5 7 1

Nota: en el primer caso se utiliza punto y coma para diferenciar las filas de las
columnas y en le segundo caso se utiliza la tecla enter o intro para diferenciar las filas
de las columnas.

También se puede asignar con elementos que son de funciones matemáticas o de


comandos con escalares.

Véase el ejemplo:
>> matriz=[cos(x) sin(x) 0 0
-sin(x) cos(x) sin(x) 0
0 -sin(x) cos(x) sin(x)
0 0 -sin(x) cos(x)]

matriz =

[ cos(x), sin(x), 0, 0]
[ -sin(x), cos(x), sin(x), 0]
[ 0, -sin(x), cos(x), sin(x)]
[ 0, 0, -sin(x), cos(x)]

17
Escuela Académica Computación Científica Prof. Richard Mamani

2.3 Los comandos zeros, one y eye.

Estos comandos son aplicables tanto a vectores como a matrices, veamos algunos

ejemplos.

>> zeros(4) >> ones(4)


ans =
ans =
0 0 0 0
0 0 0 0 1 1 1 1
0 0 0 0 1 1 1 1
0 0 0 0 1 1 1 1
1 1 1 1
>> zeros(1,4)
ans = >> eye(4)

0 0 0 0 ans =

>> zeros(2,4) 1 0 0 0
ans = 0 1 0 0
0 0 1 0
0 0 0 0 0 0 0 1
0 0 0 0

2.4 La transpuesta de una matriz

El comando con el cual se logra la transpuesta de una matriz es: ( ' )

Veamos como funciona:

>> matriz
matriz =

[ cos(x), sin(x), 0, 0]
[ -sin(x), cos(x), sin(x), 0]
[ 0, -sin(x), cos(x), sin(x)]
[ 0, 0, -sin(x), cos(x)]

>> matriz'

ans =

[ cos(conj(x)), -sin(conj(x)), 0, 0]
[ sin(conj(x)), cos(conj(x)), -sin(conj(x)), 0]
[ 0, sin(conj(x)), cos(conj(x)), -sin(conj(x))]
[ 0, 0, sin(conj(x)), cos(conj(x))]

18
Escuela Académica Computación Científica Prof. Richard Mamani

De la misma forma, se puede hallar la transpuesta a un vector:

>> v=[1:5]
v=

1 2 3 4 5

>> vtrans=v'
vtrans =

1
2
3
4
5

Manipulación de arrays

Los elementos de un array (un vector o una matriz) se pueden manipular de


manera individual o en grupo. Es de gran utilidad cuando se desea redefinir algunos
elementos o un grupo de elementos de manera conveniente, para los cálculos
específicos.

Manipulación de vectores.

En la manipulación de un vector se da con los elementos que lo conforman; por


ejemplo, si un vector (v) tiene 4 elementos, cada elemento es ubicado con ve(k) donde
k es un natural (k=1, 2,3,4).

>> ve=[sqrt(i):sqrt(i+5):sqrt(100)]
ve =

0 2.2361 4.4721 6.7082 8.9443

>> a=ve(1),b=ve(2),c=ve(3),d=ve(4)
a=
0

b=
2.2361

c=
4.4721

d=
6.7082

19
Escuela Académica Computación Científica Prof. Richard Mamani

También se puede mostrar una parte del vector:

>> ve(1:3)
ans =

0 2.2361 4.4721

>> ve(1:3)+1
ans =

1.0000 3.2361 5.4721

>> ve([1 3 5])


ans =

0 4.4721 8.9443

Se crea el vector v

>> v=[1 2 4 8 1 2 6 8 9]
v=

1 2 4 8 1 2 6 8 9

Se toma los elementos desde 1 hasta 5 de 2 en 2, luego se agrega los elementos 10


y 15
>> a=[v(1:2:5) 10 15]
a=

1 4 1 10 15

Ahora de aquí de pueden usar para hacer operaciones convenientes con funciones
y comandos donde los argumentos de entrada son los elementos de un vector.
Veamos ejemplos.

>> z=exp(ve(2))+sin(ve(4)^(ve(1)))-ve(5)
z=

1.2537

Manipulación matricial.

La manipulación matricial tiene algunos otros interesantes. Veamos:

Ver que los elementos de una matriz se pueden ubicar mediante:


ma(i,j) donde 1<=i<=m y 1<=j<=n para una matriz de orden mxn

20
Escuela Académica Computación Científica Prof. Richard Mamani

Se crea la siguiente matriz:


⎛1 4 5 ⎞
⎜ ⎟
ma = ⎜ 3 7 6 ⎟
⎜ 8 2 10 ⎟
⎝ ⎠

Cambia a cero el elemento de la 3ra fila Para visualizar filas


y 3ra columna de la matriz ma >> ma([1 3],:)
>> ma(3,3)=0 ans =
ma = 3 4 5 0 0 0
8 2 0 0 0 0
3 4 5
3 7 6 Crea una matriz B tomando el orden
8 2 0 inverso de la matriz ma
>> B=ma(3:-1:1,:)
Coloca 1 en la fila 2 y columna 6 de la
matriz ma. B=
>> ma(2,6)=1
ma = 8 2 0 0 0 0
3 7 6 0 0 1
3 4 5 0 0 0 3 4 5 0 0 0
3 7 6 0 0 1
8 2 0 0 0 0 Creando C tomando la matriz ma y
las filas 1 y 3 de B:
Para ver las filas o columnas de la >> C=[ma B(:,[1 3])]
matriz ma: C=
Visualiza la primera columna
>> ma(:,1) 3 4 5 8 10
ans = 3 7 6 3 6
8 2 10 3 5
3
3 Un operador de asignación:
8
Visualiza la primera y la tercera >> M=C
columna
>> ma(:,[1 3]) M=
ans = 3 4 5 8 10
3 7 6 3 6
3 5 8 2 10 3 5
3 6
8 0

21
Escuela Académica Computación Científica Prof. Richard Mamani

Nota: el operador transpuesta de los vectores es la misma para matrices:

Eliminación de filas y columnas: Sustituyendo filas o columnas de


matriz a matriz.
>> B(2,:)=[] >> ma
ma =
B=
3 4 5
8 2 10 3 7 6
3 4 5 8 2 10
Analogo a la eliminación de >> ma(1,:)=B(1,:)
columnas. ma =
>> B(:,2)=[] 8 2 10
8 10 3 7 6
3 5 8 2 10

Operaciones con matrices:

Símbolo Operación
+ Suma de matrices A+B
- Sustracción o resta A-B
* multiplicación de matrices A*B
^ potencia de matrices A^2
\ división izquierda
/ división derecha
.* multiplicación de elemento a elemento
./ .\ division de elemento a elemento
.^ eleva a una potencia cada elemento

Nota: todas las operaciones de matrices están de acuerdo a la teoría del algebra
matricial.

Otros tipos de matrices:


logspace(d1,d2.n) genera un vector de n elementos espaciados
logarítmicamente entre 10^d1 y 10^d2.
rand genera un numero aleatorio entre 0 y 1.
rand(n,n) genera una matriz de orden nxn donde sus elementos
son números aleatorio entre 0 y 1.
rand(m,n) genera una matriz de orden mxn donde sus elementos
son números aleatorio entre 0 y 1.
Randperm(n) genera un vector de n elementos donde sus elementos
son permutaciones de los n primeros números naturales
magic(n) genera una matriz similar a un cuadrado mágico.
kron(x,y) genera una matriz donde sus elementos son productos
de todos los elementos de x con los elementos de y.
compan(pol) genera una matriz cuyo polinomio característico tiene

22
Escuela Académica Computación Científica Prof. Richard Mamani

coeficientes los elementos del vector pol.


vander(v) genera una matriz de Vandermode a partir del vector v.

Funciones de MATLAB asociados a las matricez y vectores.

Función Descripción Ejemplo


mean(A) Si A es un vector, retorna el A =[ 8 2 10]
valor medio de los elementos >> mean(A)
ans =
6.6667
max(A) Si A es vector, devuelve el >> max(A)
mayor de elementos de A ans =
10
[max p]=max(A) Devuelve el maximo y la >> [mx p]=max(A)
posición del elementos de un mx =
vector. 10
p=
3
min(A) Son similares a la función Repetir los ejemplos.
max.
sum(A) Suma los elementos de un >> sum(A)
vector. Y los elementos de ans =
cada columna si es una matriz 20
sort(A) Ordena los elementos de v =[ 3 7 6]
vector de forma ascendente >> sort(v)
ans =
3 6 7
det(A) Devuelve la determinante de
una matriz
dot(A,B) Devuelve el producto interno
entre A y B vectores
cross(A,B) Devuelve el producto cruz de
dos vectores
[m n]=size(B) Devuelve el orden de la
matriz
length(x) Devuelve el numero de
elementos de un vector.
diag(x) Crea una matriz diagonal con
los elementos del vector x
blkdiag(A,B) Forma una matriz diagonal de
submatrices A y B
triu(A) Transforma en matriz
triangulas superior a partir de
una matriz A
prod() Devuelve el producto de los
elementos de un vector

23
Escuela Académica Computación Científica Prof. Richard Mamani

Otras funciones aplicados a funciones:

Sea A una matriz cuadrada, las funciones siguientes pueden aplicarse.

Poly(A): devuelve el polinomio característico de A.

Trace(A) devuelve la traza de una matriz.

Las funciones exp(), sqrt() y log() se aplican elemento a elemento a las matrices
y/o vectores que se les pasan como argumentos. Existen otras funciones similares que
tienen también sentido cuando se aplican a una matriz como una única entidad. Estas
funciones son las siguientes (se distinguen porque llevan una "m" adicional en el
nombre):

expm(A) si A=XDX', expm(A) = X*diag(exp(diag(D)))*X'


sqrtm(A) devuelve una matriz que multiplicada por sí misma da la matriz A
logm() es la función recíproca de expm(A)

Aunque no pertenece a esta familia de funciones, se puede considerar que el


operador potencia (^) está emparentado con ellas. Así, es posible decir que:

A^n está definida si A es cuadrada y n un número real. Si n es entero, el resultado


se calcula por multiplicaciones sucesivas. Si n es real, el resultado
se calcula como: A^n=X*D.^n*X' siendo [X,D]=eig(A)

FUNCIONES DE FACTORIZACIÓN Y/O DESCOMPOSICIÓN


MATRICIAL

A su vez este grupo de funciones se puede subdividir:

– Funciones basadas en la factorización triangular (eliminación de Gauss):

[L,U] = lu(A) descomposición de Crout (A = LU) de una matriz. La matriz


L esuna permutación de una matriz triangular inferior (dicha
permutación es consecuencia del pivotamiento por columnas
utilizado en la factorización)

B = inv(A) calcula la inversa de A. Equivale a B=inv(U)*inv(L)


E = rref(A) reducción a forma de escalón (mediante la eliminación de
Gauss con pivotamiento por columnas, haciendo ceros
también encima de los pivots) de una matriz rectangular A

[E,xc] = rref(A) reducción a forma de escalón con un vector xc que da


información sobre una posible base del espacio de columnas
de A
U = chol(A) descomposición de Cholesky de matriz simétrica y positivo-
definida. Sólo se utiliza la diagonal y la parte triangular
superior de A. El resultado es una matriz triangular superior

24
Escuela Académica Computación Científica Prof. Richard Mamani

tal que A = U'*U

– Funciones basadas en el cálculo de valores y vectores propios:

[X,D] = eig(A) valores propios (diagonal de D) y vectores propios (columnas


de X) de una matriz cuadrada A. Con frecuencia el resultado
es complejo (si A no es simétrica)

[X,D] = eig(A,B) valores propios (diagonal de D) y vectores propios (columnas


de X) de dos matrices cuadradas A y B (Ax = λBx). Los
vectores propios están normalizados de modo que X'*B*X=I.
Cuando A es simétrica y B es simétrica y definida-positiva se
puede utilizar [X,D] = eig(A,B,'chol').

– Funciones basadas en la descomposición QR:

[Q,R] = qr(A) descomposición QR de una matriz rectangular. Se utiliza para


sistemas con más ecuaciones que incógnitas. Q es una matriz
ortogonal, es decir, es cuadrada aunque A no lo sea (m>n). No
se garantiza que los elementos diagonales de R sean positivos,
lo cual crea dificultades en algunos problemas (esa factorización
no coincide con la de Gram-Schmidt).

[Q,R] = qr(A,0) similar a la anterior, pero con Q del mismo tamaño que A, es
decir, sin completar una base ortonormal cuando m>n.

[Q,R,E]=qr(A) factorización QR con pivotamiento por columnas. La matriz E es


una matriz de permutación tal que A*E=Q*R. La matriz E se
determina de modo que los elementos de abs(diag(R)) son
decrecientes.

B = pinv(A) calcula la pseudo-inversa de una matriz rectangular A.


r = rank(A) calcula el rango r de una matriz rectangular A.
nor = norm(A) calcula la norma-2 de una matriz (el mayor valor singular).
nor = norm(A,2) lo mismo que la anterior.
nor = normest(A) calcula de forma aproximada la norma-2 con menos
operaciones aritméticas que la función norm.

c = cond(A) condición numérica sub-2 de la matriz A. Es el cociente entre el


máximo y el mínimo valor singular. La condición numérica da
una idea de los errores que se obtienen al resolver un sistema de
ecuaciones lineales con dicha matriz: su logaritmo indica el
número de cifras significativas que se pierden.
Si A es grande el cálculo es laborioso.

c = condest(A) estimación por defecto de la condición numérica de A con la


norma-1. Esta función es mucho más económica que cond.

25
Escuela Académica Computación Científica Prof. Richard Mamani

SOLUCION DE ECUACIONES LINEALES.

Esto se puede escribir de la forma matricial:

Ax = b

Donde A y b son:

⎛ b1 ⎞
⎛ a11 … a1n ⎞ ⎜ ⎟
⎜ ⎟ ⎜ ⎟
⎜ ⎟ y
⎜a ⎜ ⎟
⎝ n1 ann ⎟⎠ ⎜⎜ ⎟⎟
⎝ bn ⎠

Asi se tiene una ecuación matricial de la forma: Ax = b

Se puede obtener la solución mediante la división matricial de MATLAB.

División izquierda:

Cociente Matricial B/A=B*inv(A) de donde x = B*inv(A)

División derecha:

Cociente Matricial A\B=inv(A)*B de donde x= inv(A)*B

Si A es una matriz no singular (i.e. A tiene inversa) cuadrada entonces A/B y B\A
corresponden respectivamente a la multiplicación por izquierda y derecha de B por A-1.

Ejemplo.

Resolver el sistema:

26
Escuela Académica Computación Científica Prof. Richard Mamani

Solución en matlab

>> A=[0.2 0.5 2; 1 5 2.5; 5 0.2 >> B=[10 9 1] >> x=B/A


1]
B= x=
A=
10 9 1 -2.8801 2.0196 1.7113
0.2000 0.5000 2.0000
1.0000 5.0000 2.5000
5.0000 0.2000 1.0000

>> B=[10; 9; 1] >> x=A\B

B= x=

10 -0.8231
9 -0.6589
1 5.2470

Una manera mas fácil es usando la función linsolve.

FUNCION LINSOLVE

La función linsolve es la forma más eficiente de que dispone MATLAB para


resolver sistemas de ecuaciones lineales. A diferencia del operador barra invertida \, esta
función no trata de averiguar las características de la matriz que permitan hacer una
resolución más eficiente: se fía de lo que le dice el usuario. Si éste se equivoca, se
obtendrá un resultado incorrecto sin ningún mensaje de error.

Las formas generales de la función linsolve para resolver Ax=b son las siguientes:

>> A=[0.2 0.5 2; 1 5 2.5; 5 0.2 >> B=[10; 9; >> X=linsolve(A,B)


1] 1]
X=
A= B=
-0.8231
0.2000 0.5000 2.0000 10 -0.6589
1.0000 5.0000 2.5000 9 5.2470
5.0000 0.2000 1.0000 1

27
Escuela Académica Computación Científica Prof. Richard Mamani

TRABAJANDO CON POLINOMIOS:

Los polinomios con expresiones matemáticas muy usadas en el modelado y


resolución de problemas matemáticas. En muchos casos los polinomios presentan una
forma practica de crear ecuaciones para resolver determinados problemas.

MATLAB tiene una gran variedad de funciones para trabajar con polinomios.

Aquí algunos de los comandos para polinomios de la forma.

p ( x) = an x n + an −1 x n −1 + an − 2 x n − 2 + ...... + a1 x1 + ao

La representación en matlab de los polinomios es la forma de vector.

Polinomios Representación en matlab


8x + 5 p = [8 5]
2 x 2 − 4 x + 10 p = [2 4 10]
6 x2 + 5 p = [6 0 5]
5 x5 + x p = [5 0 0 0 01]

Evaluaciones de polinomios en un punto.

polyval(p,a):

>> p=[5 0 0 0 0 1]
p=
5 0 0 0 0 1

>> pa=polyval(p,1)
pa =

También se puede evaluar polinomios con valores complejos.

>> p
p=

1 2 3
>> px=polyval(p,1.2+3*i)

px =

-2.1600 +13.2000i

28
Escuela Académica Computación Científica Prof. Richard Mamani

Nota: todo vector puede adoptar la forma de un polinomio donde sus elementos
representan los coeficientes del polinomio.

Se puede evaluar polinomios donde el argumento es un vector de la forma:

>> x=0:1:5;
>> px=polyval(p,x)
px =

1 6 161 1216 5121 15626

RAICES DE POLINOMIOS

De la misma forma de puede obtener las raíces de polinomios:

roots(p):

>> p
p=
1 2 3
>> raices=roots(p)

raices =

-1.0000 + 1.4142i
-1.0000 - 1.4142i

>> p=[1 5 5 1 5];


>> raices=roots(p)
raices =

-3.5664
-1.8870
0.2267 + 0.8316i
0.2267 - 0.8316i

SUMA Y RETA DE POLINOMIOS.

Los polinomios en matlab se suma de acuerdo al tamaño de los vectores que los
representan, así, se debe tener cuidado con los grados de polinomios para realizar las
operaciones.

29
Escuela Académica Computación Científica Prof. Richard Mamani

Ejemplo.

Sean los polinomios:

p1 ( x) = 2 x 3 + 2
p2 ( x ) = x + 5

En matlab:

>> p1=[2 0 0 2];


>> p2=[0 0 1 5];
>> sump=p1+p2

sump =

2 0 1 7

La resta de polinomios es de forma análoga:

>> resp=p1-p2

resp =

2 0 -1 -3

PRODUCTO DE POLINOMIOS

conv(p1,p2): Multiplicación de polinomios p1 y p2

En Matlab tenemos:
>> P=conv(p1,p2)

P=

2 10 0 2 10

Que es un polinomio de la forma:

P = 2 x 4 + 10 x 3 + 2 x + 10

DIVISIÓN DE POLINOMIOS

[Q,R]=deconv(p1,p2) División de polinomios p1 y p2, obteniéndose el cociente Q


y residuo R
.

30
Escuela Académica Computación Científica Prof. Richard Mamani

En Matlab tenemos

>> p2=[1 5];


>> [Q R]=deconv(p1,p2)

Q=

2 -10 50 % Q( x) = 2 x 2 − 10 x + 50

R=

0 0 0 -248 % R ( x ) = −480

DERIVADA DE UN POLINOMIO

En matlab la función que calcula la derivada es polyder(p):

>> p1
p1 =

2 0 0 2

dp
>> polyder(p1) % = 6 x2
dx

ans =

6 0 0

Integral de polinomios

La funcioc es polyint(p):

>> polyint(p1)

ans =

0.5000 0 0 2.0000 0 % ∫ p1 ( x ) = 0.5 x 4 + 2 x + 0

Por ultimo la funcion residue(p1,d): que devuelve las fracciones parciales de p1


entre d.

p1( x) R(1) R(2) R ( n)


= + + ..... + + Q( x)
d ( x) x − P(1) x − P(2) x − P ( n)

31
Escuela Académica Computación Científica Prof. Richard Mamani

Donde los R , P y Q son vectores.

>> p1

p1 =

1 4 0 -10
>> d=[2 4 1];
>> [R P Q]=residue(p1,d)

R=

1.1731
-3.4231

P=

-1.7071
-0.2929

Q=

0.5000 1.0000

32
Escuela Académica Computación Científica Prof. Richard Mamani

CAPITULO III

GRAFICOS BIDIMENSIONALES

Los gráficos son herramientas muy utilizadas para presentar todo tipo de
información que puede proceder de cualquier campo de conocimiento, en especial en las
disciplinas relacionadas con las ciencias y la ingeniería. Con los comandos de
MATLAB de pueden crear distintos gráficos como: con ejes cartesianos, logarítmicos,
semilogarítmicos, de barras y escaleras, de mallas y de superficie tridimensionales, etc.
A todo esto también se pueden dar la apariencia que uno desea, tanto en el color, la
línea, línea de referencia añadiendo cuadrícula, títulos, comentarios o se puede trabajar
en la hoja varios gráficos entre otras cosas.

Para trabajar con gráficos en MATLAB se usan funciones ya creadas o


predefinidas, que tienen como argumentos de entradas muchas veces matrices o
vectores, en ocasiones puede haber como argumentos funciones simbólicas, que deben
ser tratadas con sus comandos respectivos.

FUNCIONES PARA GRAFICOS BIDIMENSIONALES.

El comando plot():

Este comando se utiliza para crear, cierto modo, rectas entre dos puntos (a,b) y
(m,n) en el plano cartesiano o ejes cartesianos de MATLAB, cuando la distancia entre
estos puntos es pequeño la grafica se asemeja a una curva.

La forma más sencilla de utilizar es:

plot(x,y).

Donde x e y son vectores de la misma dimensión, esto es, deben tener los mismos
elementos. Así cuando de ejecute el comando, ya sea desde la ventana editor o de la
misma ventana de comandos, se abre la ventana grafico en la se mostrara la grafica
correspondiente, una curva o rectas, donde los valores correspondiente de x serán los de
la abscisa (eje horizontal) y los valores de y serán los valore del ordenada (eje vertical).

Ejemplo:

>> v=[1:2:10]
v=

1 3 5 7 9

>> plot(v)

33
Escuela Académica Computación Científica Prof. Richard Mamani

Ver que es otra forma sencilla de graficar un vector o una matriz columna, esta
representación cumple con la siguiente forma.

Sea v un vector:

v (a1 a2 ..... an )

Luego plot(v) significa hacer lo mismo


que:

plot([1 2 ….n],v)

Ejemplo 2.

>> x=0:0.001:5;
>> y=exp(x);
>> plot(x,y) %grafica x vrs y

Observar que la línea de la grafica es por defecto de color azul y que se representa
mediante rectas, pero estas características se pueden modificar.

Para personalizar los gráficos el comando plot admite una sintaxis de argumentos
donde se puede especificar el color y estilo de la línea.

plot(x,y, 'especificadores de línea', ' propiedades', 'valores' )

Donde x e y son vectores con las mismas caracteristicas.


Los especificadores de linea definen el color y tipo de líneas y marcadores.
Además de las propiedades donde se puede definir el grosor de la linea y el
tamaño de los marcadores, asi como los colores de relleno y de borde.

La siguiente tabla muestra los especificadores de linea.

Estilo línea símbolo Color línea Símbolo Tipo marcador Símbolo


Salida normal - rojo r Signo mas +
Discontinuo -- verde g Circulo o
Punteada : azul b Asterisco *
Rayas y puntos -. cian c Punto .
amarillo y Cuadrado s
negro k Diamante d
Estrella de 5 pt p
Estrella de 6 pt h

34
Escuela Académica Computación Científica Prof. Richard Mamani

Ejemplo:

x=0:0.2:5;
>> y=exp(x);
>> plot(x,y,'b+') %grafica de color azul y marcador +
>> plot(x,y,'g-.') %grafica de color verde y marcador - .
>> plot(x,y,'go') %grafica de color verde y marcador o

Nota:
Los especificadores se introducen dentro de del comando plot

Dentro de la cadena los especificadores pueden ir en cualquier orden.

Los especificadores son opcionales, esto es pueden ir unos o dos o ninguno.

Algunos ejemplos mas:

plot(x,y,'r') % grafica de color rojo


>> plot(x,y,'--y') % grafica de color amarillo discontinuo
>> plot(x,y,'*') % grafica de color azul con marcador asterisco
>> plot(x,y,'g:d') % grafica de color azul con marcador asterisco
>> plot(x,y,'g:d') % grafica de color verde con marcador diamante

35
Escuela Académica Computación Científica Prof. Richard Mamani

Propiedades y valores:

Se utiliza para algunas propiedades adicionales como: el grosor de las líneas, el


tamaño de los marcadores, así el color de relleno y los bordes de la misma. La sintaxis
es: primero se teclea la propiedad y después de una coma seguido del valor
correspondiente, así se forman pares de propiedad y valor dentro del comando plot.

En la siguiente tabla se presentan estas propiedades.

Propiedad Descripción Posibles valores


linewidth Especificador de grosor de Un valor por defecto es 0.5
línea
Markersize Especifica el tamaño de Un numero representado
marcador por unidades de puntos
markeredgecolor Especifica el color de Revisar tabla anterior
borde de marcador
markerfacecolor Especifica el color de color Revisar tabla anterior
de relleno demarcador

Ejemplo:

>> plot(x,y,'-mo','linewidth',1,'markerfacecolor','r','markeredgecolor','y')

Además de estas propiedades existen otras que pueden ser asignadas mediante
una cadena. Tales como: linestyle, color y marker, el primero especifica el estilo de
línea, el segundo el color de la línea y el último el estilo de la marca.

Observación.

El comando plot puede ser útil a al hora de querer representar la grafica de una
función y=f(x), donde x es una partición del dominio en un vector e y es un vector con
la imágenes de la función, luego con la función plot lo que hace es graficar punto por
punto la función.

Una opción para representar la función sin hacer una partición es fplot():

36
Escuela Académica Computación Científica Prof. Richard Mamani

El comando fplot().

Es un comando valido cuando se quiere hacer representaciones de funciones de la


forma y= f(x). La sintaxis es de la forma siguiente:

fplot( 'función', limites, especificadores de linea)

nota: la función debe ser tecleado dentro de la función en forma de cadena con las
características de operaciones de matlab.

Ejemplo:
>> fplot('sinh(x)',[-2*pi 2*pi],'ro-')
>>fplot('x^2+4*sin(2*x)-1',[-5 5],'r')

Otra forma de graficar un función es a través de funciones simbólicas como sigue.

Comando ezplot():

Esta función grafica funciones de la forma y= f(x) y tiene variantes. La sintaxis es:

ezplot(f) y ezplot(f, [min max])

Donde f(x) es una función simbólica.

37
Escuela Académica Computación Científica Prof. Richard Mamani

Ejemplo:

>> syms x
>> f=x^2

f=

x^2

>> ezplot(f)
>>ezplot(f,[0 5])

Representación grafica de varias funciones a la vez

Algunas veces resulta interesante la representación de varias funciones a la vez.


Esta acción se puede realizar de diferentes formas.

Utilizando el comando plot para varias funciones.

La forma sencilla de realizar es teclear pares de vectores en el argumento de la


función, la sintaxis es:

plot(x, y, v, u, t, h)

Grafica en primer lugar y versus x , luego v versus u y finalmente h versus t; se


realiza en la misma ventana, así que es necesario que los vectores tengan la misma
dimensión. MATLAB grafica automáticamente con diferentes colores, pero aun así se
puede establecer ciertas características a las graficas para cada de las funciones.

38
Escuela Académica Computación Científica Prof. Richard Mamani

Ejemplo:

Sea f la función de la forma y = f(x), graficar f(x), su primera derivada y la


segunda derivada.

>>x=-2:.01:4;
>> y=3*x.^3-26*x+10;
>> yd=9*x.^2-26;
>> ydd=18*x;
>> plot(x,y,x,yd,x,ydd)
>> plot(x,y,'r',x,yd,'b-.',x,ydd,'go')

Utilización de hold on y hold off

Para no utlizar el comando plot para representar varias funciones, ya que en


algunas ocasiones se puede desear presentar una función mediante ploteo y otra función
mediante otra funcion como ezplot o fplot, es estos casos es buena idea la utilización de
hold on y hold off.

Ejmplo:

Repetir el ejemplo anterior.

>> hold on
>> plot(x,y,'g');
>> plot(x,yd,'r');
>> plot(x,ydd,'ko');
>> plot(x,ydd,'yo');
>> hold off

39
Escuela Académica Computación Científica Prof. Richard Mamani

Utilización del comando line.

Con este comando se puede añadir a un grafica ya existente otras líneas o curvas.
Tiene la siguiente sintaxis.

line(x, y, propiedades, valores)

La propiedades y los valores son opcionales. Cabe señalar la propiedades se


pueden añadir con el uso de: linestyle, color y marker.

Este comando se puede utilizar varias veces para un mismo grafico.

Ejemplo repetir el ejemplo anterior.

>> plot(x,y,'g--');
>> line(x,yd,'linestyle','-','color','r')
>> line(x,ydd,'marker','.','color','b')

Formato de una representación grafica.

Generalmente los comandos plot y fplot crean graficas de apariencia sencilla y


habitualmente es necesaria darles un formato para que tengan un determinado aspecto y
para añadir información propia del gráfico como, titulo del gráfico, etiquetas y escala
personalizadas en los ejes coordenados, leyendas, cuadriculas, etiquetas de texto, etc.

Formateo mediante comandos.

Comandos xlabel e ylabel.

Este comando sirve para poner títulos, en forma de texto, a los ejes. En realidad
definen etiquetas que se situarán cerca de cada eje, xlabel para le eje x e ylabel para el
eje y su sintaxis.

xlabel(' texto') ylabel(' texto')

40
Escuela Académica Computación Científica Prof. Richard Mamani

Comando title.

Este comando añade el titulo principal al gráfico, en la parte superior del mismo,
su sintaxis es:

title(' texto')

Comando text:

Este comando permite situar una etiqueta dentro del gráfico. Tiene dos variantes.
Su sintaxis es:

text( x, y, ' texto')

getext(' texto')

Nota. Cuando x e y son vectores el texto aparcera en todo los puntos de la


gráfica, pero cuando se trata de un solo punto se ubicará en el lugar (x,y) de la gráfica.

La diferencia resaltante de gtext es le permite al usuario colocar el texto donde


desee. Esto es pulsa el ratón una vez en el lugar que desee cuando se visualice la
ventana de gráficos.

Comando legend.

Este comando coloca una leyenda en la representación gráfica. Las leyendas


incluyen una muestra del tipo de línea de cada función que se representa y una etiqueta
especificada por el usuario, que permite indicar a que corresponde cada muestra. La
sintaxis del comando es:

legend(' cadena1', ' cadena2', ….. , posición )

las cadenas son las etiquetas que se colocan junto a las muestras de linea, y su
ordn debe corresponderse con el orden en el cual se han introducido las funciones. La
variable posición es un número opcional que especifica el sitio en el que se situará la
leyenda dentro del gráfico. Los valores posibles son:

posicion = -1 . Sitúa la leyenda fuera de los límites establecidos por los ejes del
gráfico, en le lado derecho.

posicion = -0. Sitúa la leyenda dentro de los límites establecidos por los ejes del
gráfico en una posicion que interfieran lo menos posible con el gráfico.

posicion = 1. Sitúa la leyenda en la esquina superior derecha del gráfico (opcion


por defecto).

posicion = 2. Sitúa la leyenda en la esquina superior izquierda del gráfico.

posicion = 3. Sitúa la leyenda en la esquina inferior izquierda del gráfico

41
Escuela Académica Computación Científica Prof. Richard Mamani

posicion = 4 Sitúa la leyenda en la esquina inferior derecha del gráfico.

Ejemplo:

>> legend('f(x)','df(x)','ddf(x)')

Formato de los comandos title, text, legend, xlabel e ylabel.

Los textos que se insertan mediante los comandos mencionados que se visualizan
en el gráfico pueden ser formateados

Los formatos que se pueden definir son de fuente y tamaño, de posición


(subíndice, superíndice), el estilo (itálica, negrita, tec), y el color de los caracteres, así
como el color de fondo y muchos otros detalles.

Los modificadores se pueden usar de dos formas dentro de la cadena misma o


fuera usando como cadena y su correspondiente cadena de propiedad.

Ejemplo.

>>title('tres funciones','fontname','impact')

>> title('tres funciones\fontname{century}')

42
Escuela Académica Computación Científica Prof. Richard Mamani

De igual forma de usa para los tamaños y otras propiedades para textos que se
pude obtener en la ventana ayuda de MATLAB, con help text.

Modificador Efecto sobre el texto


\bf negrita
\it Itálica
\rm Normal
\fontname{fuente} Cambiar de fuente a una letra especifica
\fontsize{tamaño} Cambiar de tamaño de la fuente

Se puede también introducir caracteres griegos a los gráficos. En la tabla siguiente


se muestran algunos de ellos.

Carácter en minúscula Letra G Carácter en mayúscula Letra G


\alpha α \Phi Π
\beta β \Delta ∆
\gamma γ \Gamma Γ
\theta θ \Lambda Λ
\pi π \Omega Ω

Además de también se pueden dar formatos dentro de las propiedades seguido de


valores como en el ejemplo anterior. Entre los formatos que se pueden dar son.

Propiedad Descripción Valore posible


Rotation Orientación del texto De 0 a 360
fontAngle Permite cambiar entre caracteres norma italica
en italica y normales
Fontname Fuente del texto Todo que tiene el sistema
fontweight Ancho de caracteres Light, normal, bold
Backgroundcolor Color de fondo Especificadotes de color
en RGB [ R G B]
Edgecolor Grosor de borde del cuadro Igual a la anterior

43
Escuela Académica Computación Científica Prof. Richard Mamani

Comando axis.

Este comando permite cambiar el rango de los ejes. Pues en ocasiones es posible
que el usuario quiera visualizar de manera personalizada, se tiene las siguientes sintaxis:

axis(xmin, xmax, ymin, ymax)

Establece de manera fácil los límites de los ejes coordenados.

axis equal Establece la misma escala en ambos ejes.

axis square Establece la región de los ejes en un cuadrado.

axis tight Establece los límites de los ejes en función de los rangos de los datos.

El comando grid

Añade cuadricula a representación gráfica.

grid on y grid off para empezar la cuadricula y para finalizar la utilización de


la cuadricula en las graficas.

Nota: los formatos también se pueden realizar en la ventana de graficos, basta ir al


menú edit e insert.

Graficos en otros ejes.

Ejes logarítmicos.

sintaxis: loglog(x,y) representa y frente a x con escala logarítmica en base 10


en ambos ejes, x e y tienen las mismas caracteristicas.

Ejes semilogarítmicos.

Sintaxis: semilogx(x,y) representa y frente a x con escala logarítmica en el eje


x y una escala lineal en el eje y.

Semilogy(x,y) representa y frente a x con escala logarítmica en el eje y e lineal


en el eje x.

Nota: estas tres formas de representar la grafica también se puede aplicar las
propiedades expuestas anteriormente.

Observación: en los valores de x e y no debe de haber números negativos y


tampoco debe de existir el cero. Ya que la imagen para números negativos de la funcion
logaritmo no están definidos.

44
Escuela Académica Computación Científica Prof. Richard Mamani

Ejemplos:
>> x=linspace(0.1,60,1000);
>> y=2.^(-0.2*x+10);
>> plot(x,y)
>> semilogx(x,y)
>> semilogy(x,y)
>> loglog(x,y)

45
Escuela Académica Computación Científica Prof. Richard Mamani

Otros comandos útiles.

Comando subplot():

Una ventana gráfica se puede dividir en m particiones horizontales y n verticales,


con objeto de representar múltiples gráficos en ella. Cada una de estas subventanas tiene
sus propios ejes, aunque otras propiedades son comunes a toda la figura. La forma
general de este comando es:

subplot(m,n,i)

Donde m y n son el número de subdivisiones en filas y columnas, e i es la


subdivisión que se convierte en activa. Las subdivisiones se numeran consecutivamente
empezando por las de la primera fila, siguiendo por las de la segunda, etc.
>> subplot(2,2,3)
>> subplot(2,2,2)
>> subplot(2,2,1)
>> subplot(2,2,4)

46
Escuela Académica Computación Científica Prof. Richard Mamani

Ejemplo:

>> x=0:pi/40:2*pi;
y=sin(x); z=cos(x);
w=exp(-x*.1).*y; v=y.*z;
subplot(2,2,1), plot(x,y)
subplot(2,2,2), plot(x,z)
subplot(2,2,3), plot(x,w)
subplot(2,2,4), plot(x,v)

Comando figure.

Si se llama a la función figure sin argumentos, se crea una nueva ventana gráfica
con el número consecutivo que le corresponda. El valor de retorno es dicho número.

Por otra parte, el comando figure(n) hace que la ventana n pase a ser la ventana o
figura activa. Si dicha ventana no existe, se crea una nueva ventana con el número
consecutivo que le corresponda La función close cierra la figura activa, mientras que
close(n) cierra la ventana o figura número n. El comando clf elimina el contenido de la
figura activa, es decir, la deja abierta pero vacía. La función gcf devuelve el número de
la figura activa en ese momento. Para practicar un poco con todo lo que se acaba de
explicar, ejecútense las siguientes instrucciones de MATLAB, observando con cuidado
los efectos de cada una de ellas en la ventana activa.

El comando figure (gcf) (get current figure) permite hacer visible la ventana de
gráficos desde la ventana de comandos.

>> x=[-4*pi:pi/20:4*pi];
plot(x,sin(x),'r',x,cos(x),'g')
title('Función seno(x) -en rojo- y función coseno(x) -
en verde-')
xlabel('ángulo en radianes'), figure(gcf)
ylabel('valor de la función trigonométrica'),
figure(gcf)
axis([-12,12,-1.5,1.5]), figure(gcf)
axis('equal'), figure(gcf)
axis('normal'), figure(gcf)
axis('square'), figure(gcf)
axis('off'), figure(gcf)
axis('on'), figure(gcf)

47
Escuela Académica Computación Científica Prof. Richard Mamani

Finalmente tambien se puede graficar en coordenadas polares.

funcion polar():

por ejemplo:

>>%El CARDIODE
>>%polar(teta,r)
>>a=0:pi/40:2*pi;
>>polar(a,2*(1+cos(a)));

48
Escuela Académica Computación Científica Prof. Richard Mamani

49
Escuela Académica Computación Científica Prof. Richard Mamani

REPRESENTACION DE GRAFICOS ESPECIALES.

Hasta hora se ha tratado con gráficos conectados por línea; pero no solo se puede
unir puntos con líneas, existen otras formas de geometría de acuerdo al tipo de dato que
se desea representar.

MATLAB ofrece distintos comandos destinados a representaciones de otros


gráficos, como los gráficos de barras, de escaleras, de circulares, de tallos verticales u
horizontales, etc.

En la tabla siguiente tabla se presenta la venta de millones de soles en años.

Año 1988 1989 1990 1991 1992 1993 1994


Ventas 8 12 20 22 18 24 27

Para representar esta información en un gráfico se puede usar el comando plot,


como sigue:

>> an=1988:1:1994;
>> ven=[8 12 20 22 18 24 27];
>> plot(an,ven,'-.r*','linewidth',2,'markersize',12)

50
Escuela Académica Computación Científica Prof. Richard Mamani

Por le tipo de dato que tenemos es conveniente trabajarlo con gráficos de corte
estadístico. Para ello MATLAB tiene los siguientes comandos:

Comando bar.

Sintaxis. bar(x,y)
>> bar(a
Ejempl o. n,ven,'g')
>> xlabel('años 1989-1994')
>> ylabel('ventas(en millones de dolares)','fontsize',12)
>> title('grafico de barras verticales', 'fontname','century','fontsize',14)
>> legend('grafico venta vrs años')

Comando barh.

Sintaxis: barh(x,y)

Ejemplo.
>>barh(an,ven,'b')
>> xlabel('ventas en millones de dolares','fontname','impact','fontsize',12)
>> ylabel('años 1989 - 1994','fontname','Courier New','fontsize',12)
>> title('Gráficos en barras horizontales','fontname','Courier','fontsize',13)
>> legend('gráfico de años vrs ventas')

51
Escuela Académica Computación Científica Prof. Richard Mamani

Comando stairs.

Sintaxis: stairs(x,y)

Ejemplo.
>> staris(an,ven,'-r*')
>> axis([1987, 1995,0, 30]),figure(gcf)
>> title('gráfico de escaleras','fontname','arial black','fontsize',13)
>> xlabel('años 1989 - 1994')
>> ylabel('ventas en millones de $')
>> legend('gaficos ventas vrs años')
>> legend('gaficos ventas vrs años')

Comando etem.

Sintaxis: etem(x,y)

Ejemplo.

>>h=stem(an,ven);
>> set(get(h,'Baseline'));
>> set(h,'markerfacecolor','r');
>> set(h,'markerfacecolor','r','markeredgecolor','g');
>> set(h,'markerfacecolor','r','markeredgecolor','g','linewidth',2);
>> title('gráfico de tallo lineaas verticales')
>> xlabel('años 1988 - 1994')
>> ylabel('ventas')
>> legend('ventas vr años')
52
Escuela Académica Computación Científica Prof. Richard Mamani

Mas sobre el comando bar.

Existen variantes del comando bar.

bar3(x,y): grafica en barras de 3 dimensiones.

bar3h(x,y): grafica en barras de 3 dimensiones horizontal.

Ejemplo.

>> subplot(1,1,1);bar3(x);title('Gráfico en 3D')


>> subplot(1,2,2);bar3h(x);title('Gráfico en 3D horizontal')

Comando pareto.

Sintaxis: pareto(x)

El diagrama de Pareto consta de barras cuyas alturas son los valores de x,


ordenados en forma decreciente y sobre las barras, un polígono con las frecuencias
acumuladas de los valores de x. Además, en el eje vertical derecho aparece una escala
de porcentajes.

Ejemplo:

Medios de Difusión Cantidad vendidad


Periódicos $4936
Revistas 1061
Televisión 2853
Radio 1128
Correo 2548
Aparadores 839
otros 941

53
Escuela Académica Computación Científica Prof. Richard Mamani

En matlab:

>> pareto(x,[1:7]); title('diagrama pareto');xlabel('medios de difusión');


>>ylabel('cantidad vendida')

Comando pie.

Este comando sirve para graficas sectores circulares.

Sintaxis: pie(x), pie3(x).

Ejemplo.

Partido político Numero de votos Porcentaje


Unión por el Perú (UPP) 228.343 27%
Unidad Nacional (UN) 171.728 21%
Izquierda Unida (IZ) 120.233 14%
Apra(AP) 106.574 13%
Vamos Perú (VP) 78.105 9%
Partido Nacionalista Peruano(PP) 68.265 8%
Movimiento Andino (MA) 17.208 2%
otros 39.943 5%

En matlab:

>>x =[228.3430 171.7280 120.2330 106.5740 78.1050 68.2650 17.2080


39.9430]
>> pie(x)
>> legend('UPP','UN','IZ','AP','VP','PP','MA','otros')
>> pie3(x)
>> legend('UPP','UN','IZ','AP','VP','PP','MA','otros')

54
Escuela Académica Computación Científica Prof. Richard Mamani

Histogramas

Comando hist.

Los histogramas son gráficos que muestran la distribución de una serie de datos.
Para ello, el rango de completo de datos es dividido en intervalos más pequeños de
forma que el histograma muestra cuantos puntos hay en cada intervalo. El histograma
grafica barras donde la altura representa cuantos puntos hay en los intervalos pequeños.

Sintaxis: hist(y)

Donde y es un vector o una matriz elementos.

Ejemplo.

>>c=randn(100,2);
>>hist(c)

>> hist(c,5)
>> frec=hist(c,5)

frec =

12 12
16 23
31 38
34 17
7 10

55
Escuela Académica Computación Científica Prof. Richard Mamani

CAPITULO IV

GRAFICOS TRIDIMENSIONALES

Los gráficos (3 D) proporcionan una manera muy práctica de representar datos de


más de una variable. MATLAB tiene distintas funciones destinadas a la representación
de gráficos tridimensionales.

Al igual que los gráficos bidimensionales tienen propiedades que permiten dar
distintas apariencias y efectos a la hora de graficarlos.

Gráficos de línea.

Un gráfico en 3 D se construye uniendo una serie de puntos en un espacio


tridimensional. Una manera de crear gráficos 3 D es utilizando el comando plot3. La
sintaxis de plot3 es similar a plot.

Sintaxis:

plot3(x,y,z,’especificadores de línea’,’propiedades’,’valores’)

Donde x, y, z son vectores que representan 1 a 1 puntos en el espacio;


especificadotes de línea definen el tipo y el color de la línea y los marcadores; las
propiedades y los valores pueden ser utilizadas para especificar el grosor de la línea,
tamaño, y los colore de bordes y el color de los marcadores. Utiliza la misma sintaxis
que para el comando plot.

Ejemplo:

Sea:
f (t ) = ( x(t ), y (t ), z (t ))
∀t ∈ [ a b ] ⊂
definida por f (t ) = ( t cos(t ), t sin(t ), 0.5t )

Obtener la grafica de f (t)

Solución en MATLAB.

>> t=0:0.1:6*pi;
>> x=sqrt(t).*sin(t);
>> y=sqrt(t).*cos(t);
>> z=0.5*t;
>> plot3(x,y,z)
>> grid

56
Escuela Académica Computación Científica Prof. Richard Mamani

GRÁFICOS DE MALLAS Y SUPERFICIES

Los gráficos de mallas y superficies son gráficos tridimensionales utilizados para


representar funciones que tienen la forma: z = f (x, y) donde x, y son variables
independientes, así el dominio de la función es el plano de xy o un conjunto de abierto o
cerrado del plano xy.

Para crear un gráfico de mallado o de superficie se debe se seguir 3 pasos: primero


se crea el mallado en el plano xy; segundo, es calcular el valor de z en cada punto del
mallado y tercero, graficar.

Creación de una rejilla o de mallado en el plano xy.

Sean:

X = {x ∈ : a ≤ x ≤ b }
Y = { y ∈ :c ≤ x ≤ d}
X × Y = {( x, y )∈ 2
: x ∈ X ∧ y ∈Y }

En matlab se utiliza en comando meshgrid de la forma siguiente:

Ejemplo: para −1 ≤ x ≤ 3 1≤ y ≤ 4

%en matlab.
>> x=-1:1:3;
>> y=1:1:4;
>> [X Y]=meshgrid(x,y)
X=
-1 0 1 2 3
-1 0 1 2 3
-1 0 1 2 3
-1 0 1 2 3

Y=
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4

El cálculo de los valores de z

El cálculo de los valores de z de obtienen de las operaciones elemento a elemento


de los valores de X e Y. Para ello se deben de utilizar la operaciones con punto (.).

Ejemplo.

57
Escuela Académica Computación Científica Prof. Richard Mamani

xy 2
sea z = 2
x + y2
En matlab:

>> z=(X.*Y.^2)./(X.^2+Y.^2)

z=

-0.5000 0 0.5000 0.4000 0.3000


-0.8000 0 0.8000 1.0000 0.9231
-0.9000 0 0.9000 1.3846 1.5000
-0.9412 0 0.9412 1.6000 1.9200

Creación de gráficos de malla y de superficie

La creación de gráficos de malla (o de mallado) se lleva a cabo mediante el


comando mesh, mientras que la creación de gráficos de se realiza mediante con
surface.

La sintaxis es:

mesh(X, Y, Z) surf (X, Y, Z)

Ejemplo.
>> x=-1:1:3;
>> y=1:1:4;
>> [X Y]=meshgrid(x,y);
>> z=(X.*Y.^2)./(X.^2+Y.^2)
>> mesh(X,Y,z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')

58
Escuela Académica Computación Científica Prof. Richard Mamani

Usando surf.

>> x=-1:1:3;
>> y=1:1:4;
>> [X Y]=meshgrid(x,y);
>> z=(X.*Y.^2)./(X.^2+Y.^2)
>> surf(X,Y,z)
>> xlabel('eje x')
>>ylabel('eje y')
>>zlabel('eje z')

Observaciones.

Los gráficos creados tienen colores que pueden variar en función de la magnitud
de z. la variación de color se añade como una característica a la visualización de
gráficos 3-D. Para ello puede usar la flecha de edición y pulsar en el gráfico para
acceder a las propiedades de gráfico.

También puede utilizar el comando colormap(c), donde c es un vector de tres


elementos que representan la intensidades de colores rojo, verde y azul (RGB)
respectivamente, el rango de estos elementos varían de 0 hasta 1.

>> mesh(X,Y,z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')
>> surf(X,Y,z)
>> xlabel('eje x')
>>ylabel('eje y')
>>zlabel('eje z')
>> colormap([0.2 0.5 0.4])

59
Escuela Académica Computación Científica Prof. Richard Mamani

Para visualizar el gráfico dentro de una caja puede digitar box on en la ventana de
comandos.

También se puede utilizar como sigue: mesh(Z) y surf(Z). Entre otras


características.

Ejemplos:

Meshz(x,y,z): dibuja una cortina alrededor de la malla.

>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5
*Y).*sin(X));
>> meshz(X,Y,Z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')

Meshc(x,y,z): dibuja contornos debajo de la malla (curvas de nivel).

>> x=-3:0.05:3;
>> y=-3:0.05:3;
>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*Y)
.*sin(X));
>> meshc(X,Y,Z)
>> xlabel('eje x'); ylabel('eje y')
>> zlabel('eje z')

Surfc(x,y,z). Dibuja contorno debajo de la superficie.

>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*Y).*si
n(X));
>> surfc(X,Y,Z)
>> xlabel('eje x');ylabel('eje y')
>> zlabel('eje z')

60
Escuela Académica Computación Científica Prof. Richard Mamani

Surfl(x,yz). Gráfico con alumbrado.

>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*Y)
.*sin(X));
>> surfl(X,Y,Z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')

Waterfall(x,y,z). Grafica con una sola malla unidimensional.

>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5
*Y).*sin(X));
>> waterfall(X,Y,Z)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')

Contour3(x,y,z,n). Gráfica n curvas de nível.

>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*Y)
.*sin(X));
>> contour3(X,Y,Z,10)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')

61
Escuela Académica Computación Científica Prof. Richard Mamani

Contour(x,y,z). Dibuja n curvas de nivel en el plano xy

>> x=-3:0.15:3;
>> y=-3:0.15:3;
>> [X Y]=meshgrid(x,y);
>> Z=1.8.*(-
1.5*sqrt(X.^2+Y.^2).*cos(0.5*
Y).*sin(X));
>> contour(X,Y,Z,10)
>> xlabel('eje x')
>> ylabel('eje y')
>> zlabel('eje z')

Gráficos especiales.

Esfera.

Comando sphere. El comando devuelve las matrices X, Y y Z de una esfera de


unitaria de 20 secciones.

sphere(n). Donde se especifica la cantidad de secciones.

Ejemplo.

>>sphere

>>sphere(50) % o como;
>> [X Y Z]=sphere(50)
>>surf(X,Y,Z)

62
Escuela Académica Computación Científica Prof. Richard Mamani

Cilindro.

Comando cylinder(r). Devuelve las matrices X, Y y Z de un cilindro de perfil r.

Ejemplo.

>> [ x y z]=cylinder(10)
>> surf(x,y,z)

Otra forma.

>> t=0:0.314:3.5;
>> r=1+sin(t);
>> [ x y z]=cylinder(r);
>> surf(x,y,z)

En curvas paramétricas.

Stem3(x,y,z,c). Dibuja tallos verticales en 3-D con marcadores a partir del plano
xy.

Nota. Solo se aplica a curvas en tres dimensiones.


>> t=0:0.2:10;
Ejemplo.
>> x=t;
>> y=sin(t);
>> z=t.^1.5;
>> stem3(x,y,z,'fill')
>> subplot(1,2,2); stem3(x,y,z,'fill')
>> subplot(1,2,1); plot3(x,y,z); grid

63
Escuela Académica Computación Científica Prof. Richard Mamani

Comando view.

Este comando controla la dirección desde se verá el gráfico generado. Para ello se
especifica la dirección en términos a azimut y elevación. Véase el gráfico siguiente:

View(az,el) view([az, el])

Ver que az es un ángulo medido desde el eje y negativo y es positivo y (el) es el


ángulo de elevación en grados desde el plano xy en dirección al eje z y es positivo.

Nota: los ángulo de visión por defecto son az=-37.5° y el = 30°.

El comando se digita al final de la gráfica.

Practique.

64
Escuela Académica Computación Científica Prof. Richard Mamani

CAPITULO 5

PROGRAMACION EN MATLAB.

Un programa de ordenador es una secuencia de comandos, denominados


instrucciones. En un programa sencillo los comandos se ejecutan línea por línea y los
comandos uno tras otro. Pero; no solo se trata de programas de instrucciones línea por
línea; pues, en situaciones es necesario escribir programas complejos y cuyas
instrucciones no tienen que ejecutarse en el mismo orden en que escribimos; sino que,
que pueden ejecutarse distintas instrucciones que no necesariamente están en el código
fuente o que se pueden ejecutar un grupo de instrucciones en funciones de la variables
del programa, como por ejemplo la sentencia switch (caso por caso), o de programas
que resuelven numéricamente un problema, donde los cálculos se repiten hasta que el
error sea pequeño que un cierto valor previamente establecido.

Matlab incluye su propio editor de programas, denominado ventana editor donde


se escribirá el código del programa.

Fichero script.

Existe otra forma de ejecutar un conjunto de comandos en un solo “comando” en


la ventana de comandos, estos es crear un fichero script en la ventana editor y guardar
con un nombre y solo bastar ejecutar con el nombre que se grabó.

Notas:

Es una secuencia de comandos MATLAB básicamente todo lo que se ha


aprendido hasta el capitulo anterior.

La ejecución en la ventana de comandos es línea por línea.

Es muy recomendado cuando se trata de ejecutar un buen número de comandos


como cuando se quiere graficar; ya que se pueden editar estos corregir o modificar y se
pueden ejecutar todas las líneas cuantas veces quiera.

Se deben de guardar con la extensión .m y se pueden editar en cualquier programa


editor de texto, como el block de notas de Windows, o como word, Wordpad, entre
otros.

Variables globales.

Cuando se escribe un código en script las variables creadas dentro del fichero
pueden ser usadas también en la ventana de comandos y viceversa las variables creadas
en la ventana de comandos pueden ser usadas en le fichero; pero esto no es
recomendado en la practica, pues es mejor definir las variables dentro del fichero y solo
utilizarlos en es código.

65
Escuela Académica Computación Científica Prof. Richard Mamani

Variables definidas y asignadas dentro del fichero script.

La creación y la asignación de valores forman del fichero, por lo que si quiere


reasignar otro valor se debe de editar en el fichero mismo. En la practica se debe
guardar cada vez se edite el fichero antes de ejecutarlo de nuevo.

Ejemplo.

En la ventana de comandos es:

>>media3

Variables definidas y asignadas desde la ventana comandos.

En este caso, la asignación del valor se realiza desde la ventana de comandos


(recuérdese que el valor es reconocida sin problemas dentro del fichero script). Si el
usuario quiere ejecutar el fichero script con valor diferente para esta variable, se debe de
asignar desde la ventana de comandos y ejecutar de nuevo.

Ejemplo.

En la ventana de comandos:
>> a=12; b=15; c=20;
>> media2
media =
15.6667
a=
10

66
Escuela Académica Computación Científica Prof. Richard Mamani

Variables definidas en el script y asignadas desde la ventana de comandos.

Se crea la variable en el fichero y cuando se ejecuta el fichero en la ventana de


comandos se pide al usuario ingrese un valor apropiado. Para ello se utiliza el comando
input.

Sintaxis.

Nombre_variable = input (‘un mensaje de petición’)

Cuando se ejecuta el comando input del fichero se muestra el mensaje que va entre
comillas simples y un cursor esperando la asignación del valor a nombre_variable.

Ejemplo.

En la ventana de comandos.

>> media2
ingrese el valor de a: 12
ingrese el valor de b: 15
ingrese el valor de c: 20

media =

15.6667

ingrese un nuevo valor de a: 10

a=

10

Nota: el comando input sirve para ingresar desde teclado los tipos de valores
como vectores o matrices, recordar que los vectores y las matrices se asignan mediante
el uso de corchetes.

67
Escuela Académica Computación Científica Prof. Richard Mamani

También se pueden ingresar valores simbólicos o funciones de variables para


luego evaluarlos.

En la ventana de comandos.

>> simb
ingrese la funcion f(x)= x^2+x

f=

x^2+x

fx =

ingrese otra funcion f1(y) y^3+1

f2 =

Inline function:
f2(y) = y^3+1

f2x =

Observación: el paso anterior se puede utilizar se quiere asignar una cadena a una
variable.

68
Escuela Académica Computación Científica Prof. Richard Mamani

Comandos de salida.

Como se vio en las anteriores líneas las salidas de las variables son de forma
automática en MATLAB, esto es simple cuando al final de instrucción no se teclea
punto y coma (;), pero sucede que es necesario mostrar mensajes cuando se esta
ejecutando, por ejemplo cuando queremos si un bucle se esta ejecutando, o para
mostrar de error. MATLAB tiene para estos casos los siguientes comandos.

Comando disp.

Se utiliza para mostrar un mensaje o simplemente para mostrar el contenido de


una variable sin mostrar su nombre.

Sintaxis.

disp (nombre de la variable) o disp(‘mensaje a mostrar’)

En la ventana de comandos

>> disp('hagas lo que hagas, hasta bien ')


hagas lo que hagas, hasta bien
>> v=[1 2 5];
>> disp(v)
1 2 5

Utilización en la ventana de editor.

>> media2 a=input('ingrese el valor de a: ');


ingrese el valor de a: 4 b=input('ingrese el valor de b: ');
ingrese el valor de b: 5 c=input('ingrese el valor de c: ');
ingrese el valor de c: 9 mg=(a*b*c)^(1/3);
ma=(a+b+c)/3;
la media aritmetica es: mh=(3)/(1/a+1/b+1/c);
6 disp(' ')
disp('la media aritmetica es: ')
disp(ma)
la media geometrica es: disp(' ')
5.6462 disp('la media geometrica es: ')
disp(mg)
disp(' ')
la media armonica es:
5.3465

Observación. Con disp se puede visualizar una variable, para visualizar dos o mas
variables se debe de asignar a otra variable que contenga a los elementos que se va
mostrar.

69
Escuela Académica Computación Científica Prof. Richard Mamani

Comando fprintf.

Este comando soluciona el problema anterior; pues este comando permite la salida
de textos y datos en la ventana de comandos o para almacenar en un fichero fuera de
matlab con formato diferente para cada dato.

Para visualizar textos o cadenas

Esta parte del comando es similar a disp. Su sintaxis es:

fprintf (' texto o cadena')

Se puede ejecutar en la ventana de comandos o formar parte de un fichero matlab.

Con el comando fprintf se puede añadir características de salto de línea o de


tabulaciones, con \n o \t respectivamente, entre otros, que se puede digitar en cualquier
punto de la cadena. Ver tabla.

Código Acción
\b Borrar carácter anterior
\n Salto de línea
\t tabulaciones
\r Retorno a la línea anterior
%% Carácter porcentaje

Nota: la impresión que realiza este comando es una sola línea, no importa si se
digite en otra línea.

Ejemplo.
>> fprintf('texto1 '), fprintf('texto2 '),fprintf('texto3\n')
texto1 texto2 texto3

>> fprintf('texto1 '), fprintf('texto2 \n'),fprintf('texto3\n')


texto1 texto2
texto3

>> fprintf('texto1 \n'), fprintf('texto2 \n'),fprintf('texto3\n')


texto1
texto2
texto3

>> fprintf('\ttexto1 \n'), fprintf('texto2 \n'),fprintf('texto3\n')


texto1
texto2
texto3

>> fprintf('\ttexto1 \n'), fprintf('texto2\b\b\b\b\b \n'),fprintf('texto3\n')


texto1
t

70
Escuela Académica Computación Científica Prof. Richard Mamani

texto3
Utilización de fprintf para visualizar datos y textos.

Sintaxis.
fprinf(' texto %5.2f texto adicional %5.2d texto ',variable1,variable2)

Donde: % significa que se va imprimir una variable con cierto formato, 5.2
significa la precisión de salida (opcional), por ejemplo en este caso es de dos decimales
de precisión y un formato de salida por lo general se elige real (float), existen otros
formatos revisar tabla.

Especificador Descripción
%d Notación decimal
%f Notación real o de punto fijo
%e Notación exponencial en minúscula
%E Notación exponencial en mayúscula
%i Entero

Nota: fprintf se puede utilizar para mostrar los elementos de un vector, para ello el
comando se visualizará tantas veces como elementos tenga el vector.

Revisar en le ventana de ayuda para mas referencias.

Funciones y fichero de funciones.

Una función definida por el usuario es un programa de matlab que el usuario crea
y almacena en disco en forma de un fichero que tiene su propia línea de instrucción,
esta función puede ser utilizada como cualquier otra función predefinida de matlab.

En muchas ocasiones estas funciones son utilizadas como subfunciones de otras


más complejas. La característica principal es que tiene por lo menos una entrada y una
salida. Lo significa que los cálculos son realizados utilizando los valores de entrada y
los resultados de las operaciones son transferidos a la variable de salida.

Nota: la salida de varios valores se realiza mediante un vector.

La poder crear una función simplemente se debe ir la ventana editor y digitar


function que es el comando que indica que se esta creando un función.

Estructura de una función.

La estructura de una función en matlab es la siguiente:

Las variables de entrada, cuerpo o líneas de instrucciones y las variables de


salida básicamente; sin embargo, la estructura en matlab pueden tener el siguiente
esquema.

71
Escuela Académica Computación Científica Prof. Richard Mamani

En la línea 1 se define la función, que consta de parámetros de entrada el nombre y


los parámetros de salida.

Nota. Los argumentos de entrada pueden ser vectores, matrices o escalares, pero
no puede tener algo simbólico. Además, puede darse el caso que en que no se de
ninguna salida.

De la línea 2 – 9 es la ayuda para la función o una breve descripción, que podrá


verse con la ejecución de >>help nombre_defuncion en la ventana de comandos.

Ver:

De la línea 12- 17 se denomina el cuerpo de la función, contiene al programa o


código en si que realiza las operaciones especificas. Este código puede tener cualquier
comando MATLAB como: asignaciones, instrucciones de control de flujo, operaciones
entre funciones, entre otros.

72
Escuela Académica Computación Científica Prof. Richard Mamani

Comentario
Variables locales y globales.

Todas las variables de una función son locales, esto es todas las variables de salida
y entrada se pueden utilizar solo dentro del fichero función. Esto es cuando se ejecuta
una función sus variables nunca cambian de valor durante la ejecución, tanto es así que
cuando se tiene una variable fuera del fichero este permanece constante después de la
ejecución de la función. Esto es las variables después de la ejecución desaparecen.

Más aun MATLAB separa un espacio de memoria para los trabajos habituales de
ficheros script y para la ventana de comandos; por lo que otras variables declaras fuera
del fichero función no son reconocidas. Sin embargo, existe la posibilidad que tanto las
funciones como los script reconozcan una variable, tal como fue declarada esto se
realiza declarando la variable como global.

Global = nombre_variable.

Revisar la ventana de ayuda de matlab sobre el caso.

Existe la posibilidad de evaluar funciones creadas con el comando fecal.

Comando feval.

Sintaxis.

>>variable=fecal('nombre_funcion',argu_entrada_de_la_funcion)

73
Escuela Académica Computación Científica Prof. Richard Mamani

Programación en MATLAB

Operadores relacionales.

Un operador relacional compara dos números datos y determina si es verdadero o


falso. Si es verdadero devuelve el valor de 1, de lo contrario devuelve 0.

Operador relacional Descripción


< Menor que
> Mayor que
<= Menor o igual
>= Mayor o igual
== Igual a
~= Distinto de

Practique con vectores en la ventana de comandos.

Nota: se puede dar el caso de agrupaciones, en este caso matlab opera de forma
tradicional.

Operadores lógicos

Un operador lógico examina la veracidad o la falsedad de los enunciados y


devuelve un valor concreto.

74
Escuela Académica Computación Científica Prof. Richard Mamani

75

También podría gustarte