Está en la página 1de 17

MÉTODOS NUMÉRICOS Y PROGRAMACIÓN IV

I. Programación

La programación es una herramienta utilizada para automatizar secuencias de cálculos. Estas


secuencias son ordenadas en forma de una lista de actividades, llamada algoritmo. Los lenguajes
de programación son un medio de comunicación entre el usuario y un computador que le permite
implementar esta algoritmo. Los lenguajes de programación se pueden clasificar en 2 grupos
principales.

1. Lenguajes de alto nivel: Son lenguajes que tienen funciones automatizadas como
funciones matemáticas (funciones trigonométricas, logarítmicas, etc) y lazos de
repetición (controles de flujo).
2. Lenguajes de bajo nivel: Son lenguajes que manejan un número definido de instrucciones
(solo suma y resta) y se debe dominar el sistema binario para pode ser usados.

Diagramas de flujo

Son esquemas que indican como fluye la información dentro de un algoritmo matemático. La
información que emplea el algoritmo son los datos de entrada (variables y parámetros) para
generar datos de salida. Estos esquemas presentan el orden de las operaciones (cálculos) que se
ejecutan dentro del algoritmo. La simbología estandarizada, empleada en programación, se
presenta en la tabla 1.

Tabla 1. Simbología estandarizada empleada en programación

Terminal (inicio o fin de un programa)

Líneas de flujo

Proceso

Entradas/Salidas (inputs o outputs. Entradas son


por ejemplo los lados de una triángulo rectángulo y
las salidas la hipotenusa calculada con el teorema
de Pitágoras)

Decisión (contraste)
El uso de diagramas es útil porque permiten visualizar la ejecución de un programa y facilita la
escritura en leguajes de programación.

II. Controladores de flujo

Estas son sentencias (comandos) que controlan el flujo de los datos al interior del programa. En
los lenguajes de programación tipo C++ o Matlab, los programas generados, se ejecutan por el
computador de arriba abajo y de izquierda a derecha y los datos siguen ese mismo recorrido. Los
controladores de flujo permiten que una variable pase por un mismo proceso varias veces, a
traviese uno de varios procesos o se salte un proceso determinado. Los más comunes son:

For: repetición de una operación según un número de veces indicado en el código.


While: repetición de una operación mientras se cumpla una condición indicada en el código.
If: Selección de una opción si se cumple una condición indicada en el código.

En la figura 1 a se muestra un diagrama de flujo de datos para el lazo for, en la figura 1 b se


muestra un diagrama para el lazo while y en la figura 1 c se muestra un diagrama para el lazo if.

a b c
Figura 1. Diagramas de flujo de los controles de flujo más comunes

El lazo for y el lazo while son muy similares, la diferencia principal radica en que el primero se
enfoca en el índice de la operación, o el número de veces que se especifica se ejecute el
programa. El segundo en cambio se repite hasta que se alcance un resultado deseado. El lazo if
compara una condición con el resultado y determina que los datos sigan una u otra opción.

III. Matlab
Matlab es un programa que aprovecha el uso de matrices y vectores. Su nombre resulta de la
fusión de las palabras inglesas MATRIX-LABORATORY. Sus funciones y comandos están diseñado
para aprovechar al máximo la generalidad de las operaciones con estas entidades.

3.1. Zonas de trabajo en la ventana de Matlab

En la figura 2 se muestran las zonas de trabajo de la ventana de Matlab. A continuación se


describen brevemente cada una de ellas.

a. Zona de herramientas:

Se encuentran las funciones típicas de cualquier programa:


- Abrir archivos
- Guardar archivos
Además hay funciones propias de matlab:
- Crear nuevo script
- Importar datos
- Salvar zona de trabajo
- Nueva variable

Figura 2. Captura de pantalla de ventana de trabajo Matlab

Nuevo Script (New script): Un script es una lista de comandos que se ejecuta de arriba hacia
abajo y de derecha a izquierda. Es decir, es el programa o código que se desarrolla y se ejecuta
para resolver un problema. El botón nuevo script, abre una ventana en donde se escribe el
código. También activa los botones para correr el programa, depurar el programa (debug) y
correr por pasos un programa.

b. Zona de carpeta actual o de archivos:

