Está en la página 1de 50

Ing. HENRRY R.

OCHOA LEON
ESPECIALISTA EN PROGRAMACIÓN DE SOFTWARE DE INGENIERÍA
Henry_ol_iq@hotmail.com

2017
Ing. Henrry Ochoa León
Especialista en Programas de Ingeniería

Capítulo I

¿QUÉ ES MATLAB?

MATLAB = 'MATrix LABoratory' (LABORATORIO DE MATRICES).

MATLAB es un medio computacional técnico, con un gran desempeño para el cálculo numérico
computacional y de visualización. MATLAB integra análisis numérico, matrices, procesamiento
de señales y gráficas, todo esto en un ambiente donde los problemas y soluciones son
expresados tal como se escriben matemáticamente.
MATLAB fue escrito originalmente en fortran, actualmente está escrito en lenguaje C. MATLAB
es un lenguaje de programación amigable al usuario con características más avanzadas y
mucho más fáciles de usar que los lenguajes de programación como Basic, pascal o C. Al
arrancar MATLAB se abre una ventana del tipo de la indicada en la Figura 1 Ésta es la vista que
se obtiene eligiendo la opción Desktop Layout/Default, en el menú View.
Como esta configuración puede ser cambiada fácilmente por el usuario, es posible que en
muchos casos concretos lo que aparezca sea muy diferente. En cualquier caso, una vista similar
se puede conseguir con el citado comando View/Desktop Layout/Default.

Figura 1
La parte más importante de la ventana inicial es la Command Window, que aparece en la parte
derecha. En esta sub-ventana es donde se ejecutan los comandos de MATLAB, a continuación
del prompt (aviso) característico (>>), que indica que el programa está preparado para recibir
instrucciones. En la pantalla mostrada en la Figura 1 se ha ejecutado el comando A=magic(4),
mostrándose a continuación el resultado proporcionado por MATLAB.

En la parte superior izquierda de la pantalla aparecen dos ventanas también muy útiles: en la
parte superior aparece la ventana Current Directory, que se puede alternar con Workspace
clicando en la pestaña correspondiente. Current Directory muestra los ficheros del directorio
activo o actual. El Workspace contiene información sobre todas las variables que se hayan
definido en esta sesión.

2
En la parte inferior derecha aparecen otra ventana, Command History. La ventana Command
History muestra los últimos comandos ejecutados en la Command Window. Estos comandos se
pueden volver a ejecutar haciendo doble clic sobre ellos. Clicando sobre un comando con el
botón derecho del ratón se muestra un menú contextual con las posibilidades disponibles en
ese momento. Para editar uno de estos comandos hay que copiarlo antes a la Command
Window.

A diferencia de versiones anteriores de MATLAB en que el directorio activo se debía cambiar


desde la Command Window, a partir de la versión 6.0 se puede cambiar desde la propia
ventana (o desde la barra de herramientas, debajo de la barra de menús) con los métodos de
navegación de directorios propios de Windows. Clicando dos veces sobre uno de los
ficheros *.m del directorio activo se abre el editor de ficheros de MATLAB, herramienta
fundamental para la programación.

GENERALIDADES
Manejo de variables:
En MATLAB como en cualquier otro lenguaje de programación, y/o asistente matemático se
utilizan variables. Las variables deben tener un nombre según ciertas reglas. Estas reglas son:
 NO pueden comenzar con un número, aunque si pueden tener números (variable1 es
un nombre válido).
 Las mayúsculas y minúsculas se diferencian en los nombres de variables. (A y a son dos
variables diferentes)
 Los nombres de variables no pueden contener operadores ni puntos. (No es válido usar
/, *, -, +, ...)
 Si se trabaja con complejos sólo puede utilizarse un de los nombres i y/o j para variables.
 No es necesario definir el tipo de variable o tamaño (si se usa un vector y después se
expande, no hay problema)
 Para el uso de una variable no es necesario declarar sus nombres, en la siguiente tabla
se presenta las variables predefinidas que posee Matlab.

Nombre de la Significado
variable
Pi π
Inf ∞
Eps 1.0000e-006
NaN No es número
Realmin Menor número2-1022
Realmax Mayor número (2-e)21023
Manejo de expresiones:
Una expresión en MATLAB, puede ser:
 Una variable o un número. (ej: variable1, x, 3, 22.3)
 Un comando aplicado. (ej: norm(A), sin(2*pi) )
 Una expresión matemática. (ej: 2+3*variab1^ 4.5)

Si cualquiera de las anteriores se escribe en la línea de comandos (>> ) del MATLAB, él


devolverá el nombre de la variable y su valor (en caso de que la expresión tenga nombre, de
no tenerlo, MATLAB devolverá ans = resultado). Un punto importante que se debe resaltar
es que esto ocurre siempre y cuando la expresión no termine con punto y coma. Al añadir un
punto y coma al final de la expresión MATLAB no imprime su valor en la pantalla, aunque si
realiza el cálculo. (a=3+2; deja en a el valor de 5, pero no lo muestra).
Manejo de comandos:
Cada comando en MATLAB es un archivo con extensión .m, por lo tanto es necesario tener las
librerías en que se encuentran los comandos que se desean utilizar. Aunque la gran mayoría de
los comandos utilizados siempre vienen incluidos en las librerías.
MATLAB NO distingue entre mayúsculas y minúsculas en los comandos (a menos que se trabaje
en Unix). El resto de esta presentación trata cada comando en detalle (los más usados).

COMANDOS DE MATLAB
Comandos globales
o Para salir de MATLAB, use quit o exit.
o El comando clc despeja la ventana de comandos.
o El comando clf borra la figura actual despejando la ventana de gráficos.
o El comando clear tiene varias formas posibles:
clear sin argumentos, clear elimina todas las variables creadas previamente (excepto las
variables globales).
clear A, b borra las variables indicadas.
clear global borra las variables globales.
clear functions borra las funciones.
clear all borra todas las variables, incluyendo las globales, y las funciones.
o El “;” al final de la instrucción omite el “eco” o salida a la pantalla.
o Guardar variable save.
o Recuperar variable guardada load.

Formatos Numéricos

Comando Exhibición Ejemplo


format short Por 2.3333
format short e 4
omisión 2.3333e+000
format long decimales
14 2.33333333333333
format long e decimales
15 2.333333333333334e+0
format bank decimales
2 00
2.33
format rat decimales
fracción 2/5

Comandos de Operaciones Aritméticas

ESCALAR MATRIZ VECTOR DESCRIPCIÓN


+ + + Adición
- - - Sustracción
* * .* Multiplicación
/ / ./ División hacia la derecha
\ \ \. División hacia la izquierda
^ ‘ .’ Transposición

Comandos de Operadores Relacionales

OPERAD DESCRIPCIÓN
OR < menor que
< menor o igual
> mayor que
> mayor o igual
= que Igual
~ no igual

