modulo teorico formacion matlab cap 1 a 5

49
UPS IMA Carrera de Ingeniería Mecánica Automotriz José Bermeo Vallejo 2012 Cuenca – Ecuador MatLab – Fundamentos y Aplicaciones en Ingeniería

Upload: enrique-bq

Post on 10-Dec-2015

24 views

Category:

Documents


0 download

DESCRIPTION

Comandos elementales para aplicaciones en cálculo y aplicaciones en Ingeniería

TRANSCRIPT

Page 1: Modulo Teorico Formacion MatLab Cap 1 a 5

1

UPS IMA

Carrera de Ingeniería Mecánica

Automotriz

José Bermeo Vallejo

2012

Cuenca – Ecuador

MatLab – Fundamentos y Aplicaciones en Ingeniería

Page 2: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

I

Introducción

Matlab es una herramienta de gran potencial de aplicaciones generales que realiza cálculos en base a matrices y es de aquí su nombre (Matrix Laboratory). Dentro de su programación se encuentran comandos que permiten resolver de manera rápida y directa ecuaciones, que dispondremos según aplicaciones de ciencias específicas.

La utilidad de MatLab comprende cualquier campo que involucre la matemática, y al ser toda la naturaleza quien la domine, podemos hacer uso de este mediante cualquiera de sus ramas el software, ya sea para explicar, calcular, indagar y hasta pronosticar cualquier fenómeno que se pueda presentar, utilizando matemáticas, con resultados precisos en función de los modelos y ecuaciones que dispongamos.

De esta manera tenemos claro el alcance del programa, dependiendo del campo en el requerimos trabajar, y si se debe trabajar con ecuaciones complicadas y gran cantidad de datos, sabremos disponer de los software para optimizar nuestro tiempo e incluso mejorar nuestras presentaciones.

El campo de la ingeniería, sería un lugar ideal por su sinfín de aplicaciones matemáticas, en consecuencia el uso de MatLab por parte del ingeniero es substancial, pues este le permite obtener resultados de forma casi inmediata, sin importar las veces que necesite variar los datos de entrada, pues estos se ejecutarán siempre con una lógica que el mismo ingeniero ha escrito, y la mayor parte del tiempo se podrá dedicar a la interpretación de los resultados hasta obtener una aceptable o muy buena conclusión de su proyecto.

En el presente documento, se aborda el manejo de MatLab y se trabajará enfáticamente en aplicaciones de ingeniería. Los pocos comandos que se tomarán tienen amplia aplicación en ingeniería, por supuesto dependerá en lo posterior del refuerzo y uso específico de la herramienta, y será el mismo ingeniero que de acuerdo a sus necesidades quien desarrolle sus propios útiles que le permitirán realizar de mejor manera sus trabajos.

José Bermeo Vallejo

Page 3: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

II

Acerca de este manual

Contiene información de comandos y procesos que se ha compilado de varias experiencias de manejo del software. No pretende ser la última palabra en programación del software pero sí un soporte para el ya ingeniero o aspirante a serlo o el aficionado que desee explorar MatLab.

Se asume que el lector tiene algún conocimiento de manejo de computadores y software en Windows, no precisamente de matemáticas.

No existe prerrequisito mayor, pero se aconseja conocer el cálculo, algebra y matemáticas en general, pues el manual se desarrolla con ejemplos de ingeniería, sin embargo cada usuario de este manual encontrará pautas que podrá aplicar en campos específicos.

Se anima al lector y futuro programador de MatLab a finalizar el documento y reforzar sus conocimientos, al final del libro se recomendará alguna bibliografía de las aplicaciones que se tiene en el manual.

Nota: El uso de MatLab no resulta complicado ni imposible de manejar, contrario al pensamiento común, programar en este programa y generar resultados de manera inmediata es bastante reconfortante, lo difícil es llegar a obtener todo el conocimiento científico para utilizarlo en nuestra área de interés.

Si uno avanza confiadamente en la dirección de sus sueños y deseos para llevar la vida que ha imaginado, se encontrará con un éxito inesperado.

–Henry David Thoreau

Page 4: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

1

Capítulo I. Entorno de MatLab

La ventana de MatLab, según se observa en la figura 1.1, dispone básicamente de 3 sub ventanas que son: Command Window, Workspace y Command Hystori, y su función se desribe:

- Command Window. En esta sub ventana se ingresan todos los datos y comandos que se ejecutarán de manera directa, en esta ventana podemos realizar una simple suma o resolver una ecuación diferencial.

- Workspace: En esta sub ventana podremos estar informados de todas las variables simbólicas o numéricas creadas, así como también de los vectores o arreglos que hayamos generado, ya sean en la misma Comman Window o al ejecutar un archivo m-file. Esta ventana permitirá consultar los datos del valor de las variables o su edición, esta última se podrá realizar en una sub ventana adicional de edición de variables denominada Variable Editor que veremos más adelante.

- Command Hystori. Almacena todos los comandos o datos ingresados, con el encabezado que estará compuesto de la fecha y la hora que hayamos abierto el programa.

- Varible editor. De acuerdo a su nombre en inglés, esta es la sub ventana de edición de variables (figura 1.3), y esta de la ventana que hablamos anteriormente. Se puede ejecutar directamente desde el Workspace seleccionando la variable que deseamos editar y haciendo clic en el botón Open selección que se muestra en la figura 1.2. De igual manera que otros programas tenemos también barras de herramientas en la ventana principal. Según se ve en la figura 1.4 tenemos una barra de herramientas estándar - con funciones similares a otros programas – y la MatLab toolbar que tiene un sector de herramienta estándar de Copiar, pegar, cortar, deshacer y deshacer, pero además posee sectores adicionales propios de MatLab, que deberemos ubicar e identificar. Se indican en la figura 1.4 y su utilidad y aplicación se retomará al tratar cada tema en capítulos posteriores.

Page 5: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

2

Figura 1.1 Ventana de MatLab y sub ventanas básicas de trabajo

Figura 1.2 Botón de apertura de la subventana Variable editor

Según se puede observar en la figura 1.2 se ha seleccionado el arreglo o Matriz ‘A’ y a continuación se presiona el botón Open selection (indicado con la flecha). En la segunda columna de la ventana del workspace, está el valor de cada variable, vemos que es una matriz de 9x10 y es de tipo double (tipo de variable que soporta decimales), nos indica en la tercera y cuarta columna el menor y mayor valor numérico de los elementos de la matriz.

