L enguaj e M atemáti co de P r ogr amaci ció ón de Ap A pli caci ones.
Ma M atL ab
( M A T r i x LA L A B or ator y ) Guía Académica PRIMERA PARTE
I ng ng.. Wi Wililia an A nd ndrr ade M edi na Am A mbato - E cuador
Ma M ar zo 2018 E l ho hombre encue encuentr ntra a a D i os detr detrá ás de cada cada puer puer ta que la cie ci encia nci a log logr a ab abr i r . Alb A lbeert E inste instein.
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
-2-
INTRODUCCIÓN E ntre ntr e mayo mayorr es conoci conocim mi entos ntos y pode poderr posea poseas, s, mayor será será tu re r esponsabil sponsabilii dad Goethe. La Programación explica toda una metodología de codificación de los algoritmos o diagramas de flujo generados para aplicaciones matemáticas, con el propósito de representar los problemas matemáticos con software de aplicación en Lenguajes de Programación como parte de la Ingeniería en la búsqueda de la solución de problemas matemáticos que permitan la utilización de la computación para desarrollar procesos automatizados; que continuamente se presentan como criterios de apoyo a la problemática general y fundamental de la automatización de aplicaciones matemáticas usuales en la Ingeniería, que de acuerdo a su complejidad puedan dar uso de los modelos presentados como principio de apoyo a problemas más complejos. La presente guía académica se fundamenta en la experiencia docente y de aplicación matemática en el área de la programación para software matemático con Lenguaje de Programación para la problemática de la ingeniería, permitiendo que sea un instrumento de trabajo y disminuyendo la dificultad del diseño de algoritmos matemáticos; que sea un documento de fácil comprensión y pueda estar al alcance de toda persona que desee adquirir conocimientos planteados desde las aplicaciones más básicas y fundamentales a las aplicaciones matemáticas más complejas.
E l Auto Autor
I ng. Wili Wi lia an Wilfr Wi lfrii do A ndr ndr ade M edi na DOCE DOCE NTE NTE DE LA F ACULTAD ACULTAD DE I N GENIE RÍ A CI CI VIL Y MECÁN M ECÁNII CA UNI VE RSI DAD TÉ TÉ CNI CNI CA DE AMBATO AMBATO Ma M agíst gí steer en en I nform nformá áti ca Ma M agíst gí steer en en Cie Ci enci nci as de la E duca ucaci ón M enci nci ón en G esti sti ón E duca ucati va D i plom loma S upe uper i or en Teo Teor í a, Di D i seño seño y E valuaci luació ón Cur C urrr i cular cular Pra Pr acti cti ti oner ner en Pro Pr ogra gr amación N euro ur oL i ngüíst ngüí stii ca ( PNL PN L ) Correo electrónico:
[email protected] [email protected]
L a i gnor nor ancia nci a es una desgr sgr acia ci a volunta voluntarr i a. – N i colá coláss L i ug
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
-2-
INTRODUCCIÓN E ntre ntr e mayo mayorr es conoci conocim mi entos ntos y pode poderr posea poseas, s, mayor será será tu re r esponsabil sponsabilii dad Goethe. La Programación explica toda una metodología de codificación de los algoritmos o diagramas de flujo generados para aplicaciones matemáticas, con el propósito de representar los problemas matemáticos con software de aplicación en Lenguajes de Programación como parte de la Ingeniería en la búsqueda de la solución de problemas matemáticos que permitan la utilización de la computación para desarrollar procesos automatizados; que continuamente se presentan como criterios de apoyo a la problemática general y fundamental de la automatización de aplicaciones matemáticas usuales en la Ingeniería, que de acuerdo a su complejidad puedan dar uso de los modelos presentados como principio de apoyo a problemas más complejos. La presente guía académica se fundamenta en la experiencia docente y de aplicación matemática en el área de la programación para software matemático con Lenguaje de Programación para la problemática de la ingeniería, permitiendo que sea un instrumento de trabajo y disminuyendo la dificultad del diseño de algoritmos matemáticos; que sea un documento de fácil comprensión y pueda estar al alcance de toda persona que desee adquirir conocimientos planteados desde las aplicaciones más básicas y fundamentales a las aplicaciones matemáticas más complejas.
E l Auto Autor
I ng. Wili Wi lia an Wilfr Wi lfrii do A ndr ndr ade M edi na DOCE DOCE NTE NTE DE LA F ACULTAD ACULTAD DE I N GENIE RÍ A CI CI VIL Y MECÁN M ECÁNII CA UNI VE RSI DAD TÉ TÉ CNI CNI CA DE AMBATO AMBATO Ma M agíst gí steer en en I nform nformá áti ca Ma M agíst gí steer en en Cie Ci enci nci as de la E duca ucaci ón M enci nci ón en G esti sti ón E duca ucati va D i plom loma S upe uper i or en Teo Teor í a, Di D i seño seño y E valuaci luació ón Cur C urrr i cular cular Pra Pr acti cti ti oner ner en Pro Pr ogra gr amación N euro ur oL i ngüíst ngüí stii ca ( PNL PN L ) Correo electrónico:
[email protected] [email protected]
L a i gnor nor ancia nci a es una desgr sgr acia ci a volunta voluntarr i a. – N i colá coláss L i ug
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
TEMA
Conceptos Básicos Asignaciones Entorno MatLab Ventana Command Window Símbolos Especiales Aritmética de Enteros y Funciones Funciones y Comando Básicos Funciones Matemáticas Elementales Elementales Generación y Almacenamiento de Archivos * . m Entrada / Salida de Información Decisiones Nido de Decisiones Ciclos – Control de Ciclos Contadores Aplicaciones Sumatorias Series Aplicaciones Matemáticas
PDF created with pdfFactory Pro trial version
-3-
Página
5 7 10 12 16 16 20 28 30 32 37 39 49 50 51 57 60 64
MatLab
Ing. Wilian Andrade Medina
La lógica es la anatomía del pensamiento. Jhon Locke.
Lo último que uno sabe, es por dónde empezar. Blaise Pascal.
PDF created with pdfFactory Pro trial version
-4-
MatLab
Ing. Wilian Andrade Medina
-5-
LENGUAJE MATEMÁTICO DE PROGRAMACIÓN DE APLICACIONES MATL AB ( MAT rix LAB oratory ), es un SOFTWARE interactivo de uso general para
programar aplicaciones matemáticas de uso continuo en las Ciencias y en la Ingeniería. Las aplicaciones se realizan utilizando instrucciones o comandos, o también mediante el uso de instrucciones en programas con código del MatLab, conocidos como Scripts. Las aplicaciones sobre las que el MatLab se utiliza, es fundamentalmente sobre matemáticas de matrices, libre de que el usuario programador pueda resolver aplicaciones de cualquier naturaleza matemática. El MatLab se caracteriza de modo general porque siendo un lenguaje de programación matemático realiza los cálculos con alta precisión, permite graficación avanzada, el uso de una gran cantidad de funciones, dispone de un soporte adecuado para interfaz gráfica y permite fundamentalmente la programación estructurada.
COCEPTOS BÁSI COS. I nformación.- es un conjunto de hechos y de cifras iniciales y finales necesarios para la comunicación, entendiéndose así al conjunto de datos y resultados necesarios en un proceso.
Datos.- es el conjunto de parámetros o elementos básicos, necesarios para el inicio de un
proceso, está directamente relacionada con la Información de Entrada.
Resultados.- es un conjunto de parámetros o elementos finales de un proceso que permiten tomar una decisión, está directamente relacionada con la Información de Salida.
I nformación alfanumérica.- es la información que representa a textos o cadena de caracteres
y actúa como un aviso, rótulo o mensaje; en su estructura dispone de letras, dígitos y/o símbolos. Se le identifica como una cadena stri ng.
I nformación numérica.- es la información que representa a cantidades o valores que lógicamente actúan en procesos matemáticos; en su estructura se identifica a la información numérica de tipo entera (valores cerrados, punto fijo) y a la información numérica de tipo real (valores con parte decimal, punto flotante).
I nformación numérica de tipo entera.- es aquella cantidad que NO dispone de la parte
fraccionaria o decimal, es una cantidad cerrada (discreta), en su estructura contiene a los dígitos del 0 al 9, el signo más ( + ) de modo opcional para identificar valores positivos o el signo menos ( – ) obligadamente para identificar valores negativos. Ejemplos: 20 - 114 41730
I nformación numérica de tipo real.- es aquella cantidad que SI dispone de la parte
fraccionaria o decimal, es una cantidad que en su estructura contiene a los dígitos del 0 al 9, el signo más ( + ) de modo opcional para identificar valores positivos o el signo menos ( – ) obligadamente para identificar valores negativos y el punto ( . ) decimal para separar la parte entera de la parte decimal del valor. Ejemplos: - 25.106 0.0432 165.0
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
-6-
Cualquier información que se utilice en la programación de aplicaciones con un lenguaje de programación como el MatLab, se utiliza representada por Variables o Constantes.
Variable.- es un nombre que representa a la información y que identifica una posición de
memoria, puede representar a información alfanumérica o información numérica, por estructura propia del MatLab la variable dispone de una posición de memoria matricial.
Variable numérica.- es un nombre de variable que representa a cantidades o valores que
identifican a la información numérica, de acuerdo al tipo de información que representa, puede ser variable numérica real o variable numérica entera.
Variable alfanumérica.- es un nombre de variable que representa a información de texto que identifica a nombres, apellidos, direcciones, avisos, rótulos, enunciados o cualquier cadena de caracteres que actúen como información de texto (alfanumérica).
El nombre de una variable cualquiera sea su tipo, de modo general para ser aceptado como nombre valido, debe cumplir con los siguientes requisitos mínimos: 1.- Iniciar el nombre de variable con un carácter alfabético (letra). 2.- Puede contener otros caracteres alfabéticos o caracteres numéricos (dígitos). 3.- No debe contener caracteres especiales (símbolos). 4.- No debe contener subíndices o supraíndices. Se debe considerar que las variables:
1.- No son necesarias las declaraciones del tipo de variable que representa a la información, como se realiza en varios de los lenguajes de programación tradicional y convencional para aplicaciones fundamentalmente matemáticas.
2.- Hace diferencia y r econoce nombre de variables similares o idénticas que contengan letras mayúsculas y letras minúsculas, es decir que por el tipo de letra les identifica como nombres de variables diferentes (Ejemplo: Alfa y alfa).
3.- E l tipo de variable depende del valor asignado y de acuerdo a la asignación puede representar a una variable escalar, variable vectorial o variable matricial.
4.- Las variables pueden ser redefinidas. 5.- Cuando no se utiliza una fórmula o asignación y solo es una expresión de cálculo, la expresión asigna la información o valor a la variable ans, que es la variable por omisión provista por MatLab para identificar información.
6.- A las variables se puede hacer una nueva asignación de memori a durante la ejecución. x = 3 x = ' mensaje ' syms x
x información numérica, valor de tipo real. x información de tipo texto ( Alfanumérica ). x variable definida como algébrica o de tipo simbólico.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
-7-
Constante.- es aquella información que representa una cantidad fija que puede ser un valor
real o un valor entero, o un texto que no puede variar, al ser parte de un proceso o cálculo; si se cambia la constante, se altera la idea o evento del cálculo o proceso. La constante considerada como numérica; y, la constante considerada como alfanumérica puede representar a cualquier texto, cadena de caracteres de información o enunciado.
I DENTI FI CACIÓN DE PROCESOS MATE MÁTI COS Los procesos matemáticos que se utilizan para dar solución a un problema como Software de Aplicación a generar, son los procesos de asignación , que identifican a las fórmulas que realizan el cálculo en las aplicaciones que utilizan las matemáticas y de manera particular en las aplicaciones de la INGENIERÍA. El flujo de la información (datos y resultados) del problema, se representa por medio de POSICI ONES DE MEMORI A que se identifican con nombres de VARIABLES. Para definir claramente la secuencia de un ALGORITMO, en su parte matemática se utilizan actividades representativas como son las asignaciones o F ÓRMUL AS .
ASI GNACI ONE S Comprende la asignación de un texto (Información Alfanumérica) o de un cálculo cualquiera por más simple que sea, a una variable o posición de memoria debidamente representada. Toda ASIGNACIÓN, se ajusta a la siguiente estructura:
VARI AB LE = E XPR E SI ÓN (Aritmética o Texto) Variable. -
Es el nombre de la posición de memoria que representa al texto asignado o al valor calculado, que identifica a la información alfanumérica o numérica.
E xpresión. - Corresponde a la información que la Variable va recibir o representar por medio de un cálculo o una simple asignación de información numérica o alfanumérica.
Creando así las conocidas expresiones aritméticas o las expresiones de texto.
1.-)
E structura:
VARI ABL E = E XPRE SI ÓN ARI TMÉ TI CA
Es la representación de una FÓRMULA, en la que la EXPRESIÓN ARITMÉTICA procesa información NUMÉRICA (valores) y es normal que disponga de operaciones matemáticas. Generalmente toda EXPRESIÓN ARI TMÉTI CA , de acuerdo a la complejidad del cálculo, en su estructura puede disponer de: - Constantes. 2. - Variables. 1.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina 3.
-8-
- Operadores aritméticos:
+ -
Suma: Resta: Multiplicación: División:
* /
División a la izquierda:
\
Potenciación:
^
(cociente para valor tipo real).
fix ( n / i )
Cociente en enteros
rem ( n , i )
Residuo en enteros
( Resto de dividir n entre i ).
4.
- Paréntesis (SUBEXPRESIONES).
5.
- Funciones (Seno, Coseno, Tangente, Raíz Cuadrada, Valor Absoluto, Otras).
Algunos otros operadores o símbolos aritméticos, están definidos de modo particular por el Lenguaje de Programación, como en este caso para el MatLab también se utilizan operadores y funciones para realizar cierto tipo de cálculos específicos y especiales del MatLab. a = 23 b=6
Asignación de un valor a una variable.
h=a c=b
Asignación de un valor de una variable a otra variable.
x y w f r
= = = = =
- b / 2 / a x^3-8 b^2-4*a*c b * b + 3 *y f - 5 * x ^ 3 + 23 / f
Asignación con operadores aritméticos o fórmula.
x1 = ( -b + ( b ^ 2 – 4 * a * c ) ^ 0.5 ) / ( 2 * a ) z = - b / ( 2 * a ) w = ( x – 21 ) * ( x ^ 3 – 45.7 ) / ( 4 * z – 28 ) x = sin ( 3 ) + 3 * exp ( 2 ) X1 = ( - b + sqrt ( b * b - 4 * a * c ) ) / 2 / a Alfa = ( 4 * a – b ^ 3 / 6 + cos ( a – b ) ) Beta = abs ( X1 – Alfa / 4 ) + fix ( X1 / ( 2 – X1 ) )
PDF created with pdfFactory Pro trial version
Asignación con el uso de paréntesis.
Asignación con el uso de funciones.
MatLab
Ing. Wilian Andrade Medina
-9-
x = 4 + 3i
Asignación de un número complejo.
t = 2 * x + 3 - 5i
Asignación con cálculos con números complejos.
( a ^ 2 - 5 ) / 3
Expresión que el valor calculado se asigna a ans, variable asignada por omisión por el MatLab .
y = 2 * ans
Asignación que realiza un cálculo utilizando ans.
2.-)
E structura:
VA RI ABLE = E XPRE SI ÓN DE TE XTO
Identificada como EXPRESIÓN ALFANUMÉRICA, procesa información de TEXTO, no dispone de operaciones aritméticas, es muy utilizada para manejar información como nombres, apellidos, direcciones, rótulos, avisos u otros tipos de mensajes necesarios en el contexto informático, y es identificada como una cadena de caracteres. Generalmente toda EXPRESIÓN ALFANUMÉRICA se delimita entre símbolos ortográficos como el apóstrofo ( ' Texto ' ) , y en su estructura se puede generar una asignación o expresión alfanumérica considerando que puede disponer de: 1.
- Constantes de Texto, información con símbolos, letras y/o dígitos.
2.
- Variables que representan Texto.
' Wilian Andrade '
Asignación que se realiza a la variable ans.
direc = ' Zooposopangui 204 '
Asignación de una cadena a la variable direc
c = ' Matemática ' ;
Asignación de una cadena a la variable c .
c(4)
Identificación de un carácter de la cadena.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 10 -
ENTORNO MATLAB Para que el software de MatLab se active y presente su área de trabajo, se ejecuta normalmente el icono que corresponde a MatLab y que es representado por la siguiente imagen:
En el proceso de carga del programa, presenta la información que corresponde a la versión y tipo de MatLab a utilizarse (en este ejemplo es de MatLab 15), una imagen similar a la siguiente precede a la activación y presencia del área de trabajo.
En el MatLab, se define y se aplica el manejo de la información dentro de su estructura de programación, es decir utilizando el E ntorno de MatLab que está organizado por ventanas e inicialmente presenta la siguiente visualización:
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 11 -
Presentando las siguientes barras y ventanas a identificar, que componen el área de trabajo:
Barra de Titulo.- es la barra que identifica el icono y versión del MatLab. Barra de Herramientas.- es la barra que dispone de un conjunto de opciones de trabajo. Barra de dirección de directorio.- es la barra que identifica el directorio o carpeta de trabajo. Command Window.- es la ventana de comandos para ejecución de instrucciones. Command History.- es la ventana que realiza el registro de los comandos ingresados. Workspace.- es la ventana que contiene la descripción matricial de las variables utilizadas en cada sesión de trabajo (programación de aplicaciones). Current F older.- es la ventana que visualiza las carpetas de trabajo.
Para almacenar los programas de aplicación en MatLab, es preferible crear una carpeta a la que se direccione todas las actividades y almacenamiento de archivos, utilizando una orden de comandos del MatLab desde la ventana del Command Window o desde la barra de dirección de directorio que idéntica la carpeta de trabajo por omisión, direccionarle a la generada por el usuario programador: C : \ Program Files \ MATLAB Production Server \ R2015 \ bin Para cambiar desde la ventana de comandos a una carpeta de trabajo, se utiliza el comando change directory ( cd ) acompañado del nombre del disco y la carpeta seleccionada de trabajo:
>> cd f : / MatLabE jer El comando ordena cambiar a la carpeta MatLabEjer en la unidad de almacenamiento F: F : \ MatLabEjer
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 12 -
Para visualizar el contenido de una carpeta, se ordena el proceso con el comando dir : >> dir F : / MatLabEjer . Facturas Programas .. MetodosNumericos Serie wil.m Calculadora
marca.m marca1.m Newraph.fig
ppolivec2.m ppolivec3.m Serie2
Que se puede también observar en la ventana Current F older, de la carpeta seleccionada. El comando dir debe ser utilizado con letras minúsculas, caso contrario se genera un error: >> Dir F : / MatLabEjer Undefined function ' Dir ' for input arguments of type ' char ' .
VE NTANA COMMAND WI NDOW En la ventana de trabajo Command Window, se escriben todas las instrucciones que se deseen ejecutar con letras minúsculas , para disponer de resultados como si fuera una CALCULADORA, se puede realizar procesos de cálculo simple o complejos.
Todos los COMAND OS, F UNCI ONE S o I NSTR UCCI ONE S propias del MatLab se escriben con LE TRAS MI NÚSCULA S, caso contrario generan error. Para crear un conjunto de instrucciones como un programa de aplicación, se genera un archivo , activada al ordenar la creación de un archivo nombre.m en la ventana de Editor – Untitled de texto Script de programación MatLab, pulsando el botón o acceso directo de ( New Script ) que se encuentra en la barra de menús identificada con el nombre de HOME.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 13 -
El símbolo >> en la ventana Command Window , es el prompt que indica que el MatLab está listo para recibir las instrucciones o comandos, al utilizar asignaciones aritméticas se visualiza el resultado de modo inmediato o se presenta un mensaje que indica que hubo algún error.
>> x = 2.8 x = 2.8000
>> a = 234 a= 234
>> b = - 45.762 b= - 45.7620
>> z = a z = 234
>> alfa = x alfa = 2.8000
>> Alfa=b Alfa = - 45.7620 De igual manera, cuando se utiliza asignaciones alfanuméricas , se visualiza directamente el mensaje que se ha dispuesto.
>> direc = ' Calle Zooposopangui 204 ' direc = Calle Zooposopangui 204
>> nombre = ' Wilian Andrade Medina ' nombre = Wilian Andrade Medina
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 14 -
>> ' Wilian Andrade Medina ' ans = Wilian Andrade Medina Al digitar el nombre de la variable, se presenta el valor que disponía en la asignación entregada, es decir que mientras no se cambie el valor asignado a la variable, se mantiene en memoria y con solo escribir el nombre de la variable se presenta el valor que representa:
>> a a= 234
>> b b= - 45.7620 Al realizar la orden de cálculo por medio de una expresión simple o compleja con las variables disponibles, el resultado se presenta asignando a la variable ans (answer), variable propia por omisión en el MatLab, debido que no se indica a que variable se debe asignar el cálculo generado por la expresión aritmética ordenada:
>> a + b ans = 188.2380
>> sin ( 45 ) ans = 0.8509 Utilizando una fórmula, se realiza el cálculo indicado a la o las variables de asignación:
>> x = 2.8 ; >> x1 = x ^ 2 + 3 * x - 21 x1 = -4.7600 Cuando al final de una instrucción o comando procesado se utiliza el punto y coma ( ; ) , el resultado NO se presenta o no se visualiza en la ventana del Command Window .
>> x1 = x ^ 2 + 3 * x - 21 ; >> a ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 15 -
>> z ; >> a + b ; Al utilizar varias asignaciones en una misma línea de comandos, se separan las instrucciones por medio de la coma ( , ) o del punto y coma ( ; ):
>> format short >> x = exp ( 3 ) ; y = 5 * x – 2 , z = 7 * x - y ^ 2
% Utilizando con ;
y = 98.4277 z = - 9.5474 e+03
>> format long >> x = exp ( 3 ) , y = 5 * x – 2 , z = 7 * x - y ^ 2
% Utilizando solo ,
x = 20.085536923187668 y = 98.427684615938347 z = - 9.547410340392313 e+03
COMANDO clc El comando o instrucción clc ordena que se borre de modo permanente toda la información disponible en la ventana de trabajo Command Window , presentándose una ventana limpia de información.
COMANDO clear El comando o instrucción clear ordena que se borre de modo permanente el nombre y el valor asignado a la variable indicada o a todas las variables, las mismas que se encuentran visualizadas en la ventana de trabajo Workspace.
>> clear z Ordena que se borre de la memoria el nombre y el valor de la variable z .
>> clear A B C Ordena que se borre de la memoria el nombre y el valor de cada una de las variables A, B y C.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 16 -
>> clear all Ordena que se borre de la memoria los nombres y los valores asignados a cada una de variables que estén en memoria y que se visualiza en la ventana Workspace. Para poder utilizar instrucciones o comandos disponibles en el Command History, se puede reutilizarlos utilizando las teclas del cursor:
SÍ MBOLOS E SPE CI AL E S La siguiente lista de símbolos, en el MatLab tiene ciertos usos y definiciones, así:
( )
Define precedencia o prioridad matemática de operaciones en las expresiones; y, para definir subíndices de vectores y matrices.
,
Separa elementos de un vector (También se usa espacios).
;
Separa filas de una matriz o se utiliza para evitar mostrar resultados o contenido de variables o expresiones.
%
Inicia un comentario en el código de los programas y de las funciones.
...
Indica la continuación de un comando en la siguiente línea.
[ ]
Define a los elementos disponibles de un vector o de una matriz.
ARI TMÉ TI CA DE E NTE ROS Y F UNCI ONE S Cuando se trabaja con aplicaciones que se necesita de cálculos que los resultados esperados sean sin decimales, es decir valores enteros, se apoya en cálculos para procesos en la aritmética de enteros fundamentados en el uso de operadores o funciones. En MatLab todas las cantidades están definidas como cantidades reales de tipo Double por naturaleza u omisión, por lo que, para trabajar en enteros, se debe definir a las cantidades o variables el tipo de números enteros que van a representar.
E NTE ROS CON SI GNO Las cantidades o valores que se pueden representar pueden ser en números enteros con signo y se los define con la función int# de acuerdo a las necesidades de límites de cálculo o disponibilidad de manejo de cantidades; así:
F unción int8(Parámetro) int16(Parámetro) int32(Parámetro) int64(Parámetro)
Valor mínimo 128 32.768
+ 127 + 32.767
2.147’483.648
+ 2.147’483.648
-
Valor máximo
- 9.22338E+18
PDF created with pdfFactory Pro trial version
+ 9.22337E+18
MatLab
Ing. Wilian Andrade Medina
- 17 -
E NTE ROS SI N SI GNO Las cantidades o valores que se pueden representar pueden ser en números enteros sin signo y se los define con la función uint# de acuerdo a las necesidades de límites de cálculo o disponibilidad de manejo de cantidades; así:
F unción
Valor mínimo
uint8(Parámetro) uint16(Parámetro) uint32(Parámetro) uint64(Parámetro)
Valor máximo 0 0 0 0
+ 255 + 65.5357
+ 4.294’967.295 + 1.84467E+19
ENTERO MÍNIMO La función intmin en MATLAB, presenta el valor más pequeño que se puede lograr para cálculos matemáticos en software de aplicación como un entero de 32 bits. >> u = intmin u= -2147483648
ENTERO MÁXIMO La función intmax en MATLAB, presenta el valor más alto que se puede lograr para cálculos matemáticos en software de aplicación como un entero de 32 bits. >> u = intmax u= 2147483647 La asignación de los valores de la variable a y b se utiliza para la descripción de los ejemplos:
>> a = 11 a= 11
>> b = 4 b= 4
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 18 -
FUNCIÓN fix Se utiliza la función fix , como un operador para calcular el cociente en enteros.
>> c = fix ( a / b ) c= 2
>> d = fix ( 11 / 4 )
% 11 dividido para 4, cociente resultado = 2
d= 2
>> e = fix ( 11.5 / 4 ) e= 2
FUNCIÓN rem Se utiliza la función rem, como un operador para calcular el residuo en enteros.
>> h = rem ( a , b ) h= 3
>> k = rem ( 11 , 4 )
% 11 dividido para 4, cociente = 2 residuo = 3
k= 3
>> d = rem ( 11.5 / 4 )
% Error por uso de argumento (operador).
Error using rem Not enough input arguments.
FUNCIÓN floor Se utiliza la función floor , para obtener cociente en enteros considerando que la parte decimal del resultado es redondeado al entero inmediato INFERIOR del valor.
>> x = floor ( a / b ) x = 2
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 19 -
>> w = floor ( 11 / 4 ) w= 2
>> p = floor ( 14 / 5 ) p = 2
FUNCIÓN ceil Se utiliza la función ceil , para obtener cociente en entero considerando que la parte decimal del resultado es redondeado al entero inmediato SUPERIOR del valor.
>> s = ceil ( a / b ) s = 3
>> m = ceil ( 11 / 4 ) m= 3
>> n = ceil ( 14 / 5 ) n= 3 Los cálculos que efectúan las funciones analizadas, procesan como aritmética para valores enteros y cualquier resultado que se obtenga será sin parte decimal.
Operaciones aritméticas especiales: >> 2 / 0 Inf
% Notificación matemática de infinito ( )
>> 0 / 0 NaN
% Notificación matemática de valor indeterminado ( “Not A Number” )
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 20 -
F UNCI ONE S Y COMANDOS BÁSI COS Los comandos y funciones básicas que dispone el MatLab, son nombres de actividades o procesos que se requieren EJECUTAR en el entorno o en la programación de aplicaciones, disponiéndose de entre las más básicas a las siguientes:
F UNCI ÓN help
( AYUDA )
>> help La función help , permite el despliegue de una variada cantidad de temas de ayuda o biblioteca de consulta, que explica el uso y funcionamiento de cada una de las instrucciones, comandos, funciones o temas de aplicación en el entorno de trabajo y de programación del MatLab. La función help puede utilizarse con especificación del tema a consultar, ejemplos:
>> help ops Permite el despliegue de una lista de operadores, presentando la siguiente información: >> help ops Operators and special characters. Arithmetic operators. plus - Plus uplus - Unary plus minus - Minus uminus - Unary minus mtimes - Matrix multiply times - Array multiply mpower - Matrix power power - Array power mldivide - Backslash or left matrix divide mrdivide - Slash or right matrix divide ldivide - Left array divide rdivide - Right array divide idivide - Integer division with rounding option. kron - Kronecker tensor product
+ + -
* .*
^ .^ \ / .\ ./
Relational operators. eq ne lt gt le ge
- Equal - Not equal - Less than - Greater than - Less than or equal - Greater than or equal
Otros más ……..
PDF created with pdfFactory Pro trial version
== ~= < >
<=
>=
MatLab
Ing. Wilian Andrade Medina
- 21 -
Entre varias de las ayudas específicas utilizadas, se detalla los siguientes ejemplos:
>> help exp
% Información sobre el uso de la función exponencial .
>> help elfun
% Despliega la lista de funciones matemáticas elementales.
>> help general
% Despliega la lista de comandos.
>> help strfun
% Despliega la lista de las funciones para cadenas.
>> help lang
% Despliega la descripción de las estructuras del MatLab.
Adicionalmente, pulsando el ícono Help de la barra de herramientas, se puede entrar al sistema de ayuda de MATLAB organizado por contenido, índice, búsqueda y demostraciones.
F UNCI ÓN who
( VARI ABL E S E N USO )
La función who, despliega la lista de las variables en uso de la programación del momento, que también se identifican en la ventada Workspace.
>> who
Your variables are: a b
>> whos x
% Despliega el tipo actual de la variable ( x ).
>> whos
% Despliega la lista de las variables en uso y su descripción.
COMANDO pwd
( DI RE CTORI O ACTUAL )
El comando pwd, da a conocer el directorio actual de trabajo.
>> pwd ans =
C : \ Program Files \ MATLAB Production Server \ R2015 \ bin
COMANDO cd
( CAMB I O DE DI RE CTORI O - change directory )
El comando cd, permite el cambio de la ruta del directorio actual.
>> cd f : / MatLabE jer >> pwd ans =
f : \ MatLabEjer
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
COMANDO
dir
- 22 -
( DI RE CTORI O ACTUAL )
El comando dir, permite conocer el listado del contenido del directorio actual. >> dir . .. Calculadora Factura Facturas
MetodosNumericos Newraph.fig Newraph.m Programas Serie
Serie2 Simulacion poli.m poli2.m ppoli.m
ppolivec.m ppolivec2.m ppolivec3.m ppolivec4.m sumadora.fig
sumadora.m wil1.m wiw.m ww.m
COMANDO open El comando open despliega el contenido de la programación MatLab de la función que se solicita visualizar su contenido.
COMANDO format
( F ORMATOS DE DE SPLI E GUE DE I NF ORMA CI ÓN )
El comando format, permite visualizar notaciones matemáticas o dispone el despliegue de un cierto número de decimales de la cantidad que representa cada variable o de los cálculos, que son exhibidos por pantalla.
>> w = 45.6785 w=
45.6785
>> format long
% Despliega números con 14 decimales.
>> format long >> w w= 45.678500000000000
>> format short
% Despliega números con 4 decimales. (estándar MatLab).
>> format short >> w w= 45.6785
>> format bank
% Despliega números con 2 decimales.
>> format bank
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 23 -
>> w w= 45.68
>> format rat
% Despliega números con notación racional (fracciones).
>> format rat >> w w=
23159 / 507
>> format short e >> format long e
% Despliega números con notación científica % Despliega números con notación científica con 14
>> format compact
% Suprime líneas adicionales en la salida de información.
>> format loose
% Inserta líneas en blanco en la salida de información.
>> format hex
% Despliega un valor en formato hexadecimal .
COMANDO
vpa
decimales
(FORMATO DE VARI ABLE DE PRE CI SI ÓN ARI TMÉTI CA )
El comando vpa, considerada como variable de precisión aritmética, facilita que un valor pueda definirse con cierto número de decimales.
>> vpa ( sqrt ( 2 ) , 20 )
% Despliega el valor de la raíz cuadrada de 2 con 20 dígitos.
ans = 1.4142135623730950488
COMANDO
date
( F E CH A )
El comando date , despliega la fecha actual.
>> date ans = 10 - Dic - 2017
COMANDO
datetime
( F E CH A HORA )
El comando datetime , despliega la fecha y la hora actual.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 24 -
>> datetime ans =
10 - Dic – 2017
COMANDO
clock
18:49:10
( F E CH A HORA : MI NUTOS : SE GUNDOS )
El comando clock , despliega la fecha y la hora actual, se utiliza previamente el format rat para que visualice de mejor manera el orden de: año – mes – día – hora – minutos – segundos.
>> format rat >> clock ans = 2017
COMANDO
12
length
10
18
1852 / 89
51
( LONGI TUD DE CADE NA )
El comando length, entrega un valor numérico que corresponde a la longitud de una cadena de caracteres; o el número de elementos que representa y almacena una variable vectorial. Para conocer el número n de caracteres que tiene una cadena en una variable alfanumérica x, se dispone de la siguiente instrucción.
>> x = ' Wilian Andrade Medina ' x = Wilian Andrade Medina
>> n = length ( x ) n= 14 Para conocer el número m de elementos que contiene un vector en una variable numérica vectorial ( vector ), se ordena con la instrucción lenght.
>> vector = [ 1 -5 9 0 -22 14 4 ] vector = 1
-5
9
>> n = length ( vector ) n= 7
PDF created with pdfFactory Pro trial version
0
-22
14
4
MatLab
Ing. Wilian Andrade Medina
COMANDO
strcat
- 25 -
( CONCATE NACI ÓN DE CADE NAS )
El comando strcat, exclusivamente realiza la concatenación de cadenas o textos.
>> x = ' Wilian Andrade Medina ' x = Wilian Andrade Medina
>> y = '
Profesor FICM '
y = Profesor FICM
>> z = ' Universidad Técnica de Ambato ' z = Universidad Técnica de Ambato
>> w = strcat ( x , y ) w= Wilian Andrade Medina
Profesor FICM
>> s = strcat ( x , y , z ) s = Wilian Andrade Medina
Profesor FICM
Universidad Técnica de Ambato
El comando strcat al facilitar la concatenación o unión de texto, se puede unir un texto con un valor transformado a texto, de acuerdo al siguiente planteamiento de programación: >> ci = 1801097054 ; >> wi = strcat ( ' El número de cédula : ' , num2str ( ci ) , ' es de Wilian Andrade ' ) wi = El número de cédula :1801097054 es de Wilian Andrade
COMANDO num2str El comando num2str , convierte un número o cantidad a cadena de texto (información string) >> q= 5
Class double ( 5.0000 )
q= 5
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
>> d = num2str ( q ) d=
Class char
('5' )
5
COMA COM A ND O str str 2n 2num um El comando str numérica) str 2n 2num um , convierte la cadena de texto en número (información numérica) >> a = ' 345 '
Class char
( ' 345 ' )
a= 345
str2num m( a ) >> y = str2nu y =
Class double ( 345 ) 345
str 2n 2num um ( ' 123456789 ' ) >> ci = str ci = 123456789 En el ejemplo se puede visualizar que el comendo hasta con nueve caracteres (dígitos) representa al número con todos sus dígitos. >> ci = str str 2n 2num um ( ' 1234567890 ' ) ci = 1.2346e+09 En el ejemplo se puede visualizar que el comando con diez caracteres (dígitos) o más representa al número con notación científica.
F UNCI ÓN
ran rand
( GE NE RACI ÓN DE UN NÚMER O ALE ATORI ATORI O )
La función rand, genera un número aleatorio entre 0 y 1. 1.
>> x = ra r and x = 0.8147
PDF created with pdfFactory Pro trial version
- 26 -
MatL MatL ab
Ing. Wilian Andrade Medina
- 27 -
fi x . Para generar un número aleatorio entre 1 y 10, 10, se expresa utilizando la función fix >> d = fix fi x ( r and * 10 ) + 1 d= 10
>> d = fix fi x ( r and * 10 ) + 1 d= 5 Se utiliza también para generar matrices con números aleatorios entre 0 y 1. Ejemplos:
>> a = ra r and ( 5 ) a= 0.9058 0.1270 0.9134 0.6324 0.0975
0.2785 0.5469 0.9575 0.9649 0.1576
0.9706 0.9572 0.4854 0.8003 0.1419
0.4218 0.9157 0.7922 0.9595 0.6557
0.0357 0.8491 0.9340 0.6787 0.7577
>> c = ra rand ( 3 , 4 ) c=
0.7431 0.1712 0.2769 0.8235 0.3922 0.7060 0.0462 0.6948 0.6555 0.0318 0.0971 0.3171
F UNCI ÓN conj
( CONJUGAD O DE UN NÚME RO COMPLE J O )
La función conj, se utiliza para obtener el conjugado de un número número complejo.
>> z = 13 + 5i ; >> r = conj conj ( z ) r=
13.0000 - 5.0000 i
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
F UNCIONE NCIONE S MATE MATE MÁTICAS E LEME NTALE NTALE S El MatLab R15a, presenta las funciones matemáticas elementales siguientes:
>> help elfun lf un Elementary math functions.
Trigonometric. sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atan2d atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot
- Sine. - Sine of argument in degrees. - Hyperbolic sine. - Inverse sine. - Inverse sine, result in degrees. - Inverse hyperbolic sine. - Cosine. - Cosine of argument in degrees. - Hyperbolic cosine. - Inverse cosine. - Inverse cosine, result in degrees. - Inverse hyperbolic cosine. - Tangent. - Tangent of argument in degrees. - Hyperbolic tangent. - Inverse tangent. - Inverse tangent, result in degrees. - Four quadrant inverse tangent. - Four quadrant inverse tangent, result in degrees. - Inverse hyperbolic tangent. - Secant. - Secant of argument in degrees. - Hyperbolic secant. - Inverse secant. - Inverse secant, result in degrees. - Inverse hyperbolic secant. - Cosecant. - Cosecant of argument in degrees. - Hyperbolic cosecant. - Inverse cosecant. - Inverse cosecant, result in degrees. - Inverse hyperbolic cosecant. - Cotangent. - Cotangent of argument in degrees. - Hyperbolic cotangent. - Inverse cotangent. - Inverse cotangent, result in degrees. - Inverse hyperbolic cotangent. - Square root of sum of squares.
PDF created with pdfFactory Pro trial version
- 28 -
MatLab
E xponential. exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2
Complex.
abs angle complex conj imag real unwrap isreal cplxpair
Ing. Wilian Andrade Medina
- 29 -
- Exponential. - Compute exp(x)-1 accurately. - Natural logarithm. - Compute log(1+x) accurately. - Common (base 10) logarithm. - Base 2 logarithm and dissect floating point number. - Base 2 power and scale floating point number. - Power that will error out on complex result. - Natural logarithm of real number. - Square root of number greater than or equal to zero. - Square root. - Real n-th root of real numbers. - Next higher power of 2. - Absolute value. - Phase angle. - Construct complex data from real and imaginary parts. - Complex conjugate. - Complex imaginary part. - Complex real part. - Unwrap phase angle. - True for real array. - Sort numbers into complex conjugate pairs.
Rounding and remainder. fix floor ceil round mod rem sign
- Round towards zero. - Round towards minus infinity. - Round towards plus infinity. - Round towards nearest integer. - Modulus (signed remainder after division). - Remainder after division. - Signum.
OTRAS FUNCI ONE S MATE MÁTI CAS pi
Asigna el valor de la constante (3.1416).
eps
Corresponde al valor de la precisión de números de tipo real ( 2.2204 e-16 ).
realmin
Corresponde al valor de la precisión del menor número real ( 2.2251 e-308 ).
realmax
Corresponde al valor de la precisión del mayor número real (1.7977 e+308 ).
i
Representa al símbolo de valor imaginario - 1
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
GE NE RACI ÓN Y ALMACE NAMI E NTO DE ARCH I VOS * . mat
- 30 -
y * .m
El programa MatLab o Archivo de comandos ( script ), para ser creado se debe pulsar en la opción New Script ( HOME ) que es la opción de creación de un nuevo archivo de texto MatLab, facilitando la activación del editor de texto de comandos.
Se abre la ventana de edición de comandos y por cada línea se escribe el código MatLab para disponer de la secuencia necesaria de la aplicación matemática a generar o también se puede generar en un editor de texto y luego copiar el código al Editor del MatLab.
En la ventana de edición ( Editor – Untitled ), se escribe y se corrige la sintaxis de los comandos o instrucciones y para concluir con la edición se almacena el programa, pulsando la opción Save ( guardar ) que permite almacenar el archivo con algún nombre ( ejemplo.m ). Los archivos MatLab *.m pueden ser generados como programas o como funciones. Para ejecutar el programa se escribe en la ventana de comandos ( Command Window ) , únicamente el nombre del programa:
>> ejemplo
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 31 -
Se ejecuta el programa y si no dispone de errores de código, los resultados son visibles de acuerdo a la programación producida; y, los valores actuales de las variables en uso se almacenan en memoria siendo visualizados sus nombres, tipos y cantidades que representan en la ventana de trabajo Workspace.
Almacenamiento de vari ables en un archivo ( save ).
El MatLab permite generar un programa * . mat para que la información almacenada en el Workspace, del programa activo, se pueda almacenar con un nombre deseado. Desde la ventana de comando se ordena el almacenamiento del archivo de variables con los datos que representa, utilizando la instrucción save , de la siguiente manera:
>> save ejemplo El MatLab, guarda el archivo con la extensión mat , dejando visible en la ventana Current F older, el nombre del archivo ejemplo.mat
Recuperación de variables desde un archivo ( load ).
Cuando se desea recuperar la información de las variables almacenadas y su contenido, se procede a ordenar la carga, utilizando la instrucción load :
>> load ( ' ejemplo.mat ' ) Para realizar la carga de un programa de variables y contenidos .mat , se debe borrar todas las variables activas del momento, para recuperar lo deseado, cargando el archivo necesario.
E liminación o barrado de archivos ( delete ).
Para borrar o eliminar permanentemente cualquier archivo generado en MatLab, se utiliza la instrucción delete, adjunto el nombre y la extensión del archivo:
>> delete ejemplo.mat >> delete ejemplo.m
% Borrar Archivo de variables. % Borrar Archivo de comandos scri ( pt ).
Cerrar sesión de trabajo en MatLab ( quit ).
Con el propósito de terminar la sesión de trabajo en el MatLab, se puede cerrar de varias maneras, pero la adecuada y funcional es utilizar la instrucción quit , desde la ventana de comandos:
>> quit
% Termina la sesión con MatLab.
Nota.- El entorno de MatLab es un entorno VISUAL y muy adecuado también para ejecutar
muchas de las instrucciones analizadas de edición, almacenamiento, eliminación y otras actividades, utilizando la Barra de Menús, por medio de Teclas Rápidas (Ctrl+N), y estructuras propias de uso y aplicación en la programación y manejo de ventanas y archivos en Windows.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 32 -
E NTRADA Y SALI DA DE I NFORMACI ÓN I NGRE SAR O LE E R I NFORMACI ÓN ( DATOS ). Para definir el ingreso de datos a una variable desde el teclado, dado que el programa requiere de los denominados DATOS POR LECTURA, se realiza el ingreso de un dato utilizando la instrucción input , de acuerdo a la siguiente estructura:
Variable = input ( ' mensaje ' ) ; Variable , es el nombre al que se asigna el dato de lectura requerido. ' mensaje ' , corresponde al texto que identifica que va a representar el dato. x = input ( ' I ngrese el valor de la altura del rectángulo en cm. = ' ) ;
Instrucción programada con ; (punto y coma) final:
>> x = input ( ' I ngrese el valor de la altura del rectángulo en cm. = ' ) ; Ingrese el valor de la altura del rectángulo en cm. = 45
Instrucción programada sin ; (punto y coma) final:
>> x = input ( ' I ngrese el valor de la altura del rectángulo en cm. = ' ) Ingrese el valor de la altura del rectángulo en cm. = 33 x = 33
DESPLEGAR O I MPRIMI R I NFORMACI ÓN DE SALI DA ( RESULTADOS ). Para visualizar y definir la salida de datos o resultados numéricos de una variable o expresión en la pantalla ( área del Command Window ), dado que el programa requiere de los denominados DATOS o RESULTADOS DE SALIDA, se realiza el despliegue de la información utilizando la instrucción disp , de acuerdo a la siguiente estructura:
>> x = 3; >> disp ( x )
disp ( variable ) disp ( ' mensaje ' ) 3
>> disp ( ' El valor de x = ' ) , disp ( x ) El valor de x = 3
disp ( ' ' ), se utiliza para indicar un “salto de línea” o “imprima una línea en blanco”.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 33 -
Para desplegar más de un valor se programa a la instrucción disp con la siguiente estructura:
disp ( [ variable1 variable2 variable3 . . . . . ] ) >> a = 3 ; >> b = 7 ; >> c = -11 ; >> disp ( [ a b c ] ) 3
7 -11
>> N = 5 ; >> x = 2 ^ N ; >> y = sqrt ( x ) ; >> disp ( [ x , y ] ) ; % Se presenta con 4 decimales como estándar .
32.0000 5.6569
DE SPLE GAR O IMPRI MI R I NFORMACI ÓN DE SALI DA CON F ORMATO. Para desplegar por pantalla los datos o resultados numéricos con formato, se programa con la instrucción fpri ntf de acuerdo a la siguiente estructura:
fprintf ( ' formatos ' , variables ) ' formatos ' Se presentan varias representaciones ejecutables del parámetro ' formatos ' para poder desplegar resultados, las más representativas son las siguientes: formato ' % # s ' se utiliza para indicar el número de caracteres del texto a desplegar como un aviso, mensaje, título o un rótulo de modo general estándar, de una cadena de caracteres. formato ' % d ' se utiliza para indicar el número de CAMPOS (número de dígitos y el signo del número) que ocupa el número entero (sin decimales), en modo general estándar. formato ' % # d ' se utiliza para indicar un número # de CAMPOS que ocupa el número entero, en modo definido ( # es cualquier valor entero ). formato ' % f ' se utiliza para indicar el número de CAMPOS (número de dígitos, el punto decimal y el signo del número) que ocupa el número real (con parte decimal), en modo general estándar.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
formato ' % # . # f '
- 34 -
se utiliza para indicar el número de CAMPOS que ocupa el número real, en modo definido para el total de campos del número y el número de dígitos de la parte decimal del número.
formato ' Texto % # d '
se utiliza el parámetro Texto para poder identificar con algún rótulo el valor que representa la variable a imprimir o desplegar.
formato ' Texto % # . # f \ n '
se utiliza el parámetro \n para poder indicar a la instrucción que realice un salto de línea al final de la impresión del valor.
Con los ejemplos prácticos que se detallan, la funcionalidad de la instrucción fprintf , es muy adecuada su utilización desde la ventana de comandos o como parte de un programa para el despliegue de información de salida en la ventana Command Window:
fprintf ( ' % d ' , variable ) ; fprintf ( ' % # d % #.# f ' , variable1 , variable2 ) ; fprintf ( ' R ótulo = % #.# f ' , variable ) ; fprintf ( ' R ótulo = % #.# f \ n ' , variable ) ; fprintf ( ' R ótulo1 = % #.# f Rótulo2 \ n ' , variable ) ; fprintf ( ' R ótulo1 = %d Rótulo2 = %f \ n ' , variable1 , variable2 ) ; >> N = 5 ; >> x = 2 ^ N ; >> y = sqrt ( x ) ; >> fprintf ( ' % d % f ' , x , y ) ; 32
% Modo general estándar
5.656854>>
>> N = 5 ; >> x = 2 ^ N ; >> y = sqrt ( x ) ; >> fprintf ( ' % 5 d % 8.3 f ' , x , y ) ; 32
% Modo definido con formato
5.657>>
En los ejemplos indicados, al final del valor resultado se nota la presencia del >> , debido a que la instrucción fpri ntf hace que se mantenga el cursor en la última línea de despliegue; para que el prompt o símbolo de trabajo de la ventana del Command Window quede al inicio de una
nueva línea, se programa con una instrucción que corresponda al denominado “salto de línea” o “imprima otra línea en blanco”.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 35 -
>> N = 5 ; >> x = 2 ^ N ; >> y = sqrt ( x ) ;
>> fprintf ( ' % 8 d % 12.3 f ' , x , y ) , disp( ' 32
')
% “Imprimir otra línea en blanco”
5.657
>> >> N = 5 ; >> x = 2 ^ N ; >> y = sqrt ( x ) ; >> fprintf ( ' % 8 d % 12.3 f \ n ' , x , y ) 32
% “Salto de línea”
5.657
>> Visualización en pantalla de ejemplos de aplicación de la instrucción fprintf
>> c = 3456.34 c= 3.4563 e+03
>> fprintf ( ' % f \ n ' , c ) 3456.340000
>> fprintf ( ' % 16.4 f \ n ' , c ) 3456.3400
>> fprintf ( ' % 6.4 f ' , c ) 3456.3400>>
>> fprintf ( ' % 10.3 f ' , c ) , disp ( ' ' ) >>
3456.340
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 36 -
>> fprintf ( ' % 10.3 f \ n ' , c ) >>
3456.340
>> fprintf ( ' Dato = % 10.3 f \ n ' , c ) >>
Dato = 3456.340
>> fprintf ( ' Dato = % 10.3 f cm \ n ' , c ) >>
Dato = 3456.340 cm
Cuando un formato para cantidades de tipo real, como ejemplo el de: % 12.5 f de despliegue de valores reales con 5 decimales, se desea que tenga una programación variable en el número de decimales a presentar, se utiliza recursos de programación como los de las funciones strcat y num2str, de la siguiente manera:
fprintf ( ' % 12 . 5 f | n ' , x ) q=5
% define número de dígitos de la parte decimal de un valor real
p = 7
% define número de dígitos de la parte decimal de un valor real
x = 32.29467231
% valor real con 8 dígitos decimales
w = - 12.456127627391
% valor real con 12 dígitos decimales
fprintf ( strcat ( ' % 12 . ' , num2str ( q ) , ' f |n ' ) , x )
% formato equivalente
32.29467 Para desplegar información de dos variables con formato que define el número de dígitos que presenta la parte decimal, es: fprintf ( strcat ( ' x = %12 . ' , num2str ( q ) , ' f w = % 14 .' , num2str ( p ) ,' f |n ' ) , x , w ) x = 32.29467
w = - 12.4561276
De igual manera se puede programar para definir en cualquier momento el número de campos totales que utiliza el valor real.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 37 -
DECISIONES Es una expresión de relación matemática (pregunta) que se utiliza para tomar una alternativa de varias posibles y escoger la opción que le permita seguir la secuencia lógica de trabajo, de acuerdo a las necesidades momentáneas seleccionada del proceso, en la aplicación. La relación matemática con la que se estructura una decisión lógica, se genera de acuerdo a las condiciones de la aplicación, utilizando los operadores de relación entre dos parámetros: 1.-) Las variables. 2.-) Las constantes. 3.-) Las expresiones.
OPERADORE S DE RE LACI ÓN MATE MÁTICA: Igual a: Mayor que: Menor que:
== > <
Ejemplos de relaciones matemáticas: Variable con constante: Variable con variable: Variable con expresión: Expresión con constante: Expresión con expresión:
Mayor o igual que: Menor o igual que: Diferente a: (A >0 ) ( b >=w ) ( ( x ^ 2 + sin ( x ) ) < w ) ( ( a + ( b – 3 ) ) < = 5 ) ( ( b ^ 2 ) ~ = ( 4 * a * c ) )
ALGORI TMO ........... ............. ... Si (relación) (Si) ............. .. Caso Contrario (No) ......... Opción Cumplida. ........... ............ DE CI SI ÓN if
Solo con opción afirmativa (si):
if end
( instrucción if )
(relación) Instrucciones del proceso
Con la opción afirmativa (si) y la opción negativa (no):
if
(relación) Instrucciones del proceso
else
Instrucciones del proceso
end
PDF created with pdfFactory Pro trial version
>= <= ~=
MatLab
Ing. Wilian Andrade Medina
- 38 -
APL I CA CI ÓN DE PR UE BA: Una relación o pregunta ejecutada, presenta un CERO cuando no la cumple o es falsa y presenta un UNO cuando es verdadera, por consiguiente:
>> x = 13 ; >> x = = 15.8 ans =
0
>> x = = 13 ans =
% Pregunta falsa.
% Pregunta verdadera. 1
Por medio de instrucciones en la ventana del Command Window o generando un programa *.m en MatLab, como un ejemplo se ejecuta la programación que determina y despliega el número mayor entre dos valores cualquiera.
1.- ) Salida del resultado sin “Mensaje”: a = input ( ' Ingrese el primer dato = ' ) ; b = input ( ' Ingrese el segundo dato = ' ) ; if (a > b) m=a; else m=b; end disp ( m ) ; Ingrese el primer dato = 3 Ingrese el segundo dato = 6 6
2.- ) Salida del resultado con un “Mensaje”: a = input ( ' Ingrese el primer dato = ' ) ; b = input ( ' Ingrese el segundo dato = ' ) ; if a > b m=a; else m=b; end disp ( ' E l número mayor es = ' ) ; disp ( m ) ; Ingrese el primer dato = - 5 Ingrese el segundo dato = 22
E l número mayor es = 22
PDF created with pdfFactory Pro trial version
% %
I ngreso de datos Decisión.
MatLab
Ing. Wilian Andrade Medina
- 39 -
NI DO DE DECI SIONE S. Cuando en una aplicación por su proceso matemático o lógico, la continuidad obliga a seleccionar la secuencia del proceso entre de DOS o más opciones como resultados de la lógica de definición, se utiliza dos o más decisiones, que permitan disponer de las opciones necesarias; logrando diseñar los conocidos NIDOS DE DECISIONES, que entregan respectivamente cada una de las opciones solicitadas o diseñadas para la aplicación.
ALGORI TMO: ........... ............. ... Si (relación1) (Si) Si (relación2) (Si) ........... ...... ........... ...... Caso Contrario . . . . (No) ............ ....... ............ ....... Opción Cumplida2 (end) Caso Contrario . . . . (No) ............ ......... ............ ......... Opción Cumplida1 (end) ........... ........ ............. ......
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 40 -
NI DO DE DECI SIONE S if. La estructura de un nido de decisiones, se ajusta al siguiente esquema:
if
(relación1)
if
(relación2) Instrucciones del proceso
else
end
else
end
Instrucciones del proceso
Instrucciones del proceso
Instrucciones del proceso
Por medio de instrucciones en la ventana del Command Window o generando un programa *.m en MatLab, se ejecuta programación para determinar y desplegar el número mayor entre tres valores cualquiera.
% Aplicación con Nido de decisiones:
a = input ( ' Ingrese el primer dato = ' ) ; b = input ( ' Ingrese el segundo dato = ' ) ; c = input ( ' Ingrese el tercer dato = ' ) ;
if a > b
if a > c
m=a;
% Nido de decisiones
else m=c;
else
end if b > c
m=b ;
else m=c ; end end fprintf ( ' El número mayor es = % 5 d \ n ' , m )
Ejecutando la aplicación varias veces para comprobar las posibilidades de funcionamiento del nido de decisiones, se presenta los siguientes resultados:
1.- En una primera prueba de funcionamiento, se presenta: Ingrese el primer dato = 33 Ingrese el segundo dato = - 55 Ingrese el tercer dato = 0 El número mayor es =
33
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 41 -
2.- En una segunda prueba de funcionamiento, se presenta: Ingrese el primer dato = 8 Ingrese el segundo dato = - 3 Ingrese el tercer dato = 11 El número mayor es = 11
3.- En una tercera prueba de funcionamiento, se presenta: Ingrese el primer dato = 6 Ingrese el segundo dato = 36 Ingrese el tercer dato = 21 El número mayor es =
36
DE CI SIÓN CON RE LACIÓN DOBLE Cuando se dispone de una decisión con relación doble, la decisión permite manejar operadores lógicos tales como el operador & ( y ), el operador | ( o ) y el operador ~ ( no ). Para facilitar la unión y continuidad lógica de las relaciones matemáticas, logrando la opción deseada de entre dos posibilidades, sea la verdadera ( si ) o sea la falsa ( no ); por lo tanto si Ω es la pregunta o relación doble, de acuerdo al operador lógico utilizado en la decisión, se tiene que: Relación Doble con And ( y ):
β &
Relación Doble con Or ( o ):
β
£
| £
Si
Ω
No β
£
si si no no
si no si no
β
&£
β
£
si no no no
si
si no si no
si
no no
( Si y solo Si . . . )
PDF created with pdfFactory Pro trial version
β |
£
si si si no
( Si el uno o Si el otro . . . )
MatLab
Ing. Wilian Andrade Medina
- 42 -
Determinar el número mayor entre tres valores conocidos cualesquiera:
% Aplicación con una relación matemática doble: a = input ( ' Ingrese el primer dato = ' ) ; b = input ( ' Ingrese el segundo dato = ' ) ; c = input ( ' Ingrese el tercer dato = ' ) ;
if ( a > b ) & ( a > c ) else
% Decisión con relación doble.
m=a;
if ( b > c )
m=b ;
else
end
m= c ;
end fprintf ( ' El número mayor es = % 5 d \ n ' , m )
Ejecutando la aplicación varias veces para comprobar las posibilidades de funcionamiento del nido de decisiones con relación doble, se presenta los siguientes resultados:
1.- En una primera prueba de funcionamiento, se presenta: Ingrese el primer dato = - 3 Ingrese el segundo dato = 5 Ingrese el tercer dato = 1
E l número mayor es =
5
2.- En una segunda prueba de funcionamiento, se presenta: Ingrese el primer dato = 4 Ingrese el segundo dato = 1 Ingrese el tercer dato = 11
E l número mayor es =
11
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 43 -
DE CI SI ONE S MÚLTI PLE S ( instrucción switch - case ) Con la instrucción switch se puede elaborar relaciones matemáticas que permitan disponer de decisiones múltiples, es decir que facilite la selección de una opción de dos o más posibles de ejecutar. La instrucción switch presenta la siguiente estructura lógica para seleccionar opciones:
switch variable case valor1 ,
Instrucciones del proceso ;
case { valor2 , valor3 , valor4 , …… } , Instrucciones del proceso ; otherwise
Instrucciones del proceso ;
end Si se dispone como alternativas de cálculos, procesos que se determinen como opciones para ejecutarse al cumplir condicionamientos, switch se estructuraría de acuerdo a la lógica que se presenta como en el algoritmo siguiente: si x = 5 entonces y = 2 * x si = 8 , 10 , 12 entonces y = sqrt ( x + 1 ) si x cualquier valor , entonces y = x ^ 3 La programación de la lógica con la instrucción switch , se presentaría como:
% Programación de la lógica de la decisión múltiple switch
x = input ( ' Ingrese un valor como 5, 8, 10,12 o cualquier dato = ' ) ;
switch x
case 5 ,
y = 2 * x ;
case { 8 , 10 , 12 } ,
y = sqrt ( x + 1 ) ;
otherwise
y = ( x ^ 3 ) ;
end fprintf ( ' El resultado es = % 10.4 f \ n ' , m )
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 44 -
Ejecutando la aplicación varias veces para comprobar las posibilidades de funcionamiento de la instrucción con opciones múltiples switch , se presenta los siguientes resultados: Ingrese un valor como 5, 8, 10,12 o cualquier dato = 25 El resultado es = 15625.0000 Ingrese un valor como 5, 8, 10,12 o cualquier dato = 12 El resultado es = 3.6056 Ingrese un valor como 5, 8, 10,12 o cualquier dato = 5 El resultado es = 10.0000
La decisión múltiple, puede disponer de varias posibilidades de opciones que son programadas con la instrucción case y que cumplido el pedido culmina con la decisión:
% Programación con la decisión múltiple switch
x = input ( ' Ingrese un valor par del 2 al 8 como dato = ' ) ; switch x
case 2 ,
y = ' El número 2 es par ' ;
case 4 ,
y = ' El número 4 es par ' ;
case 6 ,
y = ' El número 6 es par ' ;
case 8 ,
y = ' El número 8 es par ' ;
otherwise
y = ' El número NO es par ' ;
end
disp ( y ) ;
% Imprime el mensaje seleccionado.
Ejecutando la aplicación se logra comprobar las posibilidades de selección programadas para su respectivo funcionamiento.
Ejecutado el programa, presenta los siguientes resultados: Ingrese un valor par del 2 al 8 como dato = 6 El número 6 es par Ingrese un valor par del 2 al 8 como dato = -5 El número NO es par
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 45 -
E LABORACI ÓN DE UN MENU DE TRABAJO Para generar un menú, por programación se puede disponer como ejemplo utilizando las instrucciones while y switch-case para el siguiente diseño: w=0
while (w<=0 ) || (w == 1) || (w == 2) || (w == 3) || (w==4) || (w~=uint8(w)) disp ( ' Opción 1 . . . . . . ' ) disp ( ' Opción 2 . . . . . . ' ) disp ( ' Opción 3 . . . . . . ' ) disp ( ' Opción 4
Salir ' )
w = input ( ' Ingrese la Opción = ' ) switch w case 1 ...... ...... ...... case 2 ...... ...... ...... case 3 ...... ...... ...... case 4 end end
end
Programación Opción 1
Programación Opción 2
Programación Opción 3
salida del menú cierre del switch cierre del while
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 46 -
CÁLCULO DE LAS RAÍ CES DE UNA ECUACI ÓN DE SE GUNDO GRADO. % Aplicando la lógica matemática para calcular los posibles tipos de solución de las % raíces de una ecuación parabólica, utilizando la referencia del discriminante:
clc A = input ( ' Ingrese el valor coeficiente de A = ' ) ; if ( A ~ = 0 ) B = input ( ' Ingrese el coeficiente de B = ' ) ; C = input ( ' Ingrese el coeficiente de C = ' ) ; D = B ^ 2 - 4 * A * C ; if ( D >= 0 ) if ( D > 0 ) % Soluciones reales diferentes. X1 = ( - B + sqrt ( D ) ) / ( 2 * A ) ; X2 = ( - B - sqrt ( D ) ) / ( 2 * A ) ; else X1 = ( - B ) / ( 2 * A ) ; % Soluciones reales iguales. X2 = X1 ; end fprintf ( ' X1 = % 8.4 f \ n ' , X1 ) ; fprintf ( ' X2 = % 8.4 f \ n ' , X2 ) ; else % Soluciones imaginarias. XR = - B / ( 2 * A ) ; XI = sqrt ( abs ( D ) ) / ( 2 * A ) ; fprintf ( ' X1 = % 8.4 f + % 8.4 f i \ n ' , XR , XI ) ; fprintf ( ' X2 = % 8.4 f - % 8.4 f i \ n ' , XR , XI ) ; end else disp( ' No existe Ecuación de Segundo Grado ' ) ; disp( ' Coeficiente A es igual a cero ' ) ; end
1.- )
Prueba de ejecución para cuando el coeficiente A es CE RO ( A = 0 ).
Ingrese el valor coeficiente de A = 0 No existe Ecuación de Segundo Grado Coeficiente A es igual a cero
2.- )
Prueba de ejecución para cuando el coeficiente A es DI F E RE NTE D E CE RO.
Ingrese el valor coeficiente de A = 1 Ingrese el coeficiente de B = 4 Ingrese el coeficiente de C = 4 X1 = -2.0000 X2 = -2.0000 Ingrese el valor coeficiente de A = 1 Ingrese el coeficiente de B = 4 Ingrese el coeficiente de C = -4 X1 = 0.8284 X2 = -4.8284
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 47 -
Ingrese el valor coeficiente de A = 1 Ingrese el coeficiente de B = -2 Ingrese el coeficiente de C = 8 X1 = 1.0000 + X2 = 1.0000 -
3.- )
2.6458 i 2.6458 i
Realizando un cambio de programación en el cálculo de las raíces imaginarias o complejas
% Aplicación matemática de la función roots, propia de MatLab, para calcular % raíces de una ecuación, de modo directo.
clc A = input ( ' Ingrese el valor coeficiente de A = ' ) ; if ( A ~ = 0 ) B = input ( ' Ingrese el coeficiente de B = ' ) ; C = input ( ' Ingrese el coeficiente de C = ' ) ; D = B ^ 2 - 4 * A * C; if ( D >= 0) if ( D > 0 ) disp( ' Raíces REALES diferentes ' ) ; X1 = ( - B + sqrt ( D ) ) / ( 2 * A ) ; X2 = ( - B - sqrt ( D ) ) / ( 2 * A ) ; else disp( ' Raíces REALES iguales ' ) ; X1 = ( - B ) / ( 2 * A ) ; X2 = X1; end fprintf ( ' X1 = % 8.4 f \ n ' , X1 ) ; fprintf ( ' X2 = % 8.4 f \ n ' , X2 ) ; else
p = [ A B C ] ;
disp( ' RAÍCES COMPLEJAS ( Imaginarias ) ' ) ; W = roots ( p ) ; disp( W ) ; % PROCESOS MATEMÁTICOS REEMPLAZADOS por Técnicas MatLab % XR = - B / ( 2 * A ); % XI = sqrt ( abs ( D ) ) / ( 2 * A ); end else disp( ' No existe Ecuación de Segundo Grado ' ) ; disp( ' Coeficiente A es igual a cero ' ) ; end
3.1.- ) Prueba de ejecución para cuando el coeficiente A es CE RO ( A = 0 ) Ingrese el valor coeficiente de A = 0 No existe Ecuación de Segundo Grado Coeficiente A es igual a cero
PDF created with pdfFactory Pro trial version
MatLab
3.2.- )
Ing. Wilian Andrade Medina
- 48 -
Prueba de ejecución para cuando el coeficiente A es DI F E RE NTE D E CE RO.
Ingrese el valor coeficiente de A = 1 Ingrese el coeficiente de B = 4 Ingrese el coeficiente de C = -4 Raíces REALES diferentes X1 = X2 =
0.8284 -4.8284
Ingrese el valor coeficiente de A = 1 Ingrese el coeficiente de B = 4 Ingrese el coeficiente de C = 4 Raíces REALES iguales X1 = X2 =
-2.0000 -2.0000
Ingrese el valor coeficiente de A = 1 Ingrese el coeficiente de B = -2 Ingrese el coeficiente de C = 8 RAÍCES COMPLEJAS (Imaginarias) 1.0000 + 2.6458i 1.0000 - 2.6458i Se genera un programa cuadratica.mat para guardar los resultados producidos de la ejecución del programa cuadratica.m
>> save cuadratica Se borra de memoria los valores guardados en cada variable de la ejecución del programa cuadratica.m
>> clear all Se carga a memoria los valores guardados en cada variable de la ejecución del programa cuadratica.m en el programa cuadratica.mat
>> load ( ' cuadratica.mat ' ) Se borra el programa cuadratica.mat
>> delete cuadratica.mat
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 49 -
CI CLOS ( B u c l e s ) Se utiliza un ciclo o bucle para realizar el CONTROL de un conjunto de operaciones o procesos que se repetirán dentro de una aplicación. Son conocidos como los CONTROLES de CICLO o como CONTADORES, dado que repiten el ciclo mientras se cumple una condición o también desde un valor inicial hasta un valor final de conteo de las iteraciones o ciclos, disponiendo de una variación de repetición en cada ciclo.
CONTROL DE CI CLOS La instrucción de control de ciclos proporciona una manera más flexible y estructurada de realizar los ciclos o blucles. Repite un conjunto de instrucciones condicionada MI E NTRAS una Relación es True (verdadera), su estructura es:
while Relación
. . . . Instrucciones del proceso.
end
. . . . Instrucciones del proceso.
Determinar si el ingreso de un valor cualquiera es POSI TI VO
% Aplicación con el uso del ciclo de control While: n = input ( ' Ingrese un valor positivo = ' ) ;
while n < 0
fprintf ( ' Usted ingreso un valor NEGATIVO = % 6 d \ n ' , n ) n = input ( ' Por favor ingrese un valor positivo = ' ) ;
end
fprintf ( ' Gracias, el valor que ingreso es el = % 6 d \ n ' , n ) Al ejecutar el programa el funcionamiento del control de ciclo While realiza la lógica de control de acuerdo a las opciones del bucle que presenta la relación matemática expresada.
Ejecutado el programa, presenta los siguientes resultados:
Ingrese un valor positivo = - 33 Usted ingreso un valor NEGATIVO = -33 Por favor ingrese un valor positivo = 100 Gracias, el valor que ingreso es el = 100 Ingrese un valor positivo = 0 Gracias, el valor que ingreso es el =
PDF created with pdfFactory Pro trial version
0
MatLab
Ing. Wilian Andrade Medina
- 50 -
CONTADORES Los contadores se utilizan para generar ciclos que generen iteraciones de trabajo desde un valor inicial m a un valor final N , considerando una variación de conteo k por cada iteración. Controlan procesos con un número limitado de iteraciones. De modo general se dispone de los siguientes contadores:
1.-) Contador Mientras que . . . . ( while ) ESTRUCTURA: variable = valorinicio while ( variable < valorfinal ) . . . . . Instrucciones del Proceso. variable = variable + ( valor variación ciclo )
end
EJEMPLO GENERAL: Cont = m while ( Cont < N ) . . . . . Instrucciones del Proceso. Cont = Cont + k
end
2.- ) Contador General ESTRUCTURA: for variable = valorinicio : ( valor variación ciclo ) : valorfinal . . . . . Instrucciones del Proceso.
end
EJEMPLO GENERAL: for Cont = m : k : N . . . . . Instrucciones del Proceso.
end
3.- ) Contador Automático ESTRUCTURA: for variable = valorinicio : valorfinal . . . . . Instrucciones del Proceso.
end
EJEMPLO GENERAL:
for Cont = m : N end
. . . . . Instrucciones del Proceso
PDF created with pdfFactory Pro trial version
MatLab
Parámetro Cont m N k
Ing. Wilian Andrade Medina
- 51 -
Descripción
Variable numérica que se utiliza como Variable Índice del contador de ciclos. El nombre de la variable no puede ser de tipo Boolean o nombre de un arreglo de vector o matriz. Parámetro Requerido. Valor inicial del contador, definido por una constante o nombre de una variable predefinida. Parámetro Requerido. Valor final del contador, definido por una constante o nombre de una variable predefinida. Parámetro Requerido Valor de variación del contador, que cambia cada vez que se ejecuta el ciclo o iteración, definido por una constante o un nombre de variable predefinida. Si no se especifica, el valor predeterminado de incremento es la unidad (1) siempre que la variación de conteo sea ascendente.
El parámetro k puede ser positivo o negativo. El valor del parámetro determina la manera con la que se procesa el conteo por cada iteración. Si el valor de k es positivo, el conteo es ascendente del valor inicial de m al valor final de N Si el valor de k es negativo, el conteo es descendente del valor inicial de m al valor final de N
APL I CACI ONE S CON E L CONTADOR WHI LE 1.- )
Conocido un grupo de n valores reales positivos de m, calcular la raíz cuadrada, el cuadrado, el inverso del número y el promedio de los resultados pedidos.
% Aplicación cíclica, utilizando como contador al control de ciclos While
format short clc ; n = input ( ' Ingrese un valor de N elementos = ' ) ; while n < = 0 n = input ( ' Ingrese un valor de N elementos = ' ) ; end i=0; while i < n m = input ( ' Ingrese un número real positivo = ' ) ; while m < = 0 m = input ( ' Ingrese un número real positivo = ' ) ; end r = sqrt ( m ) ; c=m^2; a = 1 / m ; p = ( a + r + c ) / 3 ; fprintf ( ' Número Real Positivo = % 9.2 f \ n ' , m ) ; fprintf ( ' Raíz Cuadrada = % 9.5 f \ n ' , r ) ; fprintf ( ' Número al Cuadrado = % 9.2 f \ n ' , a ) ; fprintf ( ' Inverso del Número = % 9.5 f \ n ' , a ) ; fprintf ( ' Promedio resultados = % 9.2 f \ n ' , p ) ; i=i+1; end
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
- 52 -
Ejecutado el programa, presenta los siguientes resultados:
Ingrese un valor de N elementos = 3 Ingrese un número real positivo = -3.12 -3.12 Ingrese un número real positivo = 22 Número Real Positivo = 22.00 Raíz Cuadrada = 4.69042 Número al Cuadrado = 0.05 Inverso del Número = 0.04545 Promedio resultados = 162.91 Ingrese un número real positivo = 2.45 Número Real Positivo = 2.45 Raíz Cuadrada = 1.56525 Número al Cuadrado = 0.41 Inverso del Número = 0.40816 Promedio resultados = 2.66 Ingrese un número real positivo = 0.8765 Número Real Positivo = 0.88 Raíz Cuadrada = 0.93622 Número al Cuadrado = 1.14 Inverso del Número = 1.14090 Promedio resultados = 0.95
2.- ) Conocido un grupo de n valores que representan al tiempo t en segundos que domaran los vehículos al trasladarse de punto A al punto B, calcular el tiempo equivalente en h Horas, m Minutos y S segundos.
% Apli A plica caci ción ón cícli cíclica ca,, uti utililiza zando ndo co com mo conta contad dor al control de ci ciclos clos whi while le
n = input ( ' Ingrese un número N de vehículos = ' ) ; while n < = 0 n = input ( ' Ingrese un número N de vehículos = ' ) ; end i=0; while ( i < n ) t = input ( ' Ingrese el tiempo ti empo en segundos que se demora el vehículo = ' ) ; while ( t < 0 ) t = input ( ' Ingrese el tiempo ti empo en segundos que se demora el vehículo = ' ) ; end h = fix ( t / 3600 ) ; r = rem ( t , 3600 ) ; m= fix ( r / 60 ) ; s = rem ( r , 60 ) ; fprintf ( ' Tiempo Total = % 12 d segundos \ n ' , t ) fprintf ( ' Horas = % 5 d \n ' , h ) fprintf ( ' Minutos = % 5 d \n ' , m ) fprintf ( ' Segundos = % 5 d \n ' , s ) i=i+1; end
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
- 53 -
Ejecutado el programa, presenta los siguientes resultados:
Ingrese un número N de vehículos = 2 Ingrese el tiempo en segundos que se demora el vehículo = 34567 34567 Tiempo Total = 34567 segundos Horas = 9 Minutos = 36 Segundos = 7 Ingrese el tiempo en segundos que se demora el vehículo = 432 Tiempo Total = 432 segundos Horas = 0 Minutos = 7 Segundos = 12
APL A PL I CACI CA CI ONE S CON E L CONTA CON TAD D OR F OR 1.- ) Conocida la función parabólica y = 3 * x 2 – 8 * x – 15, calcular los respectivos valores de y si los valores de x están representados por los n primeros números impares positivos.
% Aplicación cíclica, utilizando al contador for:
n = input ( ' Ingrese un valor N, para los primeros pri meros números impares = ' ) ; while n < = 0 n = input ( ' Ingrese un valor N, para los primeros pri meros números impares = ' ) ; end disp( ' X Y' ) ; for i = 1 : n x = 2 * i - 1 ; y = 3 * x ^ 2 - 8 * x - 15 15 ; disp( [ x , y ] ) end
Ejecutado el programa, presenta los siguientes resultados:
Ingrese un valor N, para los primeros números impares = 7 X
Y
1 3 5 7 9 11 13
-20 -12 20 76 156 260 388
PDF created with pdfFactory Pro trial version
MatL MatL ab
2.- )
Ing. Wilian Andrade Medina
- 54 -
Conocido un grupo de N números enteros positivos de W, calcular la tabla de multiplicar de los M primeros términos, de aquellos números que son pares.
% Apli Aplica caci ción ón cí cícli clica ca,, utili uti liza zando ndo al conta contado dorr for
n = input ( ' Ingrese un valor N, para definir el e l número de casos = ' ) ; while n < = 0 n = input ( ' Ingrese un valor N, para definir el e l número de casos = ' ) ; end m = input ( ' Ingrese un valor M, para el número de términos té rminos de la tabla de multiplicar = ' ) ; while m < = 0 m = input ( ' Ingrese un valor M, para el número de términos té rminos de la tabla de multiplicar = ' ) ; end for e = 1 : n w = input ( ' Ingrese un valor W entero positivo positi vo = ' ) ; while w < = 0 w = input ( ' Ingrese un valor W entero positivo positi vo = ' ) ; end if ( rem ( w , 2 ) = = 0 ) % Selección del número par . for i = 1 : m y = w * i ; fprintf ( ' % 4 d * % 4 d = % 6 d \n ' , w , i , y ) end else disp( ' El número no es par ' ) end end
Ejecutado el programa, presenta los siguientes resultados:
Ingrese un valor N, para definir el número de casos casos = 3 Ingrese un valor M, para el número de términos de la tabla de multiplicar = 12 Ingrese un valor W entero positivo = 3 El número no es par Ingrese un valor W entero positivo = 6 6 6 6 6 6 6 6 6 6 6 6 6
* * * * * * * * * * * *
1 2 3 4 5 6 7 8 9 10 11 12
= = = = = = = = = = = =
6 12 18 24 30 36 42 48 54 60 66 72
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 55 -
Ingrese un valor W entero positivo = 10 10 10 10 10 10 10 10 10 10 10 10 10
3.- )
* * * * * * * * * * * *
1 2 3 4 5 6 7 8 9 10 11 12
= = = = = = = = = = = =
10 20 30 40 50 60 70 80 90 100 110 120
Conocido un grupo de N valores enteros de X, calcular el digito de las unidades y el digito de las decenas de cada valor de X que sea del grupo de las decenas positivas.
% Aplicación cíclica, utilizando al contador for
n = input ( ' Ingrese un valor N, para definir el número de casos = ' ) ; while n < = 0 n = input ( ' Ingrese un valor N, para definir el número de casos = ' ) ; end for i = 1 : n x = input ( ' Ingrese un número entero de las decenas positivas = ' ) ; if ( ( x > = 10 ) & ( x < 100 ) ) u = rem ( x , 10 ) ; d = fix ( x / 10 ) ; fprintf ( ' El dígito de las unidades es = % 2 d \ n ' , u ) fprintf ( ' El dígito de las decenas es = % 2 d \ n ' ,d ) else disp( ' No es número del grupo de las decenas positivas ' ) end end
Ejecutado el programa, presenta los siguientes resultados:
Ingrese un valor N, para definir el número de casos = 3 Ingrese un número entero de las decenas positivas = 234 No es número del grupo de las decenas positivas Ingrese un número entero de las decenas positivas = 45 El dígito de las unidades es = 5 El dígito de las decenas es = 4 Ingrese un número entero de las decenas positivas = 83 El dígito de las unidades es = 3 El dígito de las decenas es = 8
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
COMANDO break
- 56 -
( I NTER RUMPE UNA RE PE TI CI ÓN O CI CLO )
El comando break , ordena la finalización de la ejecución de un proceso dentro de un ciclo de conteo for o en un ciclo de control while Si se conoce un grupo de N valores cualquiera de X , calcular la raíz cuadrada de los valores positivos, si el valor ingresado es un valor negativo, desplegar el mensaje “ERROR, Es un valor
negativo” y finalizar el proceso.
% Aplicación del comando break, interrumpiendo proceso dentro del contador for.
n = input ( ' Ingrese un valor N, para definir el número de datos = ' ) ; while n < = 0 n = input ( ' Ingrese un valor N, para definir el número de datos = ' ) ; end for i = 1 : n x = input ( ' Ingrese un valor cualquiera = ' ) ; if x < 0 disp( ' ERROR, Es un valor negativo ' ) ; break ; else r = sqrt ( x ) ; fprintf ( ' Valor de X = % 10.4 f \ n ' , x ) ; fprintf ( ' Raíz Cuadrada = % 10.6 f \ n ' , x ) ; end end
Ejecutado el programa, presenta los siguientes resultados:
Ingrese un valor N, para definir el número de datos = 3 Ingrese un valor cualquiera = 33 Valor de X = Raíz Cuadrada =
33.0000 33.000000
Ingrese un valor cualquiera = 56.23 Valor de X = Raíz Cuadrada =
56.2300 56.230000
Ingrese un valor cualquiera = -5.4 ERROR, Es un valor negativo
COMANDO continue
( I NTE RR UMPI R UNA E JE CUCI ÓN )
Hace que pase inmediatamente a la siguiente iteración del ciclo for o del control de ciclo while , no ejecuta las instrucciones que se encuentran programadas entre el comando continue y la instrucción end del ciclo.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 57 -
SUM ATORI A POR LE CTURA DE DATOS Las SUMATORIAS se identifican como procesos cíclicos de acumulación de valores definidos por lectura de datos o por valores que se han calculado a partir de datos. Se define el número de elementos o casos con la frase :
. . . un grupo de N valores de . . . . Se considera que la sumatoria se produce de manera directa, una vez que el elemento o dato ha sido ingresado (DATO LEÍDO).
S =
x
= x + x + x + x + x +. ... .. + x
( N veces )
Se establece como modelo típico para el caso, la aplicación que permite el cálculo de una acumulación de valores y también el modelo del cálculo de un promedio, sea cualquiera la variable de acumulación definida (edad, estatura, peso, tensión, resistencia, valores, números, otros datos). EJEMPLOS:
1.- )
Calcular la sumatoria de las edades definidas en años, de un grupo de N personas:
% Aplicación con un proceso de acumulación de datos o sumatoria.
n = input ( ' Ingrese un valor que defina la cantidad de personas = ' ) ; while n < = 0 n = input ( ' Ingrese un valor que defina la cantidad de personas = ' ) ; end s = 0 ; for i = 1 : n edad = input ( ' Edad de la persona = ' ) ; while edad < = 0 edad = input ( ' Ingrese un valor positivo como Edad de la persona = ' ) ; end s = s + edad ; end fprintf ( ' La cantidad de personas es = % 6 d \ n ' , n ) fprintf ( ' La suma de las edades es = % 7 d \ n ' , s )
Ejecutado el programa, presenta los siguientes resultados:
Ingrese un valor que defina la cantidad de personas = 5 Edad de la persona = 22 Edad de la persona = 17 Edad de la persona = 32 Edad de la persona = 19 Edad de la persona = 25 La cantidad de personas es = La suma de las edades es =
5 115
PDF created with pdfFactory Pro trial version
MatLab
2.- )
Ing. Wilian Andrade Medina
- 58 -
Calcular el promedio de las estaturas definidas en metros y no mayores a 2 metros, disponibles de un grupo de N personas.
% Aplicación con un proceso de acumulación de datos o sumatoria y cálculo del promedio.
n = input ( ' Ingrese un valor que defina el número de personas = ' ) ; while n < = 0 n = input ( ' Ingrese un valor que defina el número de personas = ' ) ; end s = 0 ; for i = 1 : n e = input ( ' Estatura en metros, de la persona = ' ) ; while ( e < = 0 ) | ( e > 2 ) e = input ( ' Ingrese un valor (entre 0 y 2)como Estatura en metros de la persona = ' ) ; end s = s + e ; end p = s / n ; fprintf ( ' La cantidad de personas es = % 6 d \ n ' , n ) fprintf ( ' La suma de las Estaturas es = % 8.4 f \ n ' , s ) fprintf ( ' El promedio de las Estaturas es = % 9.4 f \ n ' , p )
Ejecutado el programa, presenta los siguientes resultados:
>> promedio1 Ingrese un valor que defina el número de personas = 5 Estatura en metros, de la persona = 3 Ingrese un valor (entre 0 y 2) como Estatura en metros de la persona = 1.45 Estatura en metros, de la persona = 1.66 Estatura en metros, de la persona = 1.87 Estatura en metros, de la persona = 1.2 Estatura en metros, de la persona = 2 La cantidad de personas es =
5
La suma de las Estaturas es =
8.1800
El promedio de las Estaturas es =
3.- )
1.6360
Calcular el promedio de los valores que a las vez sean múltiplos de 3 y múltiplos de 5, si se dispone de un grupo de N valores enteros positivos.
n = input ( ' Ingrese un valor de N, número de datos = ' ) ; while n < = 0 n = input ( ' Por favor ingrese un valor positivo de N número de datos = ' ) ; end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
s = 0 ; m=0; for i = 1 : n x = input ( ' Ingrese un valor de x, número entero positivo = ' ) ; while x < = 0 x = input ( ' Por favor ingrese un número entero positivo = ' ) ; end % Determinación de los números que son múltiplos de 3 y de cinco a la vez. if ( ( rem ( x , 3 ) == 0 ) & ( rem ( x , 5 ) == 0 ) ) s = s + x ; m=m+1; else disp( x ) disp( ' No cumple el requisito ' ) end end if ( m == 0 ) disp( ' La sumatoria es = 0 ' ) else p = s / m ; fprintf ( ' Total de elementos = % 7 d \ n ' , m ) fprintf ( ' La sumatoria es = % 7 d \ n ' , s ) fprintf ( ' El promedio es = % 7.2 f \ n ' , p ) end
Ejecutado el programa, presenta los siguientes resultados:
Ingrese un valor de N, número de datos = 5 Ingrese un valor de x, número entero positivo = 15 Ingrese un valor de x, número entero positivo = 33 33 No cumple el requisito Ingrese un valor de x, número entero positivo = 60 Ingrese un valor de x, número entero positivo = 25 25 No cumple el requisito Ingrese un valor de x, número entero positivo = 105 Total de elementos = 3 La sumatoria es = 180 El promedio es = 60.00
PDF created with pdfFactory Pro trial version
- 59 -
MatLab
Ing. Wilian Andrade Medina
- 60 -
SE RI E S DE SARROLLADAS POR G E NE RACI ÓN DE TÉ RMI NOS CON E L VA LOR DE LA VARI ABLE Í NDICE DEL CONTADOR La generación del elemento o término de la serie numérica, se efectúa por medio de un cálculo, utilizando el valor que dispone la variable índice del contador. En las series numéricas el número de términos es INFINITO, se limita el número de términos con la definición de los N términos necesarios para el cálculo de la serie. Se define el número de términos con la frase :
. . . los N primeros términos de . . . GENERACIÓN DE SERIES, UTILIZANDO COMO MULTIPLICADOR AL CONTADOR:
1.-
Seri e ( W ):
2
4
6
8
10
12 . . . . . . ( 2 * N )
i=1,N W=2*i
De modo general el diagrama representa la generación de series numéricas de acuerdo a la siguiente estructura:
i=1,N W=m*i
Dónde: W, representa el término de la serie matemática calculada. m, representa cualquier valor o expresión aritmética que permita generar el término de la serie matemática.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 61 -
EJEMPLOS: 1.- ) Calcular el valor de Y, representado por la serie conformada por los n primeros números impares:
Y = 1 + 3 +
5 +
7 +
9 + ..........
n = input ( ' Ingrese el número de términos para la serie = ' ) ; while n < = 0 n = input ( ' Por favor ingrese bien, un valor que defina el número de términos para la serie = ' ) ; end Y=0; for i = 1 : n w = 2 * i – 1 ; Y = Y + w ; % Serie numérica. end fprintf ( ' Número de términos de la serie = % 6 d \ n ' , n ) fprintf ( ' Valor de la serie Y = % 8 d \ n ' , Y )
Ejecutado el programa, presenta los siguientes resultados:
Ingrese el número de términos para la serie = 5 Número de términos de la serie = 5 Valor de la serie Y = 25
2.- )
Calcular el valor de S, representado por la serie conformada por el inverso de los n primeros números enteros positivos: s = 1 / 1 + 1 / 2 +
1/3 +
1/4 +
1/5
+ ..........
MODE LO UNO: n = input ( ' Ingrese la cantidad de términos de la serie = ' ) ; s = 0 ; % Utilizando control de ciclo while. while n > 0 s = s + 1 / n ; disp ( 1 / n ) ; n = n – 1 ; % Serie numérica. end fprintf ( ' Número de términos de la serie = % 6 d \ n ' , n ) fprintf ( ' Valor de la serie s = % 8.4 f \ n ' , s )
Ejecutado el programa, presenta los siguientes resultados:
Número de términos de la serie = 5 0.2000 0.2500 0.3333 0.5000 1 Valor de la serie s = 2.2833
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 62 -
MODE LO DOS: % Aplicación matemática que utiliza un contador for para generar % los términos de la serie numérica.
n = input ( ' Ingrese la cantidad de términos de la serie = ' ) ; s = 0 ; for i = 1 : n s = s + 1 / i ; disp( 1 / i ) ; end fprintf ( ' Número de términos de la serie = % 6 d \ n ' , n ) fprintf ( ' Valor de la serie s = % 8.4 f \ n ' , s )
Ejecutado el programa, presenta los siguientes resultados:
Ingrese la cantidad de términos de la serie = 6 1 0.5000 0.3333 0.2500 0.2000 0.1667 Número de términos de la serie = Valor de la serie s = 2.4500
6
3.- ) Calcular el valor de Omega para valores de x que sean múltiplos de 3, si se dispone de un grupo de n valores enteros, considerando los k primeros términos de la serie definida por:
Omega = 0.23 + 2 * x / 3 -
4 * x 3 / 5 + 8 * x 5 / 7 - 16 * x 7 ) / 9 + …
% Aplicación matemática, para calcular el valor de la serie. % para datos de X que se consideran sean múltiplos de 3.
n = input ( ' Ingrese el número de valores de x = ' ) ; while n < = 0 n = input ( ' Favor que sea positivo, Ingrese el número de valores de x = ' ) ; end k = input ( ' Ingrese el número de términos de la serie = ' ) ; while k < = 0 k = input ( ' Favor que sea positivo, Ingrese el número de términos de la serie = ' ) ; end for i = 1 : n x = input ( ' Ingrese el valor entero múltiplo de 3 = ' ) ; if ( rem ( x , 3 ) == 0 ) omega = 0.23 ; for j = 1 : ( k – 1 ) omega = omega + ( ( 2 * j ) * x ^ ( ( 2 * j ) – 1 ) / ( ( 2 * j ) + 1 ) ) * ( - 1 ) ^ ( j + 1 ) ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 63 -
end fprintf ( ' Valor múltiplo de 3 = % 5 d \n ' , x ) fprintf ( ' Valor serie omega = % 12.4 f \ n ' , omega ) disp( ' ' ) else fprintf ( ' No es múltiplo de 3 el valor = % 5 d \ n ' , x ) disp( ' Por lo tanto no se puede calcular la serie ' ) disp( ' ' ) end end
Ejecutado el programa, presenta los siguientes resultados:
>> serie Ingrese el número de valores de x =3 Ingrese el número de términos de la serie = 12 Ingrese el valor entero múltiplo de 3 = 22 No es múltiplo de 3 el valor = 22 Por lo tanto no se puede calcular la serie Ingrese el valor entero múltiplo de 3 = 6 Valor múltiplo de 3 = 6 Valor serie omega = 20418432687817172.0000 Ingrese el valor entero múltiplo de 3 = 12 Valor múltiplo de 3 = 12 Valor serie omega = 43702718079101305000000.0000
MODE LO DE L F ACTORI AL DE UN NÚME RO N ( n ! ) El uso de multiplicaciones sucesivas y continuas se fundamenta en el modelo de una sumatoria, considerando que las condiciones operativas cambian por el hecho de los principios matemáticos en la multiplicación y división. El ejemplo típico de multiplicaciones sucesivas es el FACTORIAL de un número N. 1! = 1 * 1 2! = 1 * 1 * 2 3! = 1 * 1 * 2 * 3 .......... n! = 1 * 1 * 2 * 3 * 4 * . . . . . . . . . . * n
Calcular el factorial de un número entero positivo cualquiera.
n = input ( ' Ingrese número (Factorial de) = ' ) ; while n < = 0
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 64 -
n = input ( ' Ingrese número positivo (Factorial de) = ' ) ; end f = 1 ; for j = 1 : n f = f * j ; end fprintf ( ' Número = % 6 d \ n ' , n ) fprintf ( ' Factorial = % 20 d \ n ' , f )
Ejecutado el programa, presenta los siguientes resultados:
Ingrese número (Factorial de) = 20 Número = 20 Factorial = 2432902008176640000 Ingrese número (Factorial de) = 44 Número = 44 Factorial = 2.658272 e+54 Ingrese número (Factorial de) = 100 Número = 100 Factorial = 9.332622 e+157
APL I CA CI ONE S MATE MÁTI CAS CON SE RI E S Y F ACTORI ALE S 1.- ) Calcular el valor de Y para los N primeros números enteros positivos impares, considerando los k primeros términos de la serie definida por: Y = - x 3 / 2 ! + 2 * x 5 / 4 ! -
3 * x 7 / 6 ! + 4 * x 9 / 8 ! -
% Cálculo del valor de una serie matemática, utilizando una serie numérica % Y aplicando en cada término de la serie el cálculo del factorial de los números
.......
n = input ( ' Ingrese el número de valores de x = ' ) ; while n < = 0 n = input ( ' Favor que sea positivo, Ingrese el número de valores de x = ' ) ; end k = input ( ' Ingrese el número de términos de la serie = ' ) ; while k < = 0 k = input ( ' Favor que sea positivo, Ingrese el número de términos de la serie = ' ) ; end for i = 1 : n x = 2 * i – 1 ; % Generación de los N primeros número impares. y = 0 ; for j = 1 : k f = 1 ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 65 -
q=2*j; for L = 1 : q % Generación del factorial para los números pares . f = f * L ; end y = y + ( j * x ^ ( 2 * j + 1 ) / f ) * ( - 1 ) ^ j ; end fprintf ( ' Valor impar = % 5 d \n ' , x ) fprintf ( ' Valor serie = % 12.4 f \ n ' , y ) disp( ' ' ) end
Ejecutado el programa, presenta los siguientes resultados:
Ingrese el número de valores de x = 7 Ingrese el número de términos de la serie = 15 Valor impar = Valor serie =
1 -0.4207
Valor impar = Valor serie =
3 -0.6350
Valor impar = Valor serie =
5 11.9866
Valor impar = Valor serie =
7 -16.0962
Valor impar = Valor serie =
9 -16.6925
Valor impar = Valor serie =
11 59.2339
Valor impar = Valor serie =
13 -336.5482
2.- ) Si se dispone de un grupo de n valores de x que son números enteros positivos de una cifra, calcular el valor de W para cada valor de x , considerando los k primeros términos de la serie definida por:
w =
3 * x 2 -
9 * x 4 / 3! + 27 * x 6 / 5! -
81 * x 8 / 7! +
% Cálculo del valor de una serie matemática, utilizando un grupo de datos % Y aplicando en cada término de la serie el cálculo del factori al de los números n = input ( ' Ingrese el número de valores de x = ' ) ; while n < = 0 n = input ( ' Favor que sea positivo, Ingrese el número de valores de x = ' ) ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
end k = input ( ' Ingrese el número de términos de la serie = ' ) ; while k < = 0 k = input ( ' Favor que sea positivo, Ingrese el número de términos de la serie = ' ) ; end for i = 1 : n x = input ( ' Ingrese un número del grupo de las unidades positivas = ' ) ; while ( x > = 10 ) | ( x < 1 ) x = input ( ' Favor Ingrese un número del grupo de las unidades positivas = ' ) ; end w=0; for j = 1 : k f = 1 ; q = 2 * j – 1 ; for L = 1 : q f = f * L ; end w = w + ( 3 ^ j * x ^ ( 2 * j ) / f ) * ( -1 ) ^ ( j + 1 ) ; end fprintf ( ' Valor impar = % 12.4 f \ n ' , x ) fprintf ( ' Valor serie = % 16.4 f \ n ' , w ) disp( ' ' ) end
Ejecutado el programa, presenta los siguientes resultados:
Ingrese el número de valores de x = 3 Ingrese el número de términos de la serie = -4 Favor que sea positivo, Ingrese el número de términos de la serie = 15 Ingrese un número del grupo de las unidades positivas = -6 Favor Ingrese un número del grupo de las unidades positivas = 11 Favor Ingrese un número del grupo de las unidades positivas = 7 Valor impar = 7.0000 Valor serie = -0.1200 Ingrese un número del grupo de las unidades positivas = 2 Valor impar = 2.0000 Valor serie = -1.0979 Ingrese un número del grupo de las unidades positivas = 9 Valor impar = 9.0000 Valor serie = 14553.4100
PDF created with pdfFactory Pro trial version
- 66 -
MatLab
Ing. Wilian Andrade Medina
TEMA
Arreglos Matemáticos Unidimensionales - Vectores Estructura de Vectores - Elementos Representación Vectorial de las Polinómicas El Vector y la Función para Polinómicas Funciones Polinómicas y Aplicaciones Vectoriales Programación de Aplicaciones Vectoriales Arreglos Matemáticos Bidimensionales - Matrices. Estructura de Matrices y sus Elementos Funciones para Matrices Aplicaciones Matemáticas con Matrices Aplicaciones Matriciales Generales
PDF created with pdfFactory Pro trial version
- 67 -
Página
69 71 74 75 81 92 105 107 113 125 127
MatLab
Ing. Wilian Andrade Medina
Un buen principio hace un buen final. Proverbio Inglés.
Nunca me he encontrado con alguien tan ignorante de quien no pudiese aprender algo Galileo Galilei.
PDF created with pdfFactory Pro trial version
- 68 -
MatLab
Ing. Wilian Andrade Medina
- 69 -
ARRE GLOS MATE MÁTI COS ARRE GLOS MATE MÁTI COS UNI DI ME NSI ONALE S (VECTORES) En el MatLab a los arreglos matemáticos unidimensionales o mejor identificados como VECTORES, se les representa con nombres de variables.
1.- ) ASIGNACIÓN DE LOS ELEMENTOS DE UN VECTOR A UNA VARIABLE La asignación de datos a un vector cualquiera, se realiza por medio de una igualdad de los respectivos elementos a los cuales va a representar el vector, la asignación de valores al vector se representan entre corchetes. >> v = [ 2 41 6 17 -7 -3 10 1 -9 3 2 8 11 0 ] v= 2 41
6 17 -7 -3 10
1 -9
3
2
8 11
0
2.- ) INGRESO DE LOS ELEMENTOS DE UN VECTOR A UNA VARIABLE El ingreso de datos en un vector cualquiera corresponde a un diseño de lectura de datos para el vector, considerando un número N de elementos respectivos. Por programación, los vectores son representados por nombres de variables y el ingreso de datos ( LECTURA VECTORIAL ) se diseña con un conjunto de instrucciones que define el ciclo de lectura, la identificación de la posición del elemento en el vector se realiza entre paréntesis con la variable índice definida por un contador.
% Diseño de lectura de datos o elementos de un vector. n = input ( ' Ingrese número de elementos del vector x = ' ) ;
while n < = 0 n = input ( ' Ingrese número positivo de elementos del vector x = ' ) ; end
for i = 1 : n fprintf ( ' I ngrese el elemento del vector X ( % 2 d ) ' , i ) x(i) = input ( ' = ' ) ; end Ingrese número de elementos del vector x = -4 Ingrese número positivo de elementos del vector x = 5 Ingrese el elemento del vector X ( 1 ) = 11 Ingrese el elemento del vector X ( 2 ) = -22 Ingrese el elemento del vector X ( 3 ) = 43 Ingrese el elemento del vector X ( 4 ) = 7 Ingrese el elemento del vector X ( 5 ) = 19 En la lectura de datos de un vector, se puede considerar que el vector por lo menos tenga DOS elementos, pero de acuerdo al proceso aplicarse, el vector puede disponer de UN elemento.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 70 -
A los arreglos VECTORIALES, se les representa con nombres de variables y con un subíndice que indica la posición del elemento en el vector.
Nombre (variable índice)
El vector tiene la siguiente notación:
Nombre , corresponde a un nombre propio de variable que representa al vector o al espacio de memoria que ocupa el vector en una dirección, para sus N elementos. Variable índice, corresponde a un nombre de variable predefinida, constante o expresión
aritmética predefinida, que identifica a la posición del elemento en el vector o a la posición del elemento en el espacio de memoria del arreglo, no se identifica como parte propia del nombre del vector. En el MatLab, para identificar a los elementos de un vector se utiliza la siguiente notación: 1.- Cuando se refiere específicamente a un solo elemento del vector, el detalle de posición es explícito y el subíndice es una constante: A ( 5 ) v(7) 2.- Cuando se refiere a un elemento del vector de acuerdo a la identificación de la posición del elemento; en el detalle de posición el subíndice es un nombre de variable predefinida o una expresión aritmética que defina la posición del elemento: A ( i ) v ( 3* i – 1 ) 3.- Cuando se refiere a un grupo de los elementos del vector; en el detalle de posición el subíndice es un nombre de variable predefinida o una expresión aritmética que defina las posiciones de los elementos: A ( 2 : 5 ) v ( 2* i : 2 : 10 ) 4.- Cuando se refiere específicamente al vector, únicamente el nombre del vector, identifica a todos sus elementos en el orden y posición que representa: A v Ejemplos:
>> v = [ 2 41 6 v= 2 41
17 -7
-3 10 1 -9
6 17 -7 -3 10
1
-9
>> v ( 2 : 5 )
>> i = 1 ; >> v ( 2 * i : 2 : 10 ) -3
1
3
2
8 11
0
% I dentifica elementos de un vector .
ans = 41 6 17 -7
ans = 41 17
% Generar un vector .
3 2 8 11 0 ]
3
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 71 -
E STRUCTURA DE MANE JO DE VECTORE S Y E LE MENTOS DEL VECTOR: Por medio de funciones del MatLab, se hace operativo con instrucciones del manejo de vectores, considerando lo que representa y la operatividad matemática:
Direccionamiento de las posiciones de los elementos de un vector.
>> x = [ 8 1 9 4 6 0 2 ] ; >> p = [ 3 5 7 ] ; >> w = x ( p ) w= 9
6
% w contiene los elementos de las posiciones 3, 5 y 7 del vector x
2
>> x = [ 18 21 99 76 14 66 40 17 22 ] ; >> p = [ 4 8 5 ] ; >> w = x ( p ) w=
% w contiene los elementos de las posiciones 4, 8 y 5 del vector x
76 17 14
Asignación de valores como elementos de un vector por medio de una secuencia matemática o series numéricas.
>> p = [ 1 : 12 ] p = 1
2
3
4
5
6
7
5
7
9
11
13
8
9
10
11
12
>> z = [ 1 : 2 : 15 ] z = 1
3
15
>> n = [ -2.0 : 0.4 : 1.2 ] n= -2.0000 -1.6000 -1.2000 -0.8000 -0.4000 -0.0000
>> m = 1 ; >> k = 10 ; >> n = 0.3 ; >> w = [ m : 2 * n : k ]
PDF created with pdfFactory Pro trial version
0.4000
0.8000
1.2000
MatLab
Ing. Wilian Andrade Medina
- 72 -
w= Columns 1 through 10 1.0000 1.6000 2.2000 2.8000 3.4000 4.0000 4.6000 5.2000 5.8000 6.4000 Columns 11 through 16 7.0000 7.6000 8.2000 8.8000 9.4000 10.0000
>> r = [ 20 : -2 : 4 ] r= 20 18 16 14 12 10
8
6
4
>> m = [ 15 : -1 : 1 ] m= 15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
Cuando a un vector se lo genera por medio de una igualdad, los elementos del vector son separados únicamente por un espacio o también por medio de una coma ( , ), representando así a los denominados VECTORES FILA: A = [ 5 8 11 2 6 3 1 0 9 ] A = [ 5 , 8 , 11 , 2 , 6 , 3 , 1 , 0 , 9 ] Para representar o asignar a un VECTOR COLUMNA o vector fila transpuesto, se utiliza el operador apostrofo ( ' ) que acompañe al nombre del vector:
>> z = A ' z = 5 8 11 2 6 3 1 0 9
>> R = z '
R = 5
8
11
2
6
3
1
0
9
También, se puede generar el vector transpuesto, separando a los elementos del vector con el punto y coma ( ; ) :
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
>> A = [ 5 ; 8 ; 11 ; 2 ; 6 ; 3 ; 1 ; 0 ; 9 ] A = 5 8 11 2 6 3 1 0 9
Cálculo de valores como elementos de un vector, utilizando otro vector.
>> % I ncluir los elementos de un vector en otro vector . >> x = [ 11 22 33 ] ; >> y = [ 3 , x , -6 , 7 ] y = 3 11 22 33 -6
7
>> % Producto escalar con los elementos de un vector . >> x = [ 11 22 33 ] ; >> z = 2 * x z = 22 44 66
>> % Crear un vector con cálculos realizados por funciones . >> x = [ 11 22 33 ] ; >> w = sqrt ( x ) w= 3.3166 4.6904 5.7446
PDF created with pdfFactory Pro trial version
- 73 -
MatLab
Ing. Wilian Andrade Medina
- 74 -
RE PRESENTACIÓN VECTORI AL DE LOS COE F I CI E NTE S DE UNA POLI NÓMI CA La estructura de un vector, ayuda también a definir a los coeficientes de una ecuación polinómica de grado n , que de acuerdo al número m de elementos que disponga el vector generado, representará a la polinómica de n = ( m -1 ) grado: Ecuación cúbica: Representación vectorial:
x 3 - 3 x 2 - 13 x + 15 = 0 P = [ 1 -3 -13 15 ]
Grado 3, con 4 coeficientes. Vector con 4 elementos.
Si P es la ecuación polinómica de grado n = 3, tiene m = 4 elementos o coeficientes el vector que representa a la ecuación, es útil para realizar algunas operaciones de cálculo en MatLab.
FUNCIÓN roots Realiza el cálculo de las raíces solución de una polinómica definida por un vector.
>> P = [ 1 -3 -13 15 ] ; >> r = roots ( P ) r=
5.0000 -3.0000 1.0000
Se observa en la ventana Workspace del MatLab, que la variable r es un vector que contiene tres elementos que son raíces de la ecuación de tercer grado trabajada.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 75 -
Es una función equivalente y óptima para el cálculo de valores funcionales de una polinómica de grado n, pero establecido de manera definida en n=3; para cuando se desea de otra polinómica con un grado y coeficientes diferentes, se debe cambiar los datos de la nueva polinómica representada por el vector P o cualquier otro nombre de vector. 1.-)
x 4 - 25 x 3 - 427 x 2 - 826 x + 4236 = 0
Ecuación polinómica:
>> F = [ 1 -25 -427 826 4236 ] F =
1
-25
-427
826
4236
>> c = roots ( F ) c=
36.1034 -12.4454 3.8139 -2.4719 Se presenta cuatro raíces solución de la polinómica, que se guardan en el vector c 2.-)
Ecuación polinómica: x 3 - 3 x 2 + 7 x + 11 = 0
>> b = [ 1 -3 7 11 ] b=
1 -3
7 11
>> x = roots ( b )
x = 2.0000 + 2.6458 i 2.0000 - 2.6458 i -1.0000 + 0.0000 i
Es una raíz compleja. Es una raíz compleja. Es una raíz real con representación de raíz compleja.
En la aplicación, la polinómica de grado n = 3 presenta un par de raíces solución imaginarias. Se presentan tres raíces solución de la polinómica, que se guardan en el vector x
E L VE CTOR Y LA F UNCI ÓN PARA POLI NÓMI CAS F UNCI ÓN polyval Realiza el cálculo de la función Y de la polinómica definida por un vector para un valor X :
>> P = [ 1 -3 -13 15 ] ; >> y = polyval ( P , 2.5 ) y =
- 20.6250 Para realizar varios cálculos de pares coordenados de la polinómica, se programa a la polinómica de las siguientes formas:
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 76 -
1.- ) Considerando que X es un vector generado con valores [ 1 2 3 4 5 6 7 8 ] P = [ 1 -3 -13 15 ] ; disp( ' Valores funcionales de: y = x3 - 3 x2 - 13 x + 15 ' ) ; disp( ' ' ) ; disp( ' X Y ' ) ; for i = 1 : 8 X(i) = i ; Y(i) = polyval ( P , i ) ; end for i = 1 : 8 disp( [ X(i) , Y(i) ] ) end
Ejecutado el programa, presenta los siguientes resultados:
Valores funcionales de: y = x 3 - 3 x 2 - 13 x + 15 Y X 1 0 2 -15 3 -24 4 -21 5 0 6 45 7 120 8 231 Realizando un proceso netamente matemático desde la ventana del Command Window del MatLab, también se puede generar el cálculo de los valores del vector Y para los valores del vector X, utilizando la función y = x 3 - 3 x 2 - 13 x + 15, así:
>> X = [ 1 2 3 4 5 6 7 8 ] ; >> P = [ 1 -3 -13 15 ] ; >> Y = polyval ( P , X ) Y=
0 -15 -24 -21
0
PDF created with pdfFactory Pro trial version
45 120 231
MatLab
Ing. Wilian Andrade Medina
- 77 -
2.- ) Considerando que X es un vector generado con valores entre -1.5 a 8.5 vari ando 1. P = [ 1 -3 -13 15 ] ; i=0; disp( ' Valores funcionales de: y = x 3 - 3 x 2 - 13 x + 15 ' ) ; disp( ' ' ) ; disp( ' X Y ' ) ; for u = -1.5 : 8.5 i=i+1; X(i) = u ; Y(i) = polyval ( P , u ) ; end for k = 1 : i % disp( [ X(k) , Y(k) ] ) fprintf ( ' % 6.2 f % 10.4 f \ n ' , X(k) , Y(k) ) end
Ejecutado el programa, presenta los siguientes resultados:
Valores funcionales de: y = x 3 - 3 x 2 - 13 x + 15 X -1.50 -0.50 0.50 1.50 2.50 3.50 4.50 5.50 6.50 7.50 8.50
Y 24.3750 20.6250 7.8750 -7.8750 -20.6250 -24.3750 -13.1250 19.1250 78.3750 170.6250 301.8750
3.- ) Considerando que X es un vector con M elementos como datos leídos. P = [ 1 -3 -13 15 ] ; disp( ' Valores funcionales de: y = x 3 - 3 x 2 - 13 x + 15 ' ); disp( ' ' ) ; m = input( ' Ingrese el número de datos m = ' ) ; for i = 1 : m fprintf ( ' Ingrese el valor de X ( % 2 d ) ' , i ) X(i) = input ( ' = ' ) ; end for i = 1 : m Y(i) = polyval ( P , i ) ; end disp( ' X Y ' ) ; for i = 1 : m fprintf ( ' % 10.4 f % 15.4 f ' , X(i) , Y(i) ) disp( ' ' ) ; end
PDF created with pdfFactory Pro trial version
MatLab Ejecutado
Ing. Wilian Andrade Medina
- 78 -
el programa, presenta los siguientes resultados:
Valores funcionales de:
y = x 3 - 3 x 2 - 13 x + 15
Ingrese el número de datos m = 5 Ingrese el valor de X ( 1 ) = -5.67 Ingrese el valor de X ( 2 ) = 3 Ingrese el valor de X ( 3 ) = 1.23 Ingrese el valor de X ( 4 ) = -2.456 Ingrese el valor de X ( 5 ) = 7.776 X -5.6700 3.0000 1.2300 -2.4560 7.7760
Y 0.0000 -15.0000 -24.0000 -21.0000 0.0000
4.- ) Considerando que X es un vector que contiene M elementos como datos leídos para una polinómica de grado N. La programación de la aplicación considerando que tanto la polinómica de grado N como los valores de X, son ingresados por teclado (DATOS LEÍDOS ), para calcular el valor funcional Y y se logre el par coordenado, se procede de la siguiente manera:
4.1.- ) Lectura de los coeficientes de una polinómica de grado N n = input ( ' Ingrese el grado N de la polinómica = ' ) ; while n < = 0 n = input ( ' Ingrese el grado N de la polinómica = ' ) ; end
for i = 1 : ( n + 1 ) fpri ntf ( ' I ngrese el coeficiente A ( % 2 d ) de la polinómica ' , i ) a(i) = input ( ' = ' ) ; while a(1) = = 0 a(1) = input ( ' I ngrese el coeficiente A ( 1 ) de la polinómica diferente a cero = ' ) ; end end 4.2.- ) Lectura de los M elementos del vector X. m = input ( ' Ingrese el número M de elementos del vector X = ' ) ; while m < = 0 m = input ( ' Ingrese el número M positivo de elementos del vector X = ' ) ; end
for i = 1 : m fpri ntf ( ' I ngrese el elemento del vector X ( % 2 d ) ' , i ) x(i ) = input ( ' = ' ) ; end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 79 -
4.3.- ) Cálculo de los M valores funcionales de Y de una polinómica de grado N conocido los valores de X.
La polinómica está definida por la serie:
Y = A 1 X N + A 2 X N-1 + A 3 X N-2 + . . . . . . + A N X + A N+1 Por lo que se debe calcular un valor de Y para cada valor de X, denominado el par coordenado, diseñando bajo el criterio de aplicación vectorial: for i = 1 : m Y(i) = a ( n + 1 ) ;
for k = 1 : n Y(i) = Y(i) + a(k) * x(i) ^ ( n + 1 – k ) ; end end
APL I CACI ÓN GE NE RAL: n = input ( ' Ingrese el grado N de la polinómica = ' ) ; while n < = 0 n = input ( ' Ingrese el grado N de la polinómica = ' ) ; end for i = 1 : ( n + 1 ) fprintf ( ' Ingrese el coeficiente A ( % 2 d ) de la polinómica ' , i ) a(i) = input ( ' = ' ) ; while a(1) = = 0 a(1) = input ( ' Ingrese el coeficiente A ( 1 ) de la polinómica diferente a cero = ' ) ; end end m = input ( ' Ingrese el número M de elementos del vector X = ' ) ; while m < = 0 m = input ( ' Ingrese el número M positivo de elementos del vector X = ' ) ; end for i = 1 : m fprintf ( ' Ingrese el elemento del vector X ( % 2 d ) ' , i ) x(i) = input ( ' = ' ) ; end for i = 1 : m Y(i) = a ( n + 1 ) ; for k = 1 : n Y(i) = Y(i) + a(k) * x(i) ^ ( n + 1 - k ) ; end end disp( ' X Y') for i = 1 : m fprintf ( ' % 10.4 f % 14.4 f \ n ' , x(i) , Y(i) ) end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 80 -
Almacenado el programa como polinomica.m , se realiza la ejecución y se logra como ejemplo, los siguientes cálculos: Ingrese el grado N de la polinómica = 3 Ingrese el coeficiente A ( 1 ) de la polinómica = 1 Ingrese el coeficiente A ( 2 ) de la polinómica = -3 Ingrese el coeficiente A ( 3 ) de la polinómica = -13 Ingrese el coeficiente A ( 4 ) de la polinómica = 15 Ingrese el número M de elementos del vector X = 6 Ingrese el elemento del vector X ( 1 ) = 1.134 Ingrese el elemento del vector X ( 2 ) = 2.43 Ingrese el elemento del vector X ( 3 ) = 4.78 Ingrese el elemento del vector X ( 4 ) = 6 Ingrese el elemento del vector X ( 5 ) = 7.89 Ingrese el elemento del vector X ( 6 ) = 9.0023 X 1.1340 2.4300 4.7800 6.0000 7.8900 9.0023
Y
-2.1416 -19.9558 -6.4698 45.0000 216.8428 384.4049
Se puede diseñar la toma de información de los datos de la polinómica de acuerdo a la asignación directa a un vector; para cambiar los coeficientes de otra polinómica, se deberá cambiar los valores del vector que contiene los coeficientes de la polinómica asignada, programado de la siguiente manera:
a = [ 1 -3 -13 15 ] ; p = length ( a ) ; n = p – 1 ;
% Para nueva polinómica cambiar los valores
m = input ( ' Ingrese el número M de elementos del vector X = ' ) ; while m < = 0 m = input ( ' Ingrese el número M positivo de elementos del vector X = ' ) ; end for i = 1 : m fprintf ( ' Ingrese el elemento del vector X ( % 2 d ) ' , i ) x(i) = input ( ' = ' ) ; end for i = 1 : m Y(i) = a ( n + 1 ) ; for k = 1 : n Y(i) = Y(i) + a(k) * x(i) ^ ( n + 1 - k ) ; end end disp( ' X Y') for i = 1 : m fprintf ( ' % 10.4 f % 14.4 f \ n ' , x(i) , Y(i) ) end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 81 -
Ejecutado el programa, presenta los siguientes resultados: Ingrese el número M de elementos del vector X = 5 Ingrese el elemento del vector X ( 1 ) = 1.23 Ingrese el elemento del vector X ( 2 ) = 2.54 Ingrese el elemento del vector X ( 3 ) = 4.32 Ingrese el elemento del vector X ( 4 ) = 5 Ingrese el elemento del vector X ( 5 ) = 7.32 Y X 1.2300 -3.6678 2.5400 -20.9877 4.3200 -16.5256 5.0000 0.0000 7.3200 151.3160
F UNCI ONES POLI NÓMI CAS Y APLICACI ONES VECTORI ALES FUNCIÓN eval Realiza el cálculo de la función Y de la polinómica definida de modo literal para un valor X .
>> f = ' X ^ 3 - 3 * X ^ 2 - 13 * X + 15 ' ; >> X = 1.23 ; >> Y = eval ( f ) Y= -3.6678
>> f = ' 3 * x ^ 4 - 2 * x ^ 3 - 8 * x ^ 2 – 3 * x - 11 ' ; >> x = 3 ; >> y = eval ( f ) y = 97
FUNCIÓN poly Realiza el cálculo de la ecuación origen a partir del producto de las raíces.
>> p = [ 1 -3 -13 15 ] ; >> x = roots ( p )
% Raíces de la polinómica.
>> r = poly ( x )
% Producto de las raíces.
x = 5.0000 -3.0000 1.0000
r= 1.0000 -3.0000 -13.0000 15.0000
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 82 -
F UNCI ÓN poly2sym La función poly2sym realiza la representación de la ecuación definida por un vector que contiene los coeficientes de la ecuación a una expresión de la ecuación de modo algébrico. >> a = [1 -3 -13 15 ] >> ecua = poly2sym (a) >> disp (ecua) x ^ 3 – 3 * x ^ 2 – 13 * x + 15 >> a = [1 5 3 -10 ] >> ecua = poly2sym (a) >> disp. ( ' ' ) >> fprintf ( ' Ecuación: >> disp (ecua)
0=')
0 = x ^ 3 + 5* x ^ 2 + 3 * x - 10
F UNCI ÓN sym2poly La función sym2poly realiza la representación de la ecuación definida de modo algébrico a un vector que contiene los coeficientes de la ecuación. >> polinom = ' x ^ 3 – 3 * x ^ 2 – 13 * x + 15 ' >> p = sym2poly (polinom) p = 1 -3 - 13 15
FUNCIÓN find Determina el o los índices de los elementos del vector que no son igual a cero.
>> s = [ 1 3 5 0 6 4 0 11 ] s = 1
3
5
0
6
4
2
3
5
6
8
0
11
>> h = find ( s ) h= 1
Los índices 4 y 7, identifican a elementos igual a cero, por lo tanto no los considera.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
>> Y = find ( s > 3 ) Y= 3
5
6
8
Los índices 3, 5, 6 y 8 disponen de elementos en el vector s mayores a 3
FUNCIÓN max Determina el número mayor de los elementos de un vector.
>> v = [ 2 5 -4 11 -6 0 7 9 1 ] v= 2
5
-4
11
-6
0
7
9
1
>> Mayor = max ( v ) Mayor = 11
FUNCIÓN min Determina el número menor de los elementos de un vector.
>> v = [ 2 5 -4 11 -6 0 7 9 1 ] v = 2
5
-4
11
-6
0
7
9
1
>> Menor = min ( v ) Menor = -6
FUNCIÓN sum Realiza el cálculo de la sumatori a o acumulación de los elementos del vector.
>> v = [ 2 5 -4 11 -6 0 7 9 1 ] v= 2
5
-4
11
-6
0
PDF created with pdfFactory Pro trial version
7
9
1
- 83 -
MatLab
Ing. Wilian Andrade Medina
>> Total = sum ( v ) Total = 25
F UNCI ÓN mean Realiza el cálculo de la media aritmética de los elementos del vector.
>> k = [ 2 3 5 7 4 8 9 ] k= 2
3
5
7
4
8
9
>> Media = mean ( k ) Media = 5.4286
F UNCI ÓN median Realiza el cálculo de la mediana de los elementos del vector.
>> V = [ 2 3 4 5 6 7 8 9 2 3 5 4 6 7 8 9 1 4 3 ] V= 2 3 4 5 6 7 8 9 2 3 5 4 6 7 8 9 1 4 3
>> Mediana = median ( V ) Mediana = 5
FUNCIÓN std Realiza el cálculo de la desviación estándar de los elementos del vector.
>> V = [ 2 3 4 5 6 7 8 9 2 3 5 4 6 7 8 9 1 4 3 ] V= 2 3 4 5 6 7 8 9 2 3 5 4 6 7 8 9 1 4 3
>> w = std ( V ) w= 2.4602
PDF created with pdfFactory Pro trial version
- 84 -
MatLab
Ing. Wilian Andrade Medina
- 85 -
FUNCIÓN prod Realiza el cálculo del producto escalar de los elementos del vector.
>> k = [ 2 3 5 7 4 8 9 ] k= 2
3
5
7
4
8
9
>> q = prod ( k ) q= 60480
F UNCI ÓN cumprod Realiza el cálculo del producto escalar de los elementos del vector y asigna a otro vector los productos parciales o acumulados.
>> k = [ 2 3 5 7 4 8 9 ] k= 2
3
5
7
4
8
9
>> d = cumprod ( k ) d= 2
6
30
210
840
6720
60480
FUNCIÓN sort Realiza el ordenamiento ascendente de los elementos del vector, asignando a otro vector los elementos ordenados
>> a = [ 1 7 22 18 9 15 12 20 6 ] a= 1
7 22 18
9 15 12 20
6
>> c = sort ( a ) c= 1
6
7
9 12 15 18 20 22
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 86 -
FUNCIÓN dsort Realiza el ordenamiento descendente de los elementos del vector, asignando a otro vector los elementos ordenados
>> a = [ 1 7 22 18 9 15 12 20 6 ] a= 1
7 22 18
9 15 12 20
6
Determina al vector ordenado de modo descendente como vector columna:
>> e = dsort ( a ) e= 22 20 18 15 12 9 7 6 1 Determina al vector ordenado de modo descendente como un vector fila (transpuesto):
>> e = dsort ( a ) ' e= 22
20
18
15
12
9
7
6
1
FUNCIÓN fzero Realiza el cálculo de la raíz solución real de una ecuación, considerando la asignación de un valor inicial a x.
>> f = ' x ^ 2 -4 * x + 5 ' >> r = fzero ( f , 2 )
% Tiene raíces complejas ( un par conjugado )
f = x ^ 2 – 4 * x + 5
Exiting fzero: aborting search for an interval containing a sign change because NaN or Inf function value encountered during search. (Function value at -1.7162e+154 is Inf.) Check function or try again with a different starting value. r= NaN
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
>> f = ' x ^ 2 -4 * x -5 ' >> r = fzero ( f , 2 ) f =
- 87 -
% Tiene raíces reales ( - 1 5 )
x ^ 2 – 4 * x – 5
r= -1 La función también puede operar y realizar el cálculo de la raíz solución real de una ecuación definiendo un rango en x (intervalo solución), en donde se considera existe una raíz solución.
>> f = ' x ^ 3 -3 * x ^ 2 -13 * x + 15 ' ; >> r = fzero ( f , [ 4.5 , 5.3 ] )
% Los de x deben tener f(x) de signo contrario.
r= 5.0000
>> f = ' x ^ 3 -3 * x ^ 2 -13 * x + 15 ' ; >> r = fzero ( f , [ -0.5 , 1.3 ] ) r= 1
FUNCIÓN dot Realiza la multiplicación punto entre los elementos de dos vectores con igual número de elementos y entrega como resultado la suma de los productos calculados.
>> e = [ 2 5 7 9 ] ; >> h = [ 2 1 6 3 ] ; >> k = dot ( e , h ) k= 78
FUNCIÓN conv Realiza el producto de polinomios o la multiplicación entre dos vectores que representan a los polinomios, entregando un vector que representa a cada uno de los coeficientes del polinomio resultante calculado.
% Representa: b = 3 * X 2 + 4 * X – 2 % Representa: a = X 2 + 4 * X + 4
>> b = [ 3 , 4 , -2 ] ; >> a = [ 1 4 4 ] ; >> c = conv ( a , b ) c= 3 16 26
8 -8
% Representa: c = 3*X 4 + 16*X 3 + 26*X 2 + 8*X – 8
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 88 -
F UNCI ÓN deconv Realiza la división de polinomios entre dos vectores que representan a los polinomios, entregando dos vectores que representan al polinomio cociente y al polinomio residuo, cada vector contiene los coeficientes delos polinomio resultantes calculados.
>> [ c , r ] = deconv ( a , b ) ; >> c >> r >> s = [ 3 16 26 8 -8 ] ; >> t = [ 1 4 4 ] ; >> [ c , r ] = deconv ( s , t )
% División de los polinomios a , b % Cociente % Residuo % División exacta
c= 3
4
-2
0
0
0
r= 0
% Residuo cero
0
>> y = [ 1 -3 5 -8 11 ] ; >> z = [ 2 1 4 ] ; >> [ p , q ] = deconv ( y , z ) p = 0.5000 -1.7500 2.3750 q= 0
0
0 -3.3750 1.5000
>> h = [ 3 7 -74 86 -32 24 ] ; >> t = [ 1 4 4 ] ; >> [ c , r ] = deconv ( h , t ) c= 3 -5 -66 370 r= 0
0
0
0
-1248
-1456
FUNCIÓN interp1 Realiza la interpolación lineal entre dos vectores que representan al eje de las abscisas y al eje de las ordenadas de los puntos < x , y > coordenados, de un valor o un vector de valores de interpolación, dentro de los límites establecidos.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 89 -
1.- ) Aplicación para interpolar un solo valor: >> x = [ 1 2 3 6 8 9 11 ] ; >> y = [ 3.3 4.1 5.3 7.0 8.1 9.3 9.9 ] ; >> z = 4.75 ; >> u = interp1 ( x , y , z , ' linear ' )
% E je de las abscisas. % E je de las ordenadas. % Valor a interpolar .
u= 6.2917
2.- ) Aplicación para interpolar varios valores: >> x = [ 1 2 3 6 8 9 11 ] ; >> y = [ 3.3 4.1 5.3 7.0 8.1 9.3 9.9 ] ; >> z = [ 1.5 4.75 9.25 10.5 ] ; >> u = interp1 ( x , y , z , ' linear ' )
% E je de las abscisas. % E je de las ordenadas. % Valores a interpolar .
u= 3.7000 6.2917 9.3750 9.7500
FUNCIÓN spline Realiza el cálculo de interpolación con una polinómica de ajuste cúbico, de uno o varios valores dentro de los límites de los valores coordenados de interpolación, de dos vectores que representan al eje de las abscisas y al eje de las ordenadas de los puntos < x , y >.
1.- ) Aplicación para interpolar un solo valor: >> x = [ 1 2 3 6 8 9 11 ] ; >> y = [ 3.3 4.1 5.3 7.0 8.1 9.3 9.9 ] ; >> z = 4.75 ; >> u = spline ( x , y , z )
% E je de las abscisas % E je de las ordenadas % Valor a interpolar
u= 6.5590
2.- ) Aplicación para interpolar varios valores: >> x = [ 1 2 3 6 8 9 11 ] ; >> y = [ 3.3 4.1 5.3 7.0 8.1 9.3 9.9 ] ; >> z = [ 1.5 4.75 9.25 10.5 ] ; >> u = spline ( x , y , z ) u= 3.5920 6.5590 9.5946 10.2780
PDF created with pdfFactory Pro trial version
% E je de las abscisas. % E je de las ordenadas. % Valores a interpolar.
MatLab
Ing. Wilian Andrade Medina
- 90 -
F UNCI ÓN polyfit Realiza el cálculo de un vector que contiene los coeficientes de una polinómica de ajuste de mínimos cuadrados de grado 2 ( o de grado n ).
>> x = [ 1 2 3 6 8 9 11 ] ; % E je de las abscisas. >> y = [ 3.3 4.1 5.3 7.0 8.1 9.3 9.9 ] ; % E je de las ordenadas. >> a = polyfit ( x , y , 2 ) % Cálculo del polinomio de ajuste de grado 2. a= -0.0192 0.8901 2.4965
>> x = [ 1 2 3 6 8 9 11 ] ; % E je de las abscisas. >> y = [ 3.3 4.1 5.3 7.0 8.1 9.3 9.9 ] ; % E je de las ordenadas. >> a = polyfit ( x , y , 3 ) % Cálculo del polinomio de ajuste de grado 3. a= 0.0014 -0.0454 1.0246 2.3405 Para comprobar que la polinómica de ajuste corresponde a los pares coordenados < x , y >, al vector resultante que representa a la nueva polinómica, se le calcula los valores funcionales que se quieran realizar.
>> a = [ 0.0014 -0.0454 >> w = polyval ( a , 1 )
1.0246 2.3405 ] ;
w= 3.3211
>> a = [ 0.0014 -0.0454 >> w = polyval ( a ,11 )
1.0246 2.3405 ] ;
w= 9.9811
>> a = [ 0.0014 -0.0454 >> w = polyval ( a , 6 )
1.0246 2.3405 ] ;
w= 7.1561
FUNCIÓN syms Define a una variable como variable de tipo simbólico o algébrica, se visualiza la definición en la ventana Workspace
>> syms x
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 91 -
FUNCIÓN factor Realiza la factori zación de una expresión algébrica, considerando el manejo simbólico de variables.
>> syms x; >> f = 3 * x ^ 2 + 5 * x ; >> w = factor ( f ) w= [x,3*x+5]
FUNCIÓN int Realiza el cálculo de la integral de una expresión algébrica, considerando el manejo simbólico de variables.
>> syms x; >> y = x ^ 2 -3 * x + 7 ; >> a = int ( y ) a=
( x * ( 2 * x ^ 2 - 9 * x + 42 ) ) / 6
La función también puede operar y realizar el cálculo de la integral de una definiendo un rango de integración en x ( límites de integración ).
expresión
>> syms x; >> y = x ^ 2 – 3 * x + 7 ; >> c = int ( y , 0 , 5 ) c=
235 / 6
FUNCIÓN diff Realiza el cálculo de la derivada de una expresión algébrica, considerando el manejo simbólico de variables.
>> syms x; >> y = x ^ 2 – 3 * x + 7 ; >> d = diff ( y ) d= 2*x- 3
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 92 -
PROGRAMACIÓN DE APLI CACI ONES VECTORI ALES 1.- ) Considerando que X es un vector que contienen M elementos ( mínimo 8 elementos ) como datos leídos, ordenar en forma ascendente y en forma descendente a los elementos del vector X. % Vector de datos de X.
n = input ( ' Ingrese el número de datos X = ' ) ; while n < 8 n = input ( ' Ingrese el número de datos X = ' ) ; end for i = 1 : n fprintf ( ' Ingrese el elemento del vector X ( % 2 d ) ' , i ) x(i) = input ( ' = ' ) ; xa(i) = x(i) ; xd(i) = x(i) ; end for k = 1 : n p = k ; menor = xa(k) ; j = k ; for L = j : n if xa(L) < menor p = L ; menor = xa(L) ; end end xa(p) = xa(k) ; xa(k) = menor ; end for k = 1 : n p = k ; mayor = xd(k) ; j = k ; for L = j : n if xd(L) > mayor p = L ; mayor = xd(L) ; end end xd(p) = xd(k) ; xd(k) = mayor ; end disp( ' Vector original Vector ascendente Vector descendente ' ) ; disp( ' x xa xd ' ) for i = 1 : n fprintf ( ' % 12.3 f % 12.3 f % 12.3 f \ n ' , x(i) , xa(i) , xd(i) ) end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 93 -
Ejecutado el programa, presenta los siguientes resultados:
Ingrese el número de datos X = 8 Ingrese el elemento del vector X ( 1 ) Ingrese el elemento del vector X ( 2 ) Ingrese el elemento del vector X ( 3 ) Ingrese el elemento del vector X ( 4 ) Ingrese el elemento del vector X ( 5 ) Ingrese el elemento del vector X ( 6 ) Ingrese el elemento del vector X ( 7 ) Ingrese el elemento del vector X ( 8 )
= = = = = = = =
1 5 3 -7 9 11 6 10
Vector original Vector ascendente Vector descendente
x
xa
xd
1.000 5.000 3.000 -7.000 9.000 11.000 6.000 10.000
-7.000 1.000 3.000 5.000 6.000 9.000 10.000 11.000
11.000 10.000 9.000 6.000 5.000 3.000 1.000 -7.000
Para ordenar un vector de forma ascendente y descendente, con funciones de MatLab:
% Vector de datos de X.
n = input ( ' Ingrese el número de datos X = ' ) ; while n < 8 n = input ( ' Ingrese el número de datos X = ' ) ; end for i = 1 : n fprintf ( ' Ingrese el elemento del vector X ( % 2 d ) ' , i ) x(i) = input ( ' = ' ) ; end
% Ordenamiento ascendente del vector
xa = sort ( x ) ;
% ordenamiento descendente del vector
xd = dsort ( x ) ; disp( ' Vector original Vector ascendente Vector descendente ' ) ; disp( ' x xa xd ' ) for i = 1 : n fprintf ( ' % 12.3 f % 12.3 f % 12.3 f \ n ' , x(i) , xa(i) , xd(i) ) end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 94 -
Ejecutado el programa, presenta los siguientes resultados:
Ingrese el número de datos X = 8 Ingrese el elemento del vector X ( 1 ) Ingrese el elemento del vector X ( 2 ) Ingrese el elemento del vector X ( 3 ) Ingrese el elemento del vector X ( 4 ) Ingrese el elemento del vector X ( 5 ) Ingrese el elemento del vector X ( 6 ) Ingrese el elemento del vector X ( 7 ) Ingrese el elemento del vector X ( 8 )
= = = = = = = =
1 8 -5 11 3 22 15 17
Vector original Vector ascendente Vector descendente x
xa
xd
1.000 8.000 -5.000 11.000 3.000 22.000 15.000 17.000
-5.000 1.000 3.000 8.000 11.000 15.000 17.000 22.000
22.000 17.000 15.000 11.000 8.000 -5.000 3.000 1.000
2.- ) Considerando que X y F (X) son vectores pares coordenados que contienen M elementos (mínimo 6 elementos) como datos leídos, ordenar en forma ascendente al par coordenado en función de los elementos del vector X. % Vector < X – Y > par coordenado.
n = input ( ' Ingrese el número de datos X - F(x) = ' ) ; while n < 6 n = input ( ' Ingrese el número de datos X - F(x) = ' ) ; end for i = 1 : n x(i) = input ( ' Ingrese X = ' ) ; fx(i) = input ( ' Ingrese F(X) = ' ) ; ax(i) = x(i) ; afx(i) = fx(i) ; end for k = 1 : n p = k ; menor = x(k) ; j = k ; for L = j : n if x(L) < menor p = L ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
menor = x(L) ; end end aux = fx(p) ; x(p) = x(k) ; x(k) = menor ; fx(p) = fx(k) ; fx(k) = aux ; end disp( ' Par Coordenado Original Par Coordenado Ordenado ' ) disp( ' x fx x f(x) ' ) for i = 1 : n fprintf ( ' % 10.2 f % 16.4 f % 10.2 f % 16.4 f \ n ' , ax(i) , afx(i) , x(i) , fx(i) ) end
Ejecutado el programa, presenta los siguientes resultados:
Ingrese el número de datos X - F(x) = 8 Ingrese X = 1 Ingrese F(X) = 5.6 Ingrese X = 3 Ingrese F(X) = 7.9 Ingrese X = 6 Ingrese F(X) = 11.34 Ingrese X = 2 Ingrese F(X) = 6.76 Ingrese X = 8 Ingrese F(X) = 13.6 Ingrese X = 9 Ingrese F(X) = 17.42 Ingrese X = 7 Ingrese F(X) = 11.98 Ingrese X = 11 Ingrese F(X) = 21 Par Coordenado Original Par Coordenado Ordenado x fx x f(x) 1.00 3.00 6.00 2.00 8.00 9.00 7.00 11.00
5.6000 7.9000 11.3400 6.7600 13.6000 17.4200 11.9800 21.0000
1.00 2.00 3.00 6.00 7.00 8.00 9.00 11.00
PDF created with pdfFactory Pro trial version
5.6000 6.7600 7.9000 11.3400 11.9800 13.6000 17.4200 21.0000
- 95 -
MatLab
Ing. Wilian Andrade Medina
- 96 -
3.- ) Considerando que se dispone de una ecuación polinómica de grado N ( mayor a grado 2 y menor a grado 7 ), calcular una raíz solución por el método de aproximación de Newton determinando por I nvestigación un intervalo menor solución. Se establece de modo general la polinómica de grado N, la misma que dispone de (N+1) coeficiente, de la forma general:
f ( X ) = a1 X n + a 2 X n-1 + a 3 X n-2 + . . . . + an X
+ an+1
Los métodos iterativos o de aproximación requieren de un valor de X inicial para realizar los cálculos que corresponden a determinar el respectivo X solución El valor de X inicial se calcula por medio de la fórmula de la Relación de Newton, que entrega un valor aproximado al X solución de mayor valor, que tenga la polinómica como raíz solución. X
a 2 a 1
inicial
2
a 2 3 a 1
El intervalo solución calculado, es en el que de hecho se encuentra un X solución , se determina cuando se logre limitar o definir entre dos valores de X consecutivos, sean X k y X k+1 , en donde los valores funcionales de: f ( X k ) y f ( X k+1 ) sean siempre valores de signo contrario , permitiendo de modo general que: X k
<=
(X solución ) < =
X k+1
Intervalo menor en X, en el que de manera segura se encuentra un X solución Al determinar el intervalo menor, para aplicar el método Newton, se utiliza uno de los valores de X calculados que actuará como el X aproximado a la solución y con el valor que se da inicio a la aplicación iterativa del método; además Newton requiere de la definición de la derivada de la polinómica bajo la forma general de:
f ( X ) = n a1 X n-1 + (n-1) a 2 X n-2 + (n-2) a 3 X n-3 + . . . . + 2 a (n-1) X + a n '
Se procede iterativamente al cálculo de X solución aplicando la fórmula siguiente:
X n1
X n
f ( Xn ) f '( Xn)
Hasta el último cálculo, determinado de modo general por el error absoluto:
│ X n+1 - X n │ < = err Circunstancia en donde X n+1 se considera la raíz solución, aceptando que el error preestablecido o valor de aproximación de err está definido como la aproximación al error absoluto correspondiente ( aceptado como un valor en la n cifra decimal ).
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 97 -
Para la aplicación del presente ejemplo, se considera los detalles matemáticos iniciales siguientes:
1.- Polinómica: 2.- E rror Absoluto:
f ( X ) = X 3 - 3 X 2 - 13 X + 15 Valor definido entre 0.01
a
0.000000001 ( err )
3.- Programación: % Grado de la Polinómica
N = input ( ' Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = ' ) ; while ( N < 2 ) | ( N > 6 ) N = input( ' Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = ' ) ; End
% Lectura de los coeficientes de la Polinómica
for i = 1 : ( N + 1 ) fprintf ( ' Ingrese el coeficiente A ( % 2 d ) ' , i ) A(i) = input ( ' = ' ) ; while ( A(1) = = 0 ) fprintf ( ' Ingrese el coeficiente A ( % 2 d ) ' , i ) A(i) = input ( ' = ' ) ; end end
% Cálculo del valor de la Relación de Newton diferente a cero
wil = 1.5 ; X = sqrt ( abs ( ( A(2) / A(1) ) ^ 2 – 2 * ( A(3) / A(1) ) ) ) * wil ; if X = = 0 X = 5.5 ; wil = 4 ; disp( ' X inicial cero, se reasigna valor de x ' ) end XF = ( - X ) * wil ; v=0; F = A(N+1) ; for k = 1 : N F = F + A(k) * X ^ ( N + 1 – k ) ; end if F = = 0 fprintf ( ' X = % 10.4 f Es solución debido a que F(x) = 0 \ n ' ) break else M = input ( ' Ingrese el número de intervalos en X, un valor Mayor a 20 = ' ) ; while ( M < = 0 ) M = input ( ' Ingrese el número de intervalos en X, un valor Mayor a 20 = ' ) ; end DX = ( XF – X ) / M ; for i = 1 : M X = X + DX ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 98 -
F2 = A(N+1) ; for k = 1 : N F2 = F2 + A(k) * X ^ ( N + 1 – k ) ; end if ( F * F2 = = 0 ) fprintf ( ' X = % 10.4 f Es solución debido a que F(x) = 0 \ n ' ) break else if ( F * F2 > 0 ) F = F2 ; else X2 = X ; X1 = X – DX ; v=v+1; Z1(v) = X1 ; Z2(v) = X2 ; FZ1(v) = F ; FZ2(v) = F2 ; F = F2 ; end end end end
% Aplicación de Newton para cualquier intervalo solución. if v = = 0 disp( ' No hay intervalos solución ' ) break
else disp( ' Intervalos Solución para la Ecuación ' ) for con = 1 : v fprintf ( ' Intervalo número = % 2 d \ n ' , con ) disp( ' Valores en X Valores en f(X) ' ) fprintf ( ' % 10.6 f % 15.6 f \ n ' , Z1(con) , FZ1(con) ) fprintf ( ' % 10.6 f % 15.6 f \ n ' , Z2(con) , FZ2(con) ) disp( ' ' ) disp( ' **************************************** ' ) end
% Seleccionar el intervalo
fprintf ( ' Solo existe % 2 d intervalos solución \ n ' , v ) disp( ' ' ) ww = input ( ' Ingrese el número ( 1 , 2 , 3 , ..... ) del intervalo que desea trabajar = ' ) ; if ( ww > 1 ) & ( ww < = v ) NX = Z1(ww) ; else NX = Z1(1) ; end Q=input('Ingrese un número ENTERO de decimales para la aproximación en X solución = '); while ( ( Q < 2 ) | ( Q > = 10 ) )
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 99 -
Q=input('Ingrese un número ENTERO de decimales para la aproximación en X solución ='); end err = 1 / ( 10 ^ Q ) ; en = 101 ; clc disp( ' X f(X) fd(X) error ' ) while ( abs(en) > err ) NFX = A(N+1) ; for k = 1 : N NFX = NFX + A(k) * NX ^ ( N + 1 – k ) ; end if ( NFX = = 0 ) fprintf ( ' Raíz solución X = % 12.6 \ n ' , NX ) ; break end NFDX = A(N) ; for k = 1 : ( N – 1 ) ; NFDX = NFDX + ( N + 1 – k ) * A(k) * NX ^ ( N – k ) ; end if ( NFDX = = 0 ) disp( ' No HAY Raíz Solución X, La DERIVADA es cero ' ) break else en = NFX / NFDX ; fprintf ( ' % 10.6 f % 14.6 f % 14.6 f % 8.6 f \ n ' , NX , NFX , NFDX , en ) NX=NX-en; end end disp( ' ' ) fprintf ( ' X Solución = % 12.8 f \ n ' , NX ) end
Ejecutado el programa, presenta los siguientes resultados:
Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = 3 Ingrese el Coeficiente A ( 1 ) Ingrese el Coeficiente A ( 2 ) Ingrese el Coeficiente A ( 3 ) Ingrese el Coeficiente A ( 4 )
= = = =
1 -3 -13 15
Ingrese el número de intervalos en X, un valor Mayor a 40 = 22 Intervalos Solución para la Ecuación Intervalo número = 1 Valores en X Valores en f(X) 5.378254 13.875175 4.840429 -4.804783 ****************************************
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
Intervalo número = 2 Valores en X Valores en f(X) 1.075651 -1.209981 0.537825 7.296070 **************************************** Intervalo número = 3 Valores en X Valores en f(X) -2.689127 8.818271 -3.226953 -7.892263 **************************************** Solo existen 3 intervalos solución Ingrese el número (1 , 2 , 3 , ..... ) del intervalo que desea trabajar = 1 Ingrese un numero ENTERO de decimales para la aproximación en X solución = 6 X 5.378254 5.043972 5.000707 5.000000
f(X) 13.875175 1.430387 0.022628 0.000006 X Solución =
fd(X) 41.507333 33.061125 32.016968 32.000004
error 0.334282 0.043265 0.000707 0.000000
5.00000000
Ingrese el número (1 , 2 , 3 , ..... ) del intervalo que desea trabajar = 2 Ingrese un número ENTERO de decimales para la aproximación en X solución = 6 X 1.075651 0.999946 1.000000
f(X) -1.209981 0.000867 -0.000000 X Solución =
fd(X) -15.982831 -16.000000 -16.000000
error 0.075705 -0.000054 0.000000
1.00000000
Ingrese el número (1 , 2 , 3 , ..... ) del intervalo que desea trabajar = 3 Ingrese un numero ENTERO de decimales para la aproximación en X solución = 6 X -2.689127 -3.044288 -3.000717 -3.000000
f(X) 8.818271 -1.440827 -0.022950 -0.000006
fd(X) 24.828978 33.068787 32.017210 32.000005
X Solución = -3.00000000
PDF created with pdfFactory Pro trial version
error 0.355160 -0.043571 -0.000717 -0.000000
- 100 -
MatLab
Ing. Wilian Andrade Medina
- 101 -
Programación de los valores funcionales de la polinómica con funciones MatLab:
1.- Polinómica:
f ( X ) = X 3 - 3 X 2 - 13 X + 15
2.- E rror Absoluto:
Valor definido entre 0.01
a
0.000000001 ( err )
3.- Programación: % Grado de la Polinómica
N = input ( ' Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = ' ) ; while ( N < 2 ) | ( N > 6 ) N = input( ' Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = ' ) ; End
% Lectura de los coeficientes de la Polinómica
for i = 1 : ( N + 1 ) fprintf ( ' Ingrese el coeficiente A ( % 2 d ) ' , i ) A(i) = input ( ' = ' ) ; while ( A(1) = = 0 ) fprintf ( ' Ingrese el coeficiente A ( % 2 d ) ' , i ) A(i) = input ( ' = ' ) ; end end
% Vector derivada de la Polinómica nm = ( length ( A ) – 1 ) ;
for c = 1 : nm DA(c) = A(c) * ( nm + 1 – c ) ; End
% Cálculo del valor de la Relación de Newton diferente a cero
wil = 1.5 ; X = sqrt ( abs ( ( A(2) / A(1) ) ^ 2 – 2 * ( A(3) / A(1) ) ) ) * wil ; if X = = 0 X = 5.5 ; wil = 4 ; disp( ' X inicial cero, se reasigna valor de x ' ) end XF = ( - X ) * wil ; v=0;
% Utilizando funciones, se valora a la Polinómica F = polyval ( A , X ) ; if F = = 0
fprintf ( ' X = % 10.4 f Es solución debido a que F(x) = 0 \ n ' ) break
else M = input ( ' Ingrese el número de intervalos en X, un valor Mayor a 40 = ' ) ; while ( M < = 0 ) M = input ( ' Ingrese el número de intervalos en X, un valor Mayor a 40 = ' ) ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 102 -
end DX = ( XF – X ) / M ; for i = 1 : M X = X + DX ; F2 = polyval ( A , X ) ; if ( F * F2 = = 0 ) fprintf ( ' X = % 10.4 f Es solución debido a que F(x) = 0 \ n ' ) break else if ( F * F2 > 0 ) F = F2 ; else X2 = X ; X1 = X – DX ; v=v+1; Z1(v) = X1 ; Z2(v) = X2 ; FZ1(v) = F ; FZ2(v) = F2 ; F = F2 ; end end end end
% Aplicación de Newton para cualquier intervalo solución. if v = = 0 disp( ' No hay intervalos solución ' ) break
else disp( ' Intervalos Solución para la Ecuación ' ) for con = 1 : v fprintf ( ' Intervalo número = % 2 d \ n ' , con ) disp( ' Valores en X Valores en f(X) ' ) fprintf ( ' % 10.6 f % 15.6 f \ n ' , Z1(con) , FZ1(con) ) fprintf ( ' % 10.6 f % 15.6 f \ n ' , Z2(con) , FZ2(con) ) disp( ' ' ) disp( ' **************************************** ' ) end
% Seleccionar el intervalo
disp( ' ' ) fprintf ( ' Solo existe % 2 d intervalos solución \ n ' , v ) disp(' ') ww = input ( ' Ingrese el número ( 1 , 2 , 3 , ..... ) del intervalo que desea trabajar = ' ) ; if ( ww > 1 ) & ( ww < = v ) NX = Z1(ww) ; else NX = Z1(1) ; end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 103 -
Q=input('Ingrese un número ENTERO de decimales para la aproximación en X solución = '); while ( ( Q < 2 ) | ( Q > = 10 ) ) Q=input('Ingrese un número ENTERO de decimales para la aproximación en X solución ='); end err = 1 / ( 10 ^ Q ) ; en = 101 ; clc disp( ' X f(X) fd(X) error ' ) while ( abs (en) > err ) NFX = polyval ( A , NX ) ; If ( NFX = = 0 ) Fprintf ( ' Raíz solución X = % 12.6 \ n ' , NX ) ; break end
% Utilizando funciones se valora a la derivada de la Polinómica NFDX = polyval ( DA , NX ) ; if ( NFDX = = 0 ) disp( ' No HAY Raíz Solución X, La DERIVADA es cero ' ) break
else en = NFX / NFDX ; fprintf ( ' % 10.6 f % 14.6 f % 14.6 f % 8.6 f \ n ' , NX , NFX , NFDX , en ) NX = NX – en ; end end disp( ' ') fprintf ( ' X Solución = % 12.8 f \ n ' , NX ) end
Programación para calcular las raíces solución de la polinómica con funciones MatLab:
Programación: % Grado de la Polinómica
N = input ( ' Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = ' ) ; while ( N < 2 ) | ( N > 6 ) N = input( ' Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = ' ) ; End
% Lectura de los coeficientes de la Polinómica
for i = 1 : ( N + 1 ) fprintf ( ' Ingrese el coeficiente A ( % 2 d ) ' , i ) A(i) = input ( ' = ' ) ; while ( A(1) = = 0 ) fprintf ( ' Ingrese el coeficiente A ( % 2 d ) ' , i ) A(i) = input ( ' = ' ) ; end end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
% Cálculo de las Raíces de la Polinómica x = roots ( A ) ; m = length ( x ) ; % I mpresión de las Raíces Solución de la Polinómica
for L = 1 : m fprintf ( ' Raíz solución X ( % 2 d ) = % 12.6 f \ n ' , L , x(L) ) end
Ejecutado el programa, presenta los siguientes resultados:
Para la Polinómica:
f ( X ) = X 3 - 3 X 2 - 13 X + 15
Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = 1 Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = 3 Ingrese el Coeficiente A ( 1 ) = 1 Ingrese el Coeficiente A ( 2 ) = -3 Ingrese el Coeficiente A ( 3 ) = -13 Ingrese el Coeficiente A ( 4 ) = 15 Raíz solución X ( 1 ) = Raíz solución X ( 2 ) = Raíz solución X ( 3 ) =
Para la Polinómica:
5.000000 -3.000000 1.000000 f ( X ) = X 5 + 2 X 4 + 2 X 3 - 4 X 2 + 12 X + 3
Ingrese el Grado N de la Polinómica Mayor a 2 y Menor a 7 = 5 Ingrese el Coeficiente A ( 1 ) = 1 Ingrese el Coeficiente A ( 2 ) = 2 Ingrese el Coeficiente A ( 3 ) = 2 Ingrese el Coeficiente A ( 4 ) = -4 Ingrese el Coeficiente A ( 5 ) = 12 Ingrese el Coeficiente A ( 6 ) = 3 Raíz solución Raíz solución Raíz solución Raíz solución Raíz solución
X(1)= X(2)= X(3)= X(4)= X(5)=
-1.818844 -1.818844 0.934164 0.934164 -0.230641
PDF created with pdfFactory Pro trial version
- 104 -
MatLab
Ing. Wilian Andrade Medina
- 105 -
ARRE GLOS MATE MÁTI COS BI DI ME NSI ONALE S MATR I CE S En el MatLab a los arreglos matemáticos bidimensionales o mejor identificados como MATR I CE S, se les representa con nombres de variables.
1.- ) ASIGNACIÓN DE LOS ELEMENTOS DE UNA MATRIZ A UNA VARIABLE La asignación de datos a una matriz cualquiera, se realiza por medio de una igualdad de los respectivos elementos a los cuales va a representar la matriz, la asignación de valores a la matriz se representan entre corchetes.
>> v = [ 2 41 6 17 ; -7 -3 10 1 ; 9 3 2 8 ] v=
2 41 6 17 -7 -3 10 1 9 3 2 8
2.- ) INGRESO DE LOS ELEMENTOS DE UNA MATRIZ A UNA VARIABLE El ingreso de datos en una matriz cualquiera corresponde a un diseño de lectura de datos para la matriz, considerando un número N de filas y un número M de columnas respectivas. Por programación, las matrices son representadas por nombres de variables y el ingreso de datos ( LECTURA MATRICIAL ) se diseña con un conjunto de instrucciones que define el ciclo de lectura, la identificación de la posición del elemento en la matriz se realiza entre paréntesis con las variables índice definidas por un contador de las filas y un contador de las columnas.
% Diseño de lectura de datos o elementos de una matriz. n = input ( ' Ingrese número de filas de la matriz a = ' ) ;
while n<=0 n = input ( ' Ingrese un número positivo de filas de la matriz a = ' ) ; end m = input ( ' Ingrese número de columnas de la matriz a = ' ) ; while m<=0 m = input ( ' Ingrese un número positivo de columnas de la matriz a = ' ) ; end
for f = 1 : n for c = 1 : m fprintf ( ' I ngrese el elemento de la matriz A ( % 2 d , % 2 d ) ' , f , c ) a(f,c) = input ( ' = ' ) ; end end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 106 -
Ingrese número de filas de la matriz a = -4 Ingrese un número positivo de filas de la matriz a = 3 Ingrese número de columnas de la matriz a = -2 Ingrese un número positivo de columnas de la matriz a = 4 Ingrese el elemento de la matriz A ( 1 , 1 ) = 11 Ingrese el elemento de la matriz A ( 1 , 2 ) = -4 Ingrese el elemento de la matriz A ( 1 , 3 ) = 65 Ingrese el elemento de la matriz A ( 1 , 4 ) = 8 Ingrese el elemento de la matriz A ( 2 , 1 ) = 14 Ingrese el elemento de la matriz A ( 2 , 2 ) = 6 Ingrese el elemento de la matriz A ( 2 , 3 ) = 0 Ingrese el elemento de la matriz A ( 2 , 4 ) = 21 Ingrese el elemento de la matriz A ( 3 , 1 ) = 33 Ingrese el elemento de la matriz A ( 3 , 2 ) = 1 Ingrese el elemento de la matriz A ( 3 , 3 ) = 17 Ingrese el elemento de la matriz A ( 3 , 4 ) = 20 En la lectura de los datos de una matriz, se puede considerar que la matriz por lo menos tenga UN elemento, para ser representada como ESCALAR o por lo menos DOS elementos para ser representada como un VECTOR. A los arreglos MATR I CI ALE S, se les representa con nombres de variables y con los subíndices que indican la posición del elemento en la fila y de la columna de la matriz. La matriz tiene la siguiente notación:
Nombre ( variable índice fila , variable índice columna ) Nombre , corresponde a un nombre propio de variable que representa a la matriz o al espacio de memoria que ocupa la matriz en dos direcciones, para sus elementos distribuidos en N filas y M columnas. Variable índice fila, corresponde a un nombre de variable predefinida, constante o expresión
aritmética predefinida, que identifica la posición del elemento en la fila respectiva de la matriz o la posición del elemento en la fila del espacio de memoria del arreglo matricial.
Variable índice columna, corresponde a un nombre de variable predefinida, constante o expresión aritmética predefinida, que identifica la posición del elemento en la columna respectiva de la matriz o la posición del elemento en la columna del espacio de memoria del arreglo matricial. Matriz B ( N , M ) B(1,1) B(1,2) B(1,3) . . .
B(1,M)
B(2,1) B(2,2) B(2,3) . . .
B(2,M)
...
...
...
...
...
B(N,1) B(N,2) B(N,3) . . .
PDF created with pdfFactory Pro trial version
B(N,M)
MatLab
Ing. Wilian Andrade Medina
- 107 -
En el MatLab, para identificar a la matriz o sus elementos, se puede utilizar la siguiente notación: 1.- Cuando se refiere específicamente a un solo elemento de la matriz, el detalle de posición es explícito y los subíndices son una constante: a(5,3) b(1,4) 2.- Cuando se refiere a un elemento de la matriz de acuerdo a la identificación de la posición del elemento; en el detalle de posición los subíndices son nombres de variable predefinidas o de una expresión aritmética que defina las posiciones de los elementos: a(f,4) b ( 3* f – 1 , 2*c ) 3.- Cuando se refiere específicamente a la matriz, únicamente el nombre de la matriz, identifica a todos sus elementos en el orden y posición que representa: a v
E STRUCTURA DE L MANEJ O DE MATRI CES Y SUS ELE MENTOS: Por medio de funciones del MatLab, se logra con un conjunto de instrucciones el manejo de las matrices, considerando el arreglo que representa y la operatividad matemática:
Asignación directa de una matriz.
>> a = [ 6 3 ; 5 1 ] a= 6 5
3 1
Asignación directa de una matriz, utilizando comas para separar los elementos.
>> a = [ 12 , -33 ; 25 , 17 ; 10 , 71 ] a=
12 -33 25 17 10 71
Determinación directa de un elemento de la matriz.
>> a = [ 12 , -33 ; 25 , 17 ; 10 , 71 ] ; >> a ( 3 , 1 ) ans = 10
PDF created with pdfFactory Pro trial version
% Fila 3 Columna 1
MatLab
Ing. Wilian Andrade Medina
>> a = [ 12 , -33 ; 25 , 17 ; 10 , 71 ] ; >> r = a ( 2 , 2 )
- 108 -
% Fila 2 Columna 2
r= 17 En la ventana workspace se puede activar el editor de arreglos, que presenta un esquema similar a una hoja electrónica, en el que se puede visualizar la estructura y los elementos de la matriz y también modificar con facilidad las dimensiones y el contenido de la matriz y de los vectores disponibles.
Generar una matriz con los elementos de un vector.
>> x = [ 5 , 13 , -4 , 8 ] ; >> a = [ x ; x ] a= 5 13 -4 5 13 -4
8 8
>> x = [ 5 , 13 , -4 , 8 ] ; >> y = [ 6 , 0 , 21 , 5 ] ; >> a = [ x ; y ]
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 109 -
a= 5 13 -4 6 0 21
8 5
Generar una matriz aumentada con los elementos de un vector. a= 5 13 -4 6 0 21
8 5
>> b = [ 5 , 6 , -3 , 11 ] ; >> c = [ a ; b ] c= 5 13 -4 8 6 0 21 5 5 6 -3 11
Generar un vector con los elementos de una fila o columna seleccionada de la matriz. c= 5 13 -4 8 6 0 21 5 5 6 -3 11
>> x = c ( 2 , : ) x = 6
0
21
5
>> y = c ( : , 1 ) y = 5 6 5
Eliminar los elementos de una fila o columna seleccionada de la matriz. c= 5 13 -4 8 6 0 21 5 5 6 -3 11
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
>> c ( : , 3 ) = [ ]
- 110 -
% Para eliminar tercera columna de la matriz.
c= 5 13 8 6 0 5 5 6 11
>> c ( 2 , : ) = [ ]
% Para eliminar segunda fila de la matriz.
c= 5 5
13 8 6 11
Generar matriz nula (sin elementos la matriz).
>> a = [ ] a= []
Generar una matriz transpuesta.
>> a = [ 11 , 2 , 33 ; 44 , 25 , 62 ; 37 , 8 , 29 ; 13 , 17 , 4 ] a= 11 2 33 44 25 62 37 8 29 13 17 4
>> c = a '
% Matriz transpuesta
c= 11 44 37 13 2 25 8 17 33 62 29 4
Calcular el producto de un escalar con una matriz.
>> a = [ 11 , 2 , 33 ; 44 , 25 , 62 ; 37 , 8 , 29 ; 13 , 17 , 4 ] >> c = 3 * a a=
11 2 33 44 25 62 37 8 29 13 17 4
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 111 -
c= 33 6 99 132 75 186 111 24 87 39 51 12
Calcular la suma de matrices (del mismo orden).
>> a = [ 11 , 2 , 33 ; 44 , 25 , 62 ; 37 , 8 , 29 ; 13 , 17 , 4 ] >> c = [ 33 , 6 , 99 ; 132 , 75 , 186 ; 111 , 24 , 87 ; 39 , 51 ,12 ] >> s = a + c s = 44 8 132 176 100 248 148 32 116 52 68 16
Calcular el producto de matrices. ( número columnas de a = número filas de b ).
>> a = [ 1 , 2 , -5 ; 4 , 2 , -6 ; 7 , 8 , 9 ; -3 , 7 , 4 ] >> b = [ 3 , 7 , -1 ; 4 , 9 , 2 ; -3 , 4 , 1 ] >> c = a * b a=
b=
c=
1 2 -5 4 2 -6 7 8 9 -3 7 4 3 7 -1 4 9 2 -3 4 1 26 5 -2 38 22 -6 26 157 18 7 58 21
Calcular el producto de matrices, elemento por elemento (matrices del mismo orden).
>> a = [ 1 , 2 , -5 ; 4 , 2 , -6 ] >> b = [ 3 , 7 , 2 ; -3 , 4 , 1 ] >> c = a . * b
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
a=
b=
c=
1 4
2 2
-5 -6
3 -3
7 4
2 1
3 14 -10 -12 8 -6
Calcular el cuadrado de una matriz ( equivalente al producto de una matriz cuadrada).
>> a = [ 1 , 2 , -5 ; 4 , 2 , -6 ; -3 , 7 , 4 ] >> z = a ^ 2 a=
1 2 -5 4 2 -6 -3 7 4
z =
- 112 -
24 30 13
-29 -30 36
-37 -56 -11
Calcular el cuadrado de cada elemento de una matriz.
>> a = [ 1 , 2 , -5 ; 4 , 2 , -6 ; -3 , 7 , 4 ] >> x = a . ^ 2 a=
x =
1 4 -3
2 2 7
-5 -6 4
1 16 9
4 4 49
25 36 16
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 113 -
F UNCI ONES PARA MATRI CES Y GENE RACI ÓN DE MATRI CES ESPE CI ALES FUNCIÓN isinteger La función isinteger determina si la entrada de datos es matriz de enteros y devuelve true si la matriz es un tipo entero y false si no lo es. >> A = [ 3 4 5 ] A = 3
4
5
>> T = isinteger ( A ) T= 0 >> v = [ 2 3 4 ; 4 5 6 ] v= 2 4
3 5
4 6
>> r = isinteger ( v ) r= 0
FUNCIÓN ones La función ones , genera una matriz en que todos sus elementos son 1.
Para generar una matriz cuadrada.
>> a = ones ( 5 )
% Matriz cuadrada unitaria de orden 5
a= 1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
- 114 -
Para generar una matriz de orden ( n * m ) .
>> b = ones ( 4 , 3 ) b=
1 1 1 1
% Ma M atri trizz unitar unitar i a de de or den ( 4, 3 ) 1 1 1 1
1 1 1 1
FUNCIÓN rand La función rand , genera una matriz con números números aleatorios (entre 0 y 1).
Para generar una matriz cuadrada. cuadrada.
>> a = rand ( 3 ) a= 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575
Para generar una matriz de orden ( n * m ) .
>> w = ra r and ( 3 , 4 ) w= 0.8147 0.9134 0.2785 0.9649 0.9058 0.6324 0.5469 0.1576 0.1270 0.0975 0.9575 0.9706
FUNCIÓN diag La función diag , genera una matriz cuadrada cuadrada ubicando a los n elementos que tiene un vector como elementos de la diagonal principal.
>> w = [ 15 -13 29 ] ; >> z = diag ( w ) z =
15 0 0 -13 0 0
0 0 29
La función diag , también genera un vector con los n elementos que tiene la matriz como valores de la diagonal principal.
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
- 115 -
>> a = [ 1 , 2 , -5 ; 4 , 2 , -6 ; -3 , 7 , 4 ] >> d = diag ( a ) a= 1 2 -5 4 2 -6 -3 7 4 d= 1 2 4
FUNCIÓN size La función size columnas que tiene una matriz. size , determina el número de filas y el número de columnas
>> a = [ 11 , 2 , 33 ; 44 , 25 , 62 ; 37 , 8 , 29 ; 13 , 17 , 4 ] >> [ n , m ] = size size ( a ) a= 11 44 37 13
2 25 8 17
33 62 29 4
n= 4 m= 3
FUNCIÓN eye La función eye , genera una matriz cuadrada en la que la diagonal diagonal principal sus elementos es el valor 1 ( Diagonal principal unitaria ).
>> w = eye ( 4 ) ; w= 1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
- 116 -
FUNCIÓN zeros zer os , genera una matriz cuadrada La función ze cuadrada en la que sus elementos son el valor cero ( 0 ). >> h = zeros ( 4 ) h= 0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
FUNCIÓN det La función det , genera el valor calculado de la determinante de una una matriz cuadrada.
>> a = [ 2 , -4 , 16 ; 3 , -5 , 1 ; 7 , 0 , 6 ] >> d = det ( a ) a= 2 3 7
-4 -5 0
16 1 6
d= 544
FUNCIÓN inv La función inv , calcula la matriz inversa.
>> a = [ 2 , -4 , 16 ; 3 , -5 , 1 ; 7 , 0 , 6 ] >> b = inv ( a ) a= 2 3 7
-4 -5 0
16 1 6
b= -0.0551 -0.0202 0.0643
0.0441 -0.1838 -0.0515
0.1397 0.0846 0.0037
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 117 -
FUNCIÓN tril La función tril , determina la matriz triangular inferior.
>> a = [ 2 , -4 , 16 ; 13 , -5 , 1 ; 7 , 11 , 6 ] >> b = tril ( a ) a=
b=
2 13 7
-4 -5 11
16 1 6
2 13 7
0 -5 11
0 0 6
FUNCIÓN triu La función triu , determina la matriz triangular superior. a = [ 2 , -4 , 16 ; 13 , -5 , 1 ; 7 , 11 , 6 ] b = triu ( a ) a=
b=
2 13 7
-4 -5 11
16 1 6
2 0 0
-4 -5 0
16 1 6
FUNCIÓN lu La función lu , realiza la descomposición triangular de la matriz a en la matriz b y matriz c tales que en el orden de ( b * c ) entrega la matriz original a
>> a = [ 1 1 1 1 ; 2 1 3 2 ; 1 3 2 1 ; 3 2 1 1 ] >> [ b , c ] = lu ( a ) a=
1.0000 2.0000 1.0000 3.0000
1.0000 1.0000 3.0000 2.0000
PDF created with pdfFactory Pro trial version
1.0000 3.0000 2.0000 1.0000
1.0000 2.0000 1.0000 1.0000
MatLab
Ing. Wilian Andrade Medina
- 118 -
b= 0.3333 0.6667 0.3333 1.0000
0.1429 -0.1429 1.0000 0
0.1667 1.0000 0 0
1.0000 0 0 0
3.0000 0 0 0
2.0000 2.3333 0 0
1.0000 1.6667 2.5714 0
1.0000 0.6667 1.4286 0.3333
1.0000 2.0000 1.0000 3.0000
1.0000 1.0000 3.0000 2.0000
1.0000 3.0000 2.0000 1.0000
1.0000 2.0000 1.0000 1.0000
c=
>> w = b * c w=
FUNCIÓN max La función max , determina el mayor valor de los elementos de cada columna de la matriz.
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ] >> v = max ( a ) a= 2 3 17 -3
-4 6 14 10
17
14
16 -5 6 7
8 11 -2 4
v= 16
11
FUNCIÓN sum La función sum , calcula la sumatoria de los elementos de cada columna de la matriz.
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ] >> s = sum ( a )
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 119 -
a= 2 3 17 -3
-4 6 14 10
16 -5 6 7
8 11 -2 4
19
26
24
21
s =
FUNCIÓN prod La función prod , calcula el producto de los elementos de cada columna de la matriz.
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ] >> h = prod ( a ) a= 2 3 17 -3
-4 6 14 10
16 -5 6 7
-3360
-3360
8 11 -2 4
h= -306
-704
F UNCI ÓN mean La función mean , calcula el promedio de los elementos de cada columna de la matriz.
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ] >> m = mean ( a ) a= 2 3 17 -3
-4 6 14 10
16 -5 6 7
8 11 -2 4
m= 4.7500
6.5000
PDF created with pdfFactory Pro trial version
6.0000
5.2500
MatLab
Ing. Wilian Andrade Medina
- 120 -
FUNCIÓN sort La función sort , realiza el ordenamiento ascendente de los elementos de cada columna de la matriz.
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ] >> x = sort ( a ) a= 2 3 17 -3
-4 6 14 10
-3 2 3 17
-4 6 10 14
16 -5 6 7
8 11 -2 4
x = -5 6 7 16
-2 4 8 11
F UNCI ÓN cumprod La función cumprod , calcula el producto acumulado (sumatoria) de cada uno de los elementos de cada columna de la matriz.
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ] >> y = cumprod ( a ) a= 2 3 17 -3
-4 6 14 10
16 -5 6 7
8 11 -2 4
y = 2 6 102 -306
-4 -24 -336 -3360
16 -80 -480 -3360
PDF created with pdfFactory Pro trial version
8 88 -176 -704
MatLab
Ing. Wilian Andrade Medina
- 121 -
F UNCI ÓN cumsum La función cumsum , calcula la sumatoria acumulada de cada uno de los elementos de cada columna de la matriz.
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ] >> v = cumsum ( a ) a= 2 3 17 -3
-4 6 14 10
16 -5 6 7
8 11 -2 4
v= 2 5 22 19
-4 2 16 26
16 11 17 24
8 19 17 21
F UNCI ÓN vander La función vander , genera la matriz cuadrada de Vandermonde en que sus elementos representan a los coeficientes de un sistema de ecuaciones lineales definidos con los valores de x, de acuerdo al grado n de la polinómica, que sus coeficientes se desean calcular. Si se plantea que la polinómica a definir es:
Y
= a (1) x 3 + a(2) x 2 + a(3) x + a(4)
Y las incógnitas de la polinómica son los términos definidos con la variable vectorial a, entonces se plantea el siguiente sistema con valores conocidos de x:
a(1) x1 3 a(1) x2 3 a(1) x3 3 a(1) x4 3
+ + + +
a(2) x1 2 a(2) x2 2 a(2) x3 2 a(2) x4 2
+ + + +
a(3) x1 a(3) x2 a(3) x3 a(3) x4
+ + + +
a(4) a(4) a(4) a(4)
Por lo que se dispondría de la matriz: x1 x2 x3 x4 3
x1 x2 x3 x4 2
PDF created with pdfFactory Pro trial version
x1 x2 x3 x4
1 1 1 1
= = = =
f (x1) f (x2) f (x3) f (x4)
MatLab
Ing. Wilian Andrade Medina
- 122 -
Por lo tanto si el vector x está definido por ( m = 4 ) elementos seleccionados, la aplicación de la función vander , realizara el cálculo de la siguiente matriz ejemplo:
>> x = [ 3 , 5 , 6 , 8 ] ; >> a = vander ( x ) a= 27 125 216 512
9 25 36 64
3 5 6 8
1 1 1 1
FUNCIÓN rref La función rref , a partir de la matriz de orden N * M en que sus elementos se han generado con los coeficientes de un sistema de ecuaciones lineales simultaneas, calcula la matriz solución del sistema de ecuaciones lineales simultaneas, por el Método de Gauss-Jordan , entregando una matriz final en el que la diagonal principal es unitaria, los elementos sobre y bajo la diagonal principal son ceros y la columna M de la matriz son los valores respectivos de las incógnitas del sistema. Tomando como ejemplo un sistema de orden cuatro ( 4 ecuaciones, 4 incógnitas ):
X1
+
X2
+
X3
+
X4
=
10
2 X1
+
X2
+
3 X3
+
2 X4
=
21
X1
+
3 X2
+
2 X3
+
X4
=
17
3 X1
+
2 X2
+
X3
+
X4
=
14
Se plantea la matriz inicial siguiente: >> a = [ 1 1 1 1 10 ; 2 1 3 2 21 ; 1 3 2 1 17 ; 3 2 1 1 14 ] a= 1 2 1 3
1 1 3 2
1 3 2 1
1 2 1 1
10 21 17 14
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 123 -
Aplicando la función rref , que aplicación el Método de Gauss-Jordan, se dispone de: >> x = rref ( a ) x = 1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 2 3 4
Por lo tanto, los valores solución del sistema, en la matriz resultante, son: X1 = X2 = X3 = X4 =
1.0000 2.0000 3.0000 4.0000
>> open rref La instrucción permite visualizar el contenido de la función rref , que calcula los valores solución de un sistema de ecuaciones lineales simultaneas por el método de Gauss-Jordan. function [ A , jb ] = rref ( A , tol ) % rref Reduced row echelon form. % R = RREF(A) produces the reduced row echelon form of A. %
% [R,jb] = RREF(A) also returns a vector, jb, so that: % r = length(jb) is this algorithm's idea of the rank of A, % x(jb) are the bound variables in a linear system, Ax = b, % A(:,jb) is a basis for the range of A, % R(1:r,jb) is the r-by-r identity matrix. %
% [R,jb] = RREF(A,TOL) uses the given tolerance in the rank tests. %
% Roundoff errors may cause this algorithm to compute a different % value for the rank than RANK, ORTH and NULL. %
% Class support for input A: % float: double, single %
% See also RANK, ORTH, NULL, QR, SVD. % Copyright 1984-2005 The MathWorks, Inc. [ m , n ] = size ( A ) ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
% Does it appear that elements of A are ratios of small integers? [ num , den ] = rat ( A ) ; rats = isequal ( A , num . / den ) ; % Compute the default tolerance if none was provided. if ( nargin < 2 ) , tol = max ( m , n ) * eps ( class ( A ) ) * norm ( A , ' inf ' ) ; end % Loop over the entire matrix. i = 1; j = 1; jb = [ ]; while ( i < = m ) && ( j < = n ) % Find value and index of largest element in the remainder of column j. [ p , k ] = max ( abs ( A ( i : m , j ) ) ) ; k = k + i – 1 ; if ( p < = tol ) % The column is negligible, zero it out. A ( i : m , j ) = zeros ( m – i + 1 , 1 ) ; j = j + 1; else % Remember column index jb = [ jb j ]; % Swap i-th and k-th rows. A ( [ i k ] , j : n ) = A ( [ k i ] , j : n ) ; % Divide the pivot row by the pivot element. A ( i , j : n ) = A ( i , j : n ) / A ( i , j ) ; % Subtract multiples of the pivot row from all the other rows. for k = [ 1 : i – 1 i + 1 : m ] A ( k , j : n ) = A ( k , j : n ) - A ( k , j ) * A ( i , j : n ) ; end i = i + 1; j = j + 1; end end % Return "rational" numbers if appropriate. if rats [ num , den ] = rat ( A ) ; A = num . / den ; end
PDF created with pdfFactory Pro trial version
- 124 -
MatLab
Ing. Wilian Andrade Medina
- 125 -
APL I CACI ONE S MATE MÁTI CAS CON MATR I CE S
Producto de la inversa de una matriz cuadrada con un vector vertical.
>> a = [ 1 1 1 1 ; 2 1 3 2 ; 1 3 2 1 ; 3 2 1 1 ] >> b = [ 10 ; 21 ; 17 ; 14 ] >> x = inv ( a ) * b a=
1 2 1 3
1 1 3 2
1 3 2 1
1 2 1 1
b= 10 21 17 14 x = 1.0000 2.0000 3.0000 4.0000 El proceso matemático generado, representa a la aplicación matemática de resolución de un sistema de ecuaciones lineales simultaneas utilizando el método de Gauss Jordan, de modo directo presenta las soluciones de las incógnitas del sistema. Tomando como ejemplo un sistema de orden cuatro ( 4 ecuaciones, 4 incógnitas ):
X1
+
X2
+
X3
+
X4
=
10
2 X1
+
X2
+
3 X3
+
2 X4
=
21
X1
+
3 X2
+
2 X3
+
X4
=
17
3 X1
+
2 X2
+
X3
+
X4
=
14
La matriz cuadrada se representa con los coeficientes de sistema de ecuaciones lineales y el vector vertical con los términos independientes del sistema de ecuaciones lineales.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 126 -
a=[1111;2132;1321;3211] b = [ 10 ; 21 ; 17 ; 14 ] Se realiza el cálculo de la matriz inversa y se efectúa el producto con el vector vertical, matemáticamente procede a reemplazar a toda la estructura de cálculo de los valores de X1, X2, X3 y X4 que se realiza por el método de Gauss Jordan, que son las incógnitas del sistema.
>> z = inv ( a ) >> x = z * b z = -0.6667 0.3333 -1.6667 3.0000
0.1667 -0.3333 0.6667 -0.5000
-0.1667 0.5000 0.3333 0.0000 0.3333 -0.0000 -0.5000 -0.5000
x =
1.0000
%
Representa a X1.
2.0000
%
Representa a X2.
3.0000
%
Representa a X3.
4.0000
%
Representa a X4.
Generación de una matriz cuadrada compuesta.
>> clear all >> a = rand ( 3 ) >> b = [ 15 33 29 ]
% Matriz aleatoria. % Vector.
>> >> >> >>
% Matriz con diagonal que tiene los elementos del vector. % Matriz con la diagonal unitaria. % Matriz que contiene ceros. % Matriz compuesta.
e = diag ( b ) c = eye ( 3 ) d = zeros ( 3 ) t=[a e; c d] a=
0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 127 -
b= 15 33 29 e= 15 0 0 0 33 0 0 0 29 c= 1 0 0
0 1 0
0 0 1
0 0 0
0 0 0
0 0 0
d=
t=
0.8147 0.9058 0.1270 1.0000 0 0
0.9134 0.6324 0.0975
0 1.0000 0
0.2785 0.5469 0.9575
0 0 1.0000
15.0000 0 0
0 0 0
0 33.0000 0
0 0 0
0 0 29.0000
0 0 0
APL I CACI ONE S MATR I CI ALE S GE NE RALE S 1.- ) Considerando que A es una matriz de orden ( N x M ) con datos leídos, calcular el promedio de los elementos de cada fila y determinar el número mayor de los promedios calculados de las filas. % Aplicación con elementos de la matriz a n = input ( ' Ingrese número de filas = ' ) ; while ( n < 1 ) n = input ( ' Ingrese número de filas = ' ) ; end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 128 -
m = input ( ' Ingrese número de columnas = ' ) ; while ( m < 1 ) m = input ( ' Ingrese número de columnas = ' ) ; end for i = 1 : n for j = 1 : m fprintf ( ' Ingrese elemento de la matriz A ( % 2 d , % 2 d ) ' , i , j ) a(i,j) = input ( ' = ' ) ; end end
% Promedio de cada fila
for i = 1 : n s = 0 ; for j = 1 : m s = s + a(i,j) ; end p(i) = s / m ; End
% Sumatoria de elementos de cada fila. % Promedio de cada fila.
% Número mayor de los promedios de cada fila
mayor = p(1) ; for d = 2 : n if p(d) > mayor mayor = p(d) ; end end
% Impresión de la matriz con los promedios por cada fila
disp( ' MATRIZ ' ) disp( ' ' ) for i = 1 : n for j = 1 : m fprintf ( ' % 5 d ' , a(i,j) ) end fprintf ( ' % 10.4 f \ n ' , p(i) ) end
% Con formato solo para números enteros
% Impresión del valor mayor de los promedios de cada fila
disp( ' ' ) fprintf ( '
Valor mayor de los promedios = % 10.4 f \ n ' , mayor )
% Fin del programa.
Ejecutado el programa, presenta los siguientes resultados:
Ingrese número de filas = 4 Ingrese número de columnas = 5 Ingrese elemento de la matriz A ( 1 , 1 ) = 11
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 129 -
Ingrese elemento de la matriz A ( 1 , 2 ) = 15 Ingrese elemento de la matriz A ( 1 , 3 ) = 17 Ingrese elemento de la matriz A ( 1 , 4 ) = 21 Ingrese elemento de la matriz A ( 1 , 5 ) = 28 Ingrese elemento de la matriz A ( 2 , 1 ) = 23 Ingrese elemento de la matriz A ( 2 , 2 ) = 32 Ingrese elemento de la matriz A ( 2 , 3 ) = 36 Ingrese elemento de la matriz A ( 2 , 4 ) = 12 Ingrese elemento de la matriz A ( 2 , 5 ) = 9 Ingrese elemento de la matriz A ( 3 , 1 ) = 5 Ingrese elemento de la matriz A ( 3 , 2 ) = 13 Ingrese elemento de la matriz A ( 3 , 3 ) = 27 Ingrese elemento de la matriz A ( 3 , 4 ) = 33 Ingrese elemento de la matriz A ( 3 , 5 ) = 37 Ingrese elemento de la matriz A ( 4 , 1 ) = 4 Ingrese elemento de la matriz A ( 4 , 2 ) = 1 Ingrese elemento de la matriz A ( 4 , 3 ) = 0 Ingrese elemento de la matriz A ( 4 , 4 ) = 16 Ingrese elemento de la matriz A ( 4 , 5 ) = 20 MATRIZ 11 23 5 4
15 32 13 1
17 36 27 0
21 12 33 16
28 9 37 20
Valor mayor de los promedios =
18.4000 22.4000 23.0000 8.2000 23.0000
Para calcular los promedios y determinar el número mayor, con funciones de MatLab:
% Aplicación con elementos de la matriz a
n = input ( ' Ingrese número de filas = ' ) ; while ( n < 1 ) n = input ( ' Ingrese número de filas = ' ) ; end m = input ( ' Ingrese número de columnas = ' ) ; while ( m < 1 ) m = input ( ' Ingrese número de columnas = ' ) ; end for i = 1 : n for j = 1 : m fprintf ( ' Ingrese elemento de la matriz A ( % 2 d , % 2 d ) ' , i , j ) a(i,j) = input ( ' = ' ) ; end end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 130 -
% Promedio de cada fila
b=a'; p = mean ( b ) ;
% Número mayor de los promedios de cada fila mayor = max ( p ) ;
% Impresión de la matriz con los promedios por cada fila
for i = 1 : n for j = 1 : m fprintf ( ' % 5 d ' , a(i,j) ) end fprintf ( ' % 10.4 f \ n ' , p(i) ) end
% Impresión del valor mayor de los promedios de cada fila
disp( ' ' ) fprintf ( ' Valor mayor de los promedios = % 10.4 f \ n ' , mayor )
% Fin del programa 2.- ) Considerando que A es una matri z cuadrada ( N x N ) con datos leídos, calcular el promedio de los elementos de la matri z y determinar el número menor de los elementos de la diagonal principal. % Aplicación con matriz y diagonal principal.
n = input ( ' Ingrese número de filas/columnas matriz cuadrada = ' ) ; while ( n < 1 ) n = input ( ' Ingrese número de filas/columnas matriz cuadrada = ' ) ; end for i = 1 : n for j = 1 : n a(i,j) = input ( ' Ingrese elemento de la matriz = ' ) ; end end
% Promedio de la matriz
s = 0 ; for i = 1 : n for j = 1 : n s = s + a(i,j) ; end end p = s / ( n * n ) ;
% Número menor de la diagonal principal
menor = a(1,1) ; for d = 1 : n
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 131 -
if a(d,d) < menor menor = a(d,d) ; end end
% Impresión de la matriz con los promedios por cada fila
disp( ' ' ) disp( ' MATRIZ ' ) disp( ' ' ) for i = 1 : n for j = 1 : n fprintf ( ' % 5 d ' , a(i,j) ) end disp( ' ' ) end disp( ' ' )
% Con formato solo para números enteros
% Impresión del promedio de la matriz y el número menor de la diagonal principal. fprintf ( ' Valor promedio de los elementos de la matriz = % 10.4 f \ n ' , p )
disp( ' ' ) fprintf ( ' Número menor de la diagonal principal de la matriz = % 10.4 f \ n ' , menor
Ejecutado el programa, presenta los siguientes resultados:
Ingrese número de filas/columnas matriz cuadrada = 4 Ingrese elemento de la matriz = 5 Ingrese elemento de la matriz = 7 Ingrese elemento de la matriz = 9 Ingrese elemento de la matriz = 3 Ingrese elemento de la matriz = 22 Ingrese elemento de la matriz = 33 Ingrese elemento de la matriz = 11 Ingrese elemento de la matriz = 44 Ingrese elemento de la matriz = 20 Ingrese elemento de la matriz = 40 Ingrese elemento de la matriz = 10 Ingrese elemento de la matriz = 30 Ingrese elemento de la matriz = 7 Ingrese elemento de la matriz = 2 Ingrese elemento de la matriz = 6 Ingrese elemento de la matriz = 1 MATRIZ 5 22 20 7
7 33 40 2
9 11 10 6
3 44 30 1
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
Valor promedio de los elementos de la matriz = Número menor de la diagonal principal de la matriz =
- 132 -
15.6250 1.0000
Para calcular el promedio de los elementos de la matriz y determinar el número menor de la diagonal principal, con funciones de MatLab:
% Aplicación con matriz y diagonal principal.
n = input ( ' Ingrese número de filas/columnas matriz cuadrada = ' ) ; while ( n < 1 ) n = input ( ' Ingrese número de filas/columnas matriz cuadrada = ' ) ; end for i = 1 : n for j = 1 : n a(i,j) = input ( ' Ingrese elemento de la matriz = ' ) ; end end
% Promedio de los elementos de la matriz % r = mean ( a ) ; p = mean ( r ) ;
P = mean ( mean ( a ) ) ;
% Una sola instrucción.
% Número menor de la diagonal principal d = diag ( a ) ; menor = min ( d ) ;
% Impresión de la matriz
disp( ' ' ); disp( ' MATRIZ ' ) ; disp( ' ' ) for i = 1 : n for j = 1 : n % Con formato solo para números enteros fprintf ( ' % 5 d ' , a(i,j) ) end disp( ' ' ) end
% Impresión del promedio de la matriz y el número menor de la diagonal principal.
disp( ' ' ) fprintf ( ' Valor promedio de los elementos de la matriz = % 10.4 f \ n ' , p ) disp( ' ' ) fprintf ( ' Número menor de la diagonal principal de la matriz = % 10.4 f \ n ' , menor )
3.- ) Considerando que A y B son matri ces de orden ( N x M ) con datos leídos, calcular la suma de las matrices ( C = A + B ). % Suma de dos matrices del mismo orden ( N x M ) n = input ( ' Ingrese número de filas = ' ) ; while ( n < 1 )
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
n = input ( ' Ingrese número de filas = ' ) ; end m = input ( ' Ingrese número de columnas = ' ) ; while ( m < 1 ) m = input ( ' Ingrese número de columnas = ' ) ; end
% Lectura de datos de la matriz A y de la matriz B
for f = 1 : n for c = 1 : m fprintf ( ' Ingrese el elemento de la matriz A ( % 2 d , % 2 d ) ' , f , c ) a(f,c) = input ( ' = ' ) ; end end for f = 1 : n for c = 1 : m fprintf ( ' Ingrese el elemento de la matriz B ( % 2 d , % 2 d ) ' , f , c ) b(f,c) = input ( ' = ' ) ; end end
% Suma de matrices c=a+b;
% Impresión de la matriz A y de la matriz B
disp( ' MATRICES: A for i = 1 : n for j = 1 : m fprintf ( ' % 5 d ' , a(i,j) ) end fprintf ( ' ') for j = 1 : m fprintf ( ' % 5 d ' , b(i,j) ) end fprintf ( ' ') for j = 1 : m fprintf ( ' % 5 d ' , c(i,j) ) end disp( ' ' ) end disp( ' ' ) disp( ' ******* Muchas Gracias ' )
+
B
=
C')
% Fin del programa
Ejecutado el programa, presenta los siguientes resultados:
Ingrese número de filas = 2 Ingrese número de columnas = 3
PDF created with pdfFactory Pro trial version
- 133 -
MatLab
Ing. Wilian Andrade Medina
Ingrese el elemento de la matriz A ( Ingrese el elemento de la matriz A ( Ingrese el elemento de la matriz A ( Ingrese el elemento de la matriz A ( Ingrese el elemento de la matriz A ( Ingrese el elemento de la matriz A ( Ingrese el elemento de la matriz B ( Ingrese el elemento de la matriz B ( Ingrese el elemento de la matriz B ( Ingrese el elemento de la matriz B ( Ingrese el elemento de la matriz B ( Ingrese el elemento de la matriz B ( MATRICES: 11 20
22 30
1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2,
1) 2) 3) 1) 2) 3) 1) 2) 3) 1) 2) 3)
A
33 10
2 3
- 134 -
= 11 = 22 = 33 = 20 = 30 = 10 =2 =4 =6 =3 =7 =9 +
4 7
B
=
6 9
C 13 23
26 37
39 19
4.- ) Calcular las soluciones X i de un Sistema de E cuaciones Lineales Simultáneas, considerando la programación MatLab de la aplicación matemática del Método de Gauss Jordan, generando la matriz con los coeficientes del Sistema de E cuaciones Lineales de orden N. Tomando como ejemplo un sistema de orden cuatro ( 4 ecuaciones, 4 incógnitas ):
X1 2 X1 X1 3 X1
+ + + +
X2 X2 3 X2 2 X2
+ + + +
X3 3 X3 2 X3 X3
+ + + +
X4 2 X4 X4 X4
= = = =
10 21 17 14
Con los coeficientes del sistema de ecuaciones lineales, se plantea la matriz inicial: 1 2 1 3
1 1 3 2
1 3 2 1
1 2 1 1
10 21 17 14
La programación de la aplicación del Método de Gauss Jordan, se detalla a continuación:
clc clear all close all % Lectura de datos de la matriz generada por los coeficientes del sistema de ecuaciones fprintf ( ' Ingrese orden del Sistema de Ecuaciones Lineales, N ' ) N = input ( ' = ' ) ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
M = N + 1 ; for f = 1 : N for c = 1 : M fprintf ( ' Ingrese el valor de X ( % d , % d ) ' , f , c ) A ( f , c ) = input ( ' = ' ) ; end disp( ' ' ) end clc disp( ' ' ) disp( ' ******* SISTEMA DE ECUACIONES LINEALES SIMULTANEAS ' ) disp( ' ' ) for i = 1: N for j = 1 : N if ( A ( i , j ) > = 0 ) fprintf ( ' + % 10.4 f X ^ % d ' , A ( i , j ) , j ) else fprintf ( ' - % 10.4 f X ^ % d ' , abs ( A ( i , j ) ) , j ) end end fprintf ( ' = % 10.4 f ' , A ( i , M ) ) disp( ' ' ) end disp( ' ' ) disp( ' ******* Matriz Inicial Del Sistema De Ecuaciones Lineales ' ) disp( ' ' ) for ff = 1 : N for cc = 1 : M fprintf ( ' % 10.5 f ' , A ( ff , cc ) ) end disp( ' ' ) end disp( ' ' ) disp( ' ******* MÉTODO SOLUCIÓN DE GAUSS JORDAN ' ) disp( ' ' ) % Aplicación del Método de Gauss Jordan ( Total ) for i = 1 : N Z = A ( i , i ) ; F = i ; for j = F : M if Z = = 0 disp( ' ' ) disp( ' CAMBIAR ORDEN DE ECUACIONES ' ) disp( ' ' ) break else A ( i , j ) = A ( i , j ) / Z ; end end
PDF created with pdfFactory Pro trial version
- 135 -
MatLab
Ing. Wilian Andrade Medina
- 136 -
for k = 1 : N if k ~ = i D = A ( k , i ) ; for j = F : M A ( k , j ) = A ( k , j ) – D * A ( i , j ) ; end end end % Impresión de cada matriz resultado por cada elemento de la diagonal unitaria disp( ' ' ) fprintf ( ' Matriz % d ****************** ' , i ) disp( ' ' ) for ff = 1 : N for cc = 1 : M fprintf ( ' % 15.5 f ' , A ( ff , cc ) ) end disp( ' ' ) end end for i = 1 : N xc ( i ) = A ( i , M ) ; end disp( ' ' ) ; disp( ' Valores solución del Sistema de Ecuaciones Lineales ' ) disp( ' ' ) for i = 1 : N fprintf ( ' X % d = % 10.5 f \ n ' , i , A ( i , M ) ) end disp( ' ' ) disp( ' ' ) disp( ' ******* Muchas Gracias ' ) % Fin del programa
Los resultados de la aplicación del programa para el sistema de ecuaciones del ejemplo es el siguiente: ******* SISTEMA DE ECUACIONES LINEALES SIMULTÁNEAS + + + +
1.0000 X^1 2.0000 X^1 1.0000 X^1 3.0000 X^1
+ + + +
1.0000 X^2 1.0000 X^2 3.0000 X^2 2.0000 X^2
+ + + +
PDF created with pdfFactory Pro trial version
1.0000 X^3 3.0000 X^3 2.0000 X^3 1.0000 X^3
+ + + +
1.0000 X^4 2.0000 X^4 1.0000 X^4 1.0000 X^4
= = = =
10.0000 21.0000 17.0000 14.0000
MatLab
Ing. Wilian Andrade Medina
*******
Matriz Inicial Del Sistema De Ecuaciones Lineales
1.00000 2.00000 1.00000 3.00000
1.00000 1.00000 3.00000 2.00000
*******
1.00000 3.00000 2.00000 1.00000
1.00000 2.00000 1.00000 1.00000
- 137 -
10.00000 21.00000 17.00000 14.00000
MÉTODO SOLUCIÓN DE GAUSS JORDAN
Matriz 1 ****************** 1.00000 1.00000 0.00000 -1.00000 0.00000 2.00000 0.00000 -1.00000
1.00000 1.00000 1.00000 -2.00000
1.00000 0.00000 0.00000 -2.00000
10.00000 1.00000 7.00000 -16.00000
Matriz 2 ****************** 1.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 0.00000
2.00000 -1.00000 3.00000 -3.00000
1.00000 -0.00000 0.00000 -2.00000
11.00000 -1.00000 9.00000 -17.00000
Matriz 3 ****************** 1.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 1.00000 0.00000
1.00000 0.00000 0.00000 -2.00000
5.00000 2.00000 3.00000 -8.00000
Matriz 4 ****************** 1.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 1.00000 0.00000
0.00000 0.00000 0.00000 1.00000
1.00000 2.00000 3.00000 4.00000
Valores solución del Sistema de Ecuaciones Lineales X1 = 1.00000 X2 = 2.00000 X3 = 3.00000 X4 = 4.00000
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 138 -
5.- ) Cálculo de un valor de interpolación XI de una tabla de N pares coordenados de datos X - Y por medio del Método de I nterpolación Polinomial con ajuste mínimo de una polinómica de grado N = 3, planteando un sistema de E cuaciones Lineales de orden M = 4, utilizando la función Vander de MatLab y la programación del Método de Gauss Jordan. DATOS DE LA TABLA X 1.00 2.00 2.50 3.00 4.00 4.50 5.00 6.00
FX 1.75 3.00 3.25 3.60 3.80 4.10 3.75 3.50
DATO DE INTERPOLACIÓN XI = 2.3500
La programación de la aplicación del Método I nterpolación Polinomial, se detalla a continuación:
clc clear all disp( ' ' ) disp( ' ******* Ingrese el grado de la polinómica de ajuste a calcular ' ) ; po = uint8 ( input ( ' De preferencia Grado 3, Máximo Grado 6 = ' ) ) ; while ( po < 3 ) | ( po > 6 ) po = input ( ' ! Por favor el Grado de la Polinómica debe estar entre 3 y 6 = ! ' ) ; end disp( ' ' ) disp( ' ' ) disp( ' ******* Ingrese el número de pares coordenados X - Y para la tabla de Interpolación ' ) ; n = uint8 ( input ( ' Que sea Mínimo 8 pares de datos = ' ) ) ; while ( n < 8 ) n = input ( ' ! El número de pares de datos debe ser mayor o igual a 10 = ! ' ) ; end disp( ' ' ) disp( ' ' ) disp( ' ******* INGRESO DE DATOS X - Y, NO REPETIR LOS DATOS DE X ' ) fprintf ( ' Ingrese X ( 1 ) ' ) x ( 1 ) = input ( ' = ' ) ; fprintf ( ' Ingrese FX ( 1 ) ' ) y ( 1 ) = input ( ' = ' ) ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 139 -
for i = 2 : n fprintf ( ' Ingrese X ( % d ) ' , i ) x ( i ) = input ( ' = ' ) ; H = i – 1 ; W=0; for L = 1 : H if x ( i ) = = x ( L ) W=W+1; end end while W > 0 fprintf ( ' *** Ingrese un valor diferente para X ( % d ) \ n ' , i ) fprintf ( ' Ingrese X ( % d ) ' , i ) x ( i ) = input ( ' = ' ) ; H = i – 1 ; W=0; for L = 1 : H if x ( i ) = = x ( L ) W=W+1; end end end fprintf ( ' Ingrese FX ( % d ) ' , i ) y ( i ) = input ( ' = ' ) ; end for f1 = 1 : n xx ( f1 ) = x ( f1 ) ; yy ( f1 ) = y ( f1 ) ; end for k = 1 : n P = k ; menor = x ( k ) ; J = k ; for L = J : n if x ( L ) < menor P = L ; menor = x ( L ) ; end end aux = y ( P ) ; x ( P ) = x ( k ) ; x ( k ) = menor ; y ( P ) = y ( k ) ; y ( k ) = aux ; end clc disp( ' DATOS DE LA TABLA DATOS DE TABLA ORDENADOS ' ) disp( ' ' ) disp( ' X FX X FX ' ) for i=1:n
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 140 -
fprintf ( ' % 12.5 f % 12.5 f % 12.5 f % 12.5 f \ n ' , xx ( i ) , yy ( i ) , x ( i ) , y ( i ) ) end disp( ' ' ) disp( ' ******* INGRESO DEL VALOR DE X A INTERPOLAR ******* ' ) disp( ' ' ) fprintf ( ' Ingrese valor a interpolar XI ' ) xinter = input ( ' = ' ) ; while xinter < = x ( 1 ) | xinter > = x ( n ) fprintf ( ' *** El valor a interpolar debe estar entre X(inicial) = % 15.5 f y el valor de X(final) = % 15.5 f \ n ' , x ( 1 ) , x ( n ) ) fprintf ( ' Ingrese valor a interpolar XI ' ) xinter = input ( ' = ' ) ; end for c = 2 : n - 1 while ( xinter = = x ( c ) ) fprintf ( ' *** El valor a interpolar de XI = % 15.5 f debe ser diferente a los valores de X de la tabla \ n ' , xinter ) fprintf ( ' Ingrese valor a interpolar XI ' ) xinter = input ( ' = ' ) ; end end while xinter < = x ( 1 ) | xinter > = x ( n ) fprintf ( ' *** El valor a interpolar debe estar entre ( % 15.5 f ) y el valor de ( % 15.5 f ) \ n ' , x ( 1 ) , x ( n ) ) fprintf ( ' Ingrese valor a interpolar XI ' ) xinter = input ( ' = ' ) ; end disp( ' ' ) disp( ' DATO DE INTERPOLACIÓN ' ) fprintf ( ' XI = % 8.4 f \ n ' , xinter ) ; clc Xr = xinter ; disp( ' ' ) fprintf ( ' Valor de Interpolación XI = % 15.5 f \ n ' , xr ) disp( ' ******************************************* ' ) % Ajustando datos para una tabla auxiliar de N+1 grado de la polinómica de ajuste wil = po ; while po = = wil if ( xr > x ( n – 1 ) ) & & ( xr < x ( n ) ) for q = 0 : po z ( q + 1 ) = x ( n – wil + q ) ; fz ( q + 1 ) = y ( n – wil + q ) ; end end if ( xr > x ( 1 ) ) & & ( xr < x ( 2 ) ) for p = 1 : po + 1 z ( p ) = x ( p ) ; fz ( p ) = y ( p ) ; end
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
else for r = 1 : n - 2 if ( xr > x ( r ) ) & & ( xr < x ( r + 1 ) ) for l = 1 : po + 1 z ( l ) = x ( r + l - ( wil – 1 ) ) ; fz ( l ) = y ( r + l - ( wil – 1 ) ) ; end end end end wil = wil + 1 ; end disp( ' ' ) fprintf ( ' disp( ' ' ) disp( ' disp( ' ' ) for f = 1 : po + 1 fprintf ( ' end
TABLA DE INTERPOLACIÓN ' ) X % 15.5 f
F(X) ' ) % 15.5 f \ n ' , z ( f ) , fz ( f ) )
disp( ' ' ) ww = vander ( z ) ; A = [ ww fz ' ] ; H = po + 1 ; T = po + 2 ; for ff = 1 : H for cc = 1 : T fprintf ( ' % 12.5 f ' , A ( ff , cc ) ) ; end disp( ' ' ) end % Aplicación del Método de Gauss Jordan (Total) for i = 1 : H Z = A ( i , i ) ; F = i ; for j = F : T if Z = = 0 disp( ' ' ) disp( ' Se debe Cambiar el orden de las Ecuaciones Lineales ' ) break else A ( i , j ) = A ( i , j ) / Z ; end end for k = 1 : H if k ~ = i D = A ( k , i ) ;
PDF created with pdfFactory Pro trial version
- 141 -
MatLab
Ing. Wilian Andrade Medina
for j = F : T A ( k , j ) = A ( k , j ) - D * A ( i , j ) ; end end end % Impresión de cada matriz resultado por cada elemento de la diagonal unitaria fprintf( ' \ n Matriz % d ************** \ n ' , i ) disp( ' ' ) for ff = 1 : H for cc = 1 : T fprintf ( ' % 12.5 f ' , A ( ff , cc ) ) end disp( ' ' ) disp( ' ' ) end end for i = 1 : H xc ( i ) = A ( i , T ) ; end disp( ' ' ) fprintf ( ' \ n *** Coeficientes de la Polinómica Grado N = % d \ n ' , po ) for i = 1 : H fprintf ( ' A % d = % 12.5 f \ n ' , i , A ( i , T ) ) end % Elaboración de la ecuación polinómica como un texto (Programación) disp( ' ' ) disp( ' Por programación la ECUACIÓN es: ' ) ; vec = length ( xc ) ; nn = vec – 1 ; pp = 5 ; st = ' f ( x ) = ' ; for j = nn : - 1 : 0 if not ( xc ( nn – j + 1 ) = = 0 ) if and ( not ( j = = nn ) , xc ( nn – j + 1 ) > 0 ) st = strcat ( st , ' + ' ) ; end ; if xc ( nn – j + 1 ) < 0 st = strcat ( st , ' - ' ) ; end ; if or ( not ( abs ( xc ( nn – j + 1 ) ) = = 1 ) , j = = 0 ) st = strcat ( st , ' % . ' , num2str ( pp ) , ' f ' ) ; end ; if and ( not ( abs ( xc ( nn – j + 1 ) ) = = 1 ) , j > 0 ) st = strcat ( st , ' * ' ) ; end ; if j > 0 st = strcat ( st , ' x ' ) ;
PDF created with pdfFactory Pro trial version
- 142 -
MatLab
Ing. Wilian Andrade Medina
- 143 -
end ; if j > 1 st = strcat ( st , ' ^ ' , num2str ( j ) ) ; end ; end ; end ; cont = 0 ; b=0; for j = 1 : nn if not ( or ( xc ( j ) = = 0 , abs ( xc ( j ) ) = = 1 ) ) cont = cont + 1 ; if cont = = 1 b ( 1 ) = abs ( xc ( j ) ) ; else b = [ b , abs ( xc ( j ) ) ] ; end ; end ; end ; b = [ b , abs ( xc ( end ) ) ] ; st = strcat ( st , ' \ n ' ) ; disp( ' ' ) fprintf ( st , b ) ; % Elaboración de la ecuación polinómica como un texto (Función) disp( ' ' ) disp( ' ' ) disp( ' Por uso de función la ECUACIÓN es: ' ) disp( ' ' ) ecua = vpa ( poly2sym ( xc ) , 6 ) ; fprintf ( ' Ecuación: f(x) = ' ) disp( ecua ) disp( ' ' ) disp( ' ' ) yinter = polyval ( xc , xinter ) ; fprintf ( ' \ n Valor XI = % 15.5 f Valor FXI = % 15.5 f \ n ' , xinter , yinter ) disp( ' ' ) disp( ' ' ) disp( ' ******* Muchas Gracias ' ) % Fin del programa
Los resultados de la aplicación del programa para una tabla de M=8 pares coordenados X - Y del ejemplo, es el siguiente: ******* Ingrese el grado de la polinómica de ajuste a calcular
De preferencia Grado 3, Máximo Grado 6 = 3
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 144 -
******* Ingrese el número de pares coordenados X - Y para la tabla de Interpolación Que sea Mínimo 8 pares de datos = 8 ******* INGRESO DE DATOS X - Y, NO REPETIR LOS DATOS DE X Ingrese X(1) = 1 Ingrese FX(1) = 1.75 Ingrese X(2) = 3.0 Ingrese FX(2) = 3.6 Ingrese X(3) = 5 Ingrese FX(3) = 3.75 Ingrese X(4) = 6.0 Ingrese FX(4) = 3.5 Ingrese X(5) = 3 *** Ingrese un valor diferente para X(5) Ingrese X(5) = 2 Ingrese FX(5) = 3 Ingrese X(6) = 4.5 Ingrese FX(6) = 4.1 Ingrese X(7) = 5 *** Ingrese un valor diferente para X(7) Ingrese X(7) = 4 Ingrese FX(7) = 3.8 Ingrese X(8) = 2.5 Ingrese FX(8) = 3.25 DATOS DE LA TABLA X 1.00000 3.00000 5.00000 6.00000 2.00000 4.50000 4.00000 2.50000
FX 1.75000 3.60000 3.75000 3.50000 3.00000 4.10000 3.80000 3.25000
PDF created with pdfFactory Pro trial version
DATOS DE TABLA ORDENADOS X 1.00000 2.00000 2.50000 3.00000 4.00000 4.50000 5.00000 6.00000
FX 1.75000 3.00000 3.25000 3.60000 3.80000 4.10000 3.75000 3.50000
MatLab
Ing. Wilian Andrade Medina
- 145 -
******* INGRESO DEL VALOR DE X A INTERPOLAR ******* Ingrese valor a interpolar XI = 2.35 DATO DE INTERPOLACIÓN XI = 2.3500 Valor de Interpolación XI = 2.35000 ******************************************* TABLA DE INTERPOLACIÓN X 1.00000 2.00000 2.50000 3.00000 1.00000 8.00000 15.62500 27.00000 Matriz 1
1.00000 4.00000 6.25000 9.00000
1.00000 -4.00000 -9.37500 -18.00000
Matriz 2
**************
1.00000 0.00000 0.00000 0.00000
0.00000 1.00000 0.00000 0.00000
1.00000 0.00000 0.00000 0.00000
1.00000 2.00000 2.50000 3.00000
1.00000 1.00000 1.00000 1.00000
1.75000 3.00000 3.25000 3.60000
**************
1.00000 0.00000 0.00000 0.00000
Matriz 3
F(X) 1.75000 3.00000 3.25000 3.60000
1.00000 -6.00000 -13.12500 -24.00000
1.00000 -7.00000 -14.62500 -26.00000
1.75000 -11.00000 -24.09375 -43.65000
-0.50000 1.50000 0.93750 3.00000
-0.75000 1.75000 1.78125 5.50000
-1.00000 2.75000 1.68750 5.85000
0.00000 0.00000 1.00000 0.00000
0.20000 -1.10000 1.90000 -0.20000
-0.10000 0.05000 1.80000 0.45000
************** 0.00000 1.00000 0.00000 0.00000
PDF created with pdfFactory Pro trial version
MatLab
Matriz 4 1.00000 0.00000 0.00000 0.00000
Ing. Wilian Andrade Medina
************** 0.00000 1.00000 0.00000 0.00000
0.00000 0.00000 1.00000 0.00000
0.00000 0.00000 0.00000 1.00000
*** Coeficientes de la Polinómica Grado N = 3 A1 =
0.35000
A2 =
-2.42500
A3 =
6.07500
A4 =
-2.25000
Por programación la ECUACIÓN es: f(x) =0.35000 * x^3 -2.42500 * x^2 +6.07500 * x -2.25000
Por uso de función la ECUACIÓN es: Ecuación:
Valor XI =
- 146 -
f(x) = 0.35*x^3 - 2.425*x^2 + 6.075*x - 2.25
2.35000
Valor FXI =
******* Muchas Gracias
PDF created with pdfFactory Pro trial version
3.17644
0.35000 -2.42500 6.07500 -2.25000
MatLab
Ing. Wilian Andrade Medina
Graficación 2 D de Funciones Comando de Graficación plot para Pares de Datos Rotulación de los Ejes y Titulación del Gráfico. Aplicación con Funciones Polinómicas y Transcendentales Editor de Gráficos Comando de Graficación ezplot Comando ginput Comando gtext Comando de Graficación Polar ezpolar Comando de Graficación subplot Comando de Graficación figure Graficación 3 D de Funciones Comando ezsurf Comando ezmesh Comando ezcontour Comando ezsurfc
PDF created with pdfFactory Pro trial version
- 147 -
149 149 155 155 158 159 163 163 164 164 167 168 168 170 170 171
MatLab
Ing. Wilian Andrade Medina
Dios algunas veces geometriza Platón.
Entre dos hombres iguales en fuerza, el más fuerte es el que tiene la razón. Pitágoras.
PDF created with pdfFactory Pro trial version
- 148 -
MatLab
Ing. Wilian Andrade Medina
- 149 -
GRAF I CACI ÓN 2 D DE F UNCIONE S COMANDO DE GR AF I CACI ÓN plot
PARA PARE S DE DATOS
Para graficar funciones que se generan con pares coordenados de datos, se utiliza el comando plot , considerando la estructura de:
plot ( eje x , eje y , parámetros ) 1.- ) Para cuando se dispone de valores solo en el eje y: >> y = [ 5 3 7 9 4 3 1 ] ; >> plot ( y )
Grafo en el que el eje x por estructura propia de graficación de la función plot , la escala inicia a partir de 1 , variando en 1 hasta el número total de datos.
2.- ) Para cuando se dispone de pares coordenados, valores en el eje x y en el eje y: >> y = [ 5 3 7 9 4 3 1 ] ; >> x = [ 2 4 6 8 10 12 14 ] ; >> plot ( x , y )
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 150 -
3.- ) Para cuando se requiere graficar curvas utilizando parámetros para algún diseño de representación del gráfico de los pares coordenados < x , y >, desde programación :
Generando el grafo sin línea pero con un asterisco en los puntos < x , y >
>> y = [ 5 4 6 7 8 6 4 ] ; >> x = [ 2 4 7 10 14 18 21 ] ; >> plot ( x , y, ' * ' )
Generando el grafo con línea punteada por los puntos < x , y >
>> y = [ 5 4 6 7 8 6 4 ] ; >> x = [ 2 4 7 10 14 18 21 ] ; >> plot ( x , y , ' - - ' )
% Genera los asterisco en cada punto
% Generación de la línea punteada
Generando el grafo con línea punteada por los puntos < x , y > y con cuadrícula
>> x = [ -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 ] ; >> y = [ 13.0 9.75 7.0 4.75 3.0 1.75 1.0 0.75 1.0 1.75 3.0 4.75 ] ; >> plot ( x , y , ' - ' ) >> grid on ; % Generación de la cuadrícula
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 151 -
Generando el grafo con línea punteada por los puntos < x , y > , con cuadrícula, con un círculo en cada punto < x , y > y la línea de color verde, todo superpuesto.
>> x = [ -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 ] ; >> y = [ 13.0 9.75 7.0 4.75 3.0 1.75 1.0 0.75 1.0 1.75 3.0 4.75 ] ; >> plot ( x , y , ' o ' ) >> plot ( x , y , ' - - ' ) >> plot ( x , y , ' g ' )
% Grafo con círculos en los puntos % G enera la línea punteada. % Genera la línea de color verde (green)
>> grid on >> hold on
% Para superponer los gráficos.
El comando hold on permite superponer gráficos, para desactivar la superposición, se ejecuta la orden hold off
Se superpone gráficos de dos o más curvas con diseños variados, utilizando en el plot la programación respectiva con los pares coordenados correspondientes:
Curva Uno: corresponde ejes x – y Curva Dos: corresponde ejes x – z >> x = [ -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 ] ; >> y = [ 13.0 9.75 7.0 4.75 3.0 1.75 1.0 0.75 1.0 1.75 3.0 4.75 ] ; >> z = [ 9.5 7.5 4.5 2.5 1.0 0.5 1.5 2.5 4.0 5.75 6.0 8.0 ] ; >> plot ( x , y , ' r * - ' , x , z , ' b > - - ' )
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 152 -
En la elaboración de los gráficos para polinómicas generados con la función plot , se dispone de una variedad de parámetros que se pueden utilizar solos o combinados entre ellos:
Símbolos permitidos para realizar la representación ( marca ) de los puntos < x , y >: o * h s
d
> +
x . p v
\^
<
Aspa Punto Estrella 5 puntas Triángulo Triángulo arriba Triángulo izquierda
Símbolos permitidos para realizar el trazado de la línea de los puntos < x , y >: :
.-
Círculo Asterisco Estrella 6 puntas Cuadrado Rombo Triángulo derecha Cruz ( más )
Continuo ( línea solida ) Discontinuo ( línea punteada ) Punto y línea discontinuo
-.-
Línea de Trazos Línea de Punto y guión
Colores permitidos para el trazado de las líneas del gráfico: r
g b y
rojo verde azul amarillo
PDF created with pdfFactory Pro trial version
m
w c k
magenta blanco celeste negro
MatLab
Ing. Wilian Andrade Medina
- 153 -
4.- ) Para cuando se requiere graficar programando la aplicación con algún diseño de
cálculo o aplicación matemática, utilizando funciones propias de ecuaciones y representación del gráfico de los pares coordenados < x , y > :
Generando el grafo con línea punteada color rojo por los puntos < z , p >, que corresponden a la tabla de valores de la polinómica de ajuste de grado 3 .
>> x = [ -1.0 -0.8 0.2 0.7 1.3 1.8 2.1 2.6 3.3 3.7 4.2 4.8 ] ; >> y = [ 13.0 9.7 7.1 4.7
3.1 1.8 1.0 0.8 1.0 1.9 3.1 4.9 ] ;
>> a = polyfit ( x , y , 3 ) >> z = [ -1 : 0.5 : 4.5 ]
% Coeficientes polinómica de ajuste grado 3 % Definición de valores de z
>> p = polyval ( a , z ) >> plot ( z , p , ' r ' )
% Definición de valores de p en función de z % Grafo con línea de color r ojo
Determinando los siguientes valores que se calculan para realizar la curva de ajuste: a= 0.0527 0.5219 -4.1979 7.3797
z = -1.0000
-0.5000
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
p = 12.0469 9.6026 7.3797 5.4178 3.7565 2.4351 1.4934 0.9708 0.9068 1.3411 2.3131 3.8624
Cuando se utiliza la función como polyfit ( x , y , 1 ), realiza el cálculo de la recta de ajuste para la determinación de valores de interpolación por medio de una ecuación lineal.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 154 -
Generando el grafo con línea punteada color rojo por los puntos < z , s >, que corresponden a la tabla de valores de la polinómica de ajuste con los valores de interpolación utilizando la ecuación cubica de ajuste.
>> x = [ -1.0 -0.8 0.2 0.7 1.3 1.8 2.1 2.6 3.3 3.7 4.2 4.8 ] ; >> y = [ 13.0 9.7 7.1 4.7 3.1 1.8 1.0 0.8 1.0 1.9 3.1 4.9 ] ; >> a = polyfit ( x , y , 3 ) >> z = [ -1 : 0.5 : 4.5 ] >> p = polyval ( a , z ) >> s = spline ( x , y , z ) >> plot ( z , s , ' r ' ) >> grid on
a= 0.0527 0.5219 -4.1979 7.3797
z = -1.0000 -0.5000 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000
p = 12.0469 9.6026 7.3797 5.4178 3.7565 2.4351 1.4934
0.9708 0.9068 1.3411 2.3131 3.8624
s = 13.0000 7.4948 7.3016 5.7534 3.7125 2.6371 1.2201 0.7896 0.7775 1.3993 2.6208 3.9006
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 155 -
ROTULACIÓN DE L OS EJE S Y TITULACI ÓN DEL GRÁF I CO
Para cuando se requiere rotular los ejes y asignar un título al gráfico se hace la representación de los títulos por programación:
>> x = [ -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 ] ; >> y = [ 13.0 9.75 7.0 4.75 3.0 1.75 1.0 0.75 1.0 1.75 3.0 4.75 ] ; >> plot ( x , y , ' b * - - ' ) ; xlabel ( ' E j e X ' ) ; ylabel ( ' E j e Y ' ) ; . . . title ( ' Grafo Par Coordenado X - Y ' ) ; La curva de trazado tiene una combinación de características dadas por la unión de tres parámetros que representa el color azul ( b ) con un asterisco ( * ) de símbolo que marca los puntos < x , y > y la línea punteada ( - - ), con un título general del gráfico y títulos individualizados de identificación en cada eje; y, la aplicación del parámetro . . . que permite continuar con la programación en la siguiente línea de código.
APL I CACI ÓN CON FUNCI ONE S POLI NÓMI CA S O TR ANSCE ND E NTAL E S
Para cuando se requiere graficar los pares coordenados < x , y >, programando la aplicación con el uso de funciones polinómicas o funciones transcendentales, generando un vector de valores para x y un vector de valores para y con la respectiva función y facilitando la representación del gráfico.
f = función transcendental o polinómica. x = vector de valores en x. y = vector de valores en y, de la función para cada valor de x, par coordenado < x , y >
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 156 -
Aplicación con una función polinómica RE PR E SE NTADA por un vector: %
>> p = [ 1 -4 -7 21 3 ] ;
p = x 3 – 4 * x 2 + 21 * x +3
>> x = [ -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 ] >> y = polyval ( p , x ) % Pares coordenados < x – y > plot ( x , y , ' bo -- ' ) ; xlabel ( ' Escala en E j e X ' ) ; ylabel ( ' Escala en E j e Y ' ) ;... title ( ' Grafico Polinómica: y = x 3 – 4 * x 2 + 21 * x + 3 ' ) ; x = -1.0000 3.0000
-0.5000 3.5000
0 4.0000
0.5000 4.5000
1.0000
1.5000
2.0000
2.5000
11.3125 1.3125
14.0000
10.3125
1.0000
-11.6875
y = -20.0000 -8.6875 3.0000 -24.0000 -30.6875 -25.0000
Una polinómica representada en un vector p ( p = x 3 – 4 * x 2 + 21 * x + 3 ) que se utiliza con el vector x, para definir los valores coordenados de y, realizar la graficación de los pares coordenados < x , y > con un trazado discontinuo , de color azul y con el símbolo o que es la marca o la representación de los puntos de graficación.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
APL I CACI ÓN CON UNA F UNCI ÓN POLI NÓMI CA
>> f = ' x . ^ 2 – 4 . * x + 4 ' ;
% F unción polinómica de x.
>> x = [ -8 : 2 : 10 ] >> y = eval ( f )
% Vector de valores de x. % Vector de valores de y.
>> plot ( x , y , ' r * - - ' ) x = -8
-6
-4
-2
0
2
4
6
8
10
y = 100
64
36
16
4
0
4
16
36
64
APL I CACI ÓN CON UNA F UNCI ÓN TR ANSCE ND E NTAL
>> f = ' x . ^ 2 – sin ( x ) ' ;
% F unción transcendental de x.
>> x = ( -3.1416 : 0.5 : 3.1416 ) >> y = eval ( f )
% Vector de valores de x. % Vector de valores de y.
>> plot ( x , y , ' b x - - ' ) ; xlabel ( ' Escala Eje X ' ) ; ylabel ( ' Escala Eje Y ' ) ; . . . title ( ' Grafo y = x ^ 2 – sin ( x ) Par Coordenado X - Y ' ) ;
PDF created with pdfFactory Pro trial version
- 157 -
MatLab
Ing. Wilian Andrade Medina
- 158 -
x = -3.1416
-2.6416
-2.1416
-1.6416
-1.1416
0.8584
1.3584
1.8584
2.3584
2.8584
9.8696
7.4575
5.4279
3.6923
2.2126
-0.0199
0.8677
2.4947
4.8565
7.8910
-0.6416
-0.1416
1.0101
0.1612
0.3584
y = -0.2223
EDI TOR DE GRÁFI COS El denominado Editor de Gráficos, se utiliza después que el gráfico ha sido realizado por programación y si el usuario requiere posterior a utilizar las facilidades del editor de gráficos para cambiar las propiedades de las figuras: color, tipo, símbolos y otras características. También se puede modificar o insertar en el gráfico el texto necesario, el diseño de las líneas, las presentación de las flechas, los tipos de rótulos y otros cabios estéticos; además, se puede realizar estadísticas básicas y ajuste de curvas. Para habilitar el editor de gráficos seleccione el botón Show Plot Tools en la barra de opciones de accesos rápidos del gráfico presente y luego de acuerdo a los diseños que se desee hacer se selecciona la opción Show the inspector , desde la opción de More Propertier , para disponer de la caja de propiedades del gráfico y realizar los ajustes indicados que el usuario requiera.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 159 -
Habilitado el editor del gráfico y la respectiva caja de propiedades ( Inspector ), se dispone de todas las características que el usuario requiera hacer el ajuste requerido:
GRAF I CACI ÓN DE F UNCI ONES TRANSCENDENTALES Y POLI NÓMI CAS COMANDO DE GRAFICACIÓN ezplot Para graficar funciones que se generan con el uso directo de la expresión matemática de una función polinómica o transcendental, se utiliza el comando ezplot , considerando la estructura siguiente:
ezplot ( ' función ' , [ valor inicial , valor final ] )
1.- ) Para cuando se dispone de la función sea una polinómica o una transcendental, por omisión los valores para el eje x son asignados entre [ -2 a 2 ] :
ezplot ( ' función ' ) >> f = ' x ^ 2 – sin ( x ) ' ; >> ezplot ( f ) ; xlabel ( ' Escala Eje X ' ) ; ylabel ( ' Escala Eje Y ' ) ; . . . title ( ' Grafo y = x ^ 2 – sin ( x ) Par Coordenado X - Y ' ) ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 160 -
2.- ) Para cuando se dispone de la función y los respectivos valores inicial y final conocidos son asignados para el rango de graficación:
ezplot ( ' función ' , [ valor inicial , valor final ] ) Valores para el rango de graficación: valor inicial: 0
valor final: pi ( 3.1415926 ):
>> ezplot ( ' sin ( x ) * exp ( x ) ' , [ 0 , pi ] ) ; xlabel ( ' Escala Eje X ' ) ; . . .
ylabel ( ' Escala Eje Y ' ) ; title ( ' Grafo: sin ( x ) * exp ( x ) - Par Coordenado X - Y ' ) ; >> grid on ;
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
- 161 -
3.- ) Para cuando se dispone de la función transcendental de tipo netamente trigonométrica y por omisión los valores para el eje x son asignados entre [ -2 a 2 ] :
y ^ 2 ) ) ' ) ; xlabel ( ' Escala Eje X ' ) ; . . . >> ezplot ezplot ( ' sin ( sqrt ( x ^ 2 – y ylabel ( ' Escala Eje Y ' ) ; title ( ' Grafo: sin ( sqrt ( x 2 – y y 2 ) ) - Par Coordenado X - Y ' ) ;
>> grid on ;
>> ezplot ezplot ( ' sin ( sqrt ( x ^ 2 ) ) ' , [ 0 , pi ] ) ; xlabel ( ' Escala Eje X ' ) ; . . .
ylabel ( ' Escala Eje Y ' ) ; title ( ' Grafo: sin ( sqrt ( x 2 ) ) - Par Coordenado X - Y ' ) ;
>> grid on ;
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
- 162 -
Como aplicación, realice las pruebas de graficación con las dos siguientes expresiones y observe los gráficos resultantes:
% E j emplo uno. >> ezplot ( ' sin ( sqrt ( x ^ 2 ) ) ' ) ; xlabel ( ' Escala Eje X ' ) ; . . .
ylabel ( ' Escala Eje Y ' ) ; title ( ' Grafo: Par Coordenado X - Y ' ) ;
>> grid on ; % E j em emplo plo do dos. s. 2 * cos ( x ) ^ 2 + 5 ' ) ; xlabel ( ' Escala Eje X ' ) ; . . . >> ezplot ( ' 2 * x ^ 3 – 2 ylabel ( ' Escala Eje Y ' ) ; title ( ' Grafo: Par Coordenado X - Y ' ) ;
>> grid on ; función polinómica de grado N y los los respectivos valores 4.- ) Para cuando se dispone de la función inicial y final conocidos son asignados para el rango de graficación
>> ezplot ( ' x ^ 4 – 25 25 * x ^ 3 – 427 427 * x ^ 2 + 826 * x + 4236 ' , [ -15 , 40 ] ) ; . . . xlabel ( ' Escala Eje X ' ) ; ylabel ( ' Escala Eje Y ' ) ; . . . title ( ' Grafo: x 4 – 25 25 * x 3 – 427 427 * x 2 + 826 * x + 4236 ' ) ; >> grid on ;
PDF created with pdfFactory Pro trial version
MatL MatL ab
Ing. Wilian Andrade Medina
- 163 -
COMANDO ginput Para ingresar n puntos desde pantalla pantalla de un gráfico realizado por una función, función, se utiliza el gi nput ut comando ginp , considerando la estructura siguiente:
[ x , y ] = ginp gi nput ut ( n ) Al presentarse el grafico, con el mouse se apunta a los puntos que que se desean tomar como los valores de las coordenadas X – Y Y , y se almacenan como vector en las variables definidas.
>> ezplot ( ' x ^ 2 – sin sin ( x ) ' ) ; >> grid on ; >> [ x , y ] = ginp gi nput ut ( 6 ) ; % I ng ngrr ese 6 puntos puntos desde desde un gr g r áfi áfico co en la panta pantalllla a. >> plot ( x , y ) %G Geene nerr a un nuevo nuevo gr áfi co co conn los punto puntoss X – Y tom tomado ados.s.
COMANDO gtext Para ingresar un TEXTO o MENSAJE MENSAJE en una cuadricula X - Y, se utiliza el comando gtext , gtext considerando la estructura siguiente:
gte gtext ( ' Mensaje ' ) Al presentarse la cuadrícula, con el mouse se señala el lugar deseado en la pantalla pantalla en que se desea insertar el mensaje.
gtext ( ' Cuadrícula para gráfico ' ) >> gtext
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 164 -
COMAND O D E GR AF I CACI ÓN POLAR ezpolar Para graficar funciones generadas por expresión matemática trigonométricas, se utiliza el comando ezpolar , considerando la estructura siguiente:
ezpolar ( ' función ' , [ valor inicial , valor final ] ) >> ezpolar ( ' sin ( sqrt ( x ) ) – 3 * cos ( sqrt ( x / 2 ) ) ' )
Para cuando se consideran el parámetro inicial y final de graficación de la función, se utiliza el comando ezpolar , con los valores límites definidos:
>> ezpolar ( ' sin ( sqrt ( x ) ) – 3 * cos ( sqrt ( x / 2 ) ) ' , [ 0 , pi ] ) COMANDO DE GRAFICACIÓN subplot Para graficar varias funciones generadas por expresiones matemáticas de tipo polinómica o transcendental en una misma gráfica, utilizando los mismos parámetros o valores del eje x para definir los respectivos valores coordenados del eje y de cada función, se utiliza el comando , considerando la estructura siguiente: subplot
subplot ( n , m , k ) ; plot ( x , y , x , y1 , x , y2 , . . . . . ) El comando a más de realizar un solo gráfico, permite la programación para dividir la figura general en subgráficos o celdas de gráficos, detallados por filas y columnas de la imagen total de graficación; en donde los parámetros n, m, k representan:
n, número de filas del gráfico a generar. m , número de columnas del gráfico a generar. k, número que corresponde al subgráfico o celda activada de los gráficos generados.
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 165 -
Generación del gráfico para tres funciones polinómicas en una sola celda, espeficada como la gráfico 1, subplot está programado para generar dos filas y dos columnas de celdas de graficación:
>> clear all >> close all >> p = [ 1 -3 -13 15 ] ; % p = x 3 – 3 * x 2 – 13 * x + 15 >> x = [ -3 -2 -1 1 3 4 6 ] ; >> q = [ 1 -2 -2 -3 ] ; % q = x 3 – 2 * x 2 – 2 * x – 3 >> f = [ 1 -4 4 ] ; % f = x 2 – 4 * x + 4 >> y = polyval ( p , x ) ; >> y1 = polyval ( q , x ) ; >> y2 = polyval ( f , x ) ; >> subplot ( 2 , 2 , 1 ) ; plot ( x , y , ' b * - - ' , x , y1 , ' g o - ' , x , y2 , ' r x - ' ) ; . . .
xlabel ( ' Es el eje X ' ) ; ylabel ( ' Este es el eje Y ' ) ; title ( ' Graficos: X - Y ' ) ; >> grid ;
Generación del gráfico para tres funciones polinómicas en una sola celda, subplot está programado para generar dos filas y dos columnas de celdas de graficación presentando el gráfico general como gráfico 1 y los gráficos individuales de cada polinómica como gráfico 2, gráfico 3 y gráfico 4:
>> clear all >> close all >> p = [ 1 -3 -13 15 ] ;
PDF created with pdfFactory Pro trial version
% p = x 3 – 3 * x 2 – 13 * x + 15
MatLab
Ing. Wilian Andrade Medina
>> x = [ -3 -2 -1 1 3 4 6 ] ; >> q = [ 1 -2 -2 -3 ] ; % q = x 3 – 2 * x 2 – 2 * x – 3 >> f = [ 1 -4 4 ] ; % f = x 2 – 4 * x + 4 >> y = polyval ( p , x ) ; >> y1 = polyval ( q , x ) ; >> y2 = polyval ( f , x ) ; >> subplot ( 2 , 2 , 1 ) ; plot ( x , y , ' b * - - ' , x , y1 , ' g o - ' , x , y2 , ' r x - ' ) ; . . .
xlabel ( ' Es el eje X ' ) ; ylabel ( ' Este es el eje Y ' ) ; title ( ' Graficos: X - Y ' ) ; >> grid ;
% Graficación para las otras celdas especificadas en las figuras 2, figura 3 y figur a 4 >> subplot ( 2 , 2 , 2 ) ; plot ( x , y , ' b * - - ' ) ; xlabel ( ' Es el eje X ' ) ; . . . ylabel ( ' Este es el eje Y ' ) ; title ( ' y = x ^ 3 – 3 * x ^ 2 – 13 * x + 15 ') ; >> grid ; >> subplot ( 2 , 2 , 3 ) ; plot ( x , y1 , ' g o - ' ) ; xlabel ( ' Es el eje X ' ) ; . . . ylabel ( ' Este es el eje Y ' ) ; title ( ' y1 = x ^ 3 – 2 * x ^ 2 – 2 * x – 3 ' ) ; >> grid ; >> subplot ( 2 , 2 , 4 ) ; plot ( x , y2 , ' r x - ' ) ; xlabel ( ' Es el eje X ' ) ; . . . ylabel ( ' Este es el eje Y ' ) ; title ( ' y = x ^ 2 – 4 * x + 4 ' ) ; >> grid ;
PDF created with pdfFactory Pro trial version
- 166 -
MatLab
Ing. Wilian Andrade Medina
- 167 -
COMANDO DE GRAF I CACI ÓN figure El comando figure permite la graficación de cada función programada como figura independiente, cada gráfico en una celda respectiva identificada con el nombre de figura 1, 2, 3, . . . , para la matriz de gráficos generada por el subplot.
>> clear all ; close all >> p = [ 1 -3 -13 15 ] ; % p = x 3 – 3 * x 2 – 13 * x + 15 >> x = [ -3 -2 -1 1 3 4 6 ] ; >> q = [ 1 -2 -2 -3 ] ; % q = x 3 – 2 * x 2 – 2 * x – 3 >> f = [ 1 -4 4 ] ; % f = x 2 – 4 * x + 4 >> y = polyval ( p , x ) ; >> y1 = polyval ( q , x ) ; >> y2 = polyval ( f , x ) ; >> figure ( 1 ) ; plot ( x , y , ' b * - - ' , x , y1 , ' g o - ' , x , y2 , ' r x - ' ) ; . . .
xlabel ( ' Es el eje X ' ) ; ylabel ( ' Este es el eje Y ' ) ; title ( ' Graficos: X - Y ' ) ; >> grid ; >> figure ( 2 ) ; plot ( x , y , ' b * - - ' ) ; xlabel ( ' Es el eje X ' ) ; . . . ylabel ( ' Este es el eje Y ' ) ; title ( ' y = x ^ 3 – 3 * x ^ 2 – 13 * x + 15 ' ) ; >> grid ; >> figure ( 3 ) ; plot ( x , y1 , ' g o - ' ) ; xlabel ( ' Es el eje X ' ) ; . . . ylabel ( ' Este es el eje Y ' ) ; title ( ' y1 = x ^ 3 – 2 * x ^ 2 – 2 * x – 3 ' ) ; >> grid ; >> figure ( 4 ) ; plot ( x , y2 , ' r x - ' ) ; xlabel ( ' Es el eje X ' ) ; . . . ylabel ( ' Este es el eje Y ' ) ; title ( ' y = x ^ 2 – 4 * x + 4 ' ) ; >> grid ;
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
- 168 -
GRAF I CACI ÓN 3 D DE F UNCIONE S COMANDO ezsurf Para graficar funciones en tres dimensiones generadas por expresión matemática, se utiliza el comando ezsurf , considerando la estructura siguiente:
ezsurf ( ' función ' , [ valor inicial , valor final ] ) >> clear all ; close all >> p = ' sin ( sqrt ( x ^ 2 – y ^ 2 ) ) / sqrt ( x ^ 2 – y ^ 2 ) ' ; >> ezsurf ( p , [ - pi , pi ] )
>> clear all ; close all >> p = ' sin ( sqrt ( x ^ 2 – y ^ 2 ) ) / sqrt ( x ^ 2 – y ^ 2 ) ' ; >> ezsurf ( p )
PDF created with pdfFactory Pro trial version
MatLab
Ing. Wilian Andrade Medina
% Utilizando programación para identificar los ejes tridimensionales.
>> clear all ; close all >> w = ' ( 2 * x ^ 3 ) - ( 5 * y ^ 2 ) ' ; >> ezsurf ( w ) ; xlabel ( ' EJE X ' ) ; ylabel ( ' EJE Y ' ) ; zlabel ( ' EJE Z ' ) ;
>> clear all ; close all >> p = ' sin ( sqrt ( x ^ 2 – y ^ 2 ) ) ' ; >> ezsurf ( p ) ; xlabel ( ' EJE X ' ) ; ylabel ( ' EJE Y ' ) ; zlabel ( ' EJE Z ' ) ;
PDF created with pdfFactory Pro trial version
- 169 -
MatLab
Ing. Wilian Andrade Medina
- 170 -
COMANDO ezmesh Para graficar funciones en tres dimensiones generadas por expresión matemática, se utiliza el comando ezmesh , considerando la estructura siguiente:
ezmesh ( ' función ' , [ valor inicial , valor final ] ) La graficación respectiva, se realiza igual que el comando ezsurf , presentando el trazado del gráfico con colores y tonos más suaves.
>> p = ' sin( sqrt ( x ^ 2 – y ^ 2 ) ) ' ; >> ezmesh ( p ) COMANDO ezcontour Para graficar funciones en las que se requiere trazados en líneas o curvas de nivel, se utiliza el comando ezcontour , considerando la estructura siguiente:
ezcontour ( ' función ' , [ valor inicial , valor final ] ) >> p = ' sin ( sqrt ( x ^ 2 – y ^ 2 ) ) ' ; >> ezcontour ( p )
PDF created with pdfFactory Pro trial version