Comandos de Operadores Lógicos

OPERADOR DESCRIPCIÓN
& Y (and)
| O (or)
~ NO (not)

Caracteres Especiales:

Caracteres Descripción
[] Se utilizan para formar vectores y matrices
() Define precedencia en expresiones aritméticas. Encierra argumentos
de
, funciones en
Separador deforma usual de una matriz, argumentos de funciones
elementos
y
; declaraciones
Separador en líneas con declaraciones
de declaraciones, múltiples
termina renglones de una matriz

Funciones Matemáticas Elementales que Operan de Modo Escalar


Matlab ofrece un sinnúmero de funciones las que acepta como argumentos variables reales y/o
complejos sin discriminación, así como con argumentos matriciales.

Funciones Trigonométricas

Funció Descripción
n
sin(x) Senos de x.
asin(x) Arco seno de x.
sinh(x) Seno hiperbólico de x.
asính(x Arco seno hiperbólico x.
)
cos(x) Coseno de x.
acos Arco coseno de x.
(x)
cosh(x) Coseno hiperbólico de x.
acosh( Arco coseno hiperbólico de x.
x)
tan(x) Tangente de x.
atan(x) Arco tangente de x.
tanh(x) Tangente hiperbólico de x.
atanh( Arco tangente hiperbólico de
x) x.
cot(x) Cotangente de x.
sec(x) Secante de x.
csc(x) Cosecante de x.
Funciones Que Realizan Tareas

Función Descripción
abs(x) Valor absoluto de x.
sqrt(x) Raíz cuadrada de x.
real(x) Parte real del número complejo x.
imag(x) Parte imaginaria del número complejo x.
sign(x) Función signo de x.
exp(x)
log(x) Logaritmo natural.
log10(x) Logaritmo decimal.
num2str(x) Convierte en cadena el número x.
str2double( Convierte en número real la cadena x.
x)
rem(x,y) Resto de la división (2 argumentos que no tienen que ser
enteros)
mod(x,y) Similar a rem
round(x) Redondeo hacia el entero más próximo
fix(x) Redondea hacia el entero más próximo a 0
floor(x) Valor entero más próximo hacia - 
ceil(x) Valor entero más próximo hacia + 
gcd(x) Máximo común divisor
lcm(x) Mínimo común múltiplo

Funciones Reales

Función Descripción
eval(f,x) Evalúa una función en los valores de x.
fplot(f, Grafica la función en el intervalo [a,b].
[a,b])
fzero(f,a) Calcula la raíz de la función f, partiendo del valor a.
trapz(x,f) Calcula el área de la región plana limitada por f en el intervalo [a, b], donde
a
es el primer valor de x y b el último valor de x, x debe ser una variable
con múltiples ordenados en orden creciente.
Ing. Henrry Ochoa León
Especialista en Programas de Ingeniería

Capítulo II

MATRICES Y ARREGLOS

Arreglo: Es un conjunto de números, ordenados en filas y columnas.


Arreglos unidimensionales: Es un conjunto de números, ordenados en una sola fila o
columna.
Arreglos bidimensionales: Es un conjunto de números, ordenados en filas y columnas,
teniendo para ello más de una.

Matriz: Es un arreglo rectangular de números (reales o complejos) ordenados en filas y


columnas.
a11 a12 …………………………… a1n
a21 a21……………………………….. a2n
A= …………..…………………………
am1 am2 ……………… amn

En su forma simplificada lo escribiremos como: A= (aij) y los números aij constituyen los
elementos de la matriz A.
Si una matriz tiene solo una columna, se denomina matriz columna, y si posee solo una fila se
denomina matriz fila.

TIPOS DE MATRICES PREDEFINIDOS

eye(4) Forma la matriz unidad de tamaño (4x4)


zeros(3,5) Forma una matriz de ceros de tamaño (3x5)
ones(3) Forma una matriz de unos de tamaño (3x3)
linspace(x1,x2, Genera un vector con n valores igualmente espaciados entre x1 y x2
n)
rand(3) Forma una matriz de números aleatorios entre 0 y 1, con
distribución
rand(2,5) uniforme, de tamaño
Idem de tamaño (2x5)(3x3)
randn(4) Forma una matriz de números aleatorios de tamaño (4x4), con
distribución
magic(4) normal,
Crea unadematriz
valor (4x4)
mediocon0 ylos
varianza 1. 1, 2,... 4*4, con la propiedad de
números
que

FUNCIONES MATRICIALES ELEMENTALES

B = A' Calcula la traspuesta (conjugada) de la matriz A


t = trace(A) Devuelve la traza t (suma de los elementos de la diagonal) de una
matriz
[m,n] = size(A) cuadrada
Devuelve A
el número de filas m y de columnas n de una matriz rectangular
A
n = size(A) Devuelve el número de filas de A

7
nf = size(A,1) Idem de tamaño (2x5)
nc = size(A,2) Devuelve el número de columnas de A
det(A) Sirve para calcular el determinante de la matriz A.
inv(A) Sirve para invertir la matriz A.

APLICACIÓN DE MATRICES

DEFINICIÓN DE UNA MATRIZ


MATLAB trabaja esencialmente con matrices numéricas rectangulares. La manera más fácil de
ingresar matrices es enumerando los elementos de ésta de tal manera que:
 Para obtener una columna, los elementos deben estar separados por espacios en
blanco ó comas.
 Para obtener una fila, se coloca punto y coma “;” al final de ingresar los elementos.
 Los elementos están cerrados entre corchetes, [ ].

TRANSPOSICIÓN DE UNA MATRIZ


El carácter “ ' ” (apóstrofe) denota la matriz transpuesta. Si tenemos la matriz A y llamamos b =
A', b es la matriz transpuesta de A.

8
Ing. Henrry Ochoa León
Especialista en Programas de Ingeniería

SUBMATRICES
Generación de una submatriz a partir de una matriz dada.

3:4 nos indica la tercera y cuarta fila completa de la submatriz A.


1:3 nos indica, desde la primera hasta la tercera columna completa de la submatriz A.

Submatriz formada por los elementos que están en todas las filas que hay entre la segunda y la
tercera fila en las columnas primera y tercera.

ASIGNACIÓN DE UNA MATRIZ


A los elementos de una matriz se accede sin más que escribir el nombre de la matriz y, entre
paréntesis, los respectivos índices:

También se puede acceder a una fila o columna completas

Podemos acceder a la matriz como si fuera una columna,

MATRICES ESPECIALES
En MATLAB podemos generar matrices especiales con las siguientes instrucciones:

FUNCIONES DE MATRICES
Diag
Nos permite hallar la diagonal de una matriz

Tril
Matriz formada por la parte triangular inferior de A

Triu
Matriz formada por la parte triangular superior de A

Sum(matriz)
Realiza la suma de todas las filas con su respectiva columna