Co

mm

and

Win

dow

Wo

rksp

ace

Com

ma

nd h

istor

y

Page 6: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

3

Figura 1.3 Sub Ventana Variable Editor

En esta ventana podremos variar el valor de todos los elementos de la matriz si así lo requiriéramos, se han seleccionado algunas celdas para mostrar su edición y su tratamiento será muy similar a las hojas de cálculo de Excel. Podemos también comprobar que es una matriz de 9 filas por 10 columnas, y podemos continuar incrementando elementos en la misma.

Figura 1.4 Barras de herramientas de MatLab y botones de acceso a funciones complementarias

Como se comento anteriormente, los tres botones que se muestran en la figura 1.4 muestran el acceso al m-file, a Simulink y al GUI, no se entrará en detalle en este capítulo y se tratará de estas aplicaciones en capítulos posteriores, pero se las deberá tener en cuenta al momento de trabajar con las mismas.

Inic

iar m

-file

Inic

iar S

imul

ink

Inic

iar G

UID

E

Page 7: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

4

Capítulo 2. Cálculos básicos en MatLab

Normalmente, el principiante en MatLab encuentra solo las ventanas que se mostraron en la figura 1.1 y pierden el interés optando por otros programas de matemáticas. Esto es debido a que no existen botones para realizar directamente una gráfica o símbolos que permitan realizar una integral u otra operación matemática. En este capítulo se indicará como se deben ingresar algunos comandos para realizar fundamentalmente operaciones aritméticas o de cálculo. También se harán operaciones algebraicas como por ejemplo despejar una variable y evaluar una ecuación al reemplazar variables numéricas por numéricas. Todo lo que se aprenda en los capítulos será acumulativo y en las siguientes secciones se escribirán códigos que involucren estos y otros comandos con objetivos específicos.

2.1 Operaciones aritméticas

La aritmética es la rama de las matemáticas que trata de proceso numérico elemental que son suma, resta multiplicación y división.

Realizar operaciones aritméticas en MatLab es muy sencillo, si estamos familiarizados con una calculadora básica, observaremos que se mantiene el proceso.

En la tabla 2.1 se muestran los operadores con los que MatLab interpretará la operación que deseemos realizar.

Operador Operación Método de ingreso + Suma >> 5 + 4 (enter) - Resta >> 6 - 5 (enter) * Multiplicación >> 2 * 3 (enter) / División >> 16 / 4 (enter)

sqrt(x) Raíz cuadrada del valor de x >> sqrt (16) (enter) x^y Potencia del número x a y >> 5^2(enter)

El símbolo ‘>>’ se conoce como promt e indica que MatLab está listo para que el usuario pueda ingresar datos. En la figura 2.1 podemos ver la realización de una potenciación y una raíz cuadrada como primera y segunda operación respectivamente. Vemos también que luego de dar enter, aparece ‘ans’ e inmediatamente la respuesta, esto se debe a que MatLab crea automáticamente una variable con el nombre ‘ans’ que almacenará el resultado, esto lo podemos confirmar observando la ventana Workspace con la variable creada y su valor. Como valor, luego de realizar la operación de raíz cuadrada tenemos 15, este valor cambiará mientras continuemos realizando operaciones sin asignar el resultado a una variable creada por el usuario. En la última operación de una raíz cuadrada sin concluir se activó

Page 8: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

5

automáticamente un cuadro que indica como es el correcto ingreso del comando, esta ayuda está disponible en versiones actuales de MatLab.

Figura 2.1 Operaciones aritméticas básicas

Una pregunta que se tiene inmediatamente es cómo realizar raíces de mayor grado, si recordamos que la raíz es la operación inversa de la potencia, entonces tendremos que realizarlo de la siguiente manera:

>> (81)^(1/4)

ans =

3

que es la raíz cuarta de 81, probemos ahora extrayendo la raíz cuadrada de cualquier número con el método recién aprendido, y el resultado será el mismo que utilizar “sqrt”.

Page 9: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

6

1.2 Funciones trascendentes

Para operar de MatLab con funciones trascendentes, se debe indicar con la digitación respectiva de cada una. A continuación se presenta la manera de efectuarlo.

En la figura 2.2, se puede observar la ayuda sobre el ingreso de estas funciones. Esta ayuda de MatLab es muy útil si se conoce el comando pero no se recuerda el método de ingreso, se digita “help” seguida del comando a consultar. En esta ocasión se ha consultado el ingreso de la función logartimo y la función exponencial. En la primera consulta se tiene “>> help log (enter)” y aparece una ayuda indicando que “Log(x)”es el logaritmo natural de la función o valor “x” que en las calculadoras se tiene normalmente como “Ln”, nos indica también que para un logaritmo de base 10 de una función o varialbe “x” se debe ingresar “>> log10(x) (enter)” y si deseamos continuar con los demás logaritmos lo podremos realizar haciendo clic cobre los vínculos en azul.

Figura 1.2 Ayuda de MatLab para funciones trascendentes

En la segunda consulta tenemos la función exponencial, de igual manera nos indica el método de ingreso y la definción del comando. Se debe tener

Page 10: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

7

cuidado de no confundir “>> exp ( x )” con “>> e ( x )”, puesto que el segundo caso la ”e” se utiliza para notación científica, como ejemplo tenemos:

>> 56^12

ans =

9.5117e+020

En ocasiones, vamos a necesitar ingresar un número con notación científica y su ingreso será:

>> 5e-12

ans =

5.0000e-012

1.3 Declaración de variables

Las variables en MatLab pueden ser numéricas o simbólicas, las variables numéricas tendrán un valor numérico que puede cambiar de acuerdo al valor que nosotros le asignemos, sea en una operación o al darle directamente un valor. Las variables simbólicas son muy útiles al trabajar con algebra y con ecuaciones que van a ser despejadas, estas variables podrán ser más tarde reemplazadas con una valor numérico, pero podemos conservar la ecuación original.

Trabajemos en primera instancia con variables numéricas. Recordemos que la variable “ans” era creada por defecto por MatLab, y a esta se le asignaba el valor del resultado de una operación. El objetivo de trabajar con variables numéricas es de que estas, se podrán utilizar tantas veces sean necesarias en operaciones que posteriormente vayamos a necesitar, veamos con un ejemplo sencillo con operaciones aritméticas.

Page 11: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

8

Figura 1.3 Declaración de variables numéricas

