Beruflich Dokumente
Kultur Dokumente
de Programación de
Aplicaciones.
MatLab
( MATrix LABoratory )
Guía Académica
PRIMERA PARTE
El hombre encuentra a Dios detrás de cada puerta que la ciencia logra abrir.
Albert Einstein.
INTRODUCCIÓN
TEMA Página
Conceptos Básicos 5
Asignaciones 7
Entorno MatLab 10
Ventana Command Window 12
Símbolos Especiales 16
Aritmética de Enteros y Funciones 16
Funciones y Comando Básicos 20
Funciones Matemáticas Elementales 28
Generación y Almacenamiento de Archivos * . m 30
Entrada / Salida de Información 32
Decisiones 37
Nido de Decisiones 39
Ciclos – Control de Ciclos 49
Contadores 50
Aplicaciones 51
Sumatorias 57
Series 60
Aplicaciones Matemáticas 64
LENGUAJE MATEMÁTICO DE
PROGRAMACIÓN DE APLICACIONES
MATLAB ( MATrix LABoratory ), 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.
COCEPTOS BÁSICOS.
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.- 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 reconoce 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.- El 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.
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 memoria durante la ejecución.
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.
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 POSICIONES DE MEMORIA que se identifican con
nombres de VARIABLES.
ASIGNACIONES
1. - Constantes.
2. - Variables.
3. - Operadores aritméticos:
Suma: +
Resta: -
Multiplicación: *
División: / (cociente para valor tipo real).
División a la izquierda: \
Potenciación: ^
4. - Paréntesis (SUBEXPRESIONES).
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.
direc = ' Zooposopangui 204 ' Asignación de una cadena a la variable direc
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:
Presentando las siguientes barras y ventanas a identificar, que componen el área 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:
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 : / MatLabEjer
F : \ MatLabEjer
Para visualizar el contenido de una carpeta, se ordena el proceso con el comando dir:
El comando dir debe ser utilizado con letras minúsculas, caso contrario se genera un error:
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.
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
direc =
Calle Zooposopangui 204
nombre =
Wilian Andrade Medina
ans =
Wilian Andrade Medina
>> 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
>> x = 2.8 ;
>> x1 = x ^ 2 + 3 * x - 21
x1 =
-4.7600
>> x1 = x ^ 2 + 3 * x - 21 ;
>> a ;
>> 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 ( ; ):
y=
98.4277
z=
- 9.5474 e+03
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
>> clear 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.
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.
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.
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í:
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
>> a = 11
a=
11
>> b = 4
b=
4
FUNCIÓN fix
>> c = fix ( a / b )
c=
2
d=
2
e=
2
FUNCIÓN rem
>> h = rem ( a , b )
h=
3
k=
3
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
>> 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.
>> 2 / 0
>> 0 / 0
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:
>> 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:
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 - Equal ==
ne - Not equal ~=
lt - Less than <
gt - Greater than >
le - Less than or equal <=
ge - Greater than or equal >=
Entre varias de las ayudas específicas utilizadas, se detalla los siguientes ejemplos:
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
>> pwd
ans =
C : \ Program Files \ MATLAB Production Server \ R2015 \ bin
>> cd f : / MatLabEjer
>> pwd
ans =
f : \ MatLabEjer
El comando dir, permite conocer el listado del contenido del directorio actual.
>> dir
. MetodosNumericos Serie2 ppolivec.m sumadora.m
.. Newraph.fig Simulacion ppolivec2.m wil1.m
Calculadora Newraph.m poli.m ppolivec3.m wiw.m
Factura Programas poli2.m ppolivec4.m ww.m
Facturas Serie ppoli.m sumadora.fig
COMANDO open
>> w = 45.6785
w=
45.6785
>> w
w=
45.678500000000000
>> w
w=
45.6785
>> w
w=
45.68
>> w
w=
23159 / 507
El comando vpa, considerada como variable de precisión aritmética, facilita que un valor
pueda definirse con cierto número de decimales.
ans =
1.4142135623730950488
>> date
ans =
10 - Dic - 2017
>> datetime
ans =
10 - Dic – 2017 18:49:10
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.
>> clock
ans =
2017 12 10 18 51 1852 / 89
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
>> 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
n=
7
x=
Wilian Andrade Medina
y=
Profesor FICM
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
q=
5
>> d = num2str ( q )
COMANDO str2num
a=
345
>> y = str2num ( a )
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 =
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.
>> x = rand
x=
0.8147
Para generar un número aleatorio entre 1 y 10, se expresa utilizando la función fix.
d=
10
d=
5
Se utiliza también para generar matrices con números aleatorios entre 0 y 1. Ejemplos:
>> a = rand ( 5 )
a=
>> c = 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
>> z = 13 + 5i ;
>> r = conj ( z )
r=
13.0000 - 5.0000i
Trigonometric.
sin - Sine.
sind - Sine of argument in degrees.
sinh - Hyperbolic sine.
asin - Inverse sine.
asind - Inverse sine, result in degrees.
asinh - Inverse hyperbolic sine.
cos - Cosine.
cosd - Cosine of argument in degrees.
cosh - Hyperbolic cosine.
acos - Inverse cosine.
acosd - Inverse cosine, result in degrees.
acosh - Inverse hyperbolic cosine.
tan - Tangent.
tand - Tangent of argument in degrees.
tanh - Hyperbolic tangent.
atan - Inverse tangent.
atand - Inverse tangent, result in degrees.
atan2 - Four quadrant inverse tangent.
atan2d - Four quadrant inverse tangent, result in degrees.
atanh - Inverse hyperbolic tangent.
sec - Secant.
secd - Secant of argument in degrees.
sech - Hyperbolic secant.
asec - Inverse secant.
asecd - Inverse secant, result in degrees.
asech - Inverse hyperbolic secant.
csc - Cosecant.
cscd - Cosecant of argument in degrees.
csch - Hyperbolic cosecant.
acsc - Inverse cosecant.
acscd - Inverse cosecant, result in degrees.
acsch - Inverse hyperbolic cosecant.
cot - Cotangent.
cotd - Cotangent of argument in degrees.
coth - Hyperbolic cotangent.
acot - Inverse cotangent.
acotd - Inverse cotangent, result in degrees.
acoth - Inverse hyperbolic cotangent.
hypot - Square root of sum of squares.
Exponential.
exp - Exponential.
expm1 - Compute exp(x)-1 accurately.
log - Natural logarithm.
log1p - Compute log(1+x) accurately.
log10 - Common (base 10) logarithm.
log2 - Base 2 logarithm and dissect floating point number.
pow2 - Base 2 power and scale floating point number.
realpow - Power that will error out on complex result.
reallog - Natural logarithm of real number.
realsqrt - Square root of number greater than or equal to zero.
sqrt - Square root.
nthroot - Real n-th root of real numbers.
nextpow2 - Next higher power of 2.
Complex.
abs - Absolute value.
angle - Phase angle.
complex - Construct complex data from real and imaginary parts.
conj - Complex conjugate.
imag - Complex imaginary part.
real - Complex real part.
unwrap - Unwrap phase angle.
isreal - True for real array.
cplxpair - Sort numbers into complex conjugate pairs.
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 ).
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.
>> ejemplo
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:
El MatLab, guarda el archivo con la extensión mat, dejando visible en la ventana Current
Folder, el nombre del archivo 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.
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.
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:
>> x = input ( ' Ingrese el valor de la altura del rectángulo en cm. = ' ) ;
>> x = input ( ' Ingrese el valor de la altura del rectángulo en cm. = ' )
x=
33
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:
disp ( variable )
disp ( ' mensaje ' )
>> x = 3;
>> disp ( x )
3
El valor de x =
3
disp ( ' ' ), se utiliza para indicar un “salto de línea” o “imprima una línea en blanco”.
Para desplegar más de un valor se programa a la instrucción disp con la siguiente estructura:
>> a = 3 ;
>> b = 7 ;
>> c = -11 ;
>> disp ( [ a b c ] )
3 7 -11
>> N = 5 ;
>> x = 2 ^ N ;
>> y = sqrt ( x ) ;
>> disp ( [ x , y ] ) ;
Para desplegar por pantalla los datos o resultados numéricos con formato, se programa con la
instrucción fprintf de acuerdo a la siguiente estructura:
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.
formato ' % # . # f ' 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.
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:
>> N = 5 ;
>> x = 2 ^ N ;
>> y = sqrt ( x ) ;
>> fprintf ( ' % d % f ' , x , y ) ; % Modo general estándar
32 5.656854>>
>> N = 5 ;
>> x = 2 ^ N ;
>> y = sqrt ( x ) ;
>> fprintf ( ' % 5 d % 8.3 f ' , x , y ) ; % Modo definido con formato
32 5.657>>
En los ejemplos indicados, al final del valor resultado se nota la presencia del >>, debido a
que la instrucción fprintf 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”.
>> N = 5 ;
>> x = 2 ^ N ;
>> y = sqrt ( x ) ;
>> fprintf ( ' % 8 d % 12.3 f ' , x , y ) , disp( ' ') % “Imprimir otra línea en blanco”
32 5.657
>>
>> N = 5 ;
>> x = 2 ^ N ;
>> y = sqrt ( x ) ;
>> fprintf ( ' % 8 d % 12.3 f \ n ' , x , y ) % “Salto de línea”
32 5.657
>>
>> c = 3456.34
c=
3.4563 e+03
3456.340000
3456.3400
3456.3400>>
3456.340
>>
3456.340
>>
Dato = 3456.340
>>
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:
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.
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:
ALGORITMO
...........................
Si (relación) (Si)
...............
Caso Contrario (No)
.........
Opción Cumplida.
.......................
DECISIÓN if ( instrucción if )
if (relación)
Instrucciones del proceso
end
if (relación)
Instrucciones del proceso
else
Instrucciones del proceso
end
APLICACIÓN DE PRUEBA:
>> x = 13 ;
>> x = = 15.8 % Pregunta falsa.
ans =
0
El número mayor es =
22
NIDO DE DECISIONES.
ALGORITMO:
...........................
Si (relación1) (Si)
Si (relación2) (Si)
.................
.................
Caso Contrario . . . . (No)
...................
...................
Opción Cumplida2 (end)
Caso Contrario . . . . (No)
.....................
.....................
Opción Cumplida1 (end)
...................
...................
if (relación1)
if (relación2)
Instrucciones del proceso
else
Instrucciones del proceso
end
Instrucciones del proceso
else
Instrucciones del proceso
end
El número mayor es = 33
El número mayor es = 11
El número mayor es = 36
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:
Ω Si
No
β £ β &£ β £ β| £
si si si si si si
si no no si no si
no si no no si si
no no no no no no
m=a;
else
if ( b > c )
m=b ;
else
m= c ;
end
end
El número mayor es = 5
El número mayor es = 11
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.
switch variable
case valor1 ,
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 )
case 5 ,
y=2*x;
case { 8 , 10 , 12 } ,
y = sqrt ( x + 1 ) ;
otherwise
y=(x^3);
end
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:
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.
El número 6 es par
El número NO es par
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
switch w
case 1
......
...... Programación Opción 1
......
case 2
......
...... Programación Opción 2
......
case 3
......
...... Programación Opción 3
......
case 4
end salida del menú
% 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
XR = - B / ( 2 * A ) ; % Soluciones imaginarias.
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
X1 = 1.0000 + 2.6458 i
X2 = 1.0000 - 2.6458 i
X1 = 0.8284
X2 = -4.8284
X1 = -2.0000
X2 = -2.0000
1.0000 + 2.6458i
1.0000 - 2.6458i
Se borra de memoria los valores guardados en cada variable de la ejecución del programa
cuadratica.m
Se carga a memoria los valores guardados en cada variable de la ejecución del programa
cuadratica.m en el programa cuadratica.mat
CICLOS ( B u c l e s )
CONTROL DE CICLOS
while Relación
. . . . Instrucciones del proceso.
end
. . . . Instrucciones del proceso.
while n < 0
fprintf ( ' Usted ingreso un valor NEGATIVO = % 6 d \ n ' , n )
n = input ( ' Por favor ingrese un valor positivo = ' ) ;
end
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:
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
ESTRUCTURA:
for variable = valorinicio : ( valor variación ciclo ) : valorfinal
. . . . . Instrucciones del Proceso.
end
EJEMPLO GENERAL:
for Cont = m : k : N
. . . . . Instrucciones del Proceso.
end
ESTRUCTURA:
for variable = valorinicio : valorfinal
. . . . . Instrucciones del Proceso.
end
EJEMPLO GENERAL:
for Cont = m : N
. . . . . Instrucciones del Proceso
end
Parámetro Descripción
Cont 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.
m Valor inicial del contador, definido por una constante o nombre de una
variable predefinida. Parámetro Requerido.
N Valor final del contador, definido por una constante o nombre de una variable
predefinida. Parámetro Requerido
k 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.
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.
X Y
1 -20
3 -12
5 20
7 76
9 156
11 260
13 388
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
6 * 10 = 60
6 * 11 = 66
6 * 12 = 72
10 * 1 = 10
10 * 2 = 20
10 * 3 = 30
10 * 4 = 40
10 * 5 = 50
10 * 6 = 60
10 * 7 = 70
10 * 8 = 80
10 * 9 = 90
10 * 10 = 100
10 * 11 = 110
10 * 12 = 120
% 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
Valor de X = 33.0000
Raíz Cuadrada = 33.000000
Valor de X = 56.2300
Raíz Cuadrada = 56.230000
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.
. . . 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:
La cantidad de personas es = 5
La suma de las edades es = 115
>> promedio1
La cantidad de personas es = 5
3.- ) 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.
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 =%7d\n',s)
fprintf ( ' El promedio es = % 7.2 f \ n ' , p )
end
Total de elementos = 3
La sumatoria es = 180
El promedio es = 60.00
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.
1.- Serie ( W ): 2 4 6 8 10 12 . . . . . . ( 2 * N )
i=1,N
W=2*i
i=1,N
W=m*i
Dónde:
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 + ..........
2.- ) Calcular el valor de S, representado por la serie conformada por el inverso de los n
primeros números enteros positivos:
MODELO UNO:
MODELO DOS:
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:
end
fprintf ( ' Valor múltiplo de 3 = %5d\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
>> serie
Ingrese el número de valores de x =3
Ingrese el número de términos de la serie = 12
1! = 1 * 1
2! = 1 * 1 * 2
3! = 1 * 1 * 2 * 3
..........
n! = 1 * 1 * 2 * 3 * 4 * . . . . . . . . . . * n
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:
% 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;
q=2*j;
for L = 1 : q
f=f*L; % Generación del factorial para los números pares.
end
y=y+(j*x^(2*j+1)/f)*(-1)^j;
end
fprintf ( ' Valor impar = %5d\n',x)
fprintf ( ' Valor serie = % 12.4 f \ n ' , y )
disp( ' ' )
end
Valor impar = 1
Valor serie = -0.4207
Valor impar = 3
Valor serie = -0.6350
Valor impar = 5
Valor serie = 11.9866
Valor impar = 7
Valor serie = -16.0962
Valor impar = 9
Valor serie = -16.6925
Valor impar = 11
Valor serie = 59.2339
Valor impar = 13
Valor serie = -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*x2 - 9 * x 4 / 3! + 27 * x 6 / 5! - 81 * x 8 / 7! +
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
TEMA Página
Arreglos Matemáticos Unidimensionales - Vectores 69
Estructura de Vectores - Elementos 71
Representación Vectorial de las Polinómicas 74
El Vector y la Función para Polinómicas 75
Funciones Polinómicas y Aplicaciones Vectoriales 81
Programación de Aplicaciones Vectoriales 92
Arreglos Matemáticos Bidimensionales - Matrices. 105
Estructura de Matrices y sus Elementos 107
Funciones para Matrices 113
Aplicaciones Matemáticas con Matrices 125
Aplicaciones Matriciales Generales 127
ARREGLOS MATEMÁTICOS
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
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.
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.
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.
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:
>> i = 1 ;
>> v ( 2 * i : 2 : 10 )
ans =
41 17 -3 1 3
Por medio de funciones del MatLab, se hace operativo con instrucciones del manejo de
vectores, considerando lo que representa y la operatividad matemática:
>> x = [ 8 1 9 4 6 0 2 ] ;
>> p = [ 3 5 7 ] ;
>> w = x ( p )
w=
>> x = [ 18 21 99 76 14 66 40 17 22 ] ;
>> p = [ 4 8 5 ] ;
>> w = x ( p )
w=
>> p = [ 1 : 12 ]
p=
1 2 3 4 5 6 7 8 9 10 11 12
>> z = [ 1 : 2 : 15 ]
z=
1 3 5 7 9 11 13 15
n=
-2.0000 -1.6000 -1.2000 -0.8000 -0.4000 -0.0000 0.4000 0.8000 1.2000
>> m = 1 ;
>> k = 10 ;
>> n = 0.3 ;
>> w = [ m : 2 * n : k ]
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 ]
>> 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 ( ; ) :
>> A = [ 5 ; 8 ; 11 ; 2 ; 6 ; 3 ; 1 ; 0 ; 9 ]
A=
5
8
11
2
6
3
1
0
9
>> x = [ 11 22 33 ] ;
>> y = [ 3 , x , -6 , 7 ]
y=
3 11 22 33 -6 7
>> x = [ 11 22 33 ] ;
>> z = 2 * x
z=
22 44 66
>> x = [ 11 22 33 ] ;
>> w = sqrt ( x )
w=
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.
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.
>> c = roots ( F )
c=
36.1034
-12.4454
3.8139
-2.4719
>> b = [ 1 -3 7 11 ]
b=
1 -3 7 11
>> x = roots ( b )
x=
2.0000 + 2.6458 i Es una raíz compleja.
2.0000 - 2.6458 i Es una raíz compleja.
-1.0000 + 0.0000 i Es una raíz real con representación de raíz compleja.
FUNCIÓN polyval
>> P = [ 1 -3 -13 15 ] ;
>> y = polyval ( P , 2.5 )
y=
- 20.6250
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
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 45 120 231
2.- ) Considerando que X es un vector generado con valores entre -1.5 a 8.5 variando 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
fprintf ( ' % 6.2 f % 10.4 f \ n ' , X(k) , Y(k) ) % disp( [ X(k) , Y(k) ] )
end
X Y
-1.50 24.3750
-0.50 20.6250
0.50 7.8750
1.50 -7.8750
2.50 -20.6250
3.50 -24.3750
4.50 -13.1250
5.50 19.1250
6.50 78.3750
7.50 170.6250
8.50 301.8750
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
X Y
-5.6700 0.0000
3.0000 -15.0000
1.2300 -24.0000
-2.4560 -21.0000
7.7760 0.0000
4.- ) Considerando que X es un vector que contiene M elementos como datos leídos para
una polinómica de grado N.
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
APLICACIÓN GENERAL:
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
X Y
1.1340 -2.1416
2.4300 -19.9558
4.7800 -6.4698
6.0000 45.0000
7.8900 216.8428
9.0023 384.4049
FUNCIÓN eval
Y=
-3.6678
y=
97
FUNCIÓN poly
>> p = [ 1 -3 -13 15 ] ;
>> x = roots ( p ) % Raíces de la polinómica.
x=
5.0000
-3.0000
1.0000
FUNCIÓN poly2sym
>> 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: 0=')
>> disp (ecua)
0 = x ^ 3 + 5* x ^ 2 + 3 * x - 10
FUNCIÓN sym2poly
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 0 11
>> h = find ( s )
h=
1 2 3 5 6 8
Los índices 4 y 7, identifican a elementos igual a cero, por lo tanto no los considera.
Y=
3 5 6 8
FUNCIÓN max
>> v = [ 2 5 -4 11 -6 0 7 9 1 ]
v=
2 5 -4 11 -6 0 7 9 1
Mayor =
11
FUNCIÓN min
>> v = [ 2 5 -4 11 -6 0 7 9 1 ]
v =
2 5 -4 11 -6 0 7 9 1
Menor =
-6
FUNCIÓN sum
>> v = [ 2 5 -4 11 -6 0 7 9 1 ]
v=
2 5 -4 11 -6 0 7 9 1
Total =
25
FUNCIÓN mean
>> k = [ 2 3 5 7 4 8 9 ]
k=
2 3 5 7 4 8 9
Media =
5.4286
FUNCIÓN median
>> 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 =
5
FUNCIÓN std
>> 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
FUNCIÓN prod
>> k = [ 2 3 5 7 4 8 9 ]
k=
2 3 5 7 4 8 9
>> q = prod ( k )
q=
60480
FUNCIÓ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
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
>> e = dsort ( a )
e=
22
20
18
15
12
9
7
6
1
e=
22 20 18 15 12 9 7 6 1
FUNCIÓN fzero
r=
NaN
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 ' ; % Los de x deben tener f(x) de signo contrario.
>> r = fzero ( f , [ 4.5 , 5.3 ] )
r=
5.0000
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.
>> b = [ 3 , 4 , -2 ] ; % Representa: b = 3 * X 2 + 4 * X – 2
>> a = [ 1 4 4 ] ; % Representa: a = X 2 + 4 * X + 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
FUNCIÓ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=
3 4 -2
r=
0 0 0 0 0 % Residuo cero
>> 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
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.
u=
6.2917
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 >.
u=
6.5590
u=
3.5920 6.5590 9.5946 10.2780
FUNCIÓ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 ).
a=
-0.0192 0.8901 2.4965
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.
w=
3.3211
w=
9.9811
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
FUNCIÓN factor
>> syms x;
>> f = 3 * x ^ 2 + 5 * x ;
>> w = factor ( f )
w=
[x,3*x+5]
FUNCIÓN int
>> syms x;
>> y = x ^ 2 -3 * x + 7 ;
>> a = int ( y )
a=
( x * ( 2 * x ^ 2 - 9 * x + 42 ) ) / 6
>> syms x;
>> y = x ^ 2 – 3 * x + 7 ;
>> c = int ( y , 0 , 5 )
c=
235 / 6
FUNCIÓN diff
>> syms x;
>> y = x ^ 2 – 3 * x + 7 ;
>> d = diff ( y )
d=
2*x- 3
% 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
x xa xd
% 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
x xa xd
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.
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
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 Investigación un intervalo menor solución.
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 Xinicial 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.
a2
2
a
X inicial 2 3
a 1 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:
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 ( Xn )
X n1 Xn
f '( Xn)
Para la aplicación del presente ejemplo, se considera los detalles matemáticos iniciales
siguientes:
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
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
% 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 ) )
Ingrese el Coeficiente A ( 1 ) = 1
Ingrese el Coeficiente A ( 2 ) = -3
Ingrese el Coeficiente A ( 3 ) = -13
Ingrese el Coeficiente A ( 4 ) = 15
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
****************************************
X Solución = 5.00000000
X Solución = 1.00000000
X Solución = -3.00000000
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
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
% 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
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
Ingrese el Coeficiente A ( 1 ) = 1
Ingrese el Coeficiente A ( 2 ) = -3
Ingrese el Coeficiente A ( 3 ) = -13
Ingrese el Coeficiente A ( 4 ) = 15
Para la Polinómica: f ( X ) = X 5 + 2 X 4 + 2 X 3 - 4 X 2 + 12 X + 3
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
MATRICES
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
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.
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
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 MATRICIALES, 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.
Matriz B ( N , M )
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:
>> a = [ 6 3 ; 5 1 ]
a=
6 3
5 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
>> a = [ 12 , -33 ; 25 , 17 ; 10 , 71 ] ;
>> a ( 3 , 1 ) % Fila 3 Columna 1
ans =
10
>> a = [ 12 , -33 ; 25 , 17 ; 10 , 71 ] ;
>> r = a ( 2 , 2 ) % Fila 2 Columna 2
r=
17
>> x = [ 5 , 13 , -4 , 8 ] ;
>> a = [ x ; x ]
a=
5 13 -4 8
5 13 -4 8
>> x = [ 5 , 13 , -4 , 8 ] ;
>> y = [ 6 , 0 , 21 , 5 ] ;
>> a = [ x ; y ]
a=
5 13 -4 8
6 0 21 5
a=
5 13 -4 8
6 0 21 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
c=
5 13 -4 8
6 0 21 5
5 6 -3 11
c=
5 13 8
6 0 5
5 6 11
c=
5 13 8
5 6 11
>> a = [ ]
a=
[]
>> 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=
11 44 37 13
2 25 8 17
33 62 29 4
>> 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
c=
33 6 99
132 75 186
111 24 87
39 51 12
>> 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
>> 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=
1 2 -5
4 2 -6
7 8 9
-3 7 4
b=
3 7 -1
4 9 2
-3 4 1
c=
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
a=
1 2 -5
4 2 -6
b=
3 7 2
-3 4 1
c=
3 14 -10
-12 8 -6
>> a = [ 1 , 2 , -5 ; 4 , 2 , -6 ; -3 , 7 , 4 ]
>> z = a ^ 2
a=
1 2 -5
4 2 -6
-3 7 4
z=
24 -29 -37
30 -30 -56
13 36 -11
>> a = [ 1 , 2 , -5 ; 4 , 2 , -6 ; -3 , 7 , 4 ]
>> x = a . ^ 2
a=
1 2 -5
4 2 -6
-3 7 4
x=
1 4 25
16 4 36
9 49 16
FUNCIÓN isinteger
>> A = [ 3 4 5 ]
A=
3 4 5
>> T = isinteger ( A )
T=
0
>> v = [ 2 3 4 ; 4 5 6 ]
v=
2 3 4
4 5 6
>> r = isinteger ( v )
r=
0
FUNCIÓN ones
La función ones, genera una matriz en que todos sus elementos son 1.
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
b=
1 1 1
1 1 1
1 1 1
1 1 1
FUNCIÓN rand
La función rand, genera una matriz con números aleatorios (entre 0 y 1).
>> a = rand ( 3 )
a=
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
>> w = rand ( 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 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
0 -13 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.
>> 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, determina el número de filas y el número de columnas que tiene una matriz.
>> a = [ 11 , 2 , 33 ; 44 , 25 , 62 ; 37 , 8 , 29 ; 13 , 17 , 4 ]
>> [ n , m ] = size ( a )
a=
11 2 33
44 25 62
37 8 29
13 17 4
n=
4
m=
3
FUNCIÓN eye
La función eye, genera una matriz cuadrada en la que la 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
FUNCIÓN zeros
La función zeros, genera una matriz 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
>> a = [ 2 , -4 , 16 ; 3 , -5 , 1 ; 7 , 0 , 6 ]
>> d = det ( a )
a=
2 -4 16
3 -5 1
7 0 6
d=
544
FUNCIÓN inv
>> a = [ 2 , -4 , 16 ; 3 , -5 , 1 ; 7 , 0 , 6 ]
>> b = inv ( a )
a=
2 -4 16
3 -5 1
7 0 6
b=
FUNCIÓN tril
>> a = [ 2 , -4 , 16 ; 13 , -5 , 1 ; 7 , 11 , 6 ]
>> b = tril ( a )
a=
2 -4 16
13 -5 1
7 11 6
b=
2 0 0
13 -5 0
7 11 6
FUNCIÓN triu
a = [ 2 , -4 , 16 ; 13 , -5 , 1 ; 7 , 11 , 6 ]
b = triu ( a )
a=
2 -4 16
13 -5 1
7 11 6
b=
2 -4 16
0 -5 1
0 0 6
FUNCIÓN lu
>> a = [ 1 1 1 1 ; 2 1 3 2 ; 1 3 2 1 ; 3 2 1 1 ]
>> [ b , c ] = lu ( a )
a=
1.0000 1.0000 1.0000 1.0000
2.0000 1.0000 3.0000 2.0000
1.0000 3.0000 2.0000 1.0000
3.0000 2.0000 1.0000 1.0000
b=
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 -4 16 8
3 6 -5 11
17 14 6 -2
-3 10 7 4
v=
17 14 16 11
FUNCIÓN sum
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ]
>> s = sum ( a )
a=
2 -4 16 8
3 6 -5 11
17 14 6 -2
-3 10 7 4
s=
19 26 24 21
FUNCIÓN prod
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ]
>> h = prod ( a )
a=
2 -4 16 8
3 6 -5 11
17 14 6 -2
-3 10 7 4
h=
-306 -3360 -3360 -704
FUNCIÓN mean
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ]
>> m = mean ( a )
a=
2 -4 16 8
3 6 -5 11
17 14 6 -2
-3 10 7 4
m=
FUNCIÓN sort
>> a = [ 2 , -4 , 16 , 8 ; 3 , 6, -5 , 11 ; 17 , 14 , 6 , -2 ; -3 , 10 , 7 , 4 ]
>> x = sort ( a )
a=
2 -4 16 8
3 6 -5 11
17 14 6 -2
-3 10 7 4
x=
-3 -4 -5 -2
2 6 6 4
3 10 7 8
17 14 16 11
FUNCIÓ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 -4 16 8
3 6 -5 11
17 14 6 -2
-3 10 7 4
y=
2 -4 16 8
6 -24 -80 88
102 -336 -480 -176
-306 -3360 -3360 -704
FUNCIÓ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 -4 16 8
3 6 -5 11
17 14 6 -2
-3 10 7 4
v=
2 -4 16 8
5 2 11 19
22 16 17 17
19 26 24 21
FUNCIÓN vander
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:
x1 3 x1 2 x1 1
x2 3 x2 2 x2 1
x3 3 x3 2 x3 1
x4 3 x4 2 x4 1
>> x = [ 3 , 5 , 6 , 8 ] ;
>> a = vander ( x )
a=
27 9 3 1
125 25 5 1
216 36 6 1
512 64 8 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.
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
>> a = [ 1 1 1 1 10 ; 2 1 3 2 21 ; 1 3 2 1 17 ; 3 2 1 1 14 ]
a=
1 1 1 1 10
2 1 3 2 21
1 3 2 1 17
3 2 1 1 14
>> x = rref ( a )
x=
1 0 0 0 1
0 1 0 0 2
0 0 1 0 3
0 0 0 1 4
Por lo tanto, los valores solución del sistema, en la matriz resultante, son:
X1 = 1.0000
X2 = 2.0000
X3 = 3.0000
X4 = 4.0000
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.
[ m , n ] = size ( A ) ;
% 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
>> 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 1 1 1
2 1 3 2
1 3 2 1
3 2 1 1
b=
10
21
17
14
x=
1.0000
2.0000
3.0000
4.0000
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
a=[1111;2132;1321;3211]
b = [ 10 ; 21 ; 17 ; 14 ]
>> z = inv ( a )
>> x = z * b
z =
x =
>> e = diag ( b ) % Matriz con diagonal que tiene los elementos del vector.
>> c = eye ( 3 ) % Matriz con la diagonal unitaria.
>> d = zeros ( 3 ) % Matriz que contiene ceros.
>> t=[a e; c d] % Matriz compuesta.
a=
b=
15 33 29
e=
15 0 0
0 33 0
0 0 29
c=
1 0 0
0 1 0
0 0 1
d=
0 0 0
0 0 0
0 0 0
t=
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.
MATRIZ
11 15 17 21 28 18.4000
23 32 36 12 9 22.4000
5 13 27 33 37 23.0000
4 1 0 16 20 8.2000
Para calcular los promedios y determinar el número mayor, con funciones de MatLab:
2.- ) Considerando que A es una matriz cuadrada ( N x N ) con datos leídos, calcular el
promedio de los elementos de la matriz y determinar el número menor de los elementos
de la diagonal principal.
% 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);
MATRIZ
5 7 9 3
22 33 11 44
20 40 10 30
7 2 6 1
% r = mean ( a ) ; p = mean ( r ) ;
P = mean ( mean ( a ) ) ; % Una sola instrucción.
% Impresión de la matriz
disp( ' ' ); disp( ' MATRIZ ' ) ; disp( ' ' )
for i = 1 : n
for j = 1 : n
fprintf ( ' % 5 d ' , a(i,j) ) % Con formato solo para números enteros
end
disp( ' ' )
end
3.- ) Considerando que A y B son matrices de orden ( N x M ) con datos leídos, calcular
la suma de las matrices ( C = A + B ).
% Suma de matrices
c=a+b;
MATRICES: A + B = C
11 22 33 2 4 6 13 26 39
20 30 10 3 7 9 23 37 19
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
Con los coeficientes del sistema de ecuaciones lineales, se plantea la matriz inicial:
1 1 1 1 10
2 1 3 2 21
1 3 2 1 17
3 2 1 1 14
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 ( ' = ' ) ;
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( ' ' )
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
Los resultados de la aplicación del programa para el sistema de ecuaciones del ejemplo es el
siguiente:
Matriz 1 ******************
1.00000 1.00000 1.00000 1.00000 10.00000
0.00000 -1.00000 1.00000 0.00000 1.00000
0.00000 2.00000 1.00000 0.00000 7.00000
0.00000 -1.00000 -2.00000 -2.00000 -16.00000
Matriz 2 ******************
1.00000 0.00000 2.00000 1.00000 11.00000
0.00000 1.00000 -1.00000 -0.00000 -1.00000
0.00000 0.00000 3.00000 0.00000 9.00000
0.00000 0.00000 -3.00000 -2.00000 -17.00000
Matriz 3 ******************
1.00000 0.00000 0.00000 1.00000 5.00000
0.00000 1.00000 0.00000 0.00000 2.00000
0.00000 0.00000 1.00000 0.00000 3.00000
0.00000 0.00000 0.00000 -2.00000 -8.00000
Matriz 4 ******************
1.00000 0.00000 0.00000 0.00000 1.00000
0.00000 1.00000 0.00000 0.00000 2.00000
0.00000 0.00000 1.00000 0.00000 3.00000
0.00000 0.00000 0.00000 1.00000 4.00000
X1 = 1.00000
X2 = 2.00000
X3 = 3.00000
X4 = 4.00000
DATOS DE LA TABLA
X FX
1.00 1.75
2.00 3.00
2.50 3.25
3.00 3.60
4.00 3.80
4.50 4.10
5.00 3.75
6.00 3.50
DATO DE INTERPOLACIÓN
XI = 2.3500
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 ( ' = ' ) ;
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
% 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
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 ( ' TABLA DE INTERPOLACIÓN ' )
disp( ' ' )
disp( ' X F(X) ' )
disp( ' ' )
for f = 1 : po + 1
fprintf ( ' % 15.5 f % 15.5 f \ n ' , z ( f ) , fz ( f ) )
end
for j = F : T
A(k,j)=A(k,j)-D*A(i,j);
end
end
end
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 ) ;
Los resultados de la aplicación del programa para una tabla de M=8 pares coordenados
X - Y del ejemplo, es el siguiente:
Ingrese X(1) = 1
Ingrese FX(1) = 1.75
Ingrese X(3) = 5
Ingrese FX(3) = 3.75
Ingrese X(5) = 3
*** Ingrese un valor diferente para X(5)
Ingrese X(5) = 2
Ingrese FX(5) = 3
Ingrese X(7) = 5
*** Ingrese un valor diferente para X(7)
Ingrese X(7) = 4
Ingrese FX(7) = 3.8
X FX X FX
1.00000 1.75000 1.00000 1.75000
3.00000 3.60000 2.00000 3.00000
5.00000 3.75000 2.50000 3.25000
6.00000 3.50000 3.00000 3.60000
2.00000 3.00000 4.00000 3.80000
4.50000 4.10000 4.50000 4.10000
4.00000 3.80000 5.00000 3.75000
2.50000 3.25000 6.00000 3.50000
DATO DE INTERPOLACIÓN
XI = 2.3500
TABLA DE INTERPOLACIÓN
X F(X)
1.00000 1.75000
2.00000 3.00000
2.50000 3.25000
3.00000 3.60000
Matriz 1 **************
Matriz 2 **************
Matriz 3 **************
Matriz 4 **************
A1 = 0.35000
A2 = -2.42500
A3 = 6.07500
A4 = -2.25000
GRAFICACIÓN 2 D DE FUNCIONES
Para graficar funciones que se generan con pares coordenados de datos, se utiliza el comando
plot, considerando la estructura de:
>> 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.
>> y = [ 5 3 7 9 4 3 1 ] ;
>> x = [ 2 4 6 8 10 12 14 ] ;
>> plot ( x , y )
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, ' * ' ) % Genera los asterisco en cada punto <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 , ' - - ' ) % 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
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 ' ) % Grafo con círculos en los puntos <x,y>
>> plot ( x , y , ' - - ' ) % Genera la línea punteada.
>> plot ( x , y , ' g ' ) % Genera la línea de color verde (green)
>> grid on
>> hold on % Para superponer los gráficos.
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:
>> 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 > - - ' )
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 Círculo x Aspa
* Asterisco . Punto
h Estrella 6 puntas p Estrella 5 puntas
s Cuadrado v Triángulo
d Rombo \^ Triángulo arriba
> Triángulo derecha < Triángulo izquierda
+ Cruz ( más )
Símbolos permitidos para realizar el trazado de la línea de los puntos < x , y >:
r rojo m magenta
g verde w blanco
b azul c celeste
y amarillo k negro
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 ] ;
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
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 )
a=
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
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.
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.
>> 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=
y=
x=
-8 -6 -4 -2 0 2 4 6 8 10
y=
100 64 36 16 4 0 4 16 36 64
>> plot ( x , y , ' b x - - ' ) ; xlabel ( ' Escala Eje X ' ) ; ylabel ( ' Escala Eje Y ' ) ; . . .
title ( ' Grafo y = x ^ 2 – sin ( x ) Par Coordenado X - Y ' ) ;
x=
y=
EDITOR DE GRÁFICOS
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.
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 ( f ) ; xlabel ( ' Escala Eje X ' ) ; ylabel ( ' Escala Eje Y ' ) ; . . .
title ( ' Grafo y = x ^ 2 – sin ( x ) Par Coordenado X - Y ' ) ;
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 ( ' 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 ;
>> ezplot ( ' sin ( sqrt ( x ^ 2 – y ^ 2 ) ) ' ) ; xlabel ( ' Escala Eje X ' ) ; . . .
ylabel ( ' Escala Eje Y ' ) ; title ( ' Grafo: sin ( sqrt ( x 2 – y 2 ) ) - Par Coordenado X - Y ' ) ;
>> grid on ;
>> 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 ;
Como aplicación, realice las pruebas de graficación con las dos siguientes expresiones y
observe los gráficos resultantes:
% Ejemplo uno.
>> ezplot ( ' sin ( sqrt ( x ^ 2 ) ) ' ) ; xlabel ( ' Escala Eje X ' ) ; . . .
ylabel ( ' Escala Eje Y ' ) ; title ( ' Grafo: Par Coordenado X - Y ' ) ;
>> grid on ;
% Ejemplo dos.
>> ezplot ( ' 2 * x ^ 3 – 2 * cos ( x ) ^ 2 + 5 ' ) ; xlabel ( ' Escala Eje X ' ) ; . . .
ylabel ( ' Escala Eje Y ' ) ; title ( ' Grafo: Par Coordenado X - Y ' ) ;
>> grid on ;
4.- ) Para cuando se dispone de la función polinómica de grado N y los respectivos valores
inicial y final conocidos son asignados para el rango de graficación
>> grid on ;
COMANDO ginput
Para ingresar n puntos desde pantalla de un gráfico realizado por una función, se utiliza el
comando ginput, considerando la estructura siguiente:
[ x , y ] = ginput ( n )
Al presentarse el grafico, con el mouse se apunta a los puntos que se desean tomar como los
valores de las coordenadas X – Y , y se almacenan como vector en las variables definidas.
COMANDO gtext
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
subplot, considerando la estructura siguiente:
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:
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:
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:
>> 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 figura 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 ;
GRAFICACIÓN 3 D DE FUNCIONES
COMANDO ezsurf
Para graficar funciones en tres dimensiones generadas por expresión matemática, se utiliza el
comando ezsurf, considerando la estructura siguiente:
COMANDO ezmesh
Para graficar funciones en tres dimensiones generadas por expresión matemática, se utiliza el
comando ezmesh, considerando la estructura siguiente:
La graficación respectiva, se realiza igual que el comando ezsurf, presentando el trazado del
gráfico con colores y tonos más suaves.
>> 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 ( p )
COMANDO ezsurfc
Gráficos estadísticos
>> bar ( x ) diagrama de barras
>> hist ( x ) histograma
>> stairs ( x ) dibuja x mediante escalones
>> pie ( x ) gráfico tipo pastel
>> pie3 ( x ) pastel en relieve
>> v = [ 0 , 1 , 0 ] vector para extraer sectores del pastel
>> pie3 ( x , v ) gráfico tipo pastel con un sector separado