prod(matriz)
Realiza el producto de todas las filas con su respectiva columna
Ing. Henrry Ochoa León
Especialista en Programas de Ingeniería

min
Muestra los valores mínimos de los elementos que se encuentran en la matriz.

max
Muestra los valores máximos de los elementos que se encuentran en la matriz.

inv
Sirve para invertir una matriz (matriz cuadrada), la sintaxis de la orden es:
matriz1 = inv(matriz2);
matriz2: Es la matriz que se desea invertir
matriz1: Se almacena la matriz inversa de la matriz 2.

Det
Sirve para calcular el determinante de una matriz. La sintaxis de la orden es: Valor=det(Matriz)
Matriz: Es la matriz (cuadrada) a la que se le desea calcular el determinante.
Valor: Es donde se almacena el valor del determinante.
FUNCIONES QUE ACTÚAN SOBRE VECTORES

Las siguientes funciones actúan sobre vectores (no sobre matrices ni sobre escalares)
[xm,im]=max(x) Máximo elemento de un vector. Devuelve el valor máximo xm y
la
min(x) posición elemento
Mínimo que ocupade
imun vector. Devuelve el valor mínimo y la
posición
sum(x) que ocupa
Suma de los elementos de un vector
cumsum(x) Devuelve el vector suma acumulativa de los elementos de
un
vector(cada elemento del resultado es una suma de elementos
mean(x) del original)
Valor medio de los elementos de un vector
std(x) Desviación típica
prod(x) Producto de los elementos de un vector
cumprod(x) Devuelve el vector producto acumulativo de los elementos de un
[y,i]=sort(x) Ordenación de menor a mayor de los elementos de un vector x.
Devuelve el vector ordenado y, y un vector i con las posiciones
iniciales en x de los elementos en el vector ordenado y.
l = length (x) Determina el número de componentes de un vector.

ASIGNACIÓN DE UN VECTOR DE COORDENADAS

Si queremos declarar un vector de coordenadas equiespaciadas entre dos valores dados.

No necesariamente se tiene que incrementar por números enteros, pueden ser decimales,
números negativos ó constantes

Equivalentemente, si lo que conocemos del vector es que la primera coordenada vale 0, la


última 10 y que tiene 6 elementos en total, escribiremos:

Otra forma de asignar valores a un vector es por medio de los subíndices. El menor subíndice
utilizado por MATLAB es 1, y va añadiendo valores a medida que se requieran. Los subíndices
se escriben entre paréntesis.
Si se desea cambiar todo el valor de una fila o una columna, se utiliza el operador “:”:

SUBVECTORES
Se pueden extraer subvectores:

POLINOMIOS
Los polinomios en MATLAB se representan como vectores fila, conteniendo todos los
coeficientes en orden decreciente, incluyendo ceros. Por ejemplo, el polinomio

en Matlab debemos ingresar a p de la siguiente manera


>> p = [8 - 5 1 3 4 ]
p=8-5134

Observe que Matlab al responder no reescribe los corchetes. De ahora en adelante utilizaremos
los términos vector y polinomio indistintamente para referirnos al mismo concepto.

FUNCIONES PARA CÁLCULOS CON POLINOMIOS

roots(pol) Raíces del polinomio pol.


polyval(pol,x) Evaluación del polinomio pol para el valor de x. Si x es un vector, pol
se
conv(p1,p2) evalúa para
Producto de cada elemento
convolución dede x. polinomios p1 y p2.
dos
[c,r]=deconv(p, División del polinomio p por el polinomio q. En c se devuelve el cociente
q) y
residue(p1,p2) en r el resto de
Descompone el la división.
cociente entre p1 y p2 en suma de fracciones simples.
polyder(pol) Calcula la derivada de producto de polinomios.
polyder(p1,p2) Producto de los elementos de un vector
Capítulo III

GRÁFICAS CON MATLAB

FUNCIONES GRÁFICAS 2D ELEMENTALES


Matlab ofrece una gama amplia de opciones a la hora de realizar representaciones graficas.
Permite realizar graficas de curvas planas y superficies, posibilitando la agrupación y
superposición de ellos.

GRAFICAS EN EL PLANO
Con Matlab es sencillo crear objetos gráficos e incluso artísticos mediante expresiones
matemáticas a través de los siguientes comandos.

Comandos descripción
plot(x,y) Dibuja el conjunto de puntos (x,y) en un sistema cartesiano.
bar(x,y) Grafico de barras vertical, donde y representa las frecuencias y x
define los espacios en el eje x.
barh(x,y) Grafico de barras vertical, donde x representa las frecuencias y y
define los espacios en el eje y.
stem(x,y) Grafico de bastones vertical, donde y representa las frecuencias y x
define los espacios en el eje x.
stairs(x,y) Grafica una curva escalonada.
polar(x,y) Dibuja una curva en coordenadas polares, y=y(x).
pie(x,y) Realiza el grafico de sectores relativo al vector x.
rose(x,y) Dibuja la histograma angular relativo al vector y.

ETIQUETAS EN LAS GRAFICAS DE MATLAB.


Matlab presenta funciones para colocar textos, etiquetas en los ejes coordenados, colocar
titulo y efectuar un subrayado a los ejes, a continuación se presentan estas funciones:

title('título') Añade un título al dibujo


xlabel('tal') Añade una etiqueta al eje de abscisas. Con xlabel off desaparece
ylabel('cual') Añade una etiqueta al eje de ordenadas. Con ylabel off desaparece
text(x,y,'texto') Introduce 'texto' en el lugar especificado por las coordenadas x e y. Si
x
e y son vectores, el texto se repite por cada par de elementos. Si
texto es también un vector de cadenas de texto de la misma
gtext('texto') dimensión,texto
Introduce cadacon elemento se escribe
ayuda del ratón: el cursorencambia
las coordenadas
de forma y
se
legend(‘rotulo’) espera rótulos
Define un clic para
paraintroducir el líneas
las distintas texto en esa utilizados
o ejes posición. en la figura.
grid Activa la inclusión de una cuadrícula en el dibujo. Con grid
off
desaparece la cuadrícula.
El comando plot puede utilizarse también con matrices
como argumentos.
GRAFICO DE MÚLTIPLES CURVAS
Matlab provee con la opción plot para realizar simultáneamente la grafica de más de una curva,
estableciendo por efecto 2 colores distintos.
plot(x,y,x,z);
ESTILOS DE LÍNEA Y MARCADORES EN LA FUNCIÓN PLOT
Matlab permite realizar graficas de funciones utilizando diferentes caracteres, en la siguiente
tabla se presenta las siguientes opciones.

Ejemplos
1

0.8
line;
0.6
x=-1:0.1:5;
0.4
y=sin(x.^2);
0.2 plot(x,y);
0

-0.2

-0.4

-0.6

-0.8

-1
-1 0 1 2 3 4 5

0.9

0.8

0.7