Observemos en la figura 1.3 primeramente el workspace, tenemos las variables a, b, c y d, que hemos creado y tenemos también el valor que les hemos asignado en el Command Window, se puede apreciar la manera sencilla de declarar estas variables, esta es “>> b = 3 (enter)”. Por último realizamos una operación aritmética que consiste en una potenciación sumada a una multiplicación, de igual manera podemos utilizar constantes numéricas que es el valor que se utilizó para multiplicar a la variable “b”

Con estos simples ejemplos hemos manipulado un poco de aritmética con variables simbólicas, sería buen momento para continuar con el ingreso de nuevas variables, podemos incluso probar con algunas formulas matemáticas y comprobar su resultado, esto servirá también para familiarizarnos con el correcto ingreso de la información que vayamos a procesar para evitar errores por un paréntesis o una división o no poner un ” * ” en la multiplicación.

Para declarar variables simbólicas existen dos métodos, pero el más sencillo y efectivo es el siguiente

Debemos cerrar los paréntesis que hayamos abierto y utilizar el asterisco para realizar las multiplicaciones

Page 12: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

9

>> syms x y t n

en este ejemplo hemos declarado las variables simbólicas x, y, t y n pero no podemos declarar más incluso formar palabras si necesitamos ser más explícitos en alguna variable. A continuación se presenta algunas variables reservadas de MatLab y que no podremos declarar, de lo contrario generaremos un error de proceso.

Variable Significado pi valor de π i Indicador de número complejo j Indicador de número complejo Inf Infinito NaN Not a Number – comúnmente en indeterminaciones ans Variable creada automáticamente para asignar un valor

numérico de un resultado

Tabla 2.2 Variables simbólicas propias de MatLab, no se recomienda su uso como variables simbólicas

1.4 Matemática simbólica

Hemos visto hasta ahora como realizar cálculos aritméticos y declaración de variables, en esta sección haremos aplicación de los dos anteriores, pero con aplicaciones de cálculo, algebra y ecuaciones para despejar automáticamente una variable. Los comandos que serán necesarios se presentan en la siguiente tabla.

Page 13: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

10

Comando Función que cumple

>> pretty (f) Ordena la ecuación de manera simbólica a forma de escritura matemática

>> simplify (f) Simplificación de la ecuación f reduciéndola a su expresión más corta posible

>> solve (f(x)=b,x) Despeja y resuelve la ecuación f(x) para la variable x

>> eval (f,x) Evalúa la ecuación f con los valores de x y devuelve su resultado

>> subs (f,x,n) Reemplaza en la ecuación f la variable x con el valor de n

>> subs (f,{x,y,..},{n,m,...}) Reemplaza en la ecuación f las variable x,y,… con el los valores de n,m,….

>> limit(f,x,inf) Límite de la función f cuando x tiende al infinito

>> limit(f,x,a) Límite de la función f cuando x tiende a a >> diff(f,x) Derivada de la función f respecto de x >> diff(f,x,n) Derivada n-esima de la función f >> int(f,x) Integral indefinida de f respecto de x

>> int(f,x,-a,a) Integral definida de una función f en el rango de -a hasta a

>> int(int(f,x,-a,a),y,-b,b) Doble integral definida de la función f, primero respecto de x y luego respecto de y

>> dsolve(f(x),x) Resuelve la ecuación diferencial f(x) cuya variable es x

>> dsolve(f(x),c1,c2,..,cn,x) Resuelve la ecuación diferencial f(x) con condiciones iniciales ci

Tabla 2.3 Operadores de uso generalizado

Veamos además las funciones trigonométricas, para luego proceder con algunos ejemplos y que sea el lector quien continúe con más ejercicios.

Page 14: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

11

Función Operación Función Operación >> sin(f) Seno de la función

o variable x >> acos(f) Arco coseno de f

>> cos(f) Coseno de f >> asin(f) Arco seno de f >> tan (f) Tangente de f >> atan(f) Arco tangente de f

>> sind(f) Seno de f y se tomará de grados (degrees)

>> sinh(f) Seno hiperbólico de f

>> cosd(f) Coseno en grados de f

>> cosh(f) Coseno hiperbólico de f

>> tand(f) Tangente en grados de f

>> tanh(f) Tangente hiperbólico de f

>> cot(f) Cotangenere de f >> asinh(f) Arco seno hiperbólico de f

>> sec(f) Secante de f >> acosh(f) Arco coseno hiperbólico de f

>> csc(f) Cosecante de f >>atanh(f) Arco tangente hiperbólico de f

Tabla 2.4 Funciones trigonométricas

A continuación se presentan algunos ejemplos:

>> syms x y t

>> simplify (-3*x*y + 5*x^2 – 2*x*y)

ans =

- 5*x*y + 5*x^2

>> diff (x^2 + sin(x^2) - y,x)

ans =

2*x – 2*x*cos(x^2)

>> int(int ( x + y ,x) ,y)

ans =

x^2/2 + y^2/2

Se proponen algunos ejercicios para que puedan ser resueltos en MatLab, sin embargo queda a libertad del usuario realizar los ejercicios que creyera conveniente a fin de adquirir más destreza.

Page 15: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

12

Límites Derivadas Integrales

lim→

−3 + 2푛−7 + 3푛

푦 =sin(푥)√푥 − 5

cos(푥)

2 sin(푥) + 1

lim→

−푥 + √2 + 푥−3 + √1 + 4푥

푠 =ln(푥 )cos(푥)

cos(푥 + 3푦)푑푥푑푦

Es prueba bastante evidente de la optimización de tiempo que se logra, por mucha habilidad y conocimiento matemático que poseamos, no podemos comparar el tiempo ahorrado por el software.

Page 16: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

13

Capitulo 3. Operaciones con vectores y matrices.

De acuerdo a lo descrito en la introducción, MatLab ejecuta sus operaciones con matrices, esto nos lleva a dedicar un capítulo completo a trabajar con matrices y vectores, pues son de mucha utilidad cuando se maneja cantidad importante de información numérica.

En el presente capítulo aprenderemos a ingresar matrices y operar con ellas, en función de los procesos que necesitemos, nos daremos cuenta de su importancia.

3.1 Ingreso de una Matriz o un vector.

Primero definamos lo que es una matriz, es el conjunto de elementos ordenado en filas y columnas, también se les conoce como arreglos o arrays, y un vector puede ser una sola fila o una sola columna de elementos, si es más de una sería una matriz.