En esta zona se muestran los archivos .m (la extensión de los scripts creados en matlab). Para
que se pueda correr un programa, el archivo de dicho programa debe estar visible en esta zona.
Para correr programas guardados en otras direcciones de la PC, hay que cambiar la dirección
mostrada en carpeta actual (current folder) a aquella donde está el programa que se desea
ejecutar. Para que una archivo corra sin ningún problema, debe ser nombrado sin espacios y sin
el uso de tildes o diéresis.

c. Zona de trabajo:

En la zona de trabajo están visibles todas las variables (escales, vectores o matrices) que se
crean durante el uso de la ventana dinámica o durante la ejecución de un script. Al hacer clic
sobre una de estas variables, una nueva ventana se superpone a la ventana de scripts y se
puede ver el valor, o valores (numéricos o literales) guardados.

d. Ventana dinámica:

En esta ventana se ejecutan los comando en tiempo real – es decir de forma inmediata luego de
presionar enter. Por ejemplo, si se escribe la línea:

2 + 3 (enter)

Inmediatamente aparecerá la siguiente línea:

ans:

Si la misma línea se escribe en la venta de script, habrá que guardar primero el archivo con
extensión .m y luego presionar el botón “ejecutar” (similar al botón play de los reproductores
de vídeo)

La ventana dinámica funciona como una calculadora. Se pueden escribir los comandos y estos
se ejecutarán al presionar enter.
3.2. Vectores, matrices y almacenamiento de variables

a. Vectores y matrices

Los vectores y las matrices son arreglos de números. Los vectores son arreglos que tienen una
sola columna o una sola fila. Para crear vectores en matlab hay que escribir los números entre
corchetes. Si entre cada número hay un punto y como de separación, se crea un vector
columna. Si entre cada número hay solo un espacio o comas, se crea un vector fila. Por
ejemplo, considérese el vector [1 3 5 7 9]. Ejemplos de creación de un vector columna y de un
vector fila se muestran en la figura 3.

Figura 3. Ejemplo de creación de vectores

Se puede crear un vector de elementos consecutivos si se escribe el valor inicial del vector y el
valor final del mismo separado por dos puntos. Un ejemplo se muestra en la figura 4.

Figura 4. Ejemplo de creación de vectores con elementos consecutivos

Si se escribe el número inicial y final sin ningún valor intermedio, los valores aumentan de uno
en uno. Se puede especificar el valor del incremento entre los valores iniciales y finales, por
ejemplo, como se muestra en la figura 5.
Figura 5. Ejemplo de creación de vectores con elementos consecutivos y especificación del incremento

Las matrices son arreglos que tiene varias columnas y varias filas. Para crear una matriz, los
números deben ser escritos entre corchetes y las filas deben separarse entre comas.
Considérese por ejemplo la siguiente matriz:
1 3
(5 7)
9 0
En la figura 6 se muestra un ejemplo de creación de una matriz.

Figura 6. Ejemplo de creación de matrices

b. Almacenamiento de variables

Tanto escalares como matrices pueden almacenarse en variables. Para hacer esto hay que
asignar un nombre seguido del igual y al final de la línea el escalar o la matriz. Por ejemplo
podemos almacenar el número 5 en la variable A y la última matriz creada en la variable B,
como se muestra en la figura 7.
Figura 7. Ejemplo de almacenamiento de variables

c. Operaciones y Comandos básicos

Operaciones aritméticas: Estas son operaciones comunes. En este sentido matlab funciona
como una calculadora que realiza las cuatro operaciones básicas aritméticas: suma, resta,
multiplicación y división. Estas pueden hacerse entre números reales, imaginarios y complejos.
La variable compleja (i) es una variable reservada del sistema, lo que quiere decir que i tiene un
valor preasignado de 𝑖 = √−1. A pesar de esto, i puede ser utilizado como variable en los
scripts de matlab. Esto no ocurre con otras variables reservadas del sistema. En la figura 8 se
muestra que ocurre cuando no se define ninguna variable con el nombre i en Matlab. En la
figura 9 se muestra que ocurre cuando se almacena una variable en la letra i.

Figura 8. Demostración de la variable reservada i (variable compleja)


Figura 9. Ejempleficación de uso de variable reservada para almacenar otro valor

A continuación, en la tabla 2, se muestran los símbolos usados por matlab para realizar las
operaciones básicas:

Tabla 2. Lista de operaciones aritméticas en Matlab

Operación Símbolo
Suma +
Resta -
Multiplicación *
División /

La suma y resta puede hacerse entre escalares y vectores o matrices del mismo tamaño. En
cuanto a la multiplicación, con el símbolo presentado en la tabla 1, se pueden hacer las
siguientes variaciones:

- Multiplicación escalar: entre dos escalares (reales o complejos)


- Multiplicación de un escalar por una matriz(entre un escalar y un vector o matriz)
- Producto punto (entre dos vectores o matrices del mismo tamaño)

La división solo puede hacerse entre escalares (reales o complejos). No hay división entre
matrices o vectores.

Otras operaciones aritméticas: En la tabla 3 se presenta el símbolo usado por matlab para la
potenciación.

Tabla 3. Operación de potenciación

Operación Símbolo
Potenciación ^
d. Multiplicación y potenciación entre cada elemento de una matriz o vector

En algunas ocasiones es necesario multiplicar cada uno de los elementos de una matriz o vector
por su contra parte en otra matriz o vector. No hay ninguna operación en algebra lineal definida
de manera que me permita hacer esta operación. Matlab permite hacer esto cuando antes del
símbolo de multiplicación o de potenciación se escribe un punto, como se muestra en la tabla 4.

Tabla 4. Operaciones punto a punto entre vectores o matrices

Operación Símbolo
Multiplicación elemento a elemento .*
Potenciación elemento a elemento .^

3.3. Funciones

Las funciones (o comandos) son expresiones que requieren de un argumento para ejecutarse.
Existen bastantes funciones definidas en matlab. Las funciones pueden tomar como argumento
un escalar, un vector o una matriz. A continuación, en la tabla 5, se presentan las funciones más
comunes.

Tabla 5. Lista de fucniones más importantes en Matlab

Función Sintaxis Observaciones


Raíz cuadrada sqrt(A) A puede ser un escalar, un
vector o una matriz
Seno sin(A) A puede ser un escalar, un
vector o una matriz
Coseno cos(A)
Tangente tan(A)
Logaritmo natural log(A) No se escribe ln, y representa el
logaritmo en base e
Logaritmo en base 10 log10(A)
e elevado a una potencia A exp(A)
Inverso de una matriz inv(A)
Borrar variables clear(A)
Longitud de un vecto o número length(A)
de columnas de una matriz

3.4. Indexación

Cuando el nombre de una matriz o de un vector está seguido de un paréntesis sin ningún
operador aritmético (tabla 2), se le está indicado a matlab que tome el valor correspondiente a
la posición indicada en el paréntesis.

Por ejemplo considérese el vector A=[1 4 -6]. Al escribir en la ventana de comandos A(2) el
resultado será el número 4 debido a que la posición 2 en el vector A está ocupada por ese
número. Otro ejemplo, la matriz A=[1 4 9;0 16 pi;9 0 9], al escribir en la ventana de comandos
A(1,2) el resultado es el número 4, puesto que en la fila 1, columna 2 se encuentra almacenado
este número. Un ejemplo de este procedimiento se muestra en la figura 10.

Figura 10. Ejemplo de indexación de matrices

La expresión general A(i,j) indica cualquier posición en la fila i con la columna j.

Algunas operaciones de indexación:

a. Selección de toda una fila: Para seleccionar toda la fila de una matriz, se debe indicar el
número de fila y escribir el símbolo dos puntos (:) en la columna, como se muestra en la
figura 11.

Figura 11. Ejemplo de selección de valores en el interior de la matriz con indexación


b. Selección de toda una columna: para seleccionar toda la columna, se debe escribir el
símbolo dos puntos (:) en la fila y especificar el número de la columna, como se muestra
en la figura 12.

Figura 12. Ejemplo de selección de valores en el interior de la matriz con indexación

c. Seleccionar ciertos elementos consecutivos de una fila o una columna: Supóngase la


matriz

1 8 0 17 3
9 0 17 15 0
0 0 17 21 4
𝐴=
18 30 29 0 1
9 9 45 32 1
(3 9 26 5 0)

Si se desea tomar los elementos (9 0 18 9) que se encuentran en la primera columna,


hay que indicar el número de elementos en la fila y señalar la columna de la siguiente
manera: A(2:5,1), que se lee como, los elementos desde la posición 2 hasta la posición 5
en la columna 1. El resultado se muestra en la figura 13.
Figura 13. Ejemplo de selección de valores en el interior de la matriz con indexación

d. Seleccionar el último elemento de una fila o de una columna: Para seleccionar el último
elemento de una fila, se debe escribir la palabra “end” en el índice de las columnas. Lo
mismo se hace para las filas. En la matriz anterior por ejemplo, para seleccionar el
número 3 de la fila 1 se debe escribir A(1,end).