0.6
bar
x=-3:0.2:3;
0.5
y=exp(-x.^2);
0.4
bar(x,y);
0.3

0.2

0.1

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

2
barh
x=-3:0.2:3;
1
y=cos(x.^3)-2.*x+1;
0 barh(x,y);
-1

-2

-3

-4
-6 -4 -2 0 2 4 6 8

0.8

0.6
Stairs
0.4
x=0:0.2:10;
0.2 y=sin(x);
0 stairs(x,y);
-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7 8 9 10

90
0.5
120 60
0.4

0.3
polar
150 30 t=0:0.1:2*pi;
0.2
y=abs(sin(2*t).*cos(2*t));
0.1
polar(t,y);
180 0

210
330

240
300
270
4%

12%

Pie
36% x=1:2:9;
pie(x)

20%

X=

28%
90 2
120 60
1.5
Rose
150 1
x=[1 3 6 2 7 1 5 12];
30
rose(x);
0.5

180 0

210
330

240 300
270
1

0.8
x=0:0.05:5;
0.6
y=sin(x);
0.4
z=cos(x);
0.2
plot(x,y,x,z);
0

-0.2

-0.4

-0.6

-0.8

-1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Observacion: Después de haber graficado una o mas curvas, se puede incrementar una curva en
los mismos ejes precediendo el comando.
hold on, al uso del ultimo plot.
1
x=0:0.05:5;
0.5
y=sin(x);
z=cos(x);
0 plot(x,y,x,z);
hold on
-0.5
w=abs(x-2)-2;
plot(x,w,'g');
-1
grid
-1.5

-2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Grafica con Matlab 7


5
x=-2:0.05:5;
0
y=-x.^2+sin(x);
-5
2
y=-x. +sin(x) plot(x,y);
text(2.7,-4,'y=-x.^2+sin(x)');
-10
title('Grafica con Matlab 7');
y

-15 xlabel('x');
ylabel('y');
-20
grid
-25

-30
-2 -1 0 1 2 3 4 5
x
GRAFICAS CON MÚLTIPLES EJES
Matlab permite construir múltiples ejes en una sola pantalla en la cual se elaboran múltiples
gráficas.

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 sub. Ventanas 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. Por ejemplo,
la siguiente secuencia de comandos genera cuatro gráficos en la misma ventana:
subplot(F,C,N)
FILAS, COLUNMAS Y UBICACIÓN
x=pi/2:pi/16:8*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)

1 1

0.5 0.5

0 0

-0.5 -0.5

-1 -1
0 10 20 0 10 20 30
30

1 0.5

0.5
0
0
-0.5
-0.5

-1 -1
0 10 20 0 10 20 30
30

GRÁFICAS ESPECIALES EN EL PLANO


Matlab dispone de un grupo de comandos para presentar formas geométricas especiales en
dos dimensiones, estos se describen en la siguiente tabla.

Comandos Descripción
compass(x,y) Dibuja un conjunto de flechas con origen en (0,0) y cuya
magnitud y dirección vienen determinadas por el modulo de
z, (z=x+iy).
feather(x,y) Dibuja un conjunto de flechas con origen en el eje X, y cuya
magnitud y dirección vienen determinadas por el modulo de
fpolt('f',[a,b]) Y.
Grafica la función f en el intervalo [a,b].
ezplot('f',[a,b]) Grafica la función f en el intervalo [a,b], adicionándole el titulo
por defecto.
loglog(x,y) Realiza una grafica cartesiana con escala logarítmica en los
ejes
coordenados.
semilogx(x,y) Realiza una grafica cartesiana con escala logarítmica en el eje
X y escala normal en el eje Y.
semilogy(x,y) Realiza una grafica cartesiana con escala logarítmica en el eje
Y y escala normal en el eje X.
fill(x,y,c) Dibuja una región poligonal cuyos vértices son los elementos
de los vectores columna x, y; el parámetro c contiene el
color a graficar.

90
5
120 60
4 Compass:
150
3
30
x=-pi:0.8:pi;
2
y=3-sin(x);
1
compass(x,y);
180 0

210
330

240
300
270

3.5
Feather:
3
x=-pi:0.8:pi;
2.5 y=3-sin(x);
2 feather(x,y);
1.5

0.5

0
-4 -2 0 2 4 6 8 10 12

y=cos(x)
1

0.8 fplot;
0.6 fplot('cos(x)',[-3,3]);
0.4

0.2

0
y

-0.2

-0.4

-0.6

-0.8

-1
-3 -2 -1 0 1 2 3
x

4-abs(x)

4 ezplot;
3.5 ezplot('4-abs(x)',[-3,3]);
3

2.5
y

1.5

-3 -2 -1 0 1 2 3
x
1.054
10
1.052
10 Loglog:
1.05
1
x=1:0.2:10;
0
y=11+exp(-x.^2);
loglog(x,y);
y

1.048
10

1.046
10

1.044
10

1.042
10
0 1
10 10
x

0.8

0.6
Fill:
0.4
x=1:0.2:10;
0.2
y=cos(x);
0 fill (x,y, 'm');
y

-0.2

-0.4

-0.6

-0.8

-1
1 2 3 4 5 6 7 8 9 10
x

GRÁFICOS
TRIDIMENSIONALES
Quizás sea ésta una de las características de MATLAB que más admiración despierta
entre los usuarios no técnicos (cualquier alumno de ingeniería sabe que hay ciertas
operaciones algebraicas – como la descomposición de valor singular, sin ir más lejos que
tienen dificultades muy superiores, aunque "luzcan" menos).
GRAFICA DE
SUPERFICIES
Matlab permite realizar graficos en tres dimensiones tanto de líneas como de
superficies,
siendo sencillo crear objetos graficos a través de los siguientes
comandos.