Comentamos al inicio que se asume que el lector posee conocimientos de matemáticas aplicables en ingeniería, por lo tanto no se profundizará demasiado en su definición y pasos de resolución, mas se harán operaciones con las mismas.

Es recomendable asignar el arreglo a una variable numérica, esto es para luego poderla utilizar en cualquier momento. Básicamente la matriz se describe:

M(n,m)

Siendo M el nombre de la matriz, n el número de filas y m el número de columnas, de hecho cuando tengamos ya una matriz definida, podemos referirnos a un elemento de la fila y columna específicos, indicando esta posición con los valores dentro de los paréntesis.

En el siguiente ejemplo se va a ingresar una matrix M de 3x3, y seguida de esta se hará su explicación de función de caracteres.

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

M =

1 3 4 2 7 -8 4 0 -3

Page 17: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

14

En este ejemplo se ha ingresado una matriz, a continuación se describirá el método. La matriz o arreglo va entre corchetes, para separa los elementos se puede dar un espacio (de la barra espaciadora) o utilizar la coma “ , ”, siendo el primero más conveniente, se ingresan las filas en el orden de izquierda a derecha y para indicar que se va a iniciar una nueva fila utilizamos el punto y coma ” ; ”, al finalizar toda la matriz se cierran los corchetes.

Con todas las instrucciones anteriores, para ingresar un vector columna se lo haría:

>> N = [8; -1; 3]

N =

8 -1 4

y un vector fila

>> P = [0 2 0]

P =

0 2 0

Ahora si necesitamos consultar el valor de un determinado elemento podemos hacerlo de esta manera

>> M(2,3)

ans =

-8

Es decir, necesito el valor de la fila 2 y la columna 3, si revisamos la matriz M ingresada, podemos constatar que efectivamente es el valor que nos ha devuelto. En ocasiones necesitaremos varios valores a la vez, posiblemente para asignarlo a un nuevo arreglo, y podemos realizarlo con los dos puntos “ : ”

Sin importar el número de filas que ingresemos, debemos ingresar el mismo número de columnas en todas las filas que ingresemos, de lo contrario

MatLab no reconocerá el arreglo

Page 18: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

15

y MatLab interpretará que son todos los valores ya sea de la columna o fila, por ejemplo

>> Q = M(:,2) ans =

3 7 0

>> R = M(2,:) ans =

2 7 -8

Para el primer caso, toma todos los elementos de la columna 2 de la matriz M y los asigna a Q, y para el segundo caso, toma todos los elementos de la fila 2 de la matriz M y los asigna a R.

3.2 Operaciones aritméticas con matrices

Las operaciones que se pueden realizar con matrices, son de igual manera la suma, resta, multiplicación y división, pero estas dos últimas, por lo general se las realiza de punto a punto como se conoce en MatLab, pero de manera común sería elemento a elemento, habrán algunos casos en los que necesitemos proceder de esa manera, y veremos un ejemplo más adelante. Sin embargo al operar la matriz con un escalar sea multiplicando o sumando etc., se mantendrá el principio

Revisemos los siguientes ejemplos

>> N = [0 -1 4; 2 -2 0; 3 0 -3]

N =

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

Page 19: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

16

>> P = M+N

P=

1 2 8 4 5 -8 7 0 -6

>> Q = P*2

Q =

2 4 16 8 10 -16 14 0 -12

Para multiplicación punto a punto el ingreso es “ .* ” y la división “ ./ “, respecto de la forma normal se antepone el punto antes del operador, para la potencia y radical tiene la misma nomenclatura “ .^ “, y lo que vaya luego del operador definirá una de las dos.

>> A = Q ./ N

A =

inf -4 4 4 -5 Inf

4.66667 NaN 4

>> B = M * N

B =

18 -7 -8 -10 -16 32 -9 -4 25

>> C = M .* N

C =

0 -3 16 4 -14 0

12 0 9

Con estos ejemplos verificamos la diferencia entre un proceso y otro, cada una tiene su aplicación específica, se recomienda tener presente la operación punto a punto.

Page 20: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

17

3.2 Operaciones matriciales

Vamos a trabajar un poco más con el ordenamiento de las matrices y en realidad existen comandos propios para reordenarlas, sin embargo si no lo tenemos a mano o recordamos su declaración nos dificultará el trabajo, por lo que se recomienda el siguiente proceso.

Si queremos formar una nueva matriz con matrices existentes, podemos ordenarlas de forma vertical u horizontal, dependerá de la forma en que ingresemos la variable de las matrices, es decir si las separamos con un espacio las dos matrices se alinearán de forma horizontal, pero si las separamos por punto y coma, se alinearán de forma vertical. Esto es:

>> D = [B C]

D =

18 -7 -8 0 -3 16 -10 -16 32 4 -14 0 -9 -4 25 12 0 9

>> E = [B; C]

E =

18 -7 -8 -10 -16 32 -9 -4 25 0 -3 16 4 -14 0

12 0 9

Los comandos directos para realizarlo son: “ horzcat “ y “ vertcat “, y como se ha demostrado tendrán la misma utilidad.

Esta reubicación de matrices también es válida si deseamos cambiar valores de un elemento, una fila o una columna de una matriz que tengamos declarada, por ejemplo si deseamos cambiar toda la columna de la matriz E por nuevos valores, el procedimiento sería

>> E(:,2) = [ 0; 0; 0; 0; 0; 1]

E =

18 0 -8 -10 0 32 -9 0 25

Page 21: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

18

0 0 16 4 0 0

12 1 9

Debemos tomar en cuenta que como son elementos de columna, cada valor que ingresemos debe estar seguido del “ ; “.

Por último, la traspuesta de una matriz es el intercambio de filas por columnas, para realizarlo en MatLab uncamente deberemos escribir la comilla simple “ ‘ “ luego de la matriz, sea esta con una varialbe o el primer ingreso,, ejemplo.

>> H = M’

H =

1 2 4 3 7 0 4 -8 -3

Otra operación importante es el determinante de la matriz, que existe igualmente un comando directo “ det (x) “ y MatLab calculará el determinante de la matriz x, por ejemplo.

>> F = det (M)

F =

- 211

Si pudiéramos calcular manualmente la determinante de la matriz a través de la regla de la regla de Sarrus u otro método el resultado obtenido sería el arriba calculado con la varialbe F.

Para sumar internamente los elementos de una matriz, podemos utilizar el comando “sum“, y realizará la suma en columnas de sus elementos, pero si es un vector ya sea fila o columna, sumará todos sus elementos.

>> sum (M)