3.5. Gráficos en dos dimensiones

La función para graficar en dos dimensiones es plot. En su sintaxis se debe indicar el vector de
valores x y el vector de valor y.

Por ejemplo, se graficará la función sin(x) entre los valores x=-pi/2 a x=2*pi, con un incremento
de 0.0785. Para esto se creará un vector con los valores de -pi/2 a 2pi. Luego se creará otro
vector con los valore del sin(x) donde x será el primer conjunto de números creado y finalmente
se usará la función plot para graficar. La secuencia de comandos y la gráfica se muestran en las
figuras 14 y 15.
Figura 14. Ejemplo de lista de comandos para graficar en dos dimensiones

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

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

Figura 15. Ejemplo de gráfico generado en Matlab

Un gráfico en el que no aparecen los nombres de los ejes no significa nada. Es por eso que se
necesita etiquetar los ejes. Las funciones para etiquetar los ejes en matlab son xlabel y ylabel. En
su sintaxis se debe indicar los nombres entre apostrofes. Por ejemplo, si el nombre de x es “x” la
forma de usar la función será xlabel('x'). Para el eje y, cuyo nombre será y, se seguirá la misma
sintaxis, es decir ylabel('y'). El ejemplo se muestra en la figura 16.
1

0.8

0.6

0.4

0.2

y
-0.2

-0.4

-0.6

-0.8

-1
-2 -1 0 1 2 3 4 5 6 7
x

Figura 16. Funciones para definir nombre de los ejes

Para graficar dos o mas curvas a la vez se debe usar la función plot con dos vectores x y dos
vectores y. Es decir cuatro curvas que constituyen los dos conjuntos de pares ordenados a
graficar. La sintaxis es plot(x1,y1,x2,y2). Por ejemplo, al gráfico anterior podemos adicionar la curva
cos(x) para los valores que van de -pi/2 a pi/2 con un incremento de 0.785. A continuación se
muestra la secuencia de comandos en matlab. En el ejemplo también se usa la función legend
que sirve para dar nombre a cada curva. Un ejemplo de este procedimiento se muestra en la
figura 17.

1
sin(x)
cos(x)
0.8

0.6

0.4

0.2

0
y

-0.2

-0.4

-0.6

-0.8

-1
-2 -1 0 1 2 3 4 5 6 7
x

Figura 17. Superposición de dos curvas en un gráfico

3.6. Controladores de flujo para escritura de scripts

Como se había mencionado, un script es la lista de comandos que constituye un código o


programa. La información debe avanzar dentro de este código de forma controlada. Los
controladores de flujo controlan este avanza. Estos especifican el orden, el número de veces y la
condiciones para que se ejecuten las operaciones del código. A continuación se presentan
ejemplos sencillos de los controladores de flujo más usados en Matlab.

a. Sentencia if

Le indica al programa que se ejecuta una operación si la condición se cumple. Como ejemplo se
considera un programa que calcule las raíces cuadradas de números. Para poder ejecutar esta
operación, los números que se ingresen al código deben ser positivos. El script para este ejemplo
se muestra en la figura 18.

Figura 18. Ejemplo de código para uso de la sentencia if

b. Sentencia for

Le indica al programa que ejecute una operación mientras un contador se mueve desde a hasta
b en pasos h. Por ejemplo considérese el programa que genere y almacene datos de la siguiente
serie.
𝑠𝑖+1 = 𝑠𝑖 + ∆𝑠

El valor inicial de la serie es 5 y el valor final de la serie es 100. ∆s tiene un valor de 1. El script
de este programa se muestra en la figura 19.
Figura 19. Ejemplo de uso de la sentencia for

c. Sentencia while

La sentencia while le indica al código que continúe ejecutando una operación mientras una
condición sea verdadera. Es parecida e intercambiable con la sentencia for. Como ejemplo,
considérese un programa que genere y almacene los datos de la siguiente serie.

𝑠𝑖+1 = 𝑠𝑖 + ∆𝑠

El valor inicial de la serie es 5, el valor final es 100 y el valor de ∆s es 1. En este caso la


operación suma debe ejecutarse mientras el valor de s sea menor o igual a 100. El script de este
ejemplo se muestra en la figura 20.
Figura 20. Ejemplo de uso de sentencia while.

También podría gustarte