Comandos Descripción
plot3(x,y,z) Dibuja el conjunto de puntos (x,y,z) en un sistema de tres dimensiones.
Dibuja una región poligonal cuyos vértices son los elementos de los vectores
fill3(x,y,z,c)
columna x, y, z. el parámetro c contiene el color a graficar.
Crea arreglos bidimensionales a partir de los arreglos x e y, para elaborar la
meshgrid(x,y
grafica
)
mesh(x,y,z) de una superficie
Grafica explicita
una superficie z = f(x,y).
explicita z - f(x,y) con los arreglos x, ye z.
Grafica superficie explicita z - f(x,y) con los arreglos x, y e z; proyectando las
meshc(x,y,z)
curvas
de niveluna
Grafica enelsuperficie
plano xy.explicita z - f(x,y) con los arreglos x, ye z; cerrando la
meshz(x,y,z)
grafica
con las fronteras
Grafica del dominio.
una superficie explicita z - f(x,y) con los arreglos x, ye z; pintando cada una
surf(x,y,z)
de las celdas.
Grafica superficie explicita z - f(x,y) con los arreglos x, y e z; proyectando las
surfc(x,y,z)
curvas
de nivel en el plano xy.
Grafica una superficie explicita z = f(x,y) con los arreglos x,ye z; considerando una
surfl(x,y,z)
iluminación en formato básico.
waterfall(x,y, Grafica una superficie explicita z = f(x,y) en forma de cascada.
contour(x,y,z Grafica las curvas de nivel de la superficie explicita z = f(x,y).
A continuación se presentan gráficos con tres dimensiones haciendo uso de los comandos
descritos anteriormente.

Plot3:
1
t=-6:0.2:8;
0.5 x=t; y=3-
t;
0
z=cos(t);
-0.5 plot3(x,y,z);
gris
-1
10
10
5
5
0 0
-5
-5 -10

fill3:
1 t=-6:0.2:8;
x=t; y=3-
0.5 t;
z=cos(t);
0
c=[1 0.8 0.1];
-0.5 fill3(x,y,z,c);
grid
-1
10
10
5
5
0 0
-5
-5 -10

Observación.-En los siguientes gráficos simplificaremos el código de la programación:


[x,y]=meshgrid(-2:0.2:2) en reemplazo de:
xa=-2:0.2:2; ya= -2:0.2:2; [x,y]=meshgrid(xa,ya);

2 2
z=x.*exp(-x. -y. )

mesh:
[x,y]=meshgrid(-2:0.2:2);
0.5
z=x.*exp(-x.^2-y.^2);
mesh(x,y,z)
title('z=x.*exp(-x.^2-y.^2)');
0 xlabel('x');ylabel('y');zlabel('z');
z

-0.5
2
1
2
0 1
0
-1 -1
y -2 -2
x
2 2
z=x. +y.

8
meshc: z=x.^2+y.^2;
[x,y]=meshgrid(- meshc(x,y,z)
2:0.2:2); title('z=x.^2+y.^2');
xlabel('x');ylabel('y');zlabel('z ');
4
z

0
2
1 2
0 1
0
-1 -1
y -2 -2
x

2 2
z=x. -y. -9

meshz:
[x,y]=meshgrid(-3:0.2:3);
0 z=x.^2-y.^2-9;
meshz(x,y,z)
-5
title('z=x.^2-y.^2-9');
xlabel('x');ylabel('y');zlabel('z
-10
z

-15

-20
4
2
4
0 2
0
-2 -2
y -4 -4
x

2 2
z=sin(x. +y. )

surf:
[x,y]=meshgrid(-1.5:0.2:1.5);
1 z=sin(x.^2+y.^2);
surf(x,y,z)
0.5
title('z=sin(x.^2+y.^2)');
0
xlabel('x');ylabel('y');zlabel('z');
z

-0.5

-1
2
1 2
0 1
0
-1 -1
y -2 -2
x
2 10
z=-x+y.
z

30

20
5:0.2:5); z=-x+y.^2;
surfc: surfc(x,y,z)
[x,y]=meshgrid(- title('z=-x+y.^2');
xlabel('x');ylabel('y');zlabel('z');

-10
5

5
0
0

y -5 -5
x

2 2 2
z=sin(sqrt(x. +y. ))./(sqrt(x. +y. ))
2
surfl:
[x,y]=meshgrid(-7.5:0.5:7.5);
z=sin(sqrt(x.^2+y.^2))./(sqrt(x.^
1 2+y.^2));}
surfl(x,y,z)
0.5 title('z=sin(sqrt(x.^2+y.^2))./(sq
rt(x.^2+y.^2))');
z

0
xlabel('x');ylabel('y');zlabel('z');

-0.5
10

5 10
0 5
0
-5 -5
-10 -10
y x

Observacion:En la orden surfl(x,y,z), es el parámetro s es un vector direccional de iluminación


cuyo angulo en perspectiva es medida en grados.

z=sin(x)+cos(y) waterfall:
[x,y]=meshgrid(-3:0.2:3);
z=sin(x)+cos(y);
2 waterfall(x,y,z)
title('z=sin(x)+cos(y)');
1
xlabel('x');ylabel('y');zlabel('z');
0
z

-1

-2
4
2 4
0 2
0
-2 -2
y -4 -4
x
1
2 2
z=x.*exp(-x. -y. )
2
0.5

1.5
c our: z=x.*exp(-x.^2-y.^2);
o [x,y]=mesh contour(x,y,z)
n grid(- title('z=x.*exp(-x.^2-y.^2)');
t 2:0.2:2); xlabel('x');ylabel('y');zlabel('z');

0
y

-0.5

-1

-1.5

-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
x

2 2
z=-x. -y. +8 contour3:
[x,y]=meshgrid(-4:0.2:4);
z=-x.^2-y.^2+8;
10
contour3(x,y,z,20)
0 title('z=-x.^2-y.^2+8');
xlabel('x');ylabel('y');zlabel('z');
-10
z

-20

-30
4
2
4
0 2
0
-2 -2
-4 -4
y x

Observaciones:
El parámetro m de contour (x,y,z,m) o de contour3(x,y,z,m),indica el numero de niveles de
contorno a graficar.
El comando contour puede ser usado para graficar una función implícita.
Por ejemplo y3 +exp(y)=tanh(x)
Luego graficamos el contorno de uj solo nivel que corresponde a f=0.

3
y. +exp(y)-tanh(x)
3

2
[x,y]=meshgrid(-3:0.2:3);
f=y.^3+exp(y)-tanh(x);
1
contour(x,y,f,[0,0])
xlabel('x');ylabel('y');
0
y

-1

-2

-3
-3 -2 -1 0 1 2 3
x

GRAFICA ESPECIALES
Línea diagrama de un chirrido (Línea plot of a chirp) Line plot a chirp
1
0.8

0.6

0.4
x =0:0.05:5;
y=sin(x.^2);
plot(x,y);
0.2

-0.2

-0.4

-0.6

-0.8

-1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Los
1
diagramas de la barra de una campana formaron la curva (Bar plot pf a bell shaped curve)
x=-2.9:0.2:2.9;
0.9
bar(x,exp(-x.*x));
0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-3 -2 -1 0 1 2 3

Diagrama del Escalón de una onda del seno (Stairstep plot of a sirve wave)
1

0.8
x=0:0.25:10;
0.6
stairs(x,sin(x));
0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7 8 9 10

Diagrama de Errorbar (Errorbar plot)


1.5
x=-2:0.1:2;
1
y=erf(x);
e=rand(size(x))/10;
0.5 errorbar(x,y,e);

-0.5

-1

-1.5
-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5
0.2
90
0.5
12 0.1
60
0 0.4

0.3
150 30
=0:0.01:2*pi; r=sin(2*t).*cos(2*t);
t polar(t,r)
180 0

210
330

240
300
270

Diagrama del vástago (Stem plot)


0.35

0.3
x=0:0.1:4;
0.25

0.2
y=sin (x.^2).*exp(-x);
0.15
stem(x,y)
0.1

0.05

-0.05

-0.1

-0.15
0 0.5 1 1.5 2 2.5 3 3.5 4

Diagramas de XYZ en MATLAB. Aquí están algunos ejemplos de los diagramas superficiales
en MATLAB.
Diagrama del acoplamiento del pico (Mesh Plot of Peak)

10
z=peaks (25);
5 mesh (z);
0
colormap (hsv)

-5

-10
30
25
20 20
15
10 10
5
0 0

Diagrama superficial de picos (Surface Plot of Peaks)

z=peaks(25);
10
surf(z);
colormap(jet);
5

-5

-10
30
25
20 20
15
10 10
5
0 0

Diagrama superficial (con sombra) de picos (Surface Plot (with Shading) of Peaks)
z=peaks(25);
10
surfl(z);
shading interp;
5
colormap(pink);
0

-5

-10
30
25
20 20
15
10 10
5
0 0

Diagrama del contorno de picos (Contour Plot of Peaks)


25

z=peaks (25);
20
contour (z,16);
colormap (hsv)

15

10

5 10 15 20
25

Temblor (Quiver)
1.5 x=-2:.2:2;
y=-1:.2:1;
1
[xx,yy]=meshgrid(x,y);
zz=xx.*exp(-xx.^2-yy.^2);
0.5
[px,py]=gradient(zz,.2,.2)
0
;
quiver(x,y,px,py,2);
-0.5

-1

-1.5
-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Rebanada (Slice)

[x,y,z]=meshgrid (-2:.2:2,-
20 2:.2:2,-2:.2:2);
v=x.*exp (-x.^2-y.^2-
15
z.^2);
10 slice (v,[5 15 21],21,[1
10])
5
axis ([0 21 0 21 0 21]);
0 colormap(jet)
20
15 20
10 15
10
5 5
0 0
Capítulo IV
LIMITES, DERIVACIÓN E INTEGRACIÓN
Límites utilizando Matlab

El límite de una función real de variable real en un punto sólo requiere la declaración de la
variable en uso como simbólica con syms y la orden limit a continuación.

syms x
Se calcula lim f(x)
limit (f, x, x0)
x→xo
Se calcula el límite lateral lim +f(x) por la derecha.
limit (f, x, x0,
x→
‘right’) Se calcula el límite lateral lim −f(x) por la izquierda
limit (f, x, x0, ‘left’)
x→

Derivadas utilizando Matlab


Dada una función simbólica, MATLAB nos permite encontrar la función derivada de cualquier
orden, y evaluarla si fuera necesario.
Esta operación, se hace de forma simbólica utilizando el comando diff(…….), pero hay que
resaltar que no actúa sobre funciones definidas inline, sólo lo hace sobre expresiones
simbólicas en sí mismas.

diff (' f ', 'x', n) calcula la derivada de f respecto de x de orden n, sin declaración
previa
syms x de variables
calcula la derivada de f respecto de x de orden n, con declaración
diff (f , x , n) previa variable simbólica

Integral de una función real utilizando Matlab


Dada una función simbólica, MATLAB nos permite encontrar la familia de primitivas o la
integral definida, entre otras muchas utilidades que nos ofrece.
Esta operación, se hace de forma simbólica utilizando el comando int(…….), pero hay que
resaltar que no actúa sobre funciones definidas inline, sólo lo hace sobre expresiones
simbólicas en sí mismas.

int (' f ', 'x', n) calcula la ∫ 𝑓(𝑥)𝑑�, SIN declaración previa de variables
int (‘f’, ‘x’, a, b) �
calcula la ∫� 𝑓(𝑥)𝑑�, SIN declaración previa de variables
syms x , int ( f , x) calcula la ∫ 𝑓(𝑥)𝑑�, CON declaración precia de la variable
syms x , int (f, x, a, �

b) calcula la ∫� 𝑓(𝑥)𝑑�, CON declaración precia de la variable

Comandos Aplicados a Derivadas e Integrales


simplify(f) Se simplifica la deriva a la mínima expresión
pretty(f) Imprime la función de una forma fácil de observar

Aplicaciones
1) Aplicación de Limites

Solución
syms x
y=(x^2-3)/(3*x^5+5*x)
l=limit(y,x,3)
l=1/124

Solución
syms x
y=(exp(x)-1)/log10(1+x)
l=limit(y,x,0)
l=log(2)+log(5)

2) Aplicación de Derivadas