ans =

7 10 -7

Page 22: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

19

>> T = [3 5 -8]

T =

3 5 -8

>> sum(T)

ans =

0

3.4 Resolución de ecuaciones con matrices

Este tema resulta es de mucha utilidad al momento de resolver matrices de n variables, u obtener las raíces de ecuaciones polinómicas de orden n, ahora que sabemos cómo ingresar matrices o vectores, el siguiente paso es aprovecharlo para algo útil y esto se logra con la resolución de lo antes mencionado y además es necesario para graficar ya sea funciones o vectores. Veamos como se lo realiza.

Ecuaciones simultáneas

Observemos las siguientes ecuaciones simultáneas

2x+ 5y+ 4z -2t = -3 -x + 2z + t = 7 x+ y+ -3z = 2 -3x +2y -5z +2t= 0

Tenemos cuatro variables con cuatro incógnitas, muy fácil de resolver en MatLab. En primera debemos ingresar una matriz con todos los coeficientes de las variables, en caso de no existir alguna, se la completará con un ceros a fin de que la matriz sea cuadrada, y el segundo paso es ingresar los términos independientes en un vector columna.

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

A =

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

Page 23: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

20

Es de notar los ceros en los lugares que no existe la variable, con esto completamos todo los términos de la matriz. Ac ontinuación los términos independientes

>> B = [-3; 7; 2; 0;]

B =

-3 7 2 0

Para resolver una ecuación simultanea utilizamos el operador back slash “\” y obtendremos el resultado de manera directa.

>> C = A\B

C =

4.8929 0.4286 1.1071 9.6786

Que es el resultado de los coeficientes x, y, z y t respectivamente. Con esto tenemos nuestra primera utilidad de las matrices en MatLab

En MatLab podemos formatear la forma en que nos van a aparecer los resultados, por ejemplo el formato por defecto es el formato short que presenta cuatro decimales, como se presentan los resultados de las variables de las ecuaciones recién resueltas, pero si utilizamos el formato rat, racionalizará los resultados y ocurrirá lo siguiente:

>> format rat

>> C

C =

137/28 3/7

31/28 271/28

Page 24: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

21

Existen otros formatos de resultados, estos los podremos consultar en la ayuda.

>> help format

Nota: el formato que escojamos se seteará para los siguientes resultados que obtengamos.

Ecuaciones polinómicas

Si tenemos la siguiente ecuación

4푥 + 푥 − 2푥 − 푥 + 7

Para resolverla se debe ingresar los coeficientes como un vector fila. Se debe tomar en cuenta la ausencia de 푥 , tendremos que darle un coeficiente de cero, de lo contrario MatLab tomará únicamente como una ecuación de 4to grado.

>> A = [4 1 0 -2 -1 7] A =

4 1 0 -2 -1 7 >> roots (A)

-1.1246 -0.4393 + 1.1224i -0.4393 - 1.1224i 0.8766 + 0.5501i 0.8766 - 0.5501i

Con el comando roots se extraen las raíces de la ecuación, en este caso son cinco valores de x.

3.5 Fracciones parciales

Las expresiones racionales pueden tener en el denominador y el denominador expresiones algebraicas, un método de simplificarlas para trabajar es expresándola en fracciones parciales. No se entrará en más detalle

Page 25: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

22

y se ejemplificará la manera de obtener fracciones parciales y su operación inversa, es decir volverla a expresión algebraica racional.

SI tenemos la siguiente función

3푥 + 6푥 + 3푥 + 6푥 + 6푥 + 11푥 + 6

Para pasarla a fracciones parciales, procedemos de la siguiente manera, debemos ingresar como vector fila tanto al numerador como el denominador, en el mismo orden de las funciones polinómicas, finalmente con el comando residue nos dará los resultados de los coeficientes del numerador, términos del denominador y valores directos. Esto se expresa en el siguiente ejemplo

>> b = [3 6 3 6]

b =

3 6 3 6

>> a = [1 6 11 6]

a =

1 6 11 6

>> [r, p, k]=residue(b,a)

r =

-15.0000 -0.0000 3.0000

p =

-3.0000 -2.0000 -1.0000

k =

3

Page 26: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

23

Si una fracción parcial está definida por

푟푥 − 푝

+푟

푥 − 푝+ ⋯+

푟푥 − 푝

+ 푘 + 푘 + … + 푘

Las fracciones parciales de la función racional propuesta serían

−15푥 + 3

+3

푥 + 1+ 3

El numerador del segundo término es muy próximo a cero, por lo que lo omite en la expresión. El proceso inverso sería, teniendo una fracción parcial pasarla a función racional, y se procede de la siguiente manera

>> r = [1 4 -8]

r =

1 4 8

>> p = [3 5 7]

p =

3 5 7

>> k = 3

k =

3

>> [num,den] = residue (r,p,k)

num =

3 -48 225 -316

den =

1 -15 71 -105

Page 27: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

24

En el caso de que se quiera ver ordenado como función de transferencia (su definición se verá más adelante), se utiliza el comando

>> G = tf (num,den)

3 s^3 – 48 s^2 + 225 s - 316 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

s^3 -15 s^2 + 71 s - 105

Page 28: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

25

Capítulo 4. Graficas

A diferencia de otros programas de matemáticas, MatLab no grafica funciones directamente, sino es necesario indicar el intervalo que se desean graficar y luego indicar la función.

El rango a graficar se lo hace a través de vectores para el caso de gráficos en el plano, y para graficas en el espacio se debe trabajar con arreglos numéricos. Existen diversos típos de gráficas y se podría extender mucho en este documento para tratar de indicar todas las funciones. Sin embargo se mostrará las más demostrativas tanto en el plano como en el espacio. Además se hará algunas recomendaciones para tener una mejor presentación tanto explicativa como estética y el aspecto no sea tan sólido.

4.1 Graficas en el plano

Para asignar el rango de valores en que vamos a graficar de manera rápida y uniforme, y como se sabe que debe der un vector, se lo puede realizar de la siguiente manera

>> x = -a:p:a

Se asigna al vector x, un rango de valores desde –a hasta a con un paso p. El paso, de manera general nos definirá la suavidad de la malla, es decir mientras más pequeño sea el paso la gráfica será más fina. Así por ejemplo si queremos graficar la función sin(x) tendremos.

>> x = 0:2*pi;