Calcular la primera deriva de y(x)


y(x)=4.x.sen(x)

Solución
syms x
y=4*x*sin(x)
k=diff(y)
k=4*sin(x)+4*x*cos(x)

Calcular la tercera derivada de f(x)


f(x)= 4.x.sen(x)+ln(x).x5

Solución
syms x
F=4*x*sin(x)+log(x)*x^5
M=diff(F,3)
S=simplify(M)
pretty(M)
M =-12*sin(x)-4*x*cos(x)+47*x^2+60*log(x)*x^2
S =-12*sin(x)-4*x*cos(x)+47*x^2+60*log(x)*x^2

Solución de otra manera


f(x)= 4.x.sen(x)+x5+ x2

Solución F='4*x*sin(x)
+x^5+x^2' M=diff(F,3)
S=simplify(M)
pretty(M)
M =-12*sin(x)-4*x*cos(x)+60*x^2
S =-12*sin(x)-4*x*cos(x)+60*x^2

Calcular la tercera derivada parcial de f(x)

f(x)=4.y2.sin(x)+x5+y3*x3

Solución
F='4*y^2*sin(x)+x^5+y^3*x^3'
M=diff(F,'x',3)
S=simplify(M)
pretty(M)
M =-4*y^2*cos(x)+60*x^2+6*y^3

3) aplicación de integración

Solución
syms x
y=x/(x^2+1)
I=int(y)
pretty(I)
I=1/2*log(x^2+1)

Solución
syms x y=x/
(x^2+1)
I=int(y,0,1)
I=1/2*log(2)

Capítulo V

30
Definició DIAGRAMA DE FLUJOS
n
Un Diagrama de Flujo es una representación pictórica de los pasos en un proceso, útil
para determinar cómo funciona realmente el proceso para producir un resultado. El
resultado puede ser un producto, un servicio, información o una combinación de los
tres. Al examinar cómo los
diferentes pasos en un proceso se relacionan entre sí, se puede descubrir con
frecuencia las fuentes de problemas potenciales. Los Diagramas de Flujo se pueden
aplicar a cualquier aspecto del proceso desde el flujo de materiales hasta los pasos
para hacer la venta u ofrecer un producto. Los Diagramas de Flujo detallados
describen la mayoría de los pasos en un proceso. Con frecuencia este nivel de detalle
no es necesario, pero cuando se necesita, el equipo completo normalmente
desarrollará una versión de arriba hacia abajo.