Asignamos al vector x los intervalos desde 0 hasta 2π pero no le damos un paso, en este caso se interpreta como el paso de una unidad. Notaremos también que al final de la expresión se ha digitado punto y coma ” ; “ que para este caso indicará que no se desean observar los valores que se han generado.

La variable que se declare con el vector, deberá ser siempre de tipo numérico, no se pueden graficar variables simbólicas.

Page 29: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

26

>> y = sin(x);

Se indica la función a graficar, debemos utilizar siempre una variable para la función, dado que el comando para graficar utiliza dos variables para graficas en el plano.

>> grid on

>> plot(x,y)

Figura 4.1 Gráfica de la función Seno, en el intervalo desde 0 hasta 2pi, con paso de 1

Aparentemente la gráfica es del Seno, pero por su paso muy elevado, resultan rectas, esto se debe a que se evalúa la función solo con los valores del vector asignado.

Se han utilizado dos comandos específicos para graficar, el primero es “grid” seguido de “on” que activa las rejillas que se pueden apreciar en la gráfica, y el comando “plot (x,y)” que manda a graficar la función “y” con los valores del vector “x”.

Si variamos el paso a un valor más reducido tendremos

Page 30: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

27

>> x = 0:0.01:2*pi;

>> y = sin(x);

>> grid on

>> plot(x,y)

Figura 4.2 Gráfica de la función Seno, en el intervalo de 0 a 2pi y un paso de 0.01

El resultado evidentemente es mejor, tiene la forma de la función Seno y no como en la figura 4.1 que solo se observa líneas rectas. Cuando se varíen los valores del vector, es necesario actualizar los valores de la función, por lo tanto se la volverá a escribir.

A continuación, se presenta una tabla con los comandos para graficar, en este documento no se hará uso de todos ellos, sin embargo el usuario podrá experimentar con todos e incluso consultar por más comandos.

Cuando se tienen datos ingresados y se requiere variarlos, se puede presionar la flecha hacia arriba de las teclas del cursor y

aparecerán los datos ingresados previamente

Page 31: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

28

Comando Función >> plot(x,y) Grafica la función y con valores de x

>> bar(x,y) Grafica la función y con valores de x en forma de barras

>> polar(r,t) Grafica en coordenadas polares la función t con valores de r

>> fplot(‘f’,[-a,a] Grafica la función ‘ f ’ en el intervalo [-a,a]. f debe ser tipo ‘string’

>> ezplot(‘f’,[-a,a] Grafica la función ‘ f ’ en el intervalo [-a,a] y le asigna de título la función. La función debe ser tipo ‘string’

>> stem(x,y) Grafica una función de manera discreta, representando los valores de x

>> loglog(x,y) Grafica la función y los valores de x en escala logarítmica

>> semilogx(x,y) Grafica con escala logarítmica en x y normal en y

>> semilogy(x,y) Grafica con escala logarítmica en y y normal en x

Tabla 4.1 Comandos comúnmente utilizados para graficar en el plano.

Los comandos “fplot” y “ezplot” indican que la función ‘f’debe estar en formato string, este es una variable tipo texto, y podemos utilizarla de igual manera que los demás, la única diferencia es que la función se deberá declarar dentro de las comillas, tal como se indica en el formato, manteniendo la nomenclatura en lo que respecta a la ubicación correcta de los operadores (*, /, ./, .*, .^).

>> x = -2*pi:0.5:2*pi;

>> y = sin(x)

>> bar(x,y)

Page 32: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

29

Figura 4.3 Gráfica del Seno, con el comando “bar (x,y)”

Usando ezplot

>> y = ‘tan(sin(x^2))’;

>> ezplot(y,[-2*pi,2*pi]

>> xlabel(‘x’);ylabel(‘y’);grid

Figura 4.4 Gráfica de tan(sin(x^2)) usando “ ezplot ”, se define el rango de la gráfica pero el mismo programa define el paso.

Se ha declarado la función “y” previamente entre comillas para indicar que está en formato ‘string’. Nótese que el título de la gráfica lo asigna el mismo programa y se adicionado las etiquetas en el eje x e y usando “xlabel” y “ylabel” respectivamente. Dentro de las comillas se puede escribir cualquier texto sin restricción de caracteres y se puede ubicar con cualquier comando para graficar.

Page 33: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

30

Usando el comando “polar(r,t)”

>> r = -pi:0.01:pi;

>> t = sin(3*r).*cos(3*r);

>> polar(r,t, '--r')

Figura 4.5 Gráfica polar de sin(3*r)*cos(3*r)

En esta gráfica nótese el uso del operador “ .* ” para realizar la multiplicación entre las dos funciones trigonométricas, en esta caso la variable x que va variando un término a la vez y se deberá realizar la multiplicación con el valor que tenga la posición idéntica tanto en la variable como la función. Se ha adicionado ‘- - r’ luego de especificar las variables a graficar, con este último le damos el aspecto que tiene la gráfica de la figura 4.5, líneas entrecortadas con los dos guiones “- -“ y “r” que le da el color rojo. Mayor información sobre este último encontramos en “>> help plot”, que se desprende como en la figura 4.6.

Page 34: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

31

Figura 4.6 Ayuda del comando “plot”

De acuerdo a la ayuda que presenta MatLab, enfocando la atención en tres columnas dentro del rectángulo azul de líneas entrecortadas o de trazos, la primera hace referencia al color de la línea y la segunda y tercera columna indica el tipo de marca utilizado para la gráfica.

Por defecto la gráfica siempre se presentará en color azul y la marca será el punto. Si deseamos tener por ejemplo una gráfica formada por líneas de trazos y de color magenta, se debe digitar.

Page 35: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

32

>> x = -2*pi:.05:2*pi;

>> y = atan(sin(x)).*exp(cos(x.^2));

>> plot(x,y,'--m')

>> title('y=atan(sin(x))*exp(cos(x^2))');xlabel('x');ylabel('y')

>> grid

Figura 4.7 Gráfica con línea de trazos y en color magenta “- - m“

En resumen, como regla general se debe utilizar en las operaciones que involucren multiplicación, potencia o sus inversas como operación punto a punto si trabajamos con arreglos.

Page 36: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

33

>> x = -2*pi:0.25:2*pi;

>> y = (x.^3 + 4.*x.^2-4)./(x.^4-x+3);

>> stem(x,y,'r');

>> title('y = (x.^3 + 4.*x.^2-4)./(x.^4-x-3)'); xlabel('x'); ...

... ylabel('y'); grid

Figura 4.8 Grafica de una función racional usando el comando “stem”, se observa la representación discreta de los valores declarados en ‘x’.

4.3 Gráficas en el espacio

La representación de las ecuaciones en el espacio permite observar superficies dentro representando todo el dominio de la función. Los comandos son muy similares a los vistos para las gráficas en el plano, pero ahora la diferencia es que debemos generar dos vectores complementarios para poder efectuar la

Page 37: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

34

representación. En la tabla 4.2 se muestran los comandos que se utilizan para efectuarlo.

Comando Función >> plot3(x,y,z) Representa una curva en el espacio >> mesh(x,y,z) Representa una superficie explícita >> meshc(x,y,z) Representa una superficie explícita

proyectando curvas de nivel sobre el plano xy

>> surf(x,y,z) Representa una superficie explícita coloreando cada elemento de la superficie

>> surfc(x,y,z) Representa una superficie explícita proyectando curvas de nivel sobre el plano xy

>> contour(x,y,z) Representa las curvas de nivel de una superficie sobre el plano xy

>> contour3(x,y,z) Representa una superficie en el espacio con curvas

>> [x,y] = meshgrid(-a:p:a) Genera un arreglo tridimensional

Tabla 4.2 Comando para representación gráfica en el espacio

Para obtener sus gráficas, lo más recomendable es generar un arreglo numérico tridimensional, el comando para realizarlo de manera directa es “meshgrid” y se digita de acuerdo al último comando mostrado en la tabla. A continuación se ilustran las gráficas usando los diversos comandos.

>> t = -2*pi:0.1:2*pi;

>> x = sin(t);

>> y = cos(t);

>> z = t;

>> plot3(x,y,z)

>>title('x=sin(t)y=cos(t)z=t');xlabel('x');ylabel('y');...

...zlabel('z');grid

MatLab procesa los ángulos en radianes, y si se necesita procesar los datos en grados, (degrees) debemos utilizar el comando correspondientes sind(x), cosd(x,y), tan(x,y), etc.

Page 38: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

35

Figura 4.9 Gráfica en el espacio con funciones paramétricas.

Page 39: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

36

Page 40: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

37

Capitulo 5. Programación en MatLab

El lenguaje utilizado por MatLab tiene similitud con lenguajes como JAVA o los C, de hecho los creadores de este software MatWorks crearon su propio idioma que es el lenguaje M, la nomenclatura de las estructuras de control de este lenguaje es similar a la de otros lenguajes, y si se tiene conocimientos fundamentales de programación se puede facilitar su comprensión. Pero además de los comandos se debe conocer los procesos de cálculo y como mandarlos a desarrollar, este último se ha tratado en temas anteriores por lo que empezaremos a emplear los comandos para algunas utilidades un poco más específicas.

5.1 Estructuras de control

Las estructuras de control no permiten ejecutar o autorizar o denegar ciertos pasos del proceso de cálculo que se realiza, el programador siempre tiene que cuidar cuando y bajo qué condiciones realizar las siguientes etapas de cálculo, e incluso realizarlas tantas veces sean necesarias para converger en resultados o en otras palabras llegar a resultados coherentes. Por su puesto que la decisión final la tomará el diseñador.

De manera general existen cuatro estructuras universales de control que se manejaran en programación, estas son For, While, If y Switch, por su puesto esta nomenclatura va a variar del nivel de programación que trabajemos, entendido el nivel no como la cantidad conocimiento sino como si es de bajo nivel o alto nivel. El lenguaje de MatLab es medio nivel y tiene nombre propio que es Lenguaje M. Con estas breves aclaraciones e introducción a la programación pasamos a entrar en materia de programación de MatLab.

5.1.1 Archivo M - file

El archivo M-file es la hoja en donde se escribe todo el código de programación sin importar el entorno en que se ejecute, para aclarar esto, se mostrará en el Command Window o en el entorno gráfico GUIDE.

Su ejecución se describió en el capítulo uno, pero se volverá a repetir en el presente capítulo. Las figuras 5.1 y 5.2 muestran el proceso para abrir un M-file.

Cuando realizamos la automatización del cálculo, necesitamos no únicamente saber los comandos más apropiados sino las ecuaciones

necesarias que se deben tratar.

Page 41: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

38

Figura 5.1 abrir un nuevo M-File haciendo click sobre el ícono que indica la flecha

Figura 5.2 Abrir un nuevo M-file desde file – New – Blank M-File

La hoja de M-file se mostrará completamente en blanco como se ve en la figura 5.3, es completamente editable y de manera general se recomienda lo siguiente:

- Iniciar el programa con clear para borrar todas las variables existentes entes de ejecutar el nuevo código

- Borrar todos los datos existentes en el Comand Window con clc - Si no queremos mostrar ciertos resultados en la pantalla del Comand

Window, tipeamos punto y coma “ ; “ al final de cada línea de comando.

Page 42: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

39

Figura 5.3 Nuevo M-file para escribir el código de programación

La última recomendación es opcional para el programador, si desea mostrar sus resultados en cualquier momento, excluye el “ ; ”, pero más adelante se verá una manera más vistosa de mostrar los resultados de manera más ordenada y entendible.

Las estructuras nombradas anteriormente se comentarán inmediatamente de forma muy breve, pero se las ilustrará con un ejemplo

5.1.2 Estructura For

La estructura For ejecuta un numero definido de cálculos (en MatLab se hablá de cálculos porque esencialmente es lo que se va a realizar), su nomenclatura se basa en un vector fila y en este definimos el número de procesos a realizar. Su nomenclatura es como sigue:

for variable = a:p:n; statements %cálculos o procesos a realizar

end %finalizar el cálculo si variable tiene valor n

Page 43: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

40

La indicación es como sigue: para variable desde a con un paso p hasta n realizar los statements dentro de la estructura

Dentro de statements están todos los cálculos que se van a realizar, además existen frases seguidas de signo %, que son comentarios que nos servirán para indicarnos que se realiza con determinada línea de comando, MatLab ingnora cualquier línea de comando si esta seguida de dicho símbolo, no tiene restricción de caracteres.

Si ejecutamos las siguientes líneas de comando en el M-file,

clear

clc

for x = 1:2:5

a = x + 1 %sumar a x una unidad

end %finalizar el cálculo si variable tiene valor n

tendremos en el Commando Window

>> a =

2

>> a =

4

>> a =

6

La variable x empezará en uno, se le sumará 1 y el resultado es 2, ahora x valdrá 3 (x valía 1 y el paso es 2, es decir dos valores más al anterior) y nuevamente se le sumará 1 que dará 4, finalmente x valdrá 5 y se le suma 1 y el valor de a será 6.

Pongamos atención en el statement que vendría a ser a = x+1, no está seguida del “ ; “ por lo que mostrará su valor en el Command Window cada vez que se realice, tomaremos las respuestas de esta manera y presentación hasta conocer un nuevo método.

Page 44: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

41

5.1.3 Estructura While

En español se traduce como “mientras”, y es de hecho lo que realiza esta estructura, realizar una instrucción o statement hasta cumplir con la condición de la variable declarada sin importar el número de pasos que realiza para alcanzarlo.

Su nomenclatura es:

while expresión

procesos

end

como ejemplo si escribimos en el M-file:

clear

clc x=4; while x>0 %mientras x sea mayor que cero

x=x-1 %a x restarele una unidad end

en el Command Window

x =

3

x =

2

x =

1

x =

0

Page 45: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

42

Tenemos la variable x que inicialmente tiene valor de 4 que es mayor que cero, entro a la estructura o bucle y empiezo a quitar una unidad a la vez mientras x sea mayor a cero, al llegar a cero finaliza el bucle.

5.1.4 Estructa if

Esta estructura es un condicional “si”, es decir comparo el valor de una variable y en función de la condición ejecuto los procesos que estén detro de este. Su nomenclatura es:

if expresión

proceso1

elseif

proceso2

else

proceso3

end

como ejemplo en el M-fiel:

clear clc x=4; if x>4 disp('es mayor a 4') %mostrar en la pantalla “es mayor a 4”

elseif x<4 disp('es menor a 4') %mostrar en la pantalla “es menor a 4”

else disp('es igual a 4') %mostrar en la pantalla “es igual a 4”

end

en el Command Window

es igual a 4

Page 46: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

43

El ejemplo es bastante simple, tenemos la variable x al que le asignamos el

valor de cuatro, realizamos dos comparaciones, la primera si x es mayor a

cuatro, la segunda que si x es menor a cuatro y la tercera es si no se cumplen

las anteriores.

Lo novedoso en estas líneas es el comando “disp( )”, que permite mostrar ya

sea un resultado en la pantalla o un texto. Si se desea mostrar un resultado se

escribirá entre los paréntesis el nombre de la variable, pero si se desea mostrar

un texto como en el ejemplo mostrado, se ubicará en texto entre comillas, este

es un método de mostrar resultados.

5.1.5 Estructura switch

Esta estructura permite conmutar entre casos para realizar un tipo u otro de

cálculo, al leer el valor de una variable el mismo que indicará el número de

caso que se debe realizar.

switch variable %leer el valor de variable

case variable1 %si el valor es variable1

proceso1 %realizar proceso1

case variable2

proceso2

.

.

case variablen

proceso n

otrerwise %si no es ninguno de los anteriores

proceso alterno %realizar proceso alterno

end

Page 47: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

44

Los ejemplos de esta estructura se verán más delante, es necesario saber

comunicarse con el usuario para ilustrar mejor su utilización, sin embargo esta

estructura no únicamente se limita a trabajar con el valor de una variable

indicada por el usuario.

5.2 Comunicación con el usuario, ingreso de datos y presentación de

resultados

Todo programa para que pueda ser utilizado necesita poderse comunicar

con el usuario de forma bilateral, es decir necesita conocer ciertos valores que

el mismo usuario va a indicar, luego se ejecutarán el código que hayamos

escrito y por último se presentarán los resultados de forma numérica o gráfica,

de modo que quien busque los resultados los pueda entender de la manera

más explícita posible.

5.2.1 Ingreso de datos

Los datos que el usuario ingrese podrían ser numéricos o simbólicos, es por

esto que se le debe indicar al usuario que variables y cuando las puede

ingresar, por ejemplo si en un determinado momento se va a solicitar ingresar

un función con varialbes x, t e y, se podría escribir.

F = input(' Ingrese la función f(x,y,t) = ');

%input es el comando que solicita ingresar un dato

Con esta línea de comando solicitamos al usuario ingresar la función

únicamente con las variables que se indica, además el programador debe

controlar las variables simbólicas que se ingresan para luego realizar alguna

operación respecto a las variables permitidas.

La forma de expresar el ingreso de datos es:

Variable = input (' texto');

Page 48: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

45

5.2.2 Salida de datos

MatLab presenta automáticamente los resultados cuando al final de una

línea del código no existe el punto y coma, no es una forma muy estática de

presentar los resultados pero e una salida de datos.

La segunda manera de presentar los resultados es con “disp ( )”, su

funcionamiento ya se lo describió en párrafos anteriores, pero se dará un

ejemplo adicional de uso

clear clc x = input ('Ingrese primer valor a sumar = '); y = input ('Ingrese segundo valor a sumar = '); z=x+y; disp(' El resultado de la suma es ') disp(z)

y en el Command Window

Ingrese primer valor a sumar = 5 Ingrese segundo valor a sumar = 6 El resultado de la suma es 11 >>

Sirve mucho en algunos casos, pero la mejor forma de presentar el resultado es utilizando, su formato de declaración de manera general es:

fprintf('%5.3f \n', variable)

la declaración fprintf, presenta en la pantalla el resultado guardado en “variable”, %5.3 indica que se van a presentar datos con tres valores significativos y \n, indica que la siguiente línea a escribir se hará debajo. No se explicarán los demás términos por no ser de importancia para el objetivo perseguido.

Todo lo que respecta e texto irá entre comillas simple, para indicar que

esto se está realizando MatLab cambia automáticamente el color de

texto color negro a púrpura

Page 49: Modulo Teorico Formacion MatLab Cap 1 a 5

MatLab – Fundamentos y aplicaciones en Ingeniería

46

Con esto podemos presentar incluso un texto que aparezca antes del resultado y después del resultado en la misma línea, además se pueden controlar los decimales que se presenten. clear clc x = input (' Ingrese primer valor a sumar = '); y = input (' Ingrese segundo valor a sumar = '); z=x+y; disp(' ') %espacio vertical en blanco fprintf(' El resultado de la suma es %5.4f unidades\n',z)

en el Command window tendremos Ingrese primer valor a sumar = 3 Ingrese segundo valor a sumar = 6 El resultado de la suma es 9.0000 unidades

La mejor presentación de los resultados en innegable, se proporciona mayor cantidad de información en una sola línea de resultado.