Reglas
Básicas
Todos los símbolos han de estar
conectados.
A un símbolo de proceso pueden llegarle varias
líneas.
A un símbolo de decisión pueden llegarle varias líneas, pero sólo
saldrán dos. A un símbolo de inicio nunca le llegan líneas.
De un símbolo de fin no parte ninguna
línea.

m
b
ol
o
Imagen o figura con la que se representa un concepto. Aunque hay literalmente
docenas de símbolos especializados utilizados para hacer Diagramas de Flujos, se
utiliza con más frecuencia los siguientes:

Símbolo Descripción
Inicio o fin de un diagrama

Identificación de variables, un paso o tarea del proceso,


una
descripción breve del proceso.
Punto de verificación o de decisión. Este diamante indica un punto
de
la rama en el proceso. La descripción está escrita dentro del
símbolo, generalmente en la forma de una pregunta. La respuesta
a la pregunta determina el camino que debe tomarse desde el
símbolodede
Bucles decisión. Cada
programación camino está identificado para que
for, while

Salida de datos por impresora

31
Líneas de conexión y dirección del flujo

Conexión o relación entre partes de un diagrama

Organigrama
Genérico

INICIO

32
ENTRADA DE
DATOS

CONDICIÓN

PROCESO

SALIDA DE
DATOS

FIN

Aplicación de bifurcaciones y bucles


Determinar la velocidad a partir de la energía cinética

Determinar las variables de la ecuación de calor


Determinar de la fuerza electroestática

Capítulo VI
PROGRAMACION EN MATLAB

Manejo de archivos con extensión .m:


Todos los comandos a que se refiere esta presentación pueden utilizarse directamente desde la
línea de comandos del MATLAB (>>). Sin embargo la idea es hacer un archivo (con extensión
.m) que contenga el programa (para poder modificarlo, revisarlo, correrlo otra vez) ya que es
más ventajoso así. Los programas no requieren in denotación como en los ejemplos que he
puesto aquí, sin embargo es recomendable hacerlo por claridad al intentar modificar el
programa o revisarlo.
Para trabajar estos archivos, es necesario saber:
 Que es: Es un archivo de texto como cualquier otro donde se encuentra el listado
del programa. (sólo que su extensión no es txt sino m)
 Como crear uno: Las formas más fáciles son:
 Como correrlo para obtener los resultados: Desde la línea de comandos de MATLAB
se escribe el nombre del archivo (sin el .m)

Ficheros *.M
Los ficheros con extensión (.m) son ficheros de texto sin formato (ficheros ASCII) que
constituyen el centro de la programación en MATLAB. Ya se han utilizado en varias ocasiones.
Estos ficheros se crean y modifican con un editor de textos cualquiera. En el caso de MATLAB
ejecutado en un PC bajo Windows, lo mejor es utilizar su propio editor de textos, que es
también Debugger. Existen dos tipos de ficheros *.m, los ficheros de comandos (llamados
scripts en inglés) y las funciones. Los primeros contienen simplemente un conjunto de
comandos que se ejecutan sucesivamente cuando se teclea el nombre del fichero en la línea
de comandos de MATLAB o se incluye dicho nombre en otro fichero *.m. Un fichero de
comandos puede llamar a otros ficheros de comandos. Si un fichero de comandos se llama
desde de la línea de comandos de MATLAB

Programación De Matlab Propiamente Dicho


Como ya se ha dicho varias veces incluso con algún ejemplo MATLAB es una aplicación que se
puede programar muy fácilmente. De todas formas, como lenguaje de programación pronto
verá que no tiene tantas posibilidades como otros lenguajes (ni tan complicadas...). Se
comenzará viendo las bifurcaciones y bucles, y la lectura y escritura interactiva de variables,
que son los elementos básicos de cualquier programa de una cierta complejidad.

Instrucciones de Entrada y Salida en la Programación

x=input(’mensaje’) Permite la introducción de datos numéricos por pantalla.


x=input(’mensaje’, Permite la introducción de datos por pantalla. La opción ’s’ se
[’s’]) emplea para leer una variable de tipo carácter (’string’), evitando
los apostrofes.

Ejemplos:
a=input(’Numero de filas: ’).
m=input(’Nombre del fichero: ’,’s’).

disp(’mensaje’) ´o disp(’texto’)
Muestra un texto o
una matriz de texto
por pantalla
disp(A) Muestra el valor de numérico de A
disp([A B C]) Muestra el valor de numérico de A, B y C respectivamente

Dentro de los comandos más útiles de Matlab, similares a disp se encuentran sprintf y fprintf,
que permiten la impresión de datos con formatos más complejos.

La forma de utilizarlos es la siguiente:

sprintf(‘texto %g texto2 \n’, variables )


fprintf(id, ‘texto %g texto2 \n’, variables )

Cajas box
Boxtittle =('nombre de caja');
entries={'nombre de variable1', 'nombre de variable2',…};
f=inputdlg(entries,boxtittle);
variable1=str2num(f{1});
variable2=str2num(f{2});

Bifurcaciones y bucles
MATLAB posee un lenguaje de programación que como cualquier otro lenguaje dispone de
sentencias para realizar bifurcaciones y bucles. Las bifurcaciones permiten realizar una u otra
operación según se cumpla o no una determinada condición. La Figura muestra tres posibles
formas de bifurcación.
Los bucles permiten repetir las mismas o análogas operaciones sobre datos distintos.
Mientras que en C/C++/Java el "cuerpo" de estas sentencias se determinaba mediante
llaves {...}, en MATLAB se utiliza la palabra end con análoga finalidad. Existen
también algunas otras diferencias de sintaxis.
BIFURCACIONES
SENTENCIA IF
En su forma más simple, la sentencia if se escribe en la forma siguiente (obsérvese que a
diferencia de C/C++/Java la condición no va entre paréntesis, aunque se pueden poner si se
desea):
if condición
Sentencias
end

Existe también la bifurcación múltiple, en la que pueden concatenarse tantas condiciones


como se desee, y que tiene la forma:
if condicion1
bloque1
elseif condicion2
bloque2
elseif condicion3
bloque3
else % opción por defecto para cuando no se cumplan las condiciones
1,2,3
bloque4
end

Ejemplos 1: altura máxima


Diagrama de flujo
function alturamaxima
clc,clear
boxtitle='altura maxima';
entries={'velocidad inicial','a','gravedad'};
w=inputdlg(entries,boxtitle);
v=str2num(w{1});
a=str2num(w{2});
g=str2num(w{3})
if g~=0
g=12;
xmax=(v^2)*sin(a)/g
else
xmax=(v^2)*sin(a)/g
boxtitle='altura maxima';
entries={'velocidad inicial','a','gravedad'};
w=inputdlg(entries,boxtitle);
v=str2num(w{1});
a=str2num(w{2});
g=str2num(w{3});
end
disp(xmax)

Ejemplos 1: Determinación de radio


Diagrama de flujo

Programación
function superficie
clc,clear
disp('El radio de una esfera')
A=input('area de la esfera A=');
Pi=3.1416;
if A<0
disp('Un area no pude ser negativa')
disp('consideraremos A=10')
A=10;
R=sqrt(A/(4*Pi));
else
R=sqrt(A/(4*Pi));
end
disp('El radio es:')
disp(R)

SENTENCIA SWITCH
La sentencia switch realiza una función análoga a un conjunto de if...elseif concatenados. Su
forma general es la siguiente:
switch switch_expresion
case case_expr1,
bloque1
case {case_expr2, case_expr3, case_expr4,...}
bloque2
% opción por defecto
bloque3
end

Ejemplos 1: Determinar las variables de la ecuación de calor


Diagrama de flujo
Programación
clc,clear
disp('¿Qué deseas calcular?')
disp('*)Variacion de temperatura
k=1') disp('*)El valor de la masa k=2')
disp('*)Calor especifico k=3')
disp('*)Cantidad de calor k=4')
k=input('Elige cual quieres k= ');
switch k
case 1
Q=input('Cantidad de calor Q=');
m=input('Cantidad de masa m=');
Ce=input('Calor específico Ce=');
VT=Q/(Ce*m);
disp('La variacion de temperatura es:')
disp(VT)
case 2
Q=input('Cantidad de calor Q=');
Ce=input('Calor específico Ce=');
VT=input('Variacion de temperatura VT=');
m=Q/(Ce*VT);
disp('La cantidad de masa es:')
disp(m)
case 3
Q=input('Cantidad de calor Q=');
m=input('Cantidad de masa m=');
VT=input('Variacion de temperatura VT=');
Ce=Q/(m*VT);
disp('El calor especifico es:')
disp(Ce)
case 4
m=input('Cantidad de masa m=');
Ce=input('Calor específico Ce=');
VT=input('Variacion de temperatura VT=');
Q=m*Ce*VT;
disp('La cantidad de calor es:')
disp(Q)
end

Ejemplos 2: Determinar las variables de la ecuación de movimiento rectilíneo uniformemente


variado
Diagrama de flujo
Ejemplos 2: Determinar las variables de la ecuación de la ley de columb
Diagrama de flujo
Programación
clc,clear
disp('Ley de columb')
disp('Calcular la fuerza w=1')
disp('Calcular la distancia w=2')
disp('Calcula la carga uno w=3')
disp('Calcular la carga dos w=4')
w=input('¿Qué deseas calcular? w=');
k=9*10^9;
switch w
case 1
Q1=input('Carga uno Q1= ');
Q2=input('Carga dos Q2= ');
D=input('Distancia de separacion d= ');
F=(k*Q1*Q2)/D^2;
disp('La fuerza es: ')
disp(F)
case 2
F=input('fuerza entre cargas F= ');
Q1=input('Carga uno Q1= ');
Q2=input('Carga dos Q2= ');
D=sqrt((k*Q1*Q2)/(F));
disp('La distancia de separación entre cargas es:')
disp(D)
case 3
F=input('fuerza entre cargas F= ');
Q2=input('Carga dos Q2= ');
D=input('Distancia de separacion d= ');
Q1=(F*(D^2))/(k*Q2);
disp('La carga uno es:')
disp(Q1)
case 4
F=input('fuerza entre cargas F= ');
Q1=input('Carga uno Q1= ');
D=input('Distancia de separacion d= ');
Q2=(F*(D^2))/(k*Q1);
disp('La carga dos es:')
disp(Q2)
end

BUCLES
SENTENCIA FOR
La sentencia for repite un conjunto de sentencias un número predeterminado de veces. La
sentencia for de MATLAB es muy diferente y no tiene la generalidad de la sentencia for de
C/C++/Java. La siguiente construcción ejecuta sentencias con valores de i de 1 a n, variando de
uno en uno.

for i=1:n
Sentencias
end o bien,

for i=vector Valores


Sentencias
end
Ejemplos 1: Determinar de la fuerza electroestática
Diagrama de flujo

Programación
function buclefor1
clc,clear,clf
box_tittle=('fuerza electroestatica');
entries={'ingrese q1','ingrese q2'};
f=inputdlg(entries,box_tittle);
q1=str2num(f{1});
q2=str2num(f{2});
K=9000000000;
for d=10:100;
F=(K.*q1.*q2)./(d.^2);
fprintf('"F"electrostatica=%g distancia=%g carga1=%g carga2=%g\n',F,d,q1,q2)
disp([F' d' q1' q2])
hold on
grid on
plot(F,d,'r>'),title('fuerza VS distancia');
end

Ejemplos 2: Tabla de multiplicar


Diagrama de flujo
Programación
function buclefor
clc,clear
boxtitle='multiplicacion';
entries={'que tabla quieres'};
M=inputdlg(entries,boxtitle);
n=str2num(M{1});
for i=0:15
m=i*n;
fprintf(1,'%g * %g = %g\n',i,n,m)
hold on
plot(i,m,'*'),xlabel('valor de los numero'),ylabel('valor del producto'),title('multiplicacion')
end

SENTENCIA WHILE
La estructura del bucle while es muy similar a la de C/C++/Java. Su sintaxis es la siguiente:

while condición
Sentencias
end

Donde condición puede ser una expresión vectorial o matricial. Las sentencias se siguen
ejecutando mientras haya elementos distintos de cero en condición, es decir, mientras haya
algún o algunos elementos true. El bucle se termina cuando todos los elementos de condición
son false (es decir, cero).

Ejemplos 1: Sumatoria de números naturales


Diagrama de flujo
Programación
function bublewhile
clc,clear,clf
boxtitle='suma de impares';
entries={'cantidad de numeros a sumar'};
M=inputdlg(entries,boxtitle);
n=str2num(M{1});
sum=0;
c=0;
impar=1;
while c<n
sum=sum+impar;
impar=impar+2;
c=c+1; fprintf(1,'%g=====%g=====
%g\n',c,sum,impar) hold on
plot(c,sum,'*'),xlabel('cantidad de numeros'),ylabel('valor de la suma'),title('suma de
numeros')
end
disp([sum])
Ejemplos 2: Determinar las variables de la ecuación de los gases
Diagrama de flujo

Programación
function buclewhile1
clc,clear
disp('ecuacion de los gases')
disp('**********************')
boxtittle=('ecuacion de los gases');
entries={'ingrese el valor de la temperatura','ingrese la presion ','ingrese el numero de moles'};
f=inputdlg(entries,boxtittle);
to=str2num(f{1});
p=str2num(f{2});
n=str2num(f{3});
R=0.082;
t=to+273;
while p<=0
box_title=('Ingrese otro valor')
entries=('ing valor de p')
y=inputdlg(entries,box_title)
p=str2num(y{1})
end
V=(n*R*t)/(p);
fprintf('V=en litros=%g\n',V)
disp('*********************')

También podría gustarte