Vous êtes sur la page 1sur 180

Matlab para matemáticas

en ingenierías
Lucía Agud Albesa
Mª Leonor Pla Ferrando

EDITORIAL
UNIVERSITAT POLITÈCNICA DE VALÈNCIA
www.full-ebook.com
www.full-ebook.com
Lucía Agud Albesa
Mª Leonor Pla Ferrando

Matlab para matemáticas


en ingenierías

EDITORIAL
www.full-ebook.com
UNIVERSITAT POLITÈCNICA DE VALÈNCIA
Los contenidos de esta publicación han sido revisados por el Departamento de Matemática
Aplicada de la Universitat Politécnica de València

Colección Académica

Para referenciar esta publicación utilice la siguiente cita: AGUD ALBESA, L; PLA FERRANDO, Mª L
(2015). Matlab para matemáticas en ingenierías. Valencia: Universitat Politècnica de València

Primera edición, 2015 (versión impresa)


Primera edición, 2015 (versión electrónica)

© Lucía Agud Albesa


Mª Leonor Pla Ferrando

© de la presente edición: Editorial Universitat Politècnica de València


distribución: Telf.: 963 877 012 / www.lalibreria.upv.es / Ref.: 6270_01_01_01

ISBN: 978-84-9048-421-0 (versión impresa)


ISBN: 978-84-9048-422-7 (versión electrónica)

Queda prohibida la reproducción, distribución, comercialización, transformación y, en general,


cualquier otra forma de explotación, por cualquier procedimiento, de la totalidad o de cualquier
parte de esta obra sin autorización expresa y por escrito de los autores.

www.full-ebook.com
Para todas las personas
que nos han ofrecido su apoyo día a día.

www.full-ebook.com
www.full-ebook.com
Contenido
1 Capítulo1EntornodetrabajoMatlab................................................................5
1.1 Introducción.................................................................................................5
1.2 ComandosoinstruccionesenMatlab..........................................................7
1.3 Variablesyformatos....................................................................................8
1.4 Variablessimbólicasynuméricas................................................................9
1.4.1 Salidamatemáticaeleganteporpantalla.............................................12
1.4.2 Generarvectoresovariables................................................................12
1.4.3 GenerarMatrices..................................................................................13
1.5 Funciones...................................................................................................13
1.5.1 Crearfunciones.....................................................................................13
2 Capítulo2GráficosconMatlab........................................................................19
2.1 Introducción...............................................................................................19
2.2 Funcionesdeunavariable,y=f(x)..............................................................20
2.2.1 AlgunosComandospararepresentar...................................................20
2.2.2 Subventanas..........................................................................................26
2.3 Representacióndefuncionessimbólicas...................................................27
2.3.1 Representacióndefuncionescreadascomofichero.m.......................31
2.4 Funcionesatrozos:definiciónyrepresentación.......................................32
2.4.1 Funciónatrozosdesdefichero.m........................................................32
2.4.2 Funciónatrozosvectorizada................................................................33
2.5 Otroscomandosparadibujarcurvasenelplanoycurvasparamétricas:
>>ezplot.............................................................................................................35
2.5.1 Curvasenparamétricas.......................................................................37
2.6 Curvasplanasencoordenadaspolares......................................................38

www.full-ebook.com
2.6.1 Otroscomandosparacurvasencoordenadaspolares.........................39
2.6.2 Cambiosdecoordenadasrectangularesapolares...............................40
2.7 Rellenoderegionesdelplano....................................................................40
2.8 Funcionesdevariasvariables.Superficies.................................................43
2.8.1 Representacióndefuncionesen3D:z=f(x,y).Comandosmásusados.43
2.8.2 Curvasdeniveldeunasuperficie.........................................................44
2.8.3 Curvasenelespacio..............................................................................45
2.8.4 Superficiesderevolución......................................................................46
2.8.5 SuperficiesParamétricas.......................................................................51
2.8.6 Cambiosdecoordenadasacilíndricasyesféricasyviceversa..............54
2.9 Ejercicios....................................................................................................54
3 Capítulo3Operacionesbásicasconfunciones..................................................57
3.1 Polinomios..................................................................................................57
3.1.1 Polinomiointroducidocomovector....................................................57
3.1.2 Polinomiointroducidocomofunción...................................................58
3.2 Dominiosdefuncioneseinecuaciones......................................................61
3.2.1 Comando>>solve..................................................................................61
3.2.2 Comando>>fzero(resoluciónnuméricaoaproximadadeecuaciones).62
3.2.3 Inecuacionesconvaloresabsolutos......................................................64
3.3 Simplificar,factorizar,expandirydemásoperacionesalgebraicas...........65
3.4 Cálculodelímites.......................................................................................67
3.4.1 Límiteslaterales....................................................................................67
3.4.2 Asíntotas...............................................................................................68
3.4.3 Límitesdefuncionesatrozos................................................................72
3.5 NúmerosComplejos...................................................................................74
3.6 Derivadas....................................................................................................79

IV

www.full-ebook.com
3.6.1 Funcionesde1variable........................................................................80
3.6.2 Funcionesdevariasvariables...............................................................81
3.7 Integración.................................................................................................81
3.7.1 Integralesimpropias.............................................................................82
3.7.2 Cálculodeáreas....................................................................................84
3.8 Ejercicios....................................................................................................85
4 Capítulo4Funcionesdevariasvariables.Ecuacionesdiferenciales.................89
4.1 Derivacióndefuncionesdevariasvariables..............................................89
4.2 Vectorgradiente........................................................................................91
4.3 MatrizJacobianayJacobiano.....................................................................91
4.4 MatrizHessianayHessiano.......................................................................92
4.5 Puntoscríticosdefuncionesdevariasvariables.......................................95
4.6 Integracióndefuncionesdevariasvariables.............................................99
4.7 Ecuacionesdiferenciales..........................................................................103
4.7.1 SistemasdeEDO’s...............................................................................105
4.7.2 MétodosnuméricosparalaresolucióndeEDO’s...............................106
4.8 Ejercicios..................................................................................................107
5 Capítulo5IntroducciónalaEstadísticaDescriptiva........................................111
5.1 Introducción.............................................................................................111
5.2 Estadísticosyrepresentación...................................................................114
5.2.1 Variablesestadísticas..........................................................................114
5.3 Distribucióndefrecuencias.....................................................................115
5.3.1 Representacionesgráficas..................................................................116
5.3.2 EjemplosconMatlabdedistribucióndefrecuenciasydiagramas.....117
5.4 Parámetrosestadísticosdeposiciónydispersión...................................126
5.4.1 Parámetrosestadísticosdeposición..................................................126

III

www.full-ebook.com
5.4.2 Medidasdedispersión........................................................................130
5.5 Ejercicios..................................................................................................135
6 Capítulo6IntroducciónalÁlgebramatricial..........................................139
6.1 IntroducciónalasmatricesenMatlab.....................................................139
6.1.1 Generarmatrices.Operacionesconmatrices.....................................139
6.1.2 Matricesespeciales.............................................................................140
6.1.3 Manipulacióndematrices,submatrices.............................................142
6.1.4 Operacionesconmatrices...................................................................145
6.1.5 OtrasfuncionesimplementadasenMatlab.......................................146
6.2 Clasificaciónyresolucióndesistemasdeecuacioneslineales................151
6.2.1 Clasificacióndesistemasdeecuaciones.............................................151
6.2.2 Resolucióndesistemasusandolafunción:>>inv(A)oAͲ1................154
6.2.3 Resolucióndesistemasusandodivisiónmatricialalaizquierda:A\b154
6.2.4 Resolucióndesistemasusandolafunción:>>solve...........................155
6.2.5 ResolucióndesistemasusandolaRegladeCramer...........................157
6.2.6 Resolucióndesistemasdeecuacionesdependientesdeparámetros162
6.3 Ajustesdedatos(mínimoscuadrados)....................................................164
6.4 Ejercicios..................................................................................................169
7 Referenciasbibliográficas................................................................................173

IV

www.full-ebook.com
Capítulo 1 1

Entorno de trabajo Matlab

1.1 Introducción
Este libro consta de dos partes, una dedicada al Álgebra: matrices, determinantes, sis-
temas de ecuaciones, etc; y otra enfocada al análisis matemático, donde se trabajarán
funciones, expresiones algebraicas, ecuaciones, derivadas e integrales. El paquete ma-
temático que se emplea es Matlab, cuyo nombre responde a las siglas de Matrix Labo-
ratory.
Al abrir este paquete matemático se observa que la pantalla se subdivide en varias
ventanas que se detallan a continuación:
- La ventana Command Window (ventana central) es donde se introducirán los
comandos, variables e instrucciones a realizar. Es decir, la ventana donde se
trabaja.
- La ventana Current Folder (izquierda superior) indica el contenido del directo-
rio en el que se está trabajando, y que salvo cambio del mismo, es donde se irá
guardando el archivo o las funciones que se hayan creado.
- La ventana de Workspace (derecha superior) es la ventana donde se indican las
variables definidas en la sesión de trabajo o ya guardadas y cargadas de otras
sesiones. Para borrar alguna de ellas, se usará el comando >>clear nombrede-
variable o se selecciona la variable en esa ventana y se suprime.

www.full-ebook.com
Matlab para Matemáticas en ingenierías

- La ventana de Command History muestra todos los comandos y órdenes que se


han introducido, permitiendo recuperarlos o bien arrastrándolos a la Command
Window (no ejecuta), o bien haciendo doble click sobre ellos (ejecuta).

Figura 1.1 Pantalla de Matlab y ventanas

Al ejecutar el comando para representar una función, Matlab abre una nueva ventana
de Figure, la cual se puede minimizar y mantener toda la sesión mientras se va actuali-
zando, o bien cerrar.
Con el icono del folio o New Script de la barra de herramientas (primero de los iconos
de la misma), también se abrirá una nueva ventana donde Matlab permite programar o
crear funciones en ficheros con extensión .m.
La sesión de trabajo que se está realizando se puede guardar. Para ello, cuando se quie-
re comenzar a guardar se escribe (sin espacios en blanco en el nombre del fichero):
>>diary nombrefichero.txt
Y desde ahí hasta que se teclee >>diary off, guarda con el nombre indicado la sesión
realizada. Si en cualquier momento se quiere volver a activar dicha sesión, bastará con
poner de nuevo >>diary on. Por defecto, se guardará en la ruta que esté especificada
en Current Directory.

En caso de querer guardar sólo las variables creadas en la sesión, bastará realizarlo con
el comando >>save, o bien en File >>Save Workspace. Para recuperarlas en una nue-
va sesión de trabajo se cargan con el comando >>load y el nombre especificado cuan-
do han sido guardadas.

www.full-ebook.com
Entorno de trabajo Matlab

1.2 Comandos o instrucciones en Matlab


Los comandos en Matlab se escriben en minúscula y sus argumentos entre paréntesis.
Su escritura es en inglés y se ejecutan en cuanto se presiona la tecla enter.
Cuando hayan dudas de los argumentos de alguna instrucción, bastará con escribir en
la ventana de comandos >>help nombredelcomando, como por ejemplo:
>>help gcd (y saldrá la ayuda de Matlab, en este caso para el cálculo del máximo co-
mún divisor).

Para recuperar alguno de los comandos introducidos, hay dos formas. Una, como ya se
ha comentado, desde la ventana deCommand History;la otra, con las teclas de despla-
zamiento. Las flechas de arriba y abajo, Ĺ, Ļ recuperan los comandos. Mientras que las
de izquierda y derecha, ĸ, ĺ, sirven para desplazarse dentro de la línea de edición
para poder modificar las expresiones.

Para interrumpir el funcionamiento de una instrucción de MATLAB se pulsan las te-


clas Control y C a la vez y después enter. A veces, esta operación se deberá repetir.
La forma de salir de Matlab es o bien cerrar la ventana, o bien con los comandos
>>exit, o >>quit. Y como siempre dándole al enter al final de cualquier instrucción
para que así se ejecute.
Si no se quiere que la ejecución de un comando salga por pantalla, aunque sí que sea
ejecutado, bastará con poner después del comando un ;.
Al introducir una orden en la ventana Command Window que no quepa toda entera en
una misma línea de instrucción, se puede terminar con … y darle a enter. Matlab en-
tiende que no ha terminado la instrucción y sin aparecer el prompt del sistema, >>,
permite seguir escribiendo en la línea siguiente, ejecutando luego la instrucción al darle
a enter:

>> A=[1 2 3 4 5 6 7 8 9;- 1 -2 -3 -4 -5 -6 -7 9 2;zeros(1,9);3*ones(1,9);...


9:-1:1]
A=
1 2 3 4 5 6 7 8 9
-1 -2 -3 -4 -5 -6 -7 9 2
0 0 0 0 0 0 0 0 0
3 3 3 3 3 3 3 3 3
9 8 7 6 5 4 3 2 1

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Si en una línea de instrucción se introduce el símbolo %, cambia el color del texto y


automáticamente Matlab entiende que lo que se escribe, hasta pulsar enter, es un co-
mentario y no debe ser ejecutado.

1.3 Variables y formatos


Cuando se ejecuta un comando sin dar nombre a la variable que se obtiene como resul-
tado, Matlab lo asigna a una variable que él tiene en el sistema llamada ans. Nunca se
podrá llamar a ninguna variable con este nombre, por tenerlo ya el programa asignado.
En cada ejecución sin variable de salida, Matlab irá guardando en ella ese resultado,
machacando el resultado anterior. Para guardar en una variable la operación realizada,
se asignará con el =
>>a=gcd(3,12)
a=
3
Automáticamente en la ventana del Workspace aparecerá la variable a e indicará su
tipo y dimensión. Para asignar a este nombre de variable otro valor, simplemente o se
borra y vuelve a definir o se reasigna con otro valor. Matlab es sensible a mayúsculas
y minúsculas; por lo tanto a y A son dos variables distintas.
No se puede nombrar a una variable cuyo nombre ya esté siendo utilizado por Matlab
o bien en una función o comando, o bien para sus variables internas. Variables ya asig-
nadas por Matlab son, entre otras:
i ó j ........................................................ para la unidad imaginaria i=ξെ1
pi ......................................................... para el valor de ߨ
ans ......................................................... para las variables de salida que no
tengan asignación previa
eps ....................................................... como valor es 2.2204e-016.También
puede utilizarse como comando
(mirar >>help eps en caso de que-
rer más información)

Matlab almacena internamente los números en formato de coma flotante normalizado;


es decir, notación científica tal que, la parte entera es 0 y la primera cifra decimal es
distinta de cero (0.0003 sería 0.3*e03). Generalmente, por pantalla muestra el resultado
con el formato short, 4 dígitos decimales. Si interesa cambiar el formato, se consigue
con el comando
>>format tipodeformato

www.full-ebook.com
Entorno de trabajo Matlab

Los formatos que existen en Matlab, y que usaremos generalmente, son:


FORMAT SHORT son 5 dígitos, contando parte entera y decimal.
FORMAT LONG son 5 dígitos o 7
FORMAT SHORTE son 5 dígitos en coma flotante normalizada
FORMAT LONGE son 15 dígitos o 7 en coma flotante normalizada
FORMAT SHORTG elige el mejor formato con 5 dígitos de salida (adecuado si
trabajas en un vector con números de diferentes longitudes)
FORMAT + saca por pantalla los signos, +, - y espacios en blanco
FORMAT RAT pone el valor en forma racional.

Si se quiere obtener más información sobre los formatos de Matlab, el programa la


proporciona escribiendo
>> help format

1.4 Variables simbólicas y numéricas


Cuando en Matlab se quiere trabajar con una variable como tal, ha de definirse como
simbólica. En caso contrario Matlab pediría valores para esa variable y daría un men-
saje de error. Si se quiere introducir una función de forma que la variable x no tome
valores concretos hasta cuando se requiera, existe el comando >>sym, o se declara la
variable como simbólica de cualquiera de las dos formas siguientes:
>>x=sym(‘x’),
o bien >>syms x
De la segunda forma, es posible declarar todas las variables simbólicas en una misma
sentencia, separadas por espacios en blanco.
Dar un valor concreto a esta variable para que deje de ser simbólica, y así conocer el
valor numérico del resultado, se realiza con el comando >>double.
Ejemplo 1.1 Evaluar la función f(x)=x2-3x+2 en x=2, ʌ/4.

>>syms x
>>f=x^2-3*x+2;
>>subs(f,2)
ans=
0

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>>subs(f,pi/4)
ans =
pi^2/16 - (3*pi)/4 + 2
>>double(ans)
ans =
0.2607

Nota: dependiendo de la versión de Matlab, esta última operación de sustitución


puede hacerla de forma directa. Por ejemplo, en la versión R2011a; sin embargo
en la versión R2013b hay que hacerlo como se ha indicado en el Ejemplo 1.1.
El comando >>subs siempre evalúa funciones de tipo simbólico y el resultado que
devuelve es considerado también simbólico. Si se define la función de otra forma, por
ejemplo con el comando >>inline, la instrucción >>subs no funciona; debe evaluarse
con su nombre directamente o con el comando >>feval.
Ejemplo 1.2 Define la función f(x)=x2-3x+2 con inline y evalúala en x=2,0.

>> clear x
>> g=inline('x^2-3*x+2')
g=
Inline function:
g(x) = x^2-3*x+2
>> g(2)
ans =
0
>>feval(g,0)
ans=
0
El comando inline será explicado con detalle más adelante.
Fracciones de decimales no exactos o valores irracionales
Es importante destacar qué ocurre cuando se trabaja con fracciones que no dan lugar a
decimales exactos, por ejemplo fracciones del tipo 1/3, o radicales como ξ͵ǡetc.
Matlab siempre guarda en memoria los datos en coma flotante, y por lo tanto redondea
dichos números. Al efectuar operaciones con ellos, el resultado final puede verse afec-

10

www.full-ebook.com
Entorno de trabajo Matlab

tado de error. Una forma sencilla de solucionarlo es definir estos valores como simbó-
licos:
>>a=sym(1/3)
૚ ૚

Ejemplo 1.3 Realizar la siguiente operación 1- ૜ ૛
૚ y comparar los resultados:
૚ି

a) de forma numérica,
b) definiendo como simbólico los números.
Es evidente, sin más que realizar los cálculos, que esta operación debe dar 0:
>> 1-(1/3+1/2)/(1-1/6)
ans =
1.1102e-16
Sin embargo, Matlab no devuelve el valor 0 aunque sí un valor muy pequeño. Esto se
debe al trabajo con decimales y su redondeo. La forma de solucionarlo sería:

>> a=sym(1/3);b=sym(1/6)
b=
1/6
>> 1-(a+1/2)/(1-b)
ans =
0
Otro problema de este estilo que se observa es, por ejemplo, si se quiere calcular algo
tan sencillo como sin(pi), cuyo valor es 0. Matlab devuelve un valor muy pequeño, que
se puede considerar como 0, pero no lo es. Por lo tanto, a la hora de resolver ecuacio-
nes no detectará estos valores (una solución a esto se verá cuando se expliquen las
funciones y el comando para resolver ecuaciones >>solve):
>>sin(pi)
ans =
1.2246e-16
En este caso, la opción para que evalúe bien vuelve a ser, definir este valor ʌ como
simbólico:
>>syms pi,sin(pi)
ans=
0

11

www.full-ebook.com
Matlab para Matemáticas en ingenierías

1.4.1 Salida matemática elegante por pantalla


Matlab escribe por pantalla las expresiones matemáticas tal cual deben ser introduci-
das:
>> syms x,
>> f = x^3-6*x^2+11*x-6
Sin embargo, mediante el comando >>pretty(expression) las muestra de la forma que
uno escribe la expresión matemática:
>> pretty(f)
3 2
x - 6 x + 11 x – 6
Otro ejemplo sería:

>> syms x, y=1/(x+1)


y=
1/(x + 1)
>> pretty(y)
1
-----
x+1

1.4.2 Generar vectores o variables


Para generar una variable que tome valores en un rango elegido existen varias formas.
Entre ellas cabe destacar las siguientes:
>>x=0:.2:12; .................................. calcula un vector con 0൑ ‫ ݔ‬൑ ͳʹ donde los valores
van de 0.2 en 0.2.
>>x=linspace(0,12,200); ................. calcula un vector con 0൑ ‫ ݔ‬൑ ͳʹ con 200 valores
equiespaciados.
>>w=logspace(-1,3); ...................... calcula 50 valores espaciados logarítmicamente entre
10-1 y 103.

Nota: En los comandos linspace y logspace, el tercer argumento de entrada, co-


rrespondiente al número de puntos, es opcional. Los valores por defecto son 100
y 50, respectivamente. Asimismo, si no se especifica la distancia entre valores,
el paso por defecto es 1.
Es importante destacar que las variables así definidas son vectores y, por ello, las ope-
raciones algebraicas que las involucren deben realizarse con un punto delante: ./, .*, .^.
De esta forma, Matlab realiza los cálculos elemento a elemento, todo esto se explica
con más detalle en el Capítulo 6.

12

www.full-ebook.com
Entorno de trabajo Matlab

1.4.3 Generar Matrices


Las matrices en Matlab se definen entre corchetes. Los elementos de cada fila pueden
ir separados mediante comas o espacios en blanco. Las columnas van indicadas por
punto y coma, ;. Los elementos se pueden introducir de forma manual, con comandos o
bien indicando el paso que lleva de un elemento al siguiente:
>> A=[1:2:9; 0 -2 4 6 -1;ones(1,5)]
A=
1 3 5 7 9
0 -2 4 6 -1
1 1 1 1 1
Para saber más sobre matrices y matrices implementadas ya por Matlab, consultar la
parte de Álgebra.

1.5 Funciones
Matlab posee muchas funciones implementadas. Para saber cuáles basta teclear >>hel-
pwin y desde ahí acudir a matlab\elfun, donde mostrará las funciones que tiene defini-
das. Entre las más habituales destacan:
 Funciones seno y coseno: sin(x), cos(x),sind(x),cosd(x)
 Funciones seno y coseno hiperbólico: sinh(x), cosh(x)
 Función tangente: tan(x)
 Funciones arcoseno, arcocoseno y arcotangente: asin(x), acos(x), atan(x)
 Función exponencial, logaritmo neperiano y logaritmo decimal: exp(x),
log(x), log10(x)
 Función valor absoluto: abs(x)
 Funciones hiperbólicas: sinh(x),cosh(x),asinh(x), etc.

Nota: Matlab trabaja, salvo definición distinta de la variable, con valores numé-
ricos. Concretamente, para las funciones trigonométricas, si no se declaran pre-
viamente como variables simbólicas, entiende que son valores numéricos y, por
lo tanto, expresados en radianes. En caso de querer trabajar con valores expresa-
dos en grados, deben usarse las funciones:
>>sind, >>cosd

1.5.1 Crear funciones


Para crear funciones en Matlab existen varias formas. Aquí sólo se va a indicar cómo
definirlas y evaluarlas. Para su representación gráfica consultar el tema de gráficos.

13

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Se van a considerar dos tipos de funciones que engloban a todas, las simbólicas y las
funciones a trozos. Existen varias posibilidades de definir funciones simbólicas.

A. Definición de función simbólica usando Anonymus

Esta definición se realiza mediante el símbolo @. Cuando las funciones son básicas de
Matlab no hace falta indicar el argumento si este es x:

>>fun=@atan, ................................ Y para dibujarla >> fplot(fun,[-2,2])

>>fun2=@sin, ................................ Y para dibujarla >> fplot(fun2,[-3,3])

Sin embargo, si el argumento resulta ser composición de funciones o la función posee


varios argumentos, entonces debe indicarse al principio, justo al lado de @, tal y como
se muestra en el siguiente ejemplo
>> y=@(x) x^2+1;
Para evaluarla se puede hacer directamente asignándole un nombre:
>> y(1)
ans =
2
>> y(0)
ans =
1
O también con el comando >>subs

>> subs(y,0)
ans =
1
B. Definición de funciones simbólicas mediante el comando >>inline

Los argumentos se introducen entre comillas simples.

De esta forma se hallan los valores de la función sin más que calcular su imagen direc-
tamente o con el comando >>feval. Se detalla en el ejemplo siguiente

14

www.full-ebook.com
Entorno de trabajo Matlab

Ejemplo 1.4 Definir dos funciones cualesquiera con el comando >>inline y evaluarlas
de forma distinta:

a) >> f=inline('x^2-3*x+2')
f=
Inline function:
f(x) = x^2-3*x+2
>> f(2)
ans =
0
b) >> y=inline('x^2+1')
y=
Inline function:
y(x) = x^2+1
>> y(1)
ans =
2
>> feval(y,1)
ans =
2

Nota: Se recuerda que para evaluar funciones definidas mediante >>inline no se


puede usar el comando >>subs.
C. Definición de funciones simbólicas definiendo la variable como simbólica

Para evaluar se utiliza el comando >>subs.

>> x=sym('x');p=2*x-5;
>> subs(p,1)
ans =
-3
D.- Definición de función simbólica entre comillas simples
En este caso no hace falta declarar la variable. De nuevo es evaluada con el comando
>>subs
>> y='x^2+1';

15

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>> subs(y,0)
ans =
1

Para las funciones a trozos se indican aquí la forma vectorizada y mediante archivo .m;
es decir, esta segunda desde el Editor de Matlab. Se ilustra mediante un ejemplo.
Ejemplo 1.5 Introducir, de varias formas la siguiente función a trozos:

‫ݔ‬ଶǡ ‫ݔ‬൏ͳ
݂ሺ‫ݔ‬ሻ ൌ ൝ ͳǡͳ ൑ ‫ ݔ‬൏ ͵
‫ ݔ‬൅ ͳǡ ‫ݔ‬൒͵

1. Desde fichero .m
Esta definición debe hacerse desde la ventana del Editor de Matlab, icono de NewScript
o más directamente en NewĺFunction. Se crea con ello un archivo .m que, si no se
indica nada, se guarda con el nombre que se le haya puesto a la función.

Es importante que si posteriormente se modifica, se tenga cuidado de no cambiarle el


nombre, ya que la llamada para ser ejecutada se hace por el nombre del fichero.
Para evaluarla basta referirse a ella con su nombre.
Si se realiza para la función del Ejemplo 1.5, quedaría
function y=funcion2(x)
if x<1
y=x^2;
elseif 1<=x&&x<3
y=1;
else
y=x+1;
end
y para evaluarla

>>funcion2(2) % para evaluarla


ans=
1

16

www.full-ebook.com
Entorno de trabajo Matlab

2. Vectorizada
x Para introducir y evaluar una función así definida es conveniente usar el co-
mando >>inline:

>>f=inline('(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)')
f=
Inline function:
f(x) = (x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)
>> f(3)
ans =
1
x También puede definirse mediante Anonymus, en este caso hay que evaluarla,
de nuevo, llamándola por el nombre que tiene asignado:

>> f=@(x)(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)
f=
@(x)(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)
>> f(-3)
ans =
9
>> f(4)
ans =
5
>> f(2)
ans =
1

Para representarlas gráficamente, dirigirse al Capítulo 2, donde se indica cómo dibujar


cada una de las posibles definiciones.

17

www.full-ebook.com
www.full-ebook.com
Capítulo 2
2

Gráficos con Matlab

2.1 Introducción
Este capítulo se dedica a mostrar cómo dibujar funciones con Matlab, tanto combina-
ciones de las funciones ya existentes, como funciones creadas por el usuario, o funcio-
nes a trozos.
Si se quiere conocer con más detalle algo de los comandos para gráficos, tipos de ar-
gumentos que admiten o cualquier característica suya, basta introducir el comando:
>> help nombredelcomando

y automáticamente, Matlab proporciona una ayuda sobre dicha instrucción. Otra op-
ción es teclear >>helpwin para acceder a los temas de la ayuda de Matlab, o darle al
icono de ayuda en la barra de herramientas.

Con el comando >>help graph2d, Matlab da ayuda sobre gráficos en dos dimensiones y
con >>help graph3d proporciona ayuda para dibujar superficies.

Ͳ Guardar y cargar figuras: puede hacerse directamente desde la ventana de


la gráfica, en el menú de Herramientas: File>Save. Matlab permite guar-
darlas con diversas extensiones (por defecto las guarda con extensión .fig).
Para recuperar una figura, basta con teclear:

>> openfig('nombre')

19

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Otra posibilidad es en la ventana de Current Directory, haciendo doble click


sobre el archivo en el que se tiene la figura.
Ͳ Para borrar una figura, o bien se cierra la ventana que abre Matlab por defecto
al plotearla, o bien se teclea al comando >>clf, que borrará la última figura
creada.
Aunque se van a detallar en este capítulo todos los comandos más importantes relacio-
nados con gráficos -necesarios para muchas versiones anteriores de Matlab como
Matlab R2011a-, cabe destacar que en la versión de Matlab R2013b aparecen directa-
mente como iconos en la pestaña plots, y se activan sin más que seleccionar la variable
o función a dibujar, ofreciendo ayuda si se pone el cursor encima de ellos:

Figura 2.1 Ayuda de Matlab

2.2 Funciones de una variable, y=f(x)

2.2.1 Algunos Comandos para representar


Los comandos más usado son los indicados a continuación: Comando >>plot(x,y)
Comando >>fplot
Comando >>ezplot
D. Comando >> plot(x,y)

Es uno de los comandos más sencillos, >>plot(a,b). Si, por ejemplo, se quiere dibujar
la gráfica de la función y=sin(x), primero se ha de crear una tabla de valores para x, lo
que puede llevarse a cabo de varias formas; o bien

>> x=0:pi/100:2*pi;

20

www.full-ebook.com
Gráficos con Matlab

donde se origina un vector que toma valores de [0,2ʌ] y la distancia entre los puntos es
de ʌ/100; es decir, un total de 200 puntos en los que la función tomará valores. O bien,
el mismo resultado puede conseguirse con el comando:

>>x=linspace(0,2*pi,200);
El siguiente paso es darle valores a la variable a representar:
>>y=sin(x)
Y para dibujar la figura, se introduce la orden:
>>plot(x,y)
Ejemplo 2.1

Figura 2.2 Representación de y=sinx , y=cosx

21

www.full-ebook.com
Matlab para Matemáticas en ingenierías

En la figura 2.2 se han representado en la misma ventana dos funciones gracias al co-
mando >>hold on. Pueden seguir añadiéndose gráficas en la misma figura, y para re-
presentar una gráfica posterior en una ventana aparte indicarse con el comando >>hold
off. Otra forma de dibujar varias funciones en una misma ventana gráfica, es ponerlas
todas en el propio comando >>plot
>> plot(x,sin(x),'r-',x, cos(x),'b.')
Las opciones del trazado del comando >>plot pueden consultarse con >>help plot,
aunque la siguiente tabla proporciona un resumen de ellas:
Tabla 2.1 Tabla de símbolos, trazado y color entorno gráfico

SÍMBOLO COLOR SÍMBOLO TIPO DE SÍMBOLO TÍPO DE LÍNEA


LÍNEA
y amarillo . puntos s cuadrados

m magenta o círculos d diamantes

c cian x equis ^ Triángulo (bajo)

r rojo + mases v triángulo (arriba)

g verde * asteriscos < Triángulo (izquierda)


b azul - línea conti- > Triángulo (derecha)
nua
w blanco : línea de p pentagrama
puntos
k negro -. guion- h hexagrama
t
- línea de
guiones

Nota: En caso de utilizar algún símbolo para representar puntos de la gráfica,


debe especificarse a continuación el tipo de trazado, para forzar a que una dichos
puntos mediante una línea.
Ejemplo 2.2 Representación de vectores de datos. Representar los pares de valores
[t,v] de la siguiente tabla, donde la velocidad viene dada por (v) frente al tiempo (t)

v 1.1 1.2 1.3 1.5 2


t 1.65 1.80 1.95 2.25 3.00

Introducir primero la matriz de datos


>> t=[1.65,1.80,1.95,2.25,3];

22

www.full-ebook.com
Gráficos con Matlab

>> v=[1.1,1.2,1.3,1.5,2];
>> plot(t,v); % representa una línea continua.
2

1.9

1.8

1.7

1.6

1.5

1.4

1.3

1.2

1.1
1.6 1.8 2 2.2 2.4 2.6 2.8 3

Figura 2.3 Representación [t, v] línea continua

>> plot(t,v,’bo’); %Si se quiere indicar cómo representar el tipo de puntos

>> plot(t,v,'bo-') % Si se quiere indicar trazo de puntos y de línea

2 2

1.9 1.9

1.8 1.8

1.7
1.7

1.6
1.6

1.5
1.5
1.4
1.4
1.3
1.3
1.2
1.2
1.1
1.6 1.8 2 2.2 2.4 2.6 2.8 3
1.1
1.6 1.8 2 2.2 2.4 2.6 2.8 3

Figura 2.4 Representación [t, v] puntos y puntos con línea

E. Comando >>fplot

La gráfica del seno dibujada en el Ejemplo 2.1 también podría representarse mediante
el comando >>fplot con la siguiente orden:
>>fplot(‘sin(x)’,[0,2*pi])

La función >>fplot puede dibujar varias gráficas a la vez, indicando en el segundo


argumento el dominio de la variable x y de la y mediante una caja. Puede indicarse el
trazado, siendo conveniente que en el caso de función a trozos o con asíntotas, se le
exija un trazado discontinuo. Por defecto une mediante un trazo continuo.

23

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Respondería al siguiente comando:


>>fplot(‘[funcion1,funcion2]’,[xmin xmax ymin ymax],’trazadofuncion1,trazadofuncion2’)

Los trazados se pueden modificar desde la ventana de gráficos en el menú Edit/Figure


Properties/…, botón derecho del ratón y seleccionando la función que se quiere modi-
ficar. O con el último icono de la barra de herramientas en la ventana de la figura:
Show Plot Tools and Dock Figure

Nota: hay que tener cuidado a la hora de dibujar funciones que realicen opera-
ciones con la variable x definida mediante un >>linspace o mediante un vector,
ya que al evaluarlas debe realizarse coordenada a coordenada. Por lo tanto, salvo
en las sumas y restas que lo hace por defecto, en las demás operaciones debe es-
pecificarse: ./, .*, o bien .^ dependiendo de la operación a realizar.

Ejes: En cuanto a los ejes, además de poder cambiarlos desde la misma ventana de la
gráfica como se verá en la siguiente sección, también pueden ser establecidos desde el
principio. Para ello, como se detallaa en el Ejemplo 2.1 hay varias formas. Una de ellas
es el comando
>>axis([xmin xmax ymin ymax])

Si se desea un escalado logarítmico en los ejes, basta utilizar estos comandos:

>>semilogx, >>semilogy, (eje x en logarítmico y eje y en lineal, o vicever-


sa respectivamente)
>>loglog, (escalado logarítmico para ambos ejes)
>>polar, para coordenadas polares (que serán descritas más adelante)

F. Comando >>ezplot

A la hora de representar gráficas, en general, es mucho más sencillo utilizar el coman-


do >>ezplot.
Este comando dibuja también funciones definidas de forma implícita. Las variables
deben ser simbólicas o ir escritas entre comillas simples. Además dibuja perfectamente
los saltos de las funciones, o las asíntotas, sin unirlas con un trazo como ocurre con el
comando >>fplot (si en este último comando no se exige trazo discontinuo).

Ejemplo 2.3 Representar la gráfica de la función ࢟ ൌ en el intervalo [-5,3].

24

www.full-ebook.com
Gráficos con Matlab

Se puede observar, en las Figuras 2.5 y 2.6, la diferencia de gráficos que se obtienen al
representar la función 1/x en el intervalo cerrado [-5,3], usando ezplot, fplot y fplot
forzando, en esta última, el trazo discontinuo:
>> syms x, ezplot(1/x,[-5 3])
1/x

2.5

1.5

0.5

-0.5

-1

-1.5

-2

-2.5

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

Figura 2.5 Representación usando >>ezplot

Mientras que, con el comando >>fplot:

>> fplot('1./x',[-5 3]) >> fplot('1./x',[-5 3],'k.')

150 150

100 100

50 50

0 0

-50 -50

-100 -100

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

Figura 2.6 Representación usando >>fplot, en la segunda gráfica con trazo discontinuo

Este comando será desarrollado con mayor amplitud en secciones posteriores.

Captura de coordenadas: Si una vez representada la gráfica se busca obtener las coor-
denadas de algún punto de la gráfica, Matlab lo permite con la instrucción
>>ginput
En ese momento, aparece el cursor sobre la gráfica y basta hacer click con el ratón en
cada punto del que se quiere obtener su posición. Pulsando Enter se vuelve a la ventana
de comandos, donde aparecen las coordenadas de los puntos seleccionados.

25

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Borrado de formato: para borrar el formato de una gráfica, o bien se cierra la ventana
correspondiente a esa gráfica (si no se indica lo contrario, Matlab abre una nueva ven-
tana para cada gráfica), o bien se escribe el comando:
>> clf reset

2.2.2 Subventanas
Cuando en una misma figura se desea visualizar varias ventanas con sus gráficas co-
rrespondientes, se tiene el comando >> subplot.
Los argumentos de este comando son, el número de filas y columnas de ventanas y el
lugar que estas ocuparán.
Ejemplo 2.4

Si una vez que Matlab ha creado la figura, interesa modificarla, no hay más que situar-
se en esa ventana y darle al icono de más a la derecha de la barra de herramientas:

Figura 2.7 Subventanas gráficas del Ejemplo 2.4

26

www.full-ebook.com
Gráficos con Matlab

Al accionar este icono se abrirá una nueva ventana donde modificar cada una de las
gráficas, clicando sobre ellas. Permite modificar su color, sus ejes, y muchas más pro-
piedades descritas en la subventana inferior, seleccionado el recuadro Ticks.

Figura 2.8 Opciones para modificar cada una de las gráficas

Para nombrar los ejes cartesianos, si no se desea hacer directamente desde la ventana
mostrada en la Figura 2.8, existen también los comandos >>xlabel(‘etiqueta’) e >>yla-
bel(‘etiqueta’), para los ejes OX y OY, respectivamente.

2.3 Representación de funciones simbólicas


Para definir funciones o variables simbólicas hay diferentes modos de hacerlo, algunos
ya explicados en el Capítulo 1; es conveniente recordar que, para declarar la variable x
como simbólica se hará
>>syms x
o bien, con >>x=sym(‘x’).

A. Representación de función simbólica definida usando Anonymus


Cuando las funciones a representar son básicas de Matlab, a la hora de definirlas, no
hace falta indicar el argumento si este es x.
Los comandos para representar las funciones así definidas son tanto >>ezplot, como
>>fplot. Ambos trabajan en simbólico.

27

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Ejemplo 2.5 Definir y representar las funciones y=arctg(x), y =sen(x), una con cada
comando.

>>fun=@atan, ezplot(fun,[-2 2]),


>>fun2=@sin, fplot(fun2,[-3,3])
1.5 1

0.8
1
0.6

0.4
0.5
0.2

0 0

-0.2
-0.5
-0.4

-0.6
-1
-0.8

-1.5 -1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -3 -2 -1 0 1 2 3

Figura 2.9 Representación de f(x)= arctg(x) Figura 2.10 Representación de f(x)= sin(x)

Sin embargo, si se trabaja con composiciones de funciones o funciones con varios ar-
gumentos, entonces el o los argumentos deben indicarse al principio:
>>fun3=@(x)sin(1./x), ezplot(fun3,[.01 0.1])

sin(1/x)

0.5

-0.5

-1

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
x

Figura 2.11 Representación de f(x)= sin(1/x)

B. Representación de función simbólica definida mediante el comando >>inline

Las funciones así definidas se dibujan, también, con el comando:


>>fplot(f,[a,b])
donde [a,b] es el intervalo de las abscisas en el que la función toma valores y f el nom-
bre asignado a la variable inline.

28

www.full-ebook.com
Gráficos con Matlab

C. Representación de función simbólica definida directamente


En el caso de introducirla de forma directa, es decir definiendo la variable como simbó-
lica, o definiendo entre comillas simples directamente la función, también puede ser
dibujada con el comando >>fplot:
>> y='sin(x)'
y=
sin(x)
>> fplot(y,[0,pi])
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.5 1 1.5 2 2.5 3

Figura 2.12 Función y=’sin(x)’ con >>fplot

Nota: De todas formas, en general, para dibujar funciones simbólicas -tanto de-
finidas vía inline, vía Anonymus, o vía variable simbólica o función entre comi-
llas simples-, es recomendable por su sencillez, el comando:
>>ezplot(función, intervalo)

El argumento intervalo es opcional, tomando por defecto el intervalo [0,2ʌ] si


no se le indica. Además este comando ya le pone título a la gráfica con el nom-
bre de la función dibujada.

Ejemplo 2.6 Dibujar la función y=sin(x) definiéndola de varias formas

>> f=@sin(x),ezplot(f)
>> f=inline('sin(x)');ezplot(f)
>> syms x, y=sin(x); ezplot(y)
>> y='sin(x)';ezplot(y)

Todas estas instrucciones devuelven la figura:

29

www.full-ebook.com
Matlab para Matemáticas en ingenierías

sin(x)

0.5

-0.5

-1

-6 -4 -2 0 2 4 6
x

Figura 2.13 Representación del Ejemplo 2.5

Las figuras creadas en Matlab, se guardan y salvan sin más que acceder a File/Save as
en el menú de la ventana de Figure, con la extensión que más interese.

Figura 2.14 Imagen de cómo guardar una figura

30

www.full-ebook.com
Gráficos con Matlab

2.3.1 Representación de funciones creadas como fichero .m


Si se definen las funciones desde la ventana del Editor de Matlab, se crea un fichero .m
quedando la función almacenada como fichero y no como variable (casos anteriores).
Para llamar a ese archivo desde cualquier sesión se ejecuta el comando Open, o bien se
hace doble click en su nombre. Este archivo aparecerá en la ventana de Current Direc-
tory una vez haya sido cargado. En este último caso, ya no hay que declarar la variable
como simbólica al ser introducida como argumento de entrada:

Figura 2.15 Introducción de una función con el Editor

Para representarla se le referencia con el nombre puesto al archivo creado (debe coin-
cidir el nombre de la función con el nombre del archivo). Matlab pone este por defecto
pero hay que prestar atención si se efectúan modificaciones para no cambiarle el nom-
bre. Esta llamada se hace como argumento carácter, es decir, ‘nombre del archivo’:

Figura 2.16 Cómo dibujar una función .m

31

www.full-ebook.com
Matlab para Matemáticas en ingenierías

2.4 Funciones a trozos: definición y representación


Las funciones definidas a trozos pueden ser definidas de diversas formas. En este apar-
tado se destacan dos formas distintas, usando fichero .m o función a trozos vectorizada.

2.4.1 Función a trozos desde fichero .m


Si se quiere definir y representar, por ejemplo, la función siguiente:
‫ݔ‬ଶǡ ‫ ݔ݅ݏ‬൏ ͳ
݂ሺ‫ݔ‬ሻ ൌ ൝ͳǡ ͳ൑‫ݔ‬൏͵
‫ ݔ‬൅ ͳǡ ‫ݔ‬൒͵
se ha de utilizar un poco de programación, ya que una función a trozos no es más que
una sentencia de la forma: if, elseif, else, end.

Esta definición debe hacerse desde la ventana del Editor de Matlab, icono de
NewScript, o más directamente en New/Function. Se crea con ello un archivo .m, que
se guarda con el nombre puesto a la función. Para evaluarla basta referirse a ella con su
nombre.
Ejemplo 2.7 Definir la función a trozos anterior y evaluarla en x=4, 3, 1, 2,-2.

En el Editor se introduce la siguiente función:


function y=funcion2(x)
if x<1
y=x^2;
elseif 1<=x&&x<3
y=1;
else
y=x+1;
end

Para evaluarla con una sola sentencia:


>> valores=[funcion2(4) funcion2(3) funcion2(1) funcion2(2) funcion2(-2)]
valores =
5 4 1 1 4

32

www.full-ebook.com
Gráficos con Matlab

A la hora de dibujarla se hará uso del comando >>fplot. Como los nombres de las fun-
ciones son una cadena carácter, cuando esta es llamada con >>fplot debe ponerse entre
comillas simples.
Nota: con fplot es importante indicar, como argumento, el tipo de la línea de la
gráfica; por ejemplo puntos, para que dibuje los saltos que puedan producirse en
la misma. Por defecto los uniría con una línea continua.
>> fplot('funcion2',[-5,10],'.'),axis([-5 10 0 10])
10

0
-5 0 5 10

Figura 2.17 Representación de función a trozos con >>fplot

2.4.2 Función a trozos vectorizada


Directamente en la ventana Command Window, se introducen los distintos trozos de la
función mediante operadores lógicos. De cara a dibujarla, hay varias posibilidades:
Ͳ definir previamente la variable a evaluar como un vector de muchas compo-
nentes, por ejemplo con el comando >>linspace.
Ͳ dibujarla directamente con fplot, sin definirla, siempre que indiquemos trazo
discontinuo para que no una los posibles saltos mediante una línea.
Ejemplo 2.8 Definir y representar la función a trozos:
‫ݔ‬ଶǡ ‫ ݔ݅ݏ‬൏ ͳ
݂ሺ‫ݔ‬ሻ ൌ ൝ͳǡ ͳ൑‫ݔ‬൏͵
‫ ݔ‬൅ ͳǡ ‫ݔ‬൒͵
Para definirla vectorizada:
>> x=linspace(-10,10,100);
>> y=(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x);
Para representarla
>> plot(x,y,'.'),grid on, title('Función definida a trozos'),axis([-5 5 0 10])

33

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Función definida a trozos


10

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

Figura 2.18 Representación usando >>linspace

Otra forma de representarla:

>> fplot('x^2.*(x<1)+1.*((1<=x)&(x<3))+(x+1).*(x>3)',[-3 5],'b.')


9

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

Figura 2.19 Representación directa de función a trozos con trazo discontinuo

Para evaluar una función vectorizada, es conveniente definirla primero con el comando
>>inline (o con Anonymus), y ya entonces pasar a evaluarla con su nombre:

34

www.full-ebook.com
Gráficos con Matlab

>>f=inline('(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)')
f=
Inline function:
f(x) = (x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)
>> f(3)
ans =
1
O de otra forma, mediante Anonymus:
>> f=@(x)(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)
f=
@(x)(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)
>> salida=[ f(-3) f(4) f(2)]
salida =
9 5 1
Nota:
x Para dibujar los saltos de una función, o una función que vaya a presentar asín-
totas, es recomendable usar:
a) O el comando >>plot definiendo la variable x con un vector y no con un
>>linspace,
b) O el comando >>ezplot (más detallado a continuación).
x Para dibujar una función a trozos se recomienda, o el comando >>plot, o bien
el >>fplot pero con trazo discontinuo (puntos o asteriscos o similares, no tra-
zado de líneas). El comando >>ezplot, une con trazado continuo los saltos no
siendo esto lo deseado.

2.5 Otros comandos para dibujar curvas en el plano y curvas para-


métricas: >>ezplot
El comando más fácil de usar para dibujar curvas planas definidas por una fórmula
matemática (no por un conjunto de valores), es el comando
>>ezplot(f)
donde:
- f es una cadena de caracteres conteniendo la expresión de una función y=f(x),
- dibuja la función y=f(x) para x en el intervalo [-2ʌ,2ʌ]

35

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Directamente Matlab abrirá una ventana gráfica como primera representación de la


figura; en ella, editando la figura y dándole al icono de “Show Plot Tools and Dock
Figure” pueden modificarse ejes, texto y más propiedades del gráfico.
>>ezplot(f,[a,b]), lo mismo que el comando anterior para x variando en el intervalo
[a,b]
Ejemplo 2.9 Representar las funciones y 2 sin 2x cos 3x , y sin 2x .

>> ezplot('2*sin(x/2)*cos(3*x)'), >> ezplot('2*sin(x/2)*cos(3*x)',[0,pi/2])


2 sin(x/2) cos(3 x) 2 sin(x/2) cos(3 x)

2 0.2

1.5
0
1
-0.2
0.5

0 -0.4

-0.5 -0.6

-1
-0.8

-1.5
-1
-2

-6 -4 -2 0 2 4 6 0 0.5 1 1.5

Figura 2.20 Representación con >>ezplot(f) y con >>ezplot (f,[a,b])

Nota: los comandos >>ezplot(f), >>ezplot(f,[a,b]), donde f es una expresión de


(x,y), dibujan la curva implícitamente definida por f(x,y)=0, para x e y variando
en el intervalo [-2ʌ,2ʌ] en el primer caso; y para x e y variando en el intervalo
[a,b], en el segundo caso.

Ejemplo 2.10 Representar la función definida en forma implícita f(x,y)=x2y-1.


>> ezplot('x^2*y-1')
x 2 y-1 = 0
6

0
y

-2

-4

-6
-6 -4 -2 0 2 4 6
x
2
Figura 2.21 Representación de f(x,y)=x y-1

36

www.full-ebook.com
Gráficos con Matlab

2.5.1 Curvas en paramétricas


Sea una curva en paramétricas r(t) = (x(t), y(t)), con t ‫[ א‬a, b].
Una primera forma de dibujarla sería usando las órdenes:

>>ezplot(x,y), >>ezplot(x,y,[a,b])

donde
- x e y son dos cadenas de caracteres conteniendo las expresiones de dos funciones x(t)
e y(t).
- dibuja la curva de ecuaciones paramétricas x=x(t) y=y(t) para t en el intervalo [0,2ʌ],
en el primer caso y para t ࣅ[a,b], en el segundo.
Ejemplo 2.11 Usando los comandos arriba indicados, representar las curvas

>> ezplot('sin(3*t) ', 'cos(3*t)'), ezplot('sin(3*t)','cos(t)')


x = sin(3 t), y = cos(t)
1

x = sin(3 t), y = cos(3 t)


1 0.8

0.8 0.6

0.6 0.4

0.4
0.2
0.2
0
y

0
y

-0.2
-0.2

-0.4
-0.4

-0.6 -0.6

-0.8 -0.8

-1 -0.5 0 0.5 1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
x x

Figura 2.22 Representaciones del ejemplo

Otra posibilidad que ofrece Matlab es la siguiente. Para dibujar la gráfica de la curva
‫ݔ‬ሺ‫ݐ‬ሻ ൌ –ሺ‫ ݐ‬ଶ െ ͳሻȀሺ‫ ݐ‬ଶ ൅ ͳሻ

‫ݕ‬ሺ‫ݐ‬ሻ ൌ ʹሺ‫ ݐ‬ଶ  െ ͳሻȀሺ‫ ݐ‬ଶ  ൅ ͳሻ

con í5 ” t ” 5, en primer lugar se generan los valores de t en el intervalo indicado:


>>t=linspace(-5,5,1000);

Se puede dibujar de dos formas distintas (como ocurre con todas las gráficas):
>>plot((t.*(t.^2-1))./(t.^2+1),(2*(t.^2-1))./(t.^2+1))

37

www.full-ebook.com
Matlab para Matemáticas en ingenierías

1.5

0.5

-0.5

-1

-1.5

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

Figura 2.23 Primera representación con >>plot

Y otra forma de hacerlo es utilizar el comando >> comet(x(t),y(t)):


>>comet((t.*(t.^2-1))./(t.^2+1),(2*(t.^2-1))./(t.^2+1))
Los dos comandos producen el mismo resultado. Sin embargo, la forma de ejecución es
diferente. Minimizando un poco la ventana principal de Matlab, se consigue ver simul-
táneamente la Command Window y la ventana de gráficas. Al ejecutar este comando, se
observa que en la ventana de la figura aparece un circulito, el cometa, que va dibujando
la curva.
La velocidad de ejecución depende del número de puntos que se hayan generado con el
comando >>linspace.

2.6 Curvas planas en coordenadas polares


Una curva en coordenadas polares es la imagen de la función r=h(ș), donde ș ‫[ א‬ș1, ș2].
Un punto de la curva en polares (r0, ș0) tiene distancia al origen r0, y el ángulo que
forma el vector de posición del punto con el semieje positivo horizontal, medido en
sentido positivo, es ș0.
Por lo tanto, la relación entre las coordenadas polares y las coordenadas cartesianas o
rectangulares viene dada por:
‫ ݔ‬ൌ ‫ݏ݋ܿݎ‬ሺߠሻ

‫ ݕ‬ൌ ‫݊݁ݏݎ‬ሺߠሻ
Para dibujar una curva en polares con Matlab se utiliza el comando >>polar.
Los valores del ángulo son generados mediante el comando >>linspace.

38

www.full-ebook.com
Gráficos con Matlab

Ejemplo 2.12 Dibujar la curva cardioide r = 2 í 4cos(ș), con íʌ ” ș ” ʌ .

>> theta=linspace(-pi,pi,100);r=2-4*cos(theta);polar(theta,r)

90 6
120 60

150 30
2

180 0

210 330

240 300
270

Figura 2.24 Representación en coordenadas polares

2.6.1 Otros comandos para curvas en coordenadas polares


>>ezpolar(f), >> ezpolar(f,[a,b])
donde:
- f es una cadena de caracteres conteniendo la expresión de una función f(ș)
- dibuja la curva definida en coordenadas polares por r= f(ș) para ș variando en
el intervalo [0,2ʌ], en el primer caso y en el intervalo [a,b], en el segundo.

Ejemplo 2.13 a) Dibujar la curva rosácea de 5 hojas en polares r=cos (5T).

b) Dibujar la curva en polares r=sin(2ߠሻ …‘•ሺ͵ߠሻ, en el intervalo [0,ʌ].

>> ezpolar('cos(5*theta)',[0,2*pi]), ezpolar('sin(2*ߠ)*cos(3*ߠ)',[0,pi])


90 90
1
1 a) 1
120 60 120 60
0.8 0.8
0.8

0.6
0.6 0.6
150 30 150 30
0.4 0.4
0.4

0.2 0.2
0.2

180 0 0 180 0

-0.2

-0.4

-0.6
210 330 210 330

-0.8

-1
240 300 240 300
270 270
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
r = sin(2 t) cos(3 t)
r = cos(5 T)

Figura 2.25 Representaciones de curvas en polares

39

www.full-ebook.com
Matlab para Matemáticas en ingenierías

2.6.2 Cambios de coordenadas rectangulares a polares


Cuando se desea cambiar las coordenadas en las que viene expresada una función,
existen comandos que lo hallan de forma directa. Estos son:
>> [TH,R] = cart2pol(X,Y) ……………… pasa de coordenadas cartesianas a polares.
El ángulo lo devuelve en radianes.
Nota: Estos comandos sólo sirven para hallar puntos, es decir, los argumentos no
pueden ser variables simbólicas. Para calcular ecuaciones en coordenadas cua-
lesquiera, ha de hacer uno mismo las cuentas; o bien hacer cambio de variable y
simplificar con el comando >>simplify.

Ejemplo 2.14 Obtener en polares la ecuación de la circunferencia (x-1)2+y2=4.

>> syms x y r theta, f=(x-1)^2+y^2-4, F=simplify(subs(f,{x,y},[r*cos(theta),r*sin(theta)]))


f=
(x - 1)^2 + y^2 - 4
F=
r^2 - 2*cos(theta)*r – 3
Por lo tanto, la ecuación en polares de la circunferencia quedaría:
r2 - 2cos(theta) r = 3.

Nota: Si la función se define vía inline, en vez del comando >>subs, bastará
con evaluar la función en (rcos(theta),rsin(theta)).

2.7 Relleno de regiones del plano


En ocasiones, puede interesar sombrear regiones del plano o áreas encerradas entre
curvas. Esto puede realizarse en Matlab mediante el comando >>fill.
Si las curvas se cortan, previamente han de hallarse los puntos de corte, y posterior-
mente, para rellenar, recorrer las curvas desde sus puntos de corte de izquierda a dere-
cha. Esto último lo hace el comando >>fliplr.
Si las curvas a rellenar son polígonos es más sencillo. Basta indicar los valores de las x
y de las y de los puntos de corte y rellenar con >>fill.
Todo esto va a ser ilustrado con ejemplos para entender mejor el comando y sus argu-
mentos. Primero, es necesario saber el punto de corte de las gráficas, el cual se hallará
con el comando >>solve (este comando se desarrolla ampliamente en el siguiente capí-
tulo).

40

www.full-ebook.com
Gráficos con Matlab

Ejemplo 2.15 Dibujar las curvas y=x2, y=2-x2 y rellenar el área encerrada entre ambas
curvas.

>>% para encontrar los puntos de corte


>> solve(x^2==2-x^2,x)
ans =
1
-1
Aunque el dominio de representación será x[-2,2], la región a pintar se encuentra
entre los puntos de corte, x[-1,1]. La representación de las curvas, la región pintada y
los comandos utilizados, se pueden consultar en la Figura 2.26 (el tercer argumento ‘c’
en >>fill indica el color, cyan en este caso)
>> subplot(1,3,1); >> subplot(1,3,2); >> subplot(1,3,3);

>>x=linspace(-2,2,50); >>x=linspace(-2,2,50); >>x=linspace(-2,2,50);

>>plot(x,x.^2,'b-',x,2- >>plot(x,x.^2,'b-',x,2-x.^2,'b--') >>plot(x,x.^2,'b-',x,2-x.^2,'b--')


x.^2,'b--')
>>hold on; >> hold on;

>> xn=linspace(-1,1,10); >> xn=linspace(-1,1,50);

>>plot([xn;xn],[xn.^2;2- >>fill([xn,fliplr(xn)],[xn.^2,flipl
xn.^2],'k--') r(2-xn.^2)],'c')

Figura 2.26 Representaciones de regiones sombreadas con >>fill y >>fliplr

41

www.full-ebook.com
Matlab para Matemáticas en ingenierías

En el caso de representación de polígonos se puede proceder de dos modos diferentes,


como se muestra en los Ejemplos 2.16 y 2.17.

Ejemplo 2.16 Dibujar el triángulo cuyos vértices son (0,0), (0,1) y (1,1). Rellenar el
área encerrada por este triángulo.

>> x=[0,1,0];y=[0,1,1]; % Vértices del triángulo recorridos de izquierda a derecha


>> fill(x,y,'b'), axis square
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.2 0.4 0.6 0.8 1

Figura 2.27 Representación de relleno de un polígono usando >>fill

Ejemplo 2.17 Dada la recta y=x, dibujar el área encerrada por esta recta y los ejes
coordenados en el primer cuadrante.

Evidentemente debe salir lo mismo que el ejemplo 2.16.

Primero, se dibujará la recta y=x, y luego se rellenará la figura, recorriéndola de iz-


quierda a derecha, con el comando >>fliplr. Es decir:
>>x=linspace(0,1,100);y=x;plot(x,y,'k-'),hold on,

>>xn=linspace(0,1,100);yn=linspace(1,1,100);fill([xn,fliplr(xn)],[xn,yn],'b')

Figura 2.28 Representación de relleno de un polígono usando >>fliplr

42

www.full-ebook.com
Gráficos con Matlab

Nota: Se obtendría el mismo relleno, pero recorriendo la figura de izquierda a


derecha y comenzando por la parte superior, ejecutando:
>>x=linspace(0,1,100);y=x;plot(x,y,'k-'), hold on
>> xn=linspace(0,1,100);yn=linspace(1,1,100);fill([xn,fliplr(xn)],[yn,fliplr(xn)],'b')

2.8 Funciones de varias variables. Superficies

2.8.1 Representación de funciones en 3D: z=f(x,y). Comandos más usados


Una superficie se define por la expresión z=f(x,y), siendo x,y las variables independien-
tes. Los comandos más usados son:

Comando Dibuja (x,y) varía en


>> ezmesh(f) z=f(x,y) En el cuadrado [-ʌ,ʌ]u[-ʌ,ʌ]
f
>> ezmesh(f,[a,b]) z=f(x,y) en el cuadrado [a,b]u[a,b]
expresión de
>> ezmesh(f,[a,b,c,d]) dos variables z=f(x,y) en el rectángulo [a,b]u[c,d]

El proceso para dibujar consiste en crear una malla con segmentos coloreados, en fun-
ción de los valores de los extremos. Editando posteriormente la gráfica, se pueden
cambiar colores, ejes y demás propiedades.
En caso de querer que los ejes X e Y se orienten al revés, en la ventana de la figura,
con los ejes seleccionados, se elige la opción Reverse.
૛ ି࢞࢟૛
Ejemplo 2.18 Representar la superficie dada por la función ࢌሺ࢞ǡ ࢟ሻ ൌ ࢞ࢋି࢞

>> ezmesh('x*exp(-x^2 - y^2)')


x exp(-x 2 - y 2)

0.5

-0.5
3
2
1 3
2
0 1
-1 0
-1
-2 -2
-3 -3
y
x

43

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Otros comandos interesantes para representar superficies son:


>>ezmesh(... , 'circ') ........................... dibuja la función correspondiente sobre
un círculo centrado en el origen.
>>ezsurf(f) ......................................... dibuja una superficie coloreada z=f(x,y).
Sus argumentos son como en >>ezmesh.
Ejercicio: Ejecutar las órdenes indicadas y observar las diferencias:

>>ezmesh('x*exp(-x^2 - y^2)','circ'), y >>ezmesh('x*exp(-x^2 - y^2)').

࢙࢏࢔ඥ࢞૛ ା࢟૛
Ejemplo 2.19 La sentencia para representar es:
ඥ࢞૛ ା࢟૛

>> ezsurf('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)')

2.8.2 Curvas de nivel de una superficie


Para representar curvas de nivel pueden utilizarse los comandos:
>> ezcontour(f), >> ezcontour(f,[a,b]), >>ezcontour(f,[a,b,c,d])

Estos comandos dibujan las líneas de nivel (isovalores) de la función z=f(x,y). Pueden
ejecutarse los siguientes ejemplos para ir comprobando los resultados.
Ejemplo: >> ezcontour('x*exp(-x^2 - y^2)')
x exp(-x 2 - y 2)
3

0
y

-1

-2

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

>>ezcontourf(. . . )…………. hace lo mismo que >>ezcontour, pero rellenando con un


color sólido las distintas zonas determinadas por las líneas de nivel.

Ejemplo: >> ezcontourf('x*exp(-x^2 - y^2)')

44

www.full-ebook.com
Gráficos con Matlab

>>ezmeshc(f) ………………con los mismos argumentos que >>ezmesh, dibuja simul-


táneamente las líneas de nivel y la superficie.
Ejemplo: >> ezmeshc('sin(u/2)*sin(v/2)')
sin(u/2) sin(v/2)

0.5

-0.5

-1
6
4
6
2 4
0 2
-2 0
-2
-4
-4
-6 -6
v
u

>>ezsurfc(f)………………..como >>ezsurf pero, además, dibuja las líneas de nivel.


Ejemplo: >>ezsurfc('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)')

2.8.3 Curvas en el espacio


Para dibujar curvas en el espacio en paramétricas se tienen los comandos detallados a
continuación:

>> plot3(x,y,z)…………… dibuja una línea en el espacio a través de los puntos cuyas
coordenadas son los elementos de los vectores x, y, z.
Ejemplo: >>t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t, ’r’);

40

30

20

10

0
1
0.5 1
0 0.5
0
-0.5 -0.5
-1 -1

>>ezplot3(x,y,z), >>ezplot3(x,y,z,[a,b]) ……… donde

- x , y , z son tres cadenas de caracteres conteniendo las expresiones de tres fun-


ciones x(t) , y(t) , z(t) (por eso en la llamada de la función deben ponerse entre
comillas simples)

45

www.full-ebook.com
Matlab para Matemáticas en ingenierías

- dibujan la curva de ecuaciones paramétricas x=x(t), y=y(t), z=z(t), para t en el


intervalo [0,2ʌ], en el primer caso y para t ࣅ[a,b], en el segundo.

Ejemplo: >>ezplot3('3*cos(t)','2*t.*sin(t)','sqrt(t)'), ezplot3('3*cos(t)','3*t.*sin(t)','sqrt(t)')


x = 3 cos(t), y = 2 t sin(t), z = sqrt(t)
x = 3 cos(t), y = 3 t sin(t), z = sqrt(t)

3
3
2.5
2.5
2
2
1.5
1.5
z

z
1 1

0.5 0.5

0 0
5 10
4 4
0 0
2 2
-5 0 -10 0
-2 -2
y -10 -4 -20 -4
x y x

2.8.4 Superficies de revolución


Matlab tiene implementadas algunas funciones para ello:

Ͳ Cilindro: El comando >>cylinder(R,n) genera automáticamente un cilindro de


revolución de radio R, donde n es el número de puntos de la circunferencia de
la base del cilindro.
Si no se indica el segundo argumento, el número n es, por defecto, 20.
Ͳ Esfera, Elipsoide: Existen de forma similar al comando anterior, >>sphere,
>>ellipsoid.
Lo realmente interesante de este comando >>cylinder, es que también admite radios
variables R(t), donde t ‫[ א‬a, b]. De esta forma, puede ser utilizado para obtener las
gráficas de diferentes tipos de superficies de revolución, donde la generatriz es una
función definida por R(t).
No conviene poner demasiados puntos a la hora de generar el vector, de cara a apreciar
bien el dibujo.

Ejemplo 2.20 Dibujar la superficie de revolución que se obtiene al girar la curva z=e-y
alrededor del eje OZ.

En este caso, la función radio es r=r(z), y por lo tanto será y=-ln(z). Con lo que la
ecuación de la superficie vendrá dada por:
‫ ݔ‬ଶ ൅ ‫ ݕ‬ଶ ൌ ሾെ Žሺ‫ݖ‬ሻሿଶ
Para ello en Matlab se introduce:

46

www.full-ebook.com
Gráficos con Matlab

>>t=linspace(0.1,5);r=-log(t);cylinder(r)

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

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

Figura 2.29 Superficie de revolución

Ͳ Superficies de revolución con respecto a cualquier eje

En el supuesto de que la superficie de revolución no venga de girar alrededor del eje


OZ, debe tenerse especial atención.

Ejemplo 2.21 Dibujar la superficie de revolución que se obtiene al girar la curva


y=ࢋି࢞ , alrededor del eje OX.

En este caso, la función radio es r=r(x) y por lo tanto será y=݁ ି௫ . Así, la ecuación de la
superficie vendrá dada por:
‫ ݕ‬ଶ ൅ ‫ ݖ‬ଶ ൌ ሾ݁ ି௫ ሿଶ ൌ ݁ ିଶ௫
En Matlab se introducen las expresiones:
>> t=linspace(-5,5);r=exp(-t);cylinder(r)

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-150
-100 -150
-50 -100
0 -50
50 0
50
100 100
150 150

Figura 2.30 Superficie de revolución mostrando como eje el vertical

47

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Esta no es la gráfica esperada ya que el eje de rotación debe ser el eje OX.
Sin embargo, la superficie es la correcta. Simplemente, puede interpretarse la represen-
tación gráfica pensando que, en este caso, el eje vertical es el eje OX, y girar el orden
de los ejes en sentido contrario a las agujas del reloj. Quedando:

0.9

0.8

0.7

0.6
EJE X

0.5

0.4

0.3

0.2
-150
0.1 -100
-50
0 0
-150 50
-100
-50
0 100
50
100 150
150
EJE Y
EJE Z

Figura 2.31 Superficie de revolución con los ejes indicados

Nota: En el caso de que querer dibujar una superficie de revolución que gire con
respecto al eje OX, o bien eje OY, y obtener una representación realista en di-
chos ejes, debe parametrizarse la superficie.
La parametrización en este caso es sencilla, ya que simplemente deben parame-
trizarse las circunferencias que se obtienen en el plano deseado, teniendo en
cuenta que los radios son variables, y dejar como parámetro la variable que nos
da el radio.
Se ilustra esto mediante el siguiente ejemplo.

Ejemplo 2.22 Dibujar la superficie de revolución que se obtiene de girar la curva y=x2
con respecto al eje OY.

Se va a realizar tanto la representación de la curva, como de la superficie de revolución


obtenida. Como el giro se efectúa con respecto al eje OY, la función radio es ‫ ݔ‬ൌ ඥ‫ݕ‬.
Y la ecuación de la superficie de revolución será:
‫ ݔ‬ଶ ൅ ‫ ݖ‬ଶ ൌ ሺඥ‫ݕ‬ሻଶ ֜ ‫ ݕ‬ൌ ‫ ݔ‬ଶ ൅ ‫ ݖ‬ଶ
En este caso, la parametrización de las circunferencias vendría dada por:

48

www.full-ebook.com
Gráficos con Matlab

‫ ݔ‬ൌ ඥ‫•‘…ݕ‬ሺ‫ݐ‬ሻ
‫ ݖ‬ൌ ඥ‫‹•ݕ‬ሺ‫ݐ‬ሻ
Puede hacerse de varias formas:
Opción 1: asignar a la variable y el parámetro t (como luego es un radicando, sólo to-
mará valores positivos)
>> t=-5:.1:5;y1=t.^2;subplot(1,2,1),plot(t,y1,'b'),title('Curva a girar'),axis square
>> subplot(1,2,2),t=0:.1:5;u=0:.1:2*pi;surf(sqrt(t)'*cos(u),t'*ones(size(u)),sqrt(t)'*sin(u))

Curva a girar
25

20
2

1
15
0

-1
10
-2

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

Figura 2.32 Curva originaria y superficie generada

La orientación de los ejes ha sido cambiada desde la ventana gráfica, dándole a la op-
ción de ‘Reverse’ para el eje OY. También hubiera bastado poniendo como argumento
de la variable y:
>> t=-5:.1:5;y1=t.^2;subplot(1,2,1),plot(t,y1,'b'),title('Curva a girar'),axis square
>> subplot(1,2,2),t=0:.1:5;u=0:.1:2*pi;surf(sqrt(t)'*cos(u),t,sqrt(t)'*sin(u))

Para elegir el color de la superficie con el comando >>surf, es suficiente añadir un


último argumento
>> surf(sqrt(t)'*cos(u),t'*ones(size(u)),sqrt(t)'*sin(u),’FaceColor’,blue’)

49

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Opción 2: parametrizar de otra manera para que no haya radicales, esta vez asignar a la
variable y el valor t2, es decir, el parámetro t es ඥ‫ݕ‬.
>> t=-5:.1:5;y1=t.^2;subplot(1,2,1),plot(t,y1,'b'),title('Curva a girar'),axis square
>> subplot(1,2,2), u=0:.1:2*pi;surf(t'*cos(u),t.^2,t'*sin(u),'FaceColor','blue')
Curva a girar
25

20 5

15
0

10

-5
5 0
10 5

20 0
0
-5 0 5 30 -5

Figura 2.33 Curva origen y superficie de revolución obtenida

Opción 3: Con el comando >>cylinder. Este exige darle como argumento la función
radio, aunque dibujará siempre en el eje OZ. Es el interesado el que debe saber que, en
realidad, esa figura es en torno al eje OY -en este caso-, y en cada ejercicio elegir la
rotación de ejes adecuada:
>> t=0:.1:5;y=sqrt(t);cylinder(y)

0.8

0.6
EJE Y

0.4

0.2

0
3
2
-2.5
1 -2
-1.5
0 -1
-0.5
-1 0
0.5
-2 1
1.5
2
-3 2.5
EJE X EJE Z

Figura 2.34 Ejecución del comando >>cylinder

50

www.full-ebook.com
Gráficos con Matlab

2.8.5 Superficies Paramétricas


Una superficie S puede ser representada por una función vectorial r(u,v) = (x, y, z),
donde (u,v)Ruv Ž Թ 2.
Las ecuaciones
x=x(u,v), y=y(u,v), z=z(u,v),
se denominan ecuaciones paramétricas de S.

Una superficie S parametrizada por r(u,v) es suave en un punto (u0,v0) si dichas fun-
ciones (u,v) son continuas, tienen primeras derivadas parciales continuas en (u0,v0) y
existe plano tangente a S en (u0,v0).

Si se quiere dibujar superficies expresadas en paramétricas, los comandos a utilizar


son:
>> ezmesh(x,y,z), >> ezmesh(x,y,z,[a,b]), >>ezmesh(x,y,z,[a,b,c,d])

donde
- x, y, z son expresiones de funciones de dos variables
- dibujan la superficie de coordenadas paramétricas x=x(u,v), y=y(u,v), z=z(u,v)
para (u,v) variando en el cuadrado [-2ʌ,2ʌ]u[-2ʌ,2ʌ] en el primer caso; en el
cuadrado [a,b]u[a,b] en el segundo; y en el rectángulo [a,b]u[c,d] en el tercer
caso.
Ejemplo: >> ezmesh('u*cos(v)','u*sin(v)','v',[-pi,pi])

0
z

-1

-2

-3

-4
4

2 4
3
2
0 1
0
-2 -1
-2
-3
-4 -4
y
x

Figura 2.35 Representación del helicoide

51

www.full-ebook.com
Matlab para Matemáticas en ingenierías

También puede ser usado el comando >>mesh, creando previamente una matriz de
puntos o definida por el usuario, o con >>meshgrid ya que los argumentos deben ser
matrices de puntos (puede verse el ejemplo desarrollado en el tema de funciones de
varias variables).
Ejemplo 2.23 Sea el semicono de ecuación z2=x2+y2 con z[0,1]. Parametrizar y re-
presentar para los valores de z[0,1].

Para realizar la parametrización, considérese que sobre planos paralelos al plano XY se


tienen circunferencias con radio variable:
x(u,v)= u*cos(v), y(u,v)=u*sin(v),
Sustituyendo en la ecuación del cono, se obtiene la variable z que, en este caso, es
z(u,v)= u con u[0,1], v[0,2S].
Las expresiones necesarias para representar el semicono son:
>> u=linspace(0,1,20);v=linspace(0,2*pi,20);
>> [U,V]=meshgrid(u,v);
>> X=U.*cos(V);Y=U.*sin(V);Z=U;

0.8

0.6

0.4

0.2

0
1
0.5 1
0 0.5
0
-0.5 -0.5
-1 -1

Figura 2.36 Representación del semicono parametrizado

Ejemplo 2.24 Sea el paraboloide de ecuación z=2-x2-y2 con zԹ. Parametrizar y


representar el trozo de paraboloide con z[0,2].

Para realizar la parametrización, considérese que sobre planos paralelos al plano XY se


tienen circunferencias con radio variable
x(u,v)= u*cos(v), y(u,v)=u*sin(v),

52

www.full-ebook.com
Gráficos con Matlab

Sustituyendo en la ecuación del paraboloide, se obtiene la variable z que, en este caso,


es z(u,v)= 2-u2 donde u [0,1], v[0,2S]. Como del ejemplo anterior ya se tienen
valores asignados para u y v, en este caso no hace falta volver a definirlas:
>> X=U.*cos(V);Y=U.*sin(V);Z=2-U.^2;
>> surf(X,Y,Z);axis([-1 1 -1 1 0 2])

1.8

1.6

1.4

1.2

1
1
0.5 1
0 0.5
0
-0.5 -0.5
-1 -1

Figura 2.37 Representación del paraboloide

Ejercicio: Indicar qué órdenes deben darse para representar conjuntamente el semi-
cono y el paraboloide de los ejemplos anteriores y que el resultado final sea la siguiente
representación:

1.5

0.5

0
1
0.5 1
0 0.5
0
-0.5 -0.5
-1 -1

Figura 2.38 Representación conjunta del semicono y paraboloide

53

www.full-ebook.com
Matlab para Matemáticas en ingenierías

2.8.6 Cambios de coordenadas a cilíndricas y esféricas y viceversa


>>[TH,R,Z] = cart2pol(X,Y,Z) .............. pasa de coordenadas cartesianas a cilíndricas.
>>[X,Y,Z] = pol2cart(TH,R,Z) .............. pasa de coordenadas cilíndricas a cartesianas.
>>[TH,PHI,R] = cart2sph(X,Y,Z) ......... pasa de coordenadas cartesianas a esféricas.
El orden de los argumentos de salida es: TH
es el ángulo en sentido contrario a las agujas
del reloj en el plano XY, PHI es el ángulo de
elevación desde el plano XY y R es el radio.
>>[X,Y,Z] = sph2cart(TH,PHI,R) ......... pasa de coordenadas esféricas a cartesianas

2.9 Ejercicios
1.- Representa las siguientes gráficas:
௫ మ ିଷ௫ାଶ ௫ య ିଵ ௫ య ାଵ
a) ݂ሺ‫ݔ‬ሻ ൌ , b) ݃ሺ‫ݔ‬ሻ ൌ , c) ݄ሺ‫ݔ‬ሻ ൌ  , d) m(x)=log2(x-2),
௫ାଵ ௫ మ ାଶ௫ିଷ ௫ మ ାଶ௫ିଷ

௫ మ ିହ௫ାସ ௫ మ ିହ௫ାସ ௫ିଵ


e) ‫݌‬ሺ‫ݔ‬ሻ ൌ ට , f) ‫ݍ‬ሺ‫ݔ‬ሻ ൌ ට , g) ‫ݎ‬ሺ‫ݔ‬ሻ ൌ ݈݊ ቀ ቁ
௫ మ ିସ௫ାଶ ௫ మ ିଶ௫ାଵ ௫ିଶ

2.- a) Dibujar en una sola ventana con dos subventanas las funciones y = x2 í 3x – 2,
z = x3 í 2x + 1 con x variando entre -5 y 5 a intervalos de 0.02. Marcar con un ’+’ en
color rojo el punto (2,1) en ambas gráficas.

b) Además de las anteriores, dibujar ahora 4 subventanas dispuestas de dos en dos


de forma que en cada una de ellas se representen las funciones anteriores y además,
y= -x2 + 3x + 2, z= -x3 + 2x.

c) ¿Qué se observa en las gráficas anteriores? ¿Cuáles son los coeficientes directores
de los polinomios en cada caso? ¿Qué puede decirse de los límites en el infinito sin
necesidad de calcularlos?

3.- Dibujar la superficie z = sin(x) + cos(y), donde x e y toman valores entre -5 y 5 a


intervalos de 0.1.

4.- Dibujar la función y = x ‫ כ‬eíx2 con x variando entre -5 y 5 a intervalos de 0.05.

మ ି௬ మ
5.- Dibuja la superficie z=‫ି ݁ݔ‬௫ , en el rectángulo [-2,2]u[-2,2].

54

www.full-ebook.com
Gráficos con Matlab

ଵ ଵ ଵ
6.- Dibujar en la misma ventana las funciones ‫ ݕ‬ൌ , ‫ ݕ‬ൌ ,‫ݕ‬ൌ . ¿Qué puede
௫ ሺ௫ିଶሻ ௫ାଵ
decirse sobre la relación existente entre las tres funciones?

7.- Representar las siguientes funciones a trozos y evaluarlas en distintos valores de


cada uno de los trozos. Dibujar y definir alguna de ellas de dos formas distintas:

ଵ ୱ୧୬ሺ௫ሻ
ǡ‫ ݔ‬൏ Ͳ ǡ‫ ݔ‬൏ Ͳ
௫ ௫
a) f(x)=ቐ ݁ ௫ିଷ ǡͲ ൑ ‫ ݔ‬൑ ͵ , b) g(x)=൞݁ ǡͲ ൑ ‫ ݔ‬൏ ʹ
௫

͵ǡ‫ ݔ‬൐ ͵ െሺ‫ ݔ‬െ ʹሻଶ ǡʹ ൑ ‫ ݔ‬൑ ͷ

8.- Indicar, desde la representación gráfica, los valores de los límites más importantes
de las funciones anteriores: puntos frontera, límites en los infinitos. Realizar analítica-
mente con Matlab dichos límites.

9.- Representar en coordenadas polares las siguientes curvas:



a) r=cos(4ș), b) r=3, c) r=4cos(ș), d) ș=3ʌ/4, e) r=
ୱ୧୬ሺ஘ሻାୡ୭ୱሺ஘ሻ

10.- Representar las siguientes superficies de revolución a partir de su generatriz:


a) Curva z=ln(y) sobre el plano XZ al girar alrededor del eje OZ.
b) Curva z2 =4y sobre el plano YZ al girar alrededor del eje OY.

11.- Representar los dominios de las siguientes funciones de dos variables:


ට‫ ʹݔ‬൅‫ ʹݕ‬െͶ
‫ ʹݔ‬൅ʹ‫ ʹݕ‬െͳ͸
a) ݂ሺ‫ݔ‬ǡ ‫ݕ‬ሻ ൌ ‫ݕ‬െ‫ʹݔ‬
, b) ݂ሺ‫ݔ‬ǡ ‫ݕ‬ሻ ൌ ‫݊ܮ‬ ‫ݔ‬െ‫ݕ‬൅ͳ

12.- Calcular en coordenadas polares la ecuación de la Lemniscata de Bernoulli


ሺ‫ ݔ‬ଶ ൅ ‫ ݕ‬ଶ ሻଶ െ ሺ‫ ݔ‬ଶ െ ‫ ݕ‬ଶ ሻ ൌ Ͳ. Hacerlo definiendo la función con variables simbólicas y
también definiendo la función vía inline.

13.- Representar las siguientes superficies en el intervalo indicado


a) paraboloide de ecuación z = 2-x2-y2 con -1” z” 2
b) cono de ecuación x2 +y2- z2 =0 con 1 ”z ” 4
1
c) cilindro de ecuación x 2  y 2 con 0 ”z ” 2.
4

55

www.full-ebook.com
www.full-ebook.com
Capítulo 3
3

Operaciones básicas con


funciones

3.1 Polinomios
Para trabajar con polinomios en Matlab se puede actuar de dos formas, bien introducir-
los como vectores, o bien como función. Dependiendo de cómo se trabaje con ellos, los
comandos a utilizar son diferentes.

3.1.1 Polinomio introducido como vector


En este caso se introducen sólo los coeficientes del polinomio, ordenados desde el de
mayor grado hasta el término independiente, y poniendo un 0 cuando el monomio co-
rrespondiente no aparezca. Así, aparecen tantos coeficientes como el grado del polino-
mio.

a) Para evaluar se usará el comando >>polyval.


Ejemplo 3.1 Introducir el polinomio p=5x4 – x3 +2 x +1 y evaluar en x=0.

>> p=[5 -1 0 2 1]
>> polyval(p,0)
ans =
1

57

www.full-ebook.com
Matlab para Matemáticas en ingenierías

b) Si se quiere calcular sus raíces, se empleará el comando >>roots. En el Ejem-


plo 3.1 como se tiene un polinomio de grado 4 con coeficientes reales, tendrá 4
raíces (tantas como el grado). Pudiendo ser 4 raíces reales, 4 complejas (con-
jugadas dos a dos) o dos reales y dos complejas (una y su conjugada). Matlab
devuelve que para este caso las 4 raíces son complejas y por lo tanto conjuga-
das dos a dos:
>> format rat
>> roots(p)
ans =
1700/3047 + 367/549i
1700/3047 - 367/549i
-234/511 + 137/589i
-234/511 - 137/589i
c) Para calcular el producto o división de dos polinomios, p y q, introducidos
mediante vectores, los comandos en Matlab son >>conv(p,q) y >>de-
conv(p,q), respectivamente.

3.1.2 Polinomio introducido como función


Lo primero será definir la variable x como simbólica y después introducirlo de la for-
ma habitual mediante operaciones:
>> x=sym('x'); p=5*x^4-x^3+2*x+1
p=
5*x^4 - x^3 + 2*x + 1
Destacar que si al introducirlo hubiera monomios semejantes, Matlab ya devolverá el
polinomio reduciendo esos monomios.
a) Para evaluarlo, depende de cómo haya sido introducido. Si se ha hecho como
acaba de explicarse:
>> subs(p,0)
ans =
1
Pero también podría haberse definido como una función inline, directamente,
sin declarar x como variable simbólica. En dicho caso para evaluarlo:
>> p=inline('5*x^4-x*3+2*x+1')
p=
Inline function
p(x) = 5*x^4-x*3+2*x+1
>> feval(p,0)

58

www.full-ebook.com
Operaciones básicas con funciones

ans =
1
también directamente
>>p(0)
ans=
1
b) Para calcular sus raíces se usará el comando >>solve. Las soluciones comple-
jas las devuelve en formato decimal. Si en el comando solve no se especifica la
variable, Matlab entiende que la variable definida es la única variable de la
función. Si hubiera varias deberá especificarse cuál de ellas es la que se desea
resolver ya que sino Matlab elige siempre la más cercana alfabéticamente a la
variable x. Si no se indica nada por defecto Matlab sobreentiende que el usua-
rio resuelve p(x)=0.
>> solve(p,x)
ans =
0.66848752167174464637516725170716*i + 0.55792579323393509147440680377195
0.55792579323393509147440680377195 - 0.66848752167174464637516725170716*i
0.2325976273176772911514690533212*i - 0.45792579323393509147440680377195
- 0.2325976273176772911514690533212*i - 0.45792579323393509147440680377196

También podría haberse hecho directamente, llamando al polinomio desde el


argumento. Obsérvese que en este caso dicho argumento debe ir entre comillas
simples:
>>solve('5*x^4-x^3+2*x+1')
ans =
0.66848752167174464637516725170716*i + 0.55792579323393509147440680377195
0.55792579323393509147440680377195 - 0.66848752167174464637516725170716*i
0.2325976273176772911514690533212*i - 0.45792579323393509147440680377195
- 0.2325976273176772911514690533212*i - 0.45792579323393509147440680377196

Nota: Si se pretende resolver en vez p(x)=4, debe especificarse prestando


atención a que el = en Matlab sólo indica asignación. Cuando se desee in-
dicar una igualdad hay que usar el operador lógico de Matlab ==. Es con-
veniente tener especial cuidado aquí con las versiones de Matlab.
Por ejemplo en Matlab R2011a basta poner:

59

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>> solve('5*x^4-x^3+2*x+1=4')
ans =
0.78652986718776168488859802566479
-0.94832032580079086894804119425066
0.87846082447569315793472841177844*i + 0.18089522930651459202972158429294
0.18089522930651459202972158429294 - 0.87846082447569315793472841177844*i

Pero con la versión Matlab R2013b, entiende todas estas órdenes:

- Variable no simbólica y polinomio simbólico:

>> solve('5*x^4-x^3+2*x+1==4')
ans =
0.78652986718776168488859802566479
-0.94832032580079086894804119425066
0.18089522930651459202972158429294 - 0.87846082447569315793472841177844*i
0.18089522930651459202972158429294 + 0.87846082447569315793472841177844*i


>> solve('5*x^4-x^3+2*x+1=4')
ans =
0.78652986718776168488859802566479
-0.94832032580079086894804119425066
0.18089522930651459202972158429294 - 0.87846082447569315793472841177844*i
0.18089522930651459202972158429294 + 0.87846082447569315793472841177844*i

- Variable definida simbólica: aquí sólo admite utilizar ==


>> x=sym('x');solve(p==4,x)
ans =
0.78652986718776168488859802566479
-0.94832032580079086894804119425066
0.18089522930651459202972158429294 - 0.87846082447569315793472841177844*i
0.18089522930651459202972158429294 + 0.87846082447569315793472841177844*i

Si dada una ecuación o un polinomio, sólo se busca que saque por pantalla las
raíces reales, está la opción:
>>solve(5*x^4-x^3+2*x-3, 'Real', true)
Si se buscan sólo raíces positivas, pídase:
>>syms x positive, solve(5*x^4-x^3+2*x-3)

60

www.full-ebook.com
Operaciones básicas con funciones

c) Finalmente, para calcular productos o divisiones de polinomios, se efectúa


con las operaciones habituales.
El comando >>solve, lo desarrollamos en el párrafo posterior.

3.2 Dominios de funciones e inecuaciones


Para calcular dominios de funciones, es necesario recordar que:

a) Si las funciones son polinómicas, su dominio son todos los reales. Dom(f)=Թ.
b) Funciones exponenciales, Dom(f)=Թ.
௣ሺ௫ሻ
c) Funciones racionales: f(x)= , con p(x) y q(x) polinomios. Dom(f)={xࣅԹȀ‫ݍ‬ሺ‫ݔ‬ሻ ്
௤ሺ௫ሻ
Ͳሽ

d) Funciones irracionales: f(x)= ඥ݃ሺ‫ݔ‬ሻ. Donde:
‹‡•‹’ƒ”ǣ‫݉݋ܦ‬ሺ݂ሻ ൌ Թ

‹‡•’ƒ”ǣ‫݉݋ܦ‬ሺ݂ሻ ൌ ሼ‫ݔ‬ԖԹȀ݃ሺ‫ݔ‬ሻ ൒ Ͳሽ
e) Funciones logaritmo: f(x)=log(g(x)). Dom(f)= ሼ‫ݔ‬ԖԹȀ݃ሺ‫ݔ‬ሻ ൐ Ͳሽ

Por lo tanto, calcular dominios no es más que resolver ecuaciones o inecuaciones. Este
proceso en Matlab se ejecuta con el comando >>solve. Para ello, la variable debe ser
simbólica o introducir la función entre comillas simples.

3.2.1 Comando >>solve


Este comando, que trabaja en simbólico, resuelve tanto ecuaciones, inecuaciones como
sistemas. Hay que tener cuidado cuando se quiere resolver un sistema con parámetros,
en definirle todas las variables como simbólicas e indicarle quién es el parámetro:
syms a u v

[Sa,Su,Sv] = solve(a*u^2 + v^2,u - v == 1,a^2 - 5*a + 6) solves the three equa-


tions for a, u and v.

Mientras que si se pide:


syms a u v

[Su,Sv] = solve(a*u^2 + v^2 == 0,u - v == 1) regards 'a' as a parameter and


solves the two equations for u and v.

Nota: También hay que prestar atención y pedir variables de salida cuando se re-
suelva un sistema con varias variables, ya que Matlab puede devolverlas desor-
denadas. Esto se corrige imponiendo en la salida el orden de las variables.

61

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Si en algún momento al ejecutar este comando no devolviera todas las soluciones de la


ecuación sino sólo una de ellas, es conveniente ejecutar la orden:
>>solve(ecuación,x,’IgnoreProperties’,true)

Nota: Puede ocurrir que al resolver en Matlab una ecuación tan sencilla como
sin(x)=0, sólo devuelva una solución de todas las existentes:
>> solve(sin(x))
ans =
0

O incluso, si se le pide que saque las raíces positivas, devuelva una de ellas pero no
la deseada:
>> syms x positive, solve(sin(x))
ans =
2*pi

Para solventar este problema existe el comando que se explica a continuación.

3.2.2 Comando >>fzero (resolución numérica o aproximada de ecuaciones)


Este hecho, que puede darse con más ecuaciones, se resuelve usando funciones que
hallen las raíces de la ecuación que se encuentren más próximas a un número que el
usuario decida. Dicha acción la realiza el comando >>fzero.
Su argumento debe ser una función simbólica. Como segundo argumento se introduce
o bien el punto al que la solución buscada debe acercarse; o bien un intervalo donde se
verifique el Teorema de Bolzano;es decir, la función cambie de signo en dicho interva-
lo y por lo tanto seguro exista solución en ese dominio especificado.

Ejemplo 3.2 Para encontrar los puntos de corte de la función seno con el eje OX, es
sabido que el valor x=ʌ es uno de dichos puntos. Pero con >>solve no será detectado
(por problemas de redondeo y aproximaciones internas de Matlab). Su hallazgo vendrá
forzado cuando se busquen las soluciones más próximas, por ejemplo, a x=3, de la
siguiente forma:

>> fzero('sin(x)',3)
ans =
3.1416
También podría haberse definido vía inline o vía Anonymus:
>>X = fzero(@sin,3)
X=
3.1416

62

www.full-ebook.com
Operaciones básicas con funciones

O, de otra forma, si el argumento no es sólo la variable x:


>> fzero(@(x)sin(3*x),3)
ans =
3.1416
x 1
Ejemplo 3.3 Calcula el dominio de f x .
x 2  5x  6
୶ିଵ
Ha de verificarse que మ ൒ Ͳ. Matlab se encuentra con un inconveniente al pedir
୶ ିହ୶ା଺
que lo haga directamente:
>> syms x,solve((x-1)/(x^2-5*x+6)>=0,x)
ans =
solve([0.0 <= (x - 1.0)/(x^2 - 5.0*x + 6.0)], [x])

Es decir, Matlab no puede efectuar de golpe esta operación. Para solucionarlo deben
distinguirse los dos casos a estudiar.
Para que una fracción sea toda ella positiva puede ocurrir que:
- o numerador y denominador sean ambos positivos
- o numerador y denominador ambos negativos.
Se pedirá con dos instrucciones:
Caso I) Si ambos son positivos. Vigilar que el denominador no puede ser cero:

>> solve(x-1>=0,x^2-5*x+6>0)
Warning: 2 equations in 1 variables.
> In \\izar2\matlab\R2013b\toolbox\symbolic\symbolic\symengine.p>symengine at 56
In mupadengine.mupadengine>mupadengine.evalin at 97
In mupadengine.mupadengine>mupadengine.feval at 150
In solve at 170
ans =
Dom::Interval([1], 2)
Dom::Interval(3, Inf)
Por lo tanto la solución en este primer caso viene dada por: [1,2)‰(3,’)

Nota: si se hubiera definido la variable como simbólica, en vez de sólo declarar-


la, saldría directamente (según ordenadores):
>> x=sym('x');solve(x-1>=0,x^2-5*x+6>0)

63

www.full-ebook.com
Matlab para Matemáticas en ingenierías

ans =
Dom::Interval([1], 2)
Dom::Interval(3, Inf)

Caso II) Cuando ambos son negativos (con denominador distinto de cero):
>> solve(x-1<=0,x^2-5*x+6<=0,x-1<=0,x^2-5*x+6<0)
Warning: 4 equations in 1 variables.
> In \\izar2\matlab\R2013b\toolbox\symbolic\symbolic\symengine.p>symengine at 56
In mupadengine.mupadengine>mupadengine.evalin at 97
In mupadengine.mupadengine>mupadengine.feval at 150
In solve at 170
Warning: Explicit solution could not be found.
> In solve at 179
ans =
[ empty sym ]

Por lo tanto, este segundo caso no ocurre nunca. Y la solución final sería:
Dom(f)= (Solución del caso I) U (Solución del caso II)= [1,2]‰[3,’) ‰‫[=׎‬1,2] ‰ [3,’)

3.2.3 Inecuaciones con valores absolutos


Matlab no resuelve de golpe inecuaciones con valores absolutos. Se tienen que aplicar
las propiedades del valor absoluto con respecto a desigualdades:

|x|൑ ܾ ֞ െܾ ൑ ‫ ݔ‬൑ ܾ ֞ ‫߳ݔ‬ሾെܾǡ ܾሿ

‫ݔ‬൒ܾ
ȁ‫ݔ‬ȁ ൒ ܾ ֞ ቄ ֞ ‫߳ݔ‬ሺെλǡ െܾሿ ‫ ׫‬ሾܾǡ ൅λሻ
‫ ݔ‬൑ െܾ

Ejemplo 3.4 Resuelve la siguiente inecuación |x2-7x+12|<2.

Si se intenta de golpe con Matlab:


>> syms x, solve(abs(x^2-7*x+12)<2)
ans =
4
3

64

www.full-ebook.com
Operaciones básicas con funciones

Que evidentemente no son las soluciones de la inecuación. Esto ocurre porque en


Matlab, para resolver inecuaciones, hay aplicar primero las propiedades y luego hacer
la unión o intersección de los casos, según convenga. Es decir, como
|x2-7x+12|<2 ֞-2< x2-7x+12<2
Se resuelve por separado, pidiendo que obtenga sólo las soluciones reales:

Caso I: hallar cuándo -2< x2-7x+12


>> syms x, solve(x^2-7*x+12>-2, 'Real',true)
ans =
R_
Es decir, la solución del Caso I es xࣅԹ

Caso II: resolver x2-7x+12<2


>> solve(x^2-7*x+12<2, 'Real',true)
ans =
Dom::Interval(2, 5)

Por lo tanto, la solución final es: Solución Caso I ˆ Solución Caso II= (2,5)ˆ Թ ൌ ሺʹǡͷሻ.

3.3 Simplificar, factorizar, expandir y demás operaciones algebraicas


Cuando uno quiere trabajar con expresiones algebraicas, o polinómicas, en su forma
más simplificada, o al contrario, expandir una expresión, en Matlab se poseen los si-
guientes comandos:

COMANDO SIMPLIFY: simplifica expresiones algebraicas


>> p=(x-1)/(x^2-2*x+1)
p=
(x -1)/(x^2 - 2*x + 1)
>> simplify(p)
ans =
1/(x - 1)

Otro ejemplo: >> simplify(sin(x)^2+cos(x)^2)


ans =
1

65

www.full-ebook.com
Matlab para Matemáticas en ingenierías

En ocasiones, hay expresiones que Matlab las simplifica de forma automática. Por
ejemplo si se introducen polinomios no reducidos:
>> f=x-1+2*x+5
f=
3*x + 4

COMANDO FACTOR: devuelve el polinomio factorizado en los factores más simples


posibles. También realiza operaciones devolviendo el resultado factorizado.
>> factor((x-1)*(x^2-3*x+2))
ans =
(x - 1)^2*(x - 2)

COMANDO EXPAND: Devuelve desarrollada la expresión introducida. Muy útil para


recordar fórmulas de igualdades notables o de desarrollos trigonométricos.
>> expand((x-1)^2)
ans =
x^2 - 2*x + 1
O también por ejemplo:
>> syms x y
>> expand(sin(x+y))
ans =
cos(x)*sin(y) + cos(y)*sin(x)

COMANDO RESIDUE: Descompone una función racional en fracciones simples. Los


polinomios deben ser introducidos como vectores. La salida son los coeficientes de las
fracciones simples, tomando las raíces en orden decreciente.
Es importante indicar que en el caso de tener un denominador q(x) cuyas raíces sean
ெ௫ାே
complejas, no se obtiene la descomposición de que en ocasiones se busca para
௤ሺ௫ሻ
después integrar. Matlab las trata como raíces o bien simples o bien múltiples, según
sea el caso. Si se quiere obtener algo parecido a esta descomposición, podemos aplicar
los comandos >>diff(int(‘expresion’)), cuando el denominador es un polinomio de
grado 2 con raíces complejas.

66

www.full-ebook.com
Operaciones básicas con funciones

࢞ି૚
Ejemplo 3.5 Calcular la descomposición en fracciones simples de ࢞૛ି૞࢞ା૟

>> residue([1 -1], [1 -5 6])


ans =
2.0000
-1.0000
௫ିଵ ଶ ଵ
Por lo tanto, la solución sería: ൌ െ
௫ మ ିହ௫ା଺ ௫ିଷ ௫ିଶ

Para comprobarlo:
>> factor((2/(x-3))-(1/(x-2)))
ans =
(x - 1)/((x - 2)*(x - 3))

3.4 Cálculo de límites


Para calcular límites Matlab trabaja con variable simbólica, el comando viene dado por
>>limit(f,x,punto). Por ejemplo:
>> syms x, limit((x-1)/(x^2-5*x+6),x,1)
ans =
0
Para calcular límites en el infinito, hay que especificar el argumento inf. En el ejemplo
anterior, claramente, el resultado dará 0 ya que el grado del denominador es mayor que
el del numerador
>> limit((x-1)/(x^2-5*x+6),x,inf)
ans =
0

3.4.1 Límites laterales


Si se comienza a calcular de forma analítica el siguiente límite, se obtiene como resul-
tado:
x 2  5x  4 2
lim
x o2 x2 0
Este resultado indica que primeramente deben calcularse sus límites laterales para ver
si existe o no dicho límite - para ello ambos límites laterales deben coincidir-. Matlab
lo indicará devolviendo como resultado NaN, es decir, está indicando que ese límite no
existe:

67

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>>syms x, limit((x^2-5*x+4)/(x-2),x,2)
ans =
NaN
Para ver el por qué no existe, se calculan los límites laterales y se observa que dan
resultados distintos. Por lo tanto, el límite no existirá, como bien ha indicado Matlab.
El cálculo de los límites laterales se hace especificándolo como tercer argumento en el
comando anterior:
>>limit(expression,x,punto,’Right’), o bien
>>limit(expression,x,punto,’Left’).
Estos argumentos también pueden indicarse con minúsculas.
>> limit((x^2-5*x+4)/(x-2),x,2,'right')
ans =
-Inf
>> limit((x^2-5*x+4)/(x-2),x,2,'Left')
ans =
Inf

3.4.2 Asíntotas

El cálculo de las asíntotas de una función no es más que ir hallando los diversos límites
en cada caso.
a) Asíntotas verticales: la función f(x) tiene una asíntota vertical en x=a, si
lim f x f .
x oa

De hecho, posee A.V. (asíntota vertical) aunque el límite no exista y aunque sólo uno
de los límites laterales dé infinito.
ξ࢞ା૛
Ejemplo 3.6 Hallar las asíntotas verticales de f(x)= . Representar la función y la
࢞ା૚
asíntota en la misma gráfica.

Claramente, el punto a estudiar es x=-1, ya que anula el denominador. Se comenzará


hallando la asíntota:
>> syms x, y=sqrt(x+2)/(x+1);limit(y,x,-1)
ans =
NaN

68

www.full-ebook.com
Operaciones básicas con funciones

Por lo tanto, se observa que no va a existir el límite. Si se hallan los límites laterales:

>> limit(y,x,-1, 'Right')


ans =
Inf
>>limit(y,x,-1, 'Left')
ans =
-Inf

Es decir, existe una A.V. en x=-1. Para dibujar la función y la asíntota en una misma
ventana:
>> x=-2:0.001:5;y=sqrt(x+2)./(x+1);plot(x,y,'b',[-1 -1],[-10 10],'k--'),axis([-2 5 -10
10])

10

-2

-4

-6

-8

-10
-2 -1 0 1 2 3 4 5 
Figura 3.1 Gráfico de función con asíntota vertical

Nota: Si se dan valores a la variable x con el comando linspace, unirá con un só-
lo trazo las dos ramas de las figuras. Para que en principio no salga la gráfica to-
da unida, defínase la variable como un vector y después indíquese la asíntota de
forma gráfica.
Si se desea en la gráfica cambiar colores, ejes, poner una leyenda, un título o demás
propiedades, recordar que puede ser realizado desde la ventana de la gráfica, o bien en
el menú Edit> Properties Figure; o bien clicando en el último icono de dicha ventana y
luego con el botón derecho del ratón acceder a más propiedades.

b) Asíntotas horizontales: la función f(x) tiene una asíntota horizontal en y=b, si


lim f x b .
x of

69

www.full-ebook.com
Matlab para Matemáticas en ingenierías


Ejemplo 3.7 Calcular las asíntotas de la función ݂ሺ‫ݔ‬ሻ ൌ . Representar dicha fun-
୪୬ሺ௫ሻ
ción e indicar todas sus asíntotas en la misma gráfica.
>> syms x, y=1./log(x);limit(y,x,inf)
ans =
0
>> limit(y,x,1)
ans =
NaN

Por lo tanto, este límite no existe. Se comprueba con los límites laterales:
>> limit(y,x,1,'right')
ans =
Inf
>> limit(y,x,1,'left')
ans =
-Inf

Así que existe una A.H. en y=0, y una A.V. en x=1. Para representarlas:
>> x=0.01:0.0001:6;y=1./log(x);plot(x,y,'b',[1 1], [-5 5],'r--'), axis([0 6 -5 5]),hold
on,plot(x,0,'r--')
5

-1

-2

-3

-4

-5
0 1 2 3 4 5 6

Figura 3.2 Gráfico de función con asíntota horizontal y vertical


c) Asíntotas oblicuas: Para hallar las asíntotas oblicuas, rectas de la forma y=mx+n,
deben verificarse dos propiedades:

Ž‹ ݂ሺ‫ݔ‬ሻ ൌ λ
௫՜ஶ

70

www.full-ebook.com
Operaciones básicas con funciones

݂ሺ‫ݔ‬ሻ
݉ ൌ ݈݅݉ ‫ א‬Թ ‫ ך‬ሼͲሽ
௫՜ஶ ‫ݔ‬

Cuando se verifiquen estas dos propiedades, entonces se calcula n lim ª¬ f x  mx º¼ .


xof
Con lo que la ecuación de la asíntota oblicua (A.O.) será y=mx+n, con lo valores de m
y n obtenidos.
Observar que, por propia definición, si hay asíntotas horizontales ya no hay oblicuas y
viceversa.

࢞૛ ି૚
Ejemplo 3.8 Calcular las asíntotas de la función ࢌሺ࢞ሻ ൌ
࢞ି૛

Se estudia el punto x=2 por anular el denominador, candidato a ser una A.V.
>> syms x, limit((x^2-1)/(x-2),x,2,'right')
ans =
Inf
>>limit((x^2-1)/(x-2),x,2,'left')
ans =
-Inf
Efectivamente en x=2 existe una asíntota vertical.
Si se representa la función y la asíntota:
>> ezplot((x^2-1)/(x-2),[-5 5]), axis([-5 5 -10 10]), hold on, y=-10:.001:10;plot(2,y,'r--')
(x 2 - 1)/(x - 2)
10

-2

-4

-6

-8

-10
-5 -4 -3 -2 -1 0 1 2 3 4 5
x 
En el dibujo ya se ha destacado la A.V. x=2, pero también se observa que existe una
asíntota oblicua que va a ser calculada:

71

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>> limit((x^2-1)/(x-2),x,inf)
ans =
Inf
Por lo tanto, se cumple la primera condición para que haya A.O. Hay que verificar
ahora si m‫ א‬Թ ‫ ך‬ሼͲሽǣ
>> m=limit((x^2-1)/(x*(x-2)),x,inf)
m=
1
>> n=limit(((x^2-1)/(x-2))-x,x,inf)
n=
2

Concluyendo que existe A.O., en la recta y=x+2. Para representar todo en una sola
gráfica:
>>syms x, ezplot((x^2-1)/(x-2),[-5 5]), axis([-5 5 -10 15]), hold on ;
>>y=-10:.001:15;plot(2,y,'r--')
>> hold on,ezplot(x+2,[-5 5]), axis([-5 5 -10 15])
15

10

-5

-10
-5 -4 -3 -2 -1 0 1 2 3 4 5
x 
Figura 3.3 Gráfico de función con asíntota oblicua y vertical

3.4.3 Límites de funciones a trozos


Hasta el momento Matlab no calcula de forma directa límites de funciones a trozos,
debe irse seleccionando, en cada caso, el trozo de función en el que se está trabajando
según dónde se quiera calcular el límite.
­ x 2  1 ,x  1
°
Ejemplo 3.9 Dada la función f x ®1 ,1 d x  3 , averigua si es continua o no.
° x  1 ,x ! 3
¯

Primero, observar que el Dom(f)=Թ. Además, como en cada uno de los trozos es con-
tinua, por ser funciones polinómicas, basta estudiar qué ocurre en los puntos frontera
x=1,3.

72

www.full-ebook.com
Operaciones básicas con funciones

Se introduce la función en Matlab, vía inline o vía Anonymus:


>> f=inline('(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)')
Continuidad en x=1:
x f(1)=3, comprobado mediante
>> f(1)
ans =
1
x Calcular lim f x . Como x=1 es un punto frontera, se calcularán los límites
x o1

laterales, pero al ser una función a trozos debe indicarse qué trozo es el ade-
cuado
Ž‹ష ݂ሺ‫ݔ‬ሻ ൌ Ž‹ ‫ ݔ‬ଶ 
௫՜ଵ ௫՜ଵ

Ž‹ ݂ሺ‫ݔ‬ሻ ൌ Ž‹శ ͳ


௫՜ଵశ ௫՜ଵ

>> syms x, l1=[limit(x^2,x,1),limit(1,x,1)]


l1 =
[ 1, 1]
x Como lim f x lim f x f 1 1 .El límite existe, coincide con la
x o1 x o1
función en el punto y, por lo tanto, f es continua en x=1.
Continuidad en x=3:
x f(3)=1, pues:
>> f(3)
ans =
1
x Para calcular lim f x ,de nuevo se hallan los límites laterales:
x o3

lim f x lim x  1 
x o 3 x o 3

lim f x lim x  1 
x o 3 x o3

>> l3=[limit(1,x,3),limit(x+1,x,1)]
l3 =
[ 1, 2]
x Por lo tanto ‫ ׍‬lim f x , ya que los límites laterales no coinciden. Además, al
x o3

dar valores reales distintos, se tiene en x=3 discontinuidad de salto |2-1|=1.

73

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Así, la función f es continua en Թ̳ሼ͵ሽ.

3.5 Números Complejos


Para trabajar con zࣅԧ, Matlab proporciona las siguientes posibilidades.
ƒ Primero el usuario puede construir un número complejo con el comando
>>complex(a,b), siendo a,bԹ
>> format rat
>> complex(2,-3)
ans =
2 - 3i

Con esta orden, ans pasa a ser ya un número complejo, no real, como puede compro-
barse con el siguiente comando lógico (la respuesta de este tipo de comandos es 1 si la
comparación es cierta, y 0 si la comparación es falsa):

>> isreal(ans)
ans =
 0

ƒ Para calcular sus partes reales e imaginarias, Matlab posee los comandos
>>reale>>imag, respectivamente:

>> z=complex(2,-3)
z=
2 - 3i
>> real(z)
ans =
2
>> imag(z)
ans =
-3

ƒ Para operar con números complejos puede hacerse con las operaciones habi-
tuales.
1 i
Ejemplo 3.10 Calcular .
2  3i

>> z1=complex(1,1)
z1 =
1 + 1i

74

www.full-ebook.com
Operaciones básicas con funciones

>> z1/z
ans =
-1/13 + 5/13i

O incluso directamente:
>> (1+i)/(2-3*i)
ans =
-1/13 + 5/13i

ƒ Para hallar el complejo conjugado, se tiene el comando>>conj:


>> conj(z)
ans =
2 + 3i

ƒ Y para hallar su módulo y argumento, si se pretende expresarlo en forma po-


lar, exponencial o trigonométrica, será>>abs,>>angle, respectivamente:

>> format short,abs(z)


ans =
3.6056
Observar que este valor corresponde a:
>> sqrt(13)
ans =
3.6056

Nota: angle nos devuelve el ángulo en radianes, ya en el cuadrante adecuado. Si


௜௠௔௚ሺ௭ሻ
el argumento de un número complejo, se calculase mediante ܽ‫݊ܽݐ‬ሺ ሻ, este
௥௘௔௟ሺ௭ሻ
comando devuelve el ángulo en radianes en el primer cuadrante, si la tangente es
positiva; y el ángulo en el cuarto cuadrante –medido en sentido negativo-, si la
tangente es negativa. Siendo el usuario el que deberá seleccionar el ángulo ade-
cuado, según la representación del número complejo.

ƒ Para calcular raíces, de forma directa Matlab sólo averigua una de ellas.

>> z^(1/4)
ans =
1.3366 - 0.3352i

Para obtenerlas todas, se puede pasar el número complejo de forma binómica a forma
exponencial, y trabajar con la expresión de un número complejo en forma exponencial:

75

www.full-ebook.com
Matlab para Matemáticas en ingenierías

z=|z|eiArg(z). Ahora basta operar así el número complejo, acordándose de que en Matlab
el número e debe ser definido mediante
>>e=exp(1)

Finalmente, la fórmula para calcular raíces n-ésimas de un número complejo,


z=|z|eiArg(z), dado en forma exponencial, quedaría resuelta con:

>> w=nthroot(abs(z),n)*exp(i*(angle(z)+2*pi*k)/n) con n dato y k=0, …, n-1

Donde el comando >>nthroot(X,N), siendo X un número real y N el índice de la raíz,


calcula las raíces N-ésimas del número real X.
Ejemplo 3.11 Cálculo de las 4 raíces cuartas de z=2-3i

>> z_0=(abs(z)^(1/4))*exp(i*angle(z)/4)
>> z_1=(abs(z)^(1/4))*exp(i*(angle(z)+2*pi)/4)
>> z_2=z_1*exp(i*2*pi/4)
>> z_3=z_2*exp(i*2*pi/4)
Estos resultados pueden obtenerse directamente con la fórmula:
>> z=2-3*i;N=4;k=0:N-1;w=nthroot(abs(z),N)*exp(i*(angle(z)+2*pi*k)/N)

w=

1.3366 - 0.3352i 0.3352 + 1.3366i -1.3366 + 0.3352i -0.3352 - 1.3366i

ƒ Para pasar un número complejo a su forma polar (o viceversa). Dadas las


coordenadas cartesianas también puede efectuarse (además de calculando su
módulo y argumento por separado), con el comando

>>[t,m]=cart2pol(a,b)

Cabe tener en cuenta que el ángulo lo devuelve en radianes y que devolverá el Argu-
mento principal. Por lo que, según el afijo del número complejo, debe elegirse el ángu-
lo adecuado correspondiente al cuadrante en el que se encuentre.
Para pasar de polares a cartesianas, se realiza con el comando:
>>[a,b]=pol2cart(m,t)

ƒ Para representar el número complejo como un vector en el plano se tiene el


comando

76

www.full-ebook.com
Operaciones básicas con funciones

>>compass(z) % siendo z=a+bi o también como >>compass(real(z),imag(z))

Si lo que se quiere es representar sólo el afijo del número complejo z:


>>plot(z,’o’)

Ejemplo 3.12 Representa los siguientes números complejos z1=2+2i y z2=3-2i.

Para representarlos en una misma ventana, usando la sintaxis indicada anteriormente,


introducir

>> z1=2+2i; compass(z1); hold on; compass(3,-2)

De donde se obtiene
90 3
120 60
2
150 30
1

180 0

210 330

240 300
270
Figura 3.4 Representación usando >>compass

Aunque este comando permite ir más allá, ya que directamente representa todas las
raíces obtenidas de un número complejo. Retomando el Ejemplo3.11, si se quiere re-
presentar las raíces cuartas de z=2-3i, cuyo resultado estaba en la variable w, se escri-
be:

>> compass(w)
90 1.5
120 60

150 30
0.5

180 0

210 330

240 300
270

77

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Ejemplo 3.13 Se pide

(a) Dados los números complejos z1=2+3i, z2=-3+i, representar en color azul los afijos
de z1 y z2; en color rojo el afijo de z1+ z2; y en verde el afijo de i z1.
(b) Dado z 9, representar el triángulo cuyos vértices son los afijos de las raíces
cúbicas de z. Comprobar que el triángulo es equilátero.
(c) Representar, en una misma figura, el triángulo del apartado (b) y el triángulo gira-
do un ángulo cualquiera.

a) >>z_1=2+3*i;
>>z_2=-3+i;
>>suma=z_1+z_2;giro=i*z_1;
>>plot(z_1, 'ob')
>>text(real(z_1)+0.2,imag(z_1), 'z1') %indicamos las coordenadas donde
ponemos el texto
>>hold on
>>plot(z_2, 'ob')
>>text(real(z_2)+0.2,imag(z_2),'z2')
>>plot(suma, 'or')
>>text(real(suma)+0.2,imag(suma),'z1+z2')
>>plot(giro, 'og')
>>xlabel('real')
>>ylabel('imaginario')
>>puntos=[0 z_1 suma z_2 0];
>>plot(real(puntos), imag(puntos), 'b')
>>vector1=[0 suma];
>>plot(real(vector1),imag(vector1),'r')
>>vector2=[0 giro];
>>plot(real(vector2), imag(vector2), 'g')
>>axis equal -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2

 
Figura 3.5 Representación del polígono cuyos vértices son los afijos 

78

www.full-ebook.com
Operaciones básicas con funciones

b) >> z=-9; % Cálculo de las 3 raíces cúbicas por nuestra cuenta


>>z_0=(abs(z)^(1/3))*exp(i*angle(z)/3);
>>z_1=(abs(z)^(1/3))*exp(i*(angle(z)+2*pi)/3);
>>z_2=z_1*exp(i*2*pi/3);
>>% Representación del triángulo
>>vertices=[z_0 z_1 z_2 z_0];
>>plot(real(vertices),imag(vertices), 'g')

Es interesante comprobar que se ha obtenido un triángulo equilátero, calculan-


do la medida de cada uno de los lados, ejecutar para ello

>>lado1=abs(vertices(1)-vertices(2)),lado2=abs(vertices(2)-vertices(3))
>>lado3=abs(vertices(3)-vertices(1))

c) Representación en la misma figura del triángulo girado

>>hold on
>>anguloGiro=pi/4;
>>verticesGirados=vertices*exp(i*anguloGiro);
>>plot(real(verticesGirados),imag(verticesGirados), 'r')

Figura 3.6 Representación de las raíces cúbicas y del giro efectuado

3.6 Derivadas
Para derivar en Matlab se utiliza el comando
>>diff
el cual trabaja en simbólico. Si no fuera así, Matlab lo que hace es calcular derivación
numérica mediante diferencias finitas, que no es objeto de estudio de este libro. Por

79

www.full-ebook.com
Matlab para Matemáticas en ingenierías

eso, para hallar derivadas de funciones, se definirá previamente como simbólica aque-
lla variable con respecto a la cual se quiere derivar la función.
Si se acude a la ayuda del comando que proporciona Matlab para derivación simbólica,
se encuentra:

diff(S,'v') or diff(S,sym('v')) differentiates S with respect to v.


diff(S,n), for a positive integer n, differentiates S n times.
diff(S,'v',n) and diff(S,n,'v') are also acceptable.
diff(S,'v1','v2',...) or diff(S,sym('v1'),sym('v2'),...) differentiates S with respect to v1, v2, ...

Así, se ve cómo ir obteniendo las derivadas sucesivas, sin más que indicar el orden de
derivación en el segundo o tercer argumento.

3.6.1 Funciones de 1 variable


Cuando sólo se trabaja con una variable, no hace falta indicarla para obtener la deriva-
da.

Ejemplo 3.14 Obtener la primera y segunda derivada de f x x2  1

Para obtener la primera derivada:


>> syms x, diff(sqrt(x^2+1))

ans =
x/(x^2 + 1)^(1/2)
>> pretty(ans) …………………….. (aquí no queda tan bien por el formato en papel)
x
-----------
2 1/2
(x + 1)

Para obtener la derivada de orden 2:


>> diff(sqrt(x^2+1),2)
ans =
1/(x^2 + 1)^(1/2) - x^2/(x^2 + 1)^(3/2)

80

www.full-ebook.com
Operaciones básicas con funciones

>> pretty(ans)
2
1 x
----------- - -----------
2 1/2 2 3/2
(x + 1) (x + 1)

Finalmente, para poner esta operación más simplificada, se pide a Matlab que realice la
suma de fracciones algebraicas:
>> factor(ans)
ans =
1/(x^2 + 1)^(3/2)

3.6.2 Funciones de varias variables


En el caso de varias variables sí que debe especificarse con respecto a qué variable se
deriva, obteniendo con ello las derivadas parciales. Es decir, las derivadas con respecto
a las variables de los ejes. Aunque se desarrollará con más profundidad en el capítulo
de funciones de varias variables, se ilustra aquí un ejemplo.

Ejemplo 3.15 Hallar las derivadas parciales de la función f (x,y)=3x2-y2+6.


డ௙
Hallar
డ௫

>>syms x y, f=3*x^2-y^2-6; diff(f,x)


ans =
6*x
డ௙
Hállese ahora
డ௬

>> f=3*x^2-y^2-6; diff(f,y)


ans =
- 2*y

3.7 Integración
Al igual que para la parte de derivación, en integración se procede a centrarse en el
caso simbólico. El comando existente es:
>>int
Si de nuevo se accede a la ayuda de Matlab para integración simbólica:

81

www.full-ebook.com
Matlab para Matemáticas en ingenierías

int(S,v) is the indefinite integral of S with respect to v. v is a scalar SYM.


int(S,a,b) is the definite integral of S with respect to its symbolic variable from a to b.
a and b are each double or symbolic scalars.
The integration interval can also be specified using a row or a column vector
with two elements, i.e., valid calls are also int(S,[a,b]) or int(S,[a b]) and
int(S,[a;b]).
int(S,v,a,b) is the definite integral of S with respect to v from a to b.
The integration interval can also be specified using a row or a column vector
with two elements, i.e., valid calls are also int(S,v,[a,b]) or int(S,v,[a b]) and
int(S,v,[a;b]).

3.7.1 Integrales impropias


Destacar que en este caso, además de las integrales impropias de primera y segunda
especie y las integrales mixtas, puede ocurrir que se quiera calcular la integral con el
‘Valor principal de Cauchy’.
Para integrales impropias de 1ª especie, el Valor Principal de Cauchy se define como:
ஶ ௧
‫ݒ‬Ǥ ‫݌‬Ǥ න ݂ሺ‫ݔ‬ሻ݀‫ ݔ‬ൌ Ž‹ න ݂ሺ‫ݔ‬ሻ݀‫ ݔ‬
ିஶ ௧՜ஶ ି௧

Y para el caso de una integral impropia de 2ª especie, con problemas en el punto


x=b[a,c], el Valor principal de Cauchy sería
 
௖ ௕ିఌ ௖
‫ݒ‬Ǥ ‫݌‬Ǥ න ݂ሺ‫ݔ‬ሻ݀‫ ݔ‬ൌ Ž‹ න ݂ሺ‫ݔ‬ሻ݀‫ ݔ‬൅ Ž‹ න ݂ሺ‫ݔ‬ሻ݀‫ݔ‬
௔ ఌ՜଴ ௔ ఌ՜଴ ௕ାఌ

Si esto es así, debe indicársele a Matlab dentro del comando >>int, mediante el si-
guiente argumento extra:
>>int(...,'PrincipalValue',VAL)
Los valores que toma la variable VAL son true o false, siendo este último el que se
toma por defecto cuando no se indica nada.

En cualquiera de los otros casos, Matlab calcula directamente las integrales impropias
sin hallar su valor principal.

82

www.full-ebook.com
Operaciones básicas con funciones

2
Ejemplo 3.16 Sea la función f x , calcular las siguientes integrales:
x  1
3 0
2 2 2
³ x  1 dx , ³1 x  1 dx , ³1 x  1 dx 

2
Para calcular la integral indefinida ³ x  1 dx , introducir
>> syms x,int(2/(x+1),x)
ans =
2*log(x + 1)
3
2
Para calcular la integral definida ³ x  1 dx :
1

>> int(2/(x+1),x,1,3)
ans =
log(4)

0
2
Si ahora se pide como uno de los extremos de integración el valor x=-1, ³ x  1 dx se
1

pasa a tener una integral impropia de 2ª especie, ya que la función no está definida en
ese punto. Matlab lo calcula de forma directa, dando una integral impropia divergente:
>> int(2/(x+1),x,-1,0)
ans =
Inf

f
2
Ejemplo 3.17 Hallar la integral impropia de 1ª especie ³ dx .
1
1  x2

De nuevo, Matlab directamente calcula la integral, sea o no impropia. En este caso, la


integral impropia es convergente
>> int(1/(1+x^2),x,1,inf)
ans =
pi/4

83

www.full-ebook.com
Matlab para Matemáticas en ingenierías

3.7.2 Cálculo de áreas


Para calcular áreas, Matlab permite representar el recinto que queda encerrado entre
una curva y el eje OX. Para ello, en las pestañas de PLOTS, se tiene el icono de la barra
de herramientas de area:

Figura 3.7 Imagen de Matlab del icono area

A continuación, se introduce la función de la que se quiere calcular el área, teniendo


cuidado de que al ser representada, no puede definirse de forma simbólica. Al darle al
icono, Matlab pone la orden en la ventana Command Window de forma automática.
Ejemplo 3.18 Calcular el área encerrada entre la curva sinusoidal y=sin(x) y el eje OX
con x[-2ʌ,2ʌ].

Primero se va a hacer una representación gráfica del área solicitada, usando las instruc-
ciones anteriores.
>> x=linspace(0,2*pi,1000); y=sin(x);axis([0 2*pi -1 1])
>> area(y)
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
100 200 300 400 500 600 700 800 900 1000

Figura 3.8 Área encerrada

84

www.full-ebook.com
Operaciones básicas con funciones

Para calcular el área encerrada, debe separarse en dos integrales, ya que el segundo
trozo da una aportación negativa. Para ello, si es necesario, primero calcular los puntos
de corte con los ejes mediante el comando >>solve o con >>fzero ya explicados. En
este caso, como ya son conocidos se calculan de golpe las integrales:

>> syms x, y=sin(x); S=int(y,x,0,pi)+abs(int(y,x,pi,2*pi))

S=

3.8 Ejercicios
1.- Hallar el dominio de las siguientes funciones. Hallar también sus asíntotas:
௫ିଵ ௫ିସ ௫ మ ାସ௫ାଷ ௫ିଵ
a) ݂ሺ‫ݔ‬ሻ ൌ ௫మ ା௫ାଶ, b) ݃ሺ‫ݔ‬ሻ ൌ ୪୬ሺ௫మିହ௫ା଺ሻ, c) ݄ሺ‫ݔ‬ሻ ൌ ට ௫ మ ି௫
, d) ‫ݎ‬ሺ‫ݔ‬ሻ ൌ  ௫మା௫ିଶ

2.- Representar las siguientes gráficas:


௫ మ ିଷ௫ାଶ ‫ ͵ݔ‬െͳ ‫ ͵ݔ‬൅ͳ
a)݂ሺ‫ݔ‬ሻ ൌ
௫ାଵ
, b) ݃ሺ‫ݔ‬ሻ ൌ ‫ʹݔ‬൅ʹ‫ݔ‬െ͵, c) ݄ሺ‫ݔ‬ሻ ൌ  ‫ʹݔ‬൅ʹ‫ݔ‬െ͵, d) j(x)=log2(x-2),

‫ ʹݔ‬െͷ‫ݔ‬൅Ͷ ‫ ʹݔ‬െͷ‫ݔ‬൅Ͷ ‫ݔ‬െͳ


e) ‫݌‬ሺ‫ݔ‬ሻ ൌ ට‫ʹݔ‬െͶ‫ݔ‬൅ʹ, f) ‫ݍ‬ሺ‫ݔ‬ሻ ൌ ට‫ʹݔ‬െʹ‫ݔ‬൅ͳ, h) ‫ݎ‬ሺ‫ݔ‬ሻ ൌ ݈݊ ቀ‫ݔ‬െʹቁ

3.- a) En cada apartado del ejercicio anterior, calcular todas las asíntotas de las funcio-
nes y dibujarlas en las gráficas ya obtenidas.
b) Observando las gráficas anteriores, indicar el dominio de cada apartado. Después
calcularlo también analíticamente.
c) Observando las gráficas nuevamente y sin necesidad de calcularlos, indicar los
límites en los infinitos y en los puntos siguientes -según el apartado que se indica-: x=-
1 a); x=1,-3 b); x=-1,3 c); x=2 d),; x=2 e); x=1 f) y finalmente, para el apartado g) en
x=1, 2.

4.- Indicar la expresión para representar las siguientes funciones, introdúcelas y repre-
séntalas gráficamente:

85

www.full-ebook.com
Matlab para Matemáticas en ingenierías

­ 4x  2
° x 1 si x  0
1 ° 2
°­ 4e x  2 si x  1 ° x 2
a) f ( x ) ® b) f ( x ) ® 2 si 0 d x  3
°̄ 4  sin( 2 x ) si  1 d x d 20 °x  x6
°tag x si x ! 3
°
¯
5.- Realizar con Matlab las siguientes operaciones algebraicas. Simplificar siempre que
sea necesario. Obtener factorizados los resultados y, cuando se pueda, hallar el va-
lor numérico:

x 3  3x  2
a) 2 , b) 2 
S
3  S4

21
ǡ c)
sen( 2 x )
, d)

e ln e5  4 ( e  1 )
x  4x  3  S
6  S
2 12 tg( x )( 1  sen 2 x ) e4  e
ሺଵି௫ሻሺ௫ାଶሻ ଵ
Soluciones: a) , b)0, c)2, d)
ሺ௫ିଷሻ ௘ మ ା௘ାଵ

6.- Dada la función y=sen(x). Evaluar dicha función para x=ʌ, ʌ/2, 0, ʌ/4, -ʌ/3.
7.- Calcular los siguientes límites:

§ 1 2x · § 3x 2  2 x  16 ·
a) lim ¨  2 ¸ b) lim ¨ ¸
© x2 x 4¹
2
xo2 x o2
© x  x 2 ¹
§ x 3  3x  2 · x
c) lim ¨ 3 ¸ d) lim
x o1
© x  x 2 ¹ x o0 1  1  x

1
§ x 2  3 x  2 · x2  4 2 x  sen( x )
e) lim ¨ ¸ f) lim
xo2
© x2 ¹ xo0 x  sen( x )
x 2 sin 1x
g) lim x
xof
2x  4  2x  2 h) lim
x o0 sin x
x 1
§ x2  3 · ln( 1  x )  sin x
i) lim ¨ ¸
j) lim
x of ¨© x 2  2 ¸¹ xo0 x sin x
1
­ xe  2 x

°° ,x  0
m) lim f x siendo f x 2x 1
® 2
x o0 ° x  x  2 ,x t 0
°¯ x  1

8.- Resolver las ecuaciones:


a) x 6-1 =0 b) tag x  2 1 c) sen x = -1/2 x[0,2S]

86

www.full-ebook.com
Operaciones básicas con funciones

9.- Hallar el conjunto de valores de xԹ para los que se verifican las siguientes de-
sigualdades
1 3 1 x x3 x 2 x  1
a)  t5 b) x 2  1  c) ! d) !0
x 2x 2 x  2 3x  1 5 x
x 1
d) 1 e) | x+2| < | x-5| f ) -3d x-5 d 2 g) x2 -2x -3 >0
x2
10.- Resolver la ecuación ez=z0, para los valores de z0=-2,1+ξ͵ y 1.

11.- Calcular las siguientes raíces complejas y representarlas:


ల ర
a) ξʹ݅, b)ඥͳ െ ξ͵‹ , c) ξͺ, d) ξെͳ͸

12.- Dados los números z1=2-i, z2= 4S, z3= 3 cos S4  i sin S4 , realizar las operaciones
que se indican a continuación expresando el resultado en forma binómica.
(i) z1z2 (ii) z3 + z2 (iii) z2 (iv) z34 (v) 3 z3

­e x  x si x  0
°
13.- Dada la función f x 2
®§ bx  x · . Obtener b para que la
°¨ x ¸  2 si 0 d x  10
¯© ¹
función sea continua en x=0.

14.- Estudiar qué valor (o valores) debe tomar el parámetro a para que la siguiente
función sea continua en su dominio de definición
­° senx  a cos x si x  0
f x ® 2
°̄ 2 x  a  2 si x t 0

15.- Calcular las derivadas obteniendo la expresión más simplificada posible

e x 1 x 1
a) f x
x3
b) f x Ln
x 1
c) f x x 2

 5 x  6 Ln x  3

x 1
16.- Sea f x x . Analizar:
x 1
a) Dominio y asíntotas.
b) Representar en la misma gráfica la función y las asíntotas.

17.- Hallar los extremos relativos de f(x)=݁ ௫ିଵ ሺ‫ ݔ‬െ ͳሻଷ Ǥ

87

www.full-ebook.com
Matlab para Matemáticas en ingenierías

18.- Para las siguientes funciones indicar: intervalos de crecimiento, decrecimiento,


concavidad o convexidad y obtener, en caso de existir, máximos, mínimos y los
puntos de inflexión.
a) f(x)= x3 – 3x2 – 3x + 4
b) f(x) = x4– 6x3 +11x2–6x
c) f(x) = x3 – 6x2 + 5x + 6

19.- Hallar las derivadas de las siguientes funciones

e x 1 x 1
a) f x
x3
b) f x Ln
x 1
c) f x x 2

 5x  6 Ln x  3

20.- Calcular las siguientes integrales:


2 1
a) ³ x arctg( x ) dx b) ³ 4 x  x 2 dx c) ³ 1  sen( x ) cos( x ) dx

e
2 x2  1 3
d) ³ cos ( 3x )dx e) ³ arctg( 2x )dx f) ³ dx g) ³ x 1  Lnx dx
x2  1 1

21.- Hallar el área de la figura que queda entre las curvas y=-x+1, y=ln(x+2),

y=݁ ൗସ െ ʹ, cuando x൒ Ͳ. Representar la figura y sombrear el área pedida.

22.- Sea f(x) =(x-1) e-x. Calcular el área de la región limitada por la curva f(x) y el eje
OX en el intervalo [1, e].

23.- Calcular el área encerrada entre las gráficas de las funciones f(x)=x2+4 ,
g(x)= -x2+6.

­ x 1 3
° ,x d 1
24.- Dada la función f x ®1  x
2
. Calcular ³ f x dx .
° x arctg x ,x ! 1 0
¯

x 1
25.- Dada la curva la curva y , calcular el valor del parámetro b (con b>3) de
x2  4
manera que en la región limitada por la gráfica de la curva, el eje de abscisas y
3
las recta x=3, x=b, el área sea Ln 4 b  2 .

88

www.full-ebook.com
Capítulo 4
4

Funciones de varias variables.


Ecuaciones diferenciales

4.1 Derivación de funciones de varias variables


El comando para hallar las derivadas parciales sigue siendo >>diff, pero aquí sí que
debe ser especificado con respecto a qué variable se deriva, obteniendo así las deriva-
das parciales. Es decir, las derivadas con respecto a las variables de los ejes. Destacar
que se deben definir todas las variables como simbólicas.
Ejemplo 4.1 Hallar las derivadas parciales de la función f (x,y)=x2+y2-1. Dibujarla.

wf
Para hallar
wx
>>syms x y, f=x^2+y^2-1; diff(f,x)
ans =
2*x
wf
Ahora se calcula
wy
>> f=x^2+y^2-1; diff(f,y)
ans =
2*y
Para representarla: >>ezplot(x^2+y^2-1, [-2 2])), o bien >>ezplot(f,[-2 2])

89

www.full-ebook.com
Matlab para Matemáticas en ingenierías

x2 + y2 - 1
2

1.5

0.5

0
y

-0.5

-1

-1.5

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

Para calcular derivadas parciales sucesivas, hay que indicar como argumentos las va-
riables con respecto a las cuales se quiere ir derivando y esto ya dice el orden de deri-
vación.
>>diff(f,var1,var2,...)

Ejemplo 4.2 Hallar las primeras y segundas derivadas parciales de f(x,y)=x2y2+xy-3x+2y.

>>syms x y, f=x^2*y^2+x*y-3*x+2*y;
>> diff(f,x)
ans =
2*x*y^2 + y – 3
డ௙
Se obtiene, ሺ‫ݔ‬ǡ ‫ݕ‬ሻ=2xy2+y-3
డ௫

>> diff(f,y)
ans =
2*y*x^2 + x + 2
డ௙
Se obtiene, ሺ‫ݔ‬ǡ ‫ݕ‬ሻ=2yx2+x-2
డ௬

>> diff(f,y,x)
ans =
4*x*y + 1
డమ ௙
Se obtiene, (x,y)=4xy+1
డ௫డ௬

>> diff(f,y,y)
ans =
2*x^2

90

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

డమ ௙
Se obtiene, (x,y)=2x2
డ௬ మ

>> diff(f,x,y)
ans =
4*x*y + 1
డమ ௙
Se obtiene, (x,y)=4xy+1. Con lo que se observa que se verifica el Teorema de Sch-
డ௬డ௫
wartz, coincidiendo las derivadas cruzadas por tener una función continua con deriva-
das parciales continuas.
>> diff(f,x,x)
ans =
2*y^2
డమ ௙
Y finalmente se obtiene, (x,y)=2x2.
డ௫ మ

En las siguientes subsecciones se van a ver los comandos que Matlab posee para calcu-
lar directamente el Jacobiano, vector gradiante y Hessiano, donde el cálculo de las
derivadas de órdenes superiores lo hará de forma directa.

4.2 Vector gradiente


Dada una función de varias variables, por ejemplo f(x,y,z), se puede hallar directamente
con Matlab su vector gradiente. Para calcular este vector, formado por las primeras
derivadas de la función con respecto a cada una de las variables, sería
>> G = gradient(f,v)
El cual devuelve en G el vector gradiente de la función f, derivando con respecto a
cada una de las variables indicadas en el vector v.
G
Ejemplo 4.3 Sea la función f(x,y,z)= xy + 2zx. Hallar su vector gradiente, ’f 

>> syms x y z; gradient(x*y + 2*z*x, [x, y, z])


ans=
[y + 2*z; x; 2*x]

4.3 Matriz Jacobiana y Jacobiano


La matriz Jacobiana es la matriz formada por las primeras derivadas parciales de la
función. El Jacobiano es el determinante de la matriz Jacobiana.

91

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Si se desea hallar el Jacobiano del cambio de coordenadas cartesianas a polares, y de la


transformación de cartesianas a cilíndricas de forma analítica, sería respectivamente:
డ௫ డ௬ డ௭
డ௫ డ௬
డ௥ డ௥ డ௥
డ௥ డ௥
J(r,ș)=ቮడ௫ డ௬
ቮ=r, J(r,ș)=ተడ௫ డ௬ డ௭ ተ =r
డఏ డఏ డఏ
డఏ డఏ
Ͳ Ͳ ͳ
డ௫ డ௬ డ௭
డ஡ డ஡ డ஡
ተ డ௫ డ௬ డ௭ ተ
Para pasar de coordenadas cartesianas a esféricas: J(ȡ,T,M)= =ɏଶ sen(ɔሻ
ተ డఏ డఏ డఏ ተ
డ௫ డ௬ డ௭
డ஦ డ஦ డ஦

El comando en Matlab para calcular el Jacobiano es >>jacobian


>> jacobian(f,v) computes the Jacobian of the scalar or vector f with respect to the vector
v.
The (i,j)-th entry of the result is df(i)/dv(j).
Note that when f is scalar, the Jacobian of f is the gradient of f. Also, note that
scalar v is allowed, although this is just DIFF(f,v).
Example:
syms x y z u v; jacobian([x*y*z; y; x+z],[x y z])
returns [y*z, x*z, x*y; 0, 1, 0; 1, 0, 1]
jacobian(u*exp(v),[u;v])
returns [exp(v), u*exp(v)]
Puede comprobarse con este comando, que los Jacobianos de los cambios de coordena-
das cartesianas a polares, a cilíndricas y finalmente a esféricas salen los expuestos arri-
ba.

4.4 Matriz Hessiana y Hessiano


La matriz Hessiana está formada por las derivadas de orden 2 de la función z=f (x,y).
La matriz Hessiana, ࣢ሺ‫ݔ‬ǡ ‫ݕ‬ሻǡ viene definida por:
߲ଶ݂ ߲ଶ݂
‫ ݔ߲ ۇ‬ଶ ߲‫ۊݕ߲ݔ‬
࣢ൌ‫ ۈ‬ଶ
߲ ݂ ߲ଶ݂ ‫ۋ‬
‫ݔ߲ݕ߲ۉ‬ ߲‫ ݕ‬ଶ ‫ی‬

92

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

Y en general, si se trabaja con una función de n-variables (x1,x2, …,xn), su definición


sería:
߲ଶ݂ ߲ଶ݂ ߲ଶ݂

ǥ
‫ݔ߲ ۇ‬ଵ ߲‫ݔ‬ଵ ߲‫ݔ‬ଶ ߲‫ݔ‬ଵ ߲‫ݔ‬௡ ‫ۊ‬
࣢ൌ‫ڭ ۈ‬ ‫ڭ‬ ǥ ‫ۋ ڭ‬
߲ଶ݂ ߲ଶ݂ ߲ଶ݂
ǥ
‫ݔ߲ۉ‬௡ ߲‫ݔ‬ଵ ߲‫ݔ‬௡ ߲‫ݔ‬ଶ ߲‫ݔ‬௡ ଶ ‫ی‬
Además, como se ha citado anteriormente, para funciones continuas con derivadas
parciales continuas se verifica el Teorema de Schwartz. Este tipo de funciones son las
que van a manejarse, por lo tanto siempre se cumple:
߲ଶ݂ ߲ଶ݂

߲‫ݕ߲ݔ߲ ݔ߲ݕ‬
Esta propiedad da lugar a que la matriz Hessiana sea una matriz simétrica, es decir,
࣢ ൌ ࣢ ்.
Aunque en este libro se trabaja con funciones de dos variables, este comando es válido
para cualquier número de variables, siempre que estas sean indicadas como segundo
argumento del comando >>hessian:
>> help hessian
--- help for sym/hessian ---
hessian Hessian matrix.
hessian(f,x) computes the Hessian of the scalar f with respect
to the vector x. The (i,j)-th entry of the resulting matrix is
(d^2f/(dx(i)dx(j)). Note that scalar x is allowed although this
is just DIFF(f,x,2).
Example:
syms x y z; hessian(x*y + 2*z*x, [x, y, z])
returns [0, 1, 2; 1, 0, 0; 2, 0, 0]

Ejemplo 4.4 Calcular la matriz hessiana y el hessiano de la función f (x,y)= 2x2+y2+8x-


6y+20.

>> syms x y,hessian(2*x^2+y^2+8*x-6*y+20,[x,y])


ans =
[ 4, 0]
[ 0, 2]

93

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Ͷ Ͳ
Por lo tanto, ࣢ ൌ ቀ ቁ. Y para calcular su determinante, es decir, el hessiano:
Ͳ ʹ
>> det(ans)
ans =
8
Con lo que ȁ࣢ȁ ൌ ͺǤ
En este ejercicio, ha salido que el hessiano de esta función es siempre un valor cons-
tante y no depende, por tanto, del punto donde es evaluado. Pero esto no es siempre así,
y la matriz hessiana puede depender de variables: ࣢ ൌ ࣢ሺ‫ݔ‬ǡ ‫ݕ‬ሻ. En ese caso, primero
se calculará el hessiano en general y luego ya se evaluará en el punto que interese.
Ejemplo 4.5 Calcular el hessiano en el punto (0,1) de la función f(x,y)= x2+y2sin(xy).

Primero se halla la matriz hessiana:


>>syms x y, A=hessian(x^2+y^2*sin(x*y),[x,y])
A=
[ 2 - y^4*sin(x*y), 3*y^2*cos(x*y) - x*y^3*sin(x*y)]
[ 3*y^2*cos(x*y) - x*y^3*sin(x*y), 2*sin(x*y) + 4*x*y*cos(x*y) - x^2*y^2*sin(x*y)]

Es decir,
ʹ െ  ‫ ݕ‬ସ ‫݊݅ݏ‬ሺ‫ݕݔ‬ሻ ͵‫ ݕ‬ଶ ܿ‫ݏ݋‬ሺ‫ݕݔ‬ሻ  െ ‫ ݕݔ‬ଷ ‫݊݅ݏ‬ሺ‫ݕݔ‬ሻ
࣢ൌ൬ ଶ ൰.
͵‫ݏ݋ܿ ݕ‬ሺ‫ݕݔ‬ሻ  െ ‫ ݕݔ‬ଷ ‫݊݅ݏ‬ሺ‫ݕݔ‬ሻ ʹ‫݊݅ݏ‬ሺ‫ݕݔ‬ሻ  ൅ Ͷ‫ݏ݋ܿݕݔ‬ሺ‫ݕݔ‬ሻ  െ  ‫ ݔ‬ଶ ‫ ݕ‬ଶ ‫݊݅ݏ‬ሺ‫ݕݔ‬ሻ

Para calcular el hessiano con Matlab:


a) Sustituir el punto en la matriz hessiana y luego calcular el determinante. Para
sustituir en una variable simbólica dos variables, como es en este caso, indicar
las variables viejas y las nuevas:

>> subs(A,{x,y},{0,1})
ans =
[ 2, 3]
[ 3, 0]
>> det(ans)
ans =
-9
b) O bien calcular primero el determinante y sustituir ahí el punto:

>> det(A)

94

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

ans =
4*sin(x*y) - 9*y^4*cos(x*y)^2 - 2*y^4*sin(x*y)^2 + 8*x*y*cos(x*y) -
2*x^2*y^2*sin(x*y) + 2*x*y^5*cos(x*y)*sin(x*y)
>> subs(ans,{x,y},{0,1})
ans =
-9

Nota: en el caso de poseer muchos puntos a evaluar, se explica una forma rápida
de evaluar en el siguiente ejemplo.

4.5 Puntos críticos de funciones de varias variables


Para hallar los puntos críticos (máximos y mínimos relativos y puntos silla o puntos de
inflexión), debe cumplirse la condición de:
ሬሬሬሬԦ ሬԦ
‫ ݂׏‬ሺ‫ݔ‬ǡ ‫ݕ‬ሻ ൌ Ͳ
Esto es equivalente a resolver el sistema formado por las derivadas parciales:
߲݂
ሺ‫ݔ‬ǡ ‫ݕ‬ሻ ൌ Ͳۗ
߲‫ݔ‬
߲݂
ሺ‫ݔ‬ǡ ‫ݕ‬ሻ ൌ Ͳۘ
߲‫ݕ‬ ۙ
Los puntos (a,b) que son solución del sistema (no necesariamente lineal y resoluble
mediante el comando >>solve) serán los puntos críticos. Para clasificarlos, hay que
tener en cuenta el siguiente criterio:
ȁ࣢ȁሺܽǡ ܾሻ ൏ Ͳ ֜ ሺܽǡ ܾሻ݁‫݈݈ܽ݅ݏ݋ݐ݊ݑ݌݊ݑݏ‬
‫ۓ‬
ۖ ߲ଶ݂
ۖ ‫ۓ‬ ൐ Ͳ ֜ ሺܽǡ ܾሻ݁‫݋ݒ݅ݐ݈ܽ݁ݎ݋݉݅ݔž݉ݏ‬
ȁ࣢ȁሺܽǡ ܾሻ ൐ Ͳ ֜ ߲‫ ݔ‬ଶ
ሬሬሬሬԦ ሺܽǡ ܾሻ ൌ Ͳ
‫݂׏‬ ሬԦ‫ݕ‬ ଶ
‫݂ ߲۔‬
‫۔‬ ሺܽǡ ܾሻ݁‫݋ݒ݅ݐ݈ܽ݁ݎ݋݉݅ݔž݉ݏ‬
‫ ݔ߲ە‬ଶ ൏ Ͳ ֜
ۖ
ۖ ȁ࣢ȁሺܽǡ ܾሻ ൌ Ͳ ֜ ܱܰ‫ܫܥܣܯܴܱܨܰܫܻܣܪ‬Vܰ
‫ە‬ 

Ejemplo 4.6 Hallar y clasificar los puntos críticos de f(x,y)=xy(1-x2-y2).

Primero, se calcula el vector gradiente, pero se va a pedir a Matlab que lo devuelva en


su expresión más simplificada:
>> syms x y,simplify(gradient(x*y*(1-x^2-y^2),[x,y]))
ans =
-y*(3*x^2 + y^2 - 1)
-x*(x^2 + 3*y^2 - 1)

95

www.full-ebook.com
Matlab para Matemáticas en ingenierías

ሬሬሬሬԦ ሺ‫ݔ‬ǡ ‫ݕ‬ሻ ൌ Ͳ


Al resolver ‫݂׏‬ ሬԦ, mediante el comando solve, es conveniente pedir argumentos
de salida, para que así se obtengan las dos coordenadas de las soluciones, ya guardadas
en sus respectivas variables:
>> [S1,S2]=solve(-y*(3*x^2 + y^2 - 1),-x*(x^2 + 3*y^2 - 1))
S1 =
0
1
0
-1
0
1/2
-1/2
1/2
-1/2
S2 =
0
0
1
0
-1
1/2
1/2
-1/2
-1/2
Es decir, se encuentran 9 posibles puntos, donde en S1 se han colocado las opciones de
la variable x mientras que en S2 están las de la variable y. Los puntos críticos a clasifi-
car son: (0,0),(1,0),(0,1),(-1,0),(0,-1),(1/2,1/2),(-1/2,1/2),(1/2,-1/2) y (-1/2,-1/2). Para
clasificarlos, se calcula el hessiano y se evalúa en estos puntos:
>> HESI=det(hessian(x*y*(1-x^2-y^2),[x,y]))
HESI =
- 9*x^4 + 18*x^2*y^2 + 6*x^2 - 9*y^4 + 6*y^2 – 1

96

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

>> p1=subs(HESI,{x,y},{0,0})
p1 =
-1
Por lo tanto, como al sustituir el punto (0,0) el hessiano es menor que 0, esto asegura
que:
x (0,0) es un PUNTO SILLA

Puede ir haciéndose así, uno por uno, o construir una sentencia donde los vaya eva-
luando todos, indicando el vector formado por los valores de la variable x y el vector de
las coordenadas de la variable y:
>> determinanteevaluado=subs(HESI, {x,y},{[0,1,0,-1,0,1/2,-1/2,1/2,-1/2],[0,0,1,0,-
1,1/2,1/2,-1/2,-1/2]})
O mejor y más abreviado, ya que los vectores de ambas variables son S1 y S2:
>> determinanteevaluado=subs(HESI, {x,y},{S1,S2})
Obteniendo, en ambos casos, como salida:
determinanteevaluado =
[-1, -4, -4, -4, -4, 2, 2, 2, 2]
Ahora ya pueden clasificarse todos los puntos, observando que:
x PUNTOS SILLA: (0,0),(1,0),(0,1),(-1,0),(0,-1)

Los demás puntos son máximos o mínimos relativos, al tener hessiano positivo. Para
డమ ௙
saber si son máximos o mínimos, hay que estudiar el signo de ሺܽǡ ܾሻǤ
డ௫ మ

>> matriz=hessian(x*y*(1-x^2-y^2),[x,y]);
>>deri2x=[subs(matriz(1,1),{x,y},{1/2,1/2}),subs(matriz(1,1),{x,y},{-
1/2,1/2}),subs(matriz(1,1),{x,y},{1/2,-1/2}),subs(matriz(1,1),{x,y},{-1/2,-1/2})]
deri2x =
[-3/2 , 3/2, 3/2, -3/2]
Esta instrucción puede hacerse con un solo >>subs, como anteriormente, optimizando
el lenguaje de comandos:
>> deri2x=subs(matriz(1,1),{x,y},{[1/2,-1/2,1/2,-1/2],[1/2,1/2,-1/2,-1/2]})
deri2x =
[ -3/2, 3/2, 3/2, -3/2]

97

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Así:
x Máximos relativos: (1/2,1/2), (-1/2,-1/2)
x Mínimos relativos: (-1/2,1/2), (1/2,-1/2)
Formato tabla: Para una mejor visualización, ilustramos lo obtenido mediante una ta-
bla. Para ello, se va a usar el comando >>table que trabaja con datos numéricos. Así
que lo primero es convertir los datos que son simbólicos (por haber sido obtenidos
mediante el comando >>subs) en numéricos:
>> componentes=double([S1,S2])
componentes =
0 0
1.0000 0
0 1.0000
-1.0000 0
0 -1.0000
0.5000 0.5000
-0.5000 0.5000
0.5000 -0.5000
-0.5000 -0.5000
>> determinante=double(determinanteevaluado)
determinante =
-1
-4
-4
-4
-4
2
2
2
2
>> segundaderivadax=double(deri2x)
segundaderivadax =
0
0
0
0
0
-1.5000
1.5000
1.5000
-1.5000

98

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

>> Analisis=table(componentes,determinante,segundaderivadax)
Analisis =
componentes determinante segundaderivadax
_______________ ____________ _______________
0 0 -1 0
1 0 -4 0
0 1 -4 0
-1 0 -4 0
0 -1 -4 0
0.5 0.5 2 -1.5
-0.5 0.5 2 1.5
0.5 -0.5 2 1.5
-0.5 -0.5 2 -1.5

Evidentemente de la columna de segundaderivadax sólo interesan los datos corres-


pondientes a los puntos con determinante positivo para discernir si son mínimos o
máximos. Y ya, desde la tabla, se puede clasificar:
x Puntos silla: (0,0),(1,0),(0,1),(-1,0),(0,-1)
x Máximos relativos: (1/2,1/2), (-1/2,-1/2)
x Mínimos relativos: (-1/2,1/2), (1/2,-1/2)

4.6 Integración de funciones de varias variables


Siempre que se pueda aplicar el Teorema de Fubini, el cálculo de integrales múltiples
consistirá en realizar las integrales de forma iterada, indicando en cada caso la variable
respecto a la cual estamos integrando. De nuevo el comando a emplear es >>int.
Se describen varios ejemplos para ilustrar este apartado.
1 1
y2
Ejemplo 4.7 Calcular la siguiente integral ³³e dy dx . Representar el dominio de
0 x

integración.

Analíticamente, como la función ݁ ௬ no tiene primitiva con respecto a la variable y, no
se podría hallar esta integral. Sin embargo, esto no resulta ser un problema para
Matlab, que cambiando el orden de integración por su cuenta, calcula la integral:
>> syms x y, int(int(exp(y^2),y,x,1),x,0,1)
ans =
exp(1)/2 - ½

99

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Para representar el dominio de integración, al ser un triángulo de vértices (0,0), (0,1) y


(1,1), bastará con:
>> x=[0,1,0];y=[0,1,1]; % Vértices del triángulo
>> fill(x,y,'b'),xlabel('x fijo', 'Fontsize',11),text(0.6,0.5,'y=x'), title('Dominio de inte-
gración'), axis square
Dominio de integración
1

0.9

0.8

0.7

0.6

0.5 y=x

0.4

0.3

0.2

0.1

0
0 0.2 0.4 0.6 0.8 1
x fijo

Figura 4.1 Relleno de figuras y dominio de integración

³³ x
2
Ejemplo 4.8 Hallar la integral  y 2  1 dA , donde D es el disco limitado por la
D

circunferencia x2+y2 =4.

Para ello, se realiza un cambio a polares tanto de la función como del recinto. No olvi-
dar añadir el Jacobiano de la transformación a la hora de integrar. La función quedaría:
>>syms x y r theta, f=inline('x^2+y^2+1')
f=
Inline function:
f(x,y) = x^2+y^2+1
>> F=simplify(f(r*sin(theta),r*cos(theta)))
F=
r^2 + 1
Y para cambiar a polares el recinto:
>> g=x^2+y^2-4;D1=simplify(subs(g,{x,y},{r*cos(theta),r*sin(theta)}))
D1 =
r^2 – 4

100

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

Si se calcula la integral en el recinto, las variables toman valores entre rࣅ[0,2] y


șࣅ[0,2ʌ]. Es decir:
ଶ ଶగ
ඵ ሺ‫ ݔ‬ଶ ൅ ‫ ݕ‬ଶ ൅ ͳሻ݀‫ ܣ‬ൌ න න ‫ݎ‬ሺ‫ ݎ‬ଶ ൅ ͳሻ݀ߠ݀‫ݎ‬
஽ ଴ ଴

Por ello con Matlab:


>> int(int(r*F,r,0,2),theta,0,2*pi)
ans =
12*pi

Ejemplo 4.9 Hallar el volumen del sólido situado en el primer cuadrante y compren-
dido entre el plano OX, el plano z=y y el cilindro x2+y2=1.

1º.- Antes que nada, es conveniente representar el sólido y el dominio de integración,


parte importante de este tipo de ejercicios para conocer así dónde se mueven las varia-
bles. Se pueden rotar las figuras desde la propia ventana gráfica con el icono adecuado
(segunda figura). Además, si se rotan puede verse la figura desde arriba y así observar
qué curva queda como intersección de ambas superficies.
Se va a utilizar el comando >>cylinder para la representación
>> syms y, cylinder(1,100),hold on,
ezsurf(y,[-3,3])

Figura 4.2 Cilindro y plano desde dos puntos de vista

También puede dibujarse el cilindro en paramétricas, tomando, por ejemplo, altura 3.


El cilindro tiene de ecuación r=1 y considérese altura 3 para representarlo. Usando el
comando >>plot3 o el comando >>mesh, quedaría respectivamente:

101

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>>t=[0:0.1:2*pi]';u=[0:.1:3];x=cos(t)*ones(size(u));y=sin(t)*ones(size(u));z=ones(size(t)
)*u; plot3(x,y,z),hold on
>>t=[0:0.1:2*pi]';u=[0:.1:3];x=cos(t)*ones(size(u));y=sin(t)*ones(size(u));z=ones(size(t)
)*u; mesh(x,y,z),hold on

3 3

2.5 2.5

2 2

1.5 1.5

1 1

0.5 0.5

0 0
1 1
0.5 1 0.5 1
0 0.5 0 0.5
0 0
-0.5 -0.5 -0.5 -0.5
-1 -1 -1 -1

Figura 4.3 Representación usando >>plot Figura 4.4 Representación usando >>mesh

Se dibujará el plano en la segunda gráfica, por tener una malla más clara (rotando la
figura para obtener una mejor visión):
>>[x,y]=meshgrid(0:.1:2);z=y;mesh(x,y,z),box on,xlabel('Eje X'),ylabel('Eje Y'),zlabel('Eje
Z')

2.5

2
Eje Z

1.5

0.5

-1
0 0
-1 -0.5 1
0 0.5 1 1.5 2 2
Eje X
Eje Y

2º.- Obtener el dominio de integración


Claramente la función a integrar es z=y que es la tapa del sólido.
En este ejemplo hay que restringirse al primer cuadrante. Primeramente, se calculará la
proyección sobre el plano XY. Todo esto puede hacerse con Matlab, siempre que se
tenga en cuenta que, al estar dentro del cilindro x2+y2=1 y en el primer cuadrante, hay
que despejar y quedarse con el caso y=ξͳ െ ‫ ݔ‬ଶ , con xࣅ[0,1]. Quedando el dominio de
integración:

102

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

>> x=[0:.1:1];y=sqrt(1-x.^2);area(x,y),legend('Dominio de integración'),axis square


Desde la ventana gráfica, se puede manipular la figura para insertar cuadro de texto:
1
Dominio de integración
0.9

0.8 y=sqrt(1-x 2)

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.2 0.4 0.6 0.8 1

Figura 4.5 Dominio de integración

3º.- Calcular la integral que halla el volumen; es decir:‫׭‬஽ ‫ܣ݀ݕ‬


ଵ ξଵି௫ మ
Aplicando Fubini se realiza la integral iterada ‫׬‬଴ ‫׬‬଴ ‫ ݔ݀ݕ݀ݕ‬:
>> syms x y, V=int(int(y,y,0,sqrt(1-x^2)),x,0,1)
V=
1/3 (u3 o u.d.v.)

4.7 Ecuaciones diferenciales


El comando que resuelve ecuaciones diferenciales es: >>dsolve

Nota: En el caso de que Matlab no encuentre una solución analítica explícita, el


paquete proporciona una solución implícita, dando un mensaje de aviso.
Al igual que ocurre con el comando >>solve, el comando >>dsolve también trabaja
con argumentos simbólicos.
Por defecto toma como variable t, pero la variable puede ser cambiada especificándola
>> syms y(t), dsolve(diff(y)==t)
ans =
t^2/2 + C2
Pueden pedirse condiciones iniciales, teniendo así un P.V.I. (Problema del Valor Ini-
cial):

103

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>> syms y(t),dsolve(diff(y)==t, y(0)==1)


ans =
t^2/2 + 1
Si se desea resolver ecuaciones diferenciales donde los coeficientes sean parámetros,
deben declararse dichos parámetros como simbólicos; y en la llamada al comando in-
troducir, como argumento, la nueva variable independiente (por ejemplo, si ahora la
variable fuera x):
>> syms a y(t), y=dsolve(diff(y)==a*y,y(0)==1,'x')
y=
exp(a*x)

Ejemplo 4.10 Resolver la siguiente ecuación diferencial: yc (x2+1)ey - (2x2+1) (1+e y ) =0.

Como, en este caso, la variable independiente es x, puede ejecutarse de dos formas. O


bien:
>> syms y(t), dsolve(diff(y)==(2*x^2+1)*(1+exp(y))/((x^2+1)*exp(y)),'x')
ans =
log(exp(C5 + 2*x - atan(x)) - 1)
pi*i
O bien, indicando desde el principio que y=y(x) con:
>> syms y(x), dsolve(diff(y)==(2*x^2+1)*(1+exp(y))/((x^2+1)*exp(y)))
ans =
log(exp(C5 + 2*x - atan(x)) - 1)
pi*i

Nota: De forma similar al comando >>solve, puede ocurrir que, al resolver una
EDO, se obtenga una sola solución, aun sabiendo que existen más. En ese caso
se introducirá un argumento adicional, 'IgnoreAnalyticConstraints', indicando
como argumento último: false

Ejemplo 4.11 Resuelve la ecuación diferencial yc t y t .

Evidentemente, esta ecuación puede ser vista como y’(t)=y2(t). Y resolverla mediante
ௗ௬ ିଵ
variables separadas de la forma మ ൌ ݀‫ݐ‬. Por lo tanto, la solución sería ൌ ‫ ݐ‬൅ ‫ܥ‬.
௬ ௬
ିଵ
Despejando la función y(t), para dar la solución de forma explícita, se tendrá: y(t)= .
௧ା஼

104

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

Si se resuelve directamente con Matlab, sale un solo resultado, lo que indica que la
solución no es correcta del todo pues una EDO sin condiciones iniciales tendrá infinitas
soluciones. De hecho, la solución encontrada es la trivial,:
>> syms y(t),dsolve(sqrt(diff(y))==y)
ans =
0
Por ello se exigirá:
>> syms y(t),dsolve(sqrt(diff(y))==y,'IgnoreAnalyticConstraints', false)
Warning: The solutions are subject to the following conditions:
(C13 + t)*(1/(C13 + t)^2)^(1/2) = -1
> In dsolve at 219
ans =
-1/(C13 + t)

4.7.1 Sistemas de EDO’s


Este comando también resuelve sistemas de EDO’s sin más que indicarle las ecuacio-
nes a resolver. Eso sí, en últimas versiones de Matlab, se le debe introducir como ar-
gumentos de salida tantas funciones solución como se busquen, para obtenerlas todas:
­° f c t  2 f t f
Ejemplo 4.12 Resolver el sistema siguiente ®
°̄ g c t t  y

Si se escribe directamente la orden, que funcionaba en anteriores versiones:


>> syms f(t) g(t), S=dsolve(diff(f)-2*f==t*f,diff(g)==t+g)
S=
g: [1x1 sym]
f: [1x1 sym]
Y no devuelve, en verdad, las soluciones buscadas. Por ello, se pedirá en el argumento
de salida dos funciones:
>> syms f(t) g(t), [Sf,Sg]=dsolve(diff(f)-2*f==t*f,diff(g)==t+g)
Sf =
C4*exp((t*(t + 4))/2)
Sg =
exp(t)*(C5 - exp(-t)*(t + 1))

105

www.full-ebook.com
Matlab para Matemáticas en ingenierías

4.7.2 Métodos numéricos para la resolución de EDO’s


En muchas ocasiones no es posible resolver, de forma analítica, una ecuación diferen-
cial, y es por ello que hay que recurrir al uso de métodos numéricos.
Matlab también tiene implementados métodos numéricos para resolver ecuaciones
diferenciales. Para ver más información sobre ellos basta ir, con >>helpwin, a la sec-
ción de matlab\funfun donde se indicarán los comandos que existen para resolver, de
forma numérica, ODE’s (Ordinary Differential Equations).
Por ejemplo, si se pretende aplicar los métodos de Runge-Kutta de órdenes 2 o 3, o de
órdenes 4 o 5, existen respectivamente los siguientes comandos:
>> ode23, >> ode45
>>[x y]=ode45(función, intervalo, condición inicial y0)
Salvo que se modifiquen los argumentos (mirar la ayuda de Matlab para este comando,
>>help ode23), trabaja con tolerancia relativa, por defecto, de 10-3. Y con una toleran-
cia absoluta de 10-6, como ocurre con el método >>ode45.

Ejemplo 4.13 Resolver el siguiente P.V.I. (Problema del Valor Inicial) mediante algún
°­ y c x 0.1 y x  0.02 y
método Runge-Kutta, dos métodos al menos: ® . Representar
°̄ y 0 0.01
las soluciones obtenidas con dichos métodos.

Como primera parte, se va a aplicar un Runge-Kutta de orden 2 o 3. En este caso, la


función se define de forma simbólica mediante Anonymus:
>> f=@(x,y) 0.1*y-0.02*y.^2; [x y]=ode23(f, [0 130], 0.01); plot(x,y,'LineWidth',3),
grid on, axis([0 130 -1 6])
No se muestra por pantalla el vector con las soluciones, ya que interesa más su repre-
sentación con ambos métodos.
6

-1
0 20 40 60 80 100 120

Figura 4.6 Solución aportada por Runge-Kutta de orden 2,3

106

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

Si ahora se aplicase un Runge-Kutta de órdenes 4 o 5:


>> f=@(x,y) 0.1*y-0.02*y.^2; [x y]=ode45(f, [0 130], 0.01); plot(x,y,'LineWidth',3),
grid on, axis([0 130 -1 6])
Y la representación gráfica obtenida sería:
6

-1
0 20 40 60 80 100 120

Figura 4.7 Solución aportada por Runge-Kutta de orden 4,5

4.8 Ejercicios
1.- Calcular el vector gradiente de las funciones:
y
a) f(x,y) = b) f(x,y) = e-x cos y c) f(x,y)= 2+y2sen(xy)
x  y2
2

d) f(x,y) = x2 y3 e) f(x,y) = x4+y4 -4xy+1 f) f x, y 4  x2  y2

2.- Determinar y clasificar los puntos críticos de las siguientes funciones:


a) f(x,y)= y x2- 4xy + 3x2+ (1/2) y2
b) f(x,y) = (x+y) 2 -5
c) f(x,y)= x3 -y2 -3x -4y -4
d) f(x,y)= y3+(x+y)2 +6(x-y).
e) f(x,y)= y3-2x2-4xy +30
f) f(x,y)= y3-2x2-4xy +30
g) f(x,y)= x3+x2 y+y2+2y
h) f (x,y ) = -5x2-8y2-2xy+42x+ 102 y
1
i) f x, y x 3  6 x 2  4 xy  12 y
2

107

www.full-ebook.com
Matlab para Matemáticas en ingenierías

3.- Considerar la función de dos variables f(x,y) = a(2xy+y2+yx2)+x2(a2-y) donde a ࣅԹ.


Sabiendo que en el punto (0,0) la función presenta un punto crítico, aplicar el crite-
rio del Hessiano para clasificar dicho punto en función de los valores de a.

4.- Sea f(x,y) = x3- 3axy +y3 . Determinar y clasificar los puntos críticos de la función
según los valores de a Թ.

5.- Sea la función f (x,y)= 1-px2+2y2. Sea la derivada direccional de la función en el


o G G
punto (1, -1) según la dirección del vector v i  j es 3. Obtener el valor de p.

6.- Dada la región D del plano limitada por las rectas y = -3x+6 e y = 0, la parábola y
= 4x-x2 y la recta x = 4 y dada la superficie z = x2+y2, calcular el área de la superfi-
cie.

7.- Calcular el volumen de una peonza modelizada por las superficies de ecuaciones
S1{x2+y2=z2, S2{x2+y2+(z-2)2=4.

8.- Una caja rectangular sin tapa superior debe tener un volumen de 12m3. Determinar
las dimensiones de la caja que darán un área mínima.

9.- Sea D la región limitada por las curvas xy=9, y=x, x=9 e y=0. Calcular:
a) Área de la región D.
b) Volumen limitado inferiormente por la región y superiormente por el plano
z=2x+3y.
c) Área del plano z=2x+3y situado sobre la región D.

10.- Resolver las ecuaciones diferenciales siguientes:


a) (2y-x3)dx=x dy
b) ey dx- y x (x-1)dy =0
x  3y
c) y c
3x  y

11.- Resolver la ecuación diferencial yc (x2+1)ey - (2x2+1)(1+ey) =0. Obtener la solu-


ción particular para la condición inicial y(1) = 1.

108

www.full-ebook.com
Funciones de varias variables. Ecuaciones diferenciales

2 y
3( 1  x ) e
12.- Resolver la ecuación diferencial y' . Obtener la solución particular
1 ey
para la condición inicial (1,0).

13.- Resolver la ecuación diferencial y obtener la solución particular para la condición


inicial dada
x2  3 y2 ½
yc °
4 xy ¾
y 1 0 °
¿

109

www.full-ebook.com
www.full-ebook.com
Capítulo 5 5

Introducción a la Estadística
Descriptiva

5.1 Introducción
Este capítulo ofrece al lector una introducción a la estadística descriptiva, tanto teórica
como en el marco de Matlab.

La Estadística es la parte de las Matemáticas que se encarga del estudio de una deter-
minada característica en una población. Recogiendo los datos, organizándolos en ta-
blas, representándolos gráficamente y analizándolos para sacar conclusiones de dicha
población.
En el caso de la estadística descriptiva, el estudio se realiza sobre la población comple-
ta, observando una característica y calculando unos parámetros que proporcionen in-
formación global de toda la población.
Si se realizase un estudio descriptivo sobre un subconjunto de la población llamado
muestra y, posteriormente, se extendiesen los resultados obtenidos a toda la población,
se estaría realizando inferencia estadística.
Matlab posee toolbox o herramientas para el cálculo de estadísticos, ajuste por rectas de
regresión, mínimos cuadrados, distribución de probabilidad, función de densidad. etc.

111

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Estas aplicaciones pueden encontrarse en el directorio de stats\statsdemos (dentro del


índice de ayuda proporcionado por >>helpwin).
Para cálculo de parámetros estadísticos y funciones de probabilidad se puede acudir al
directorio de:
>>helpwin
y dentro de los diferentes temas examinar stats\stats. O directamente, >>help stats.
Ahí se encuentran los comandos necesarios para trabajar con funciones de probabili-
dad ya conocidas, o cálculo de parámetros estadísticos, indicados en el apartado co-
rrespondiente a Descriptive Statistics.
En las tablas 5.1, 5.2, 5.3 y 5.4 se indica una relación de parámetros estadísticos, órde-
nes para gráficos, cálculo de probabilidad y función de densidad, tomado de la ayuda
que ofrece el programa, aunque las tablas son de elaboración propia.
Tabla 5.1 Relación de parámetros estadísticos

PARÁMETROSESTADÍSTICOS
corr Linearorrankcorrelationcoefficient.
corrcoef Linearcorrelationcoefficient(inMATLABtoolbox).
cov Covariance(inMATLABtoolbox).
geomean Geometricmean.
iqr Interquartilerange.
mad MedianAbsoluteDeviation.
mean Sampleaverage(inMATLABtoolbox).
median 50thpercentileofasample(inMATLABtoolbox).
mode Mode. or most frequent value in a sample (in
MATLABtoolbox).
partialcorr Linearorrankpartialcorrelationcoefficient.
partialcorri Partial correlation coefficients with internal adjustͲ
ments.
prctile Percentiles.
quantile Quantiles.
range Range.
std Standarddeviation(inMATLABtoolbox).
tabulate Frequencytable.
var Variance(inMATLABtoolbox).

112

www.full-ebook.com
Introducción a la Estadística Descriptiva

Tabla 5.2 Relación de opciones para representar

REPRESENTACIONES
hist(X,n) HistogramadedatosX,nnúmerodeclaseequidistantes
bar(X) Diagramadebarrasvertical
plot Polígonodefrecuencias
barh(X) Diagramadebarrashorizontal
pie(f) Gráficodesectores, dondefcorrespondealasfrecuencias

En cuanto a trabajar con distribuciones, o bien discretas o bien continuas, Matlab tam-
bién proporciona comandos al respecto:

Tabla 5.3 Distribuciones de probabilidad

DISTRIBUCIONESDEPROBABILIDAD
binostat Binomialmeanandvariance.
nbinstat Negativebinomialmeanandvariance.
normstat Normal(Gaussian)meanandvariance.
poisstat Poissonmeanandvariance.
normcdf Normal(Gaussian)cumulativedistributionfunction.
poisscdf Poissoncumulativedistributionfunction.
binocdf Binomialcumulativedistributionfunction.

Si se quiere trabajar con las funciones de densidad, de nuevo ya están implementadas.


Recordar que, una función de densidad para una variable aleatoria, es la función f(x)
que verifica:

ܲሾܽ ൑ ܺ ൑ ܾሿ ൌ න ݂ሺ‫ݔ‬ሻ݀‫ݔ‬

x

Y la función de distribución es, F(x) tal que: F x ³ f u du


f

113

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Tabla 5.4 Opciones de funciones de densidad en Matlab

FUNCIONESDEDENSIDAD
binopdf Binomialdensity.
nbinpdf Negativebinomialdensity.
normpdf Normal(Gaussian)density.
poisspdf Poissondensity.

A lo largo de este capítulo se introducirá, primero, la teoría necesaria para trabajar el


tema de estadística: definiciones, representaciones, parámetros, etc. Después, mediante
ejemplos, se detallará cómo realizar el cálculo de los resultados buscados mediante el
uso de los comandos de Matlab.

5.2 Estadísticos y representación

5.2.1 Variables estadísticas


El cometido de la Estadística Descriptiva es facilitar el establecimiento de comparacio-
nes entre diferentes grupos. Bien entre grupos distintos, o bien para un mismo grupo en
dos instantes de tiempo diferentes.
Según sea la naturaleza de los valores, la variable estadística puede clasificarse en:
 Cualitativas. Cuando los valores que toma la variable no son numéricos.
 Cuantitativas. Cuando los valores que toma la variable son números reales.
Las variables cuantitativas se clasifican en discretas y continuas.
 Variable cuantitativa discreta: si los posibles valores pertenecen a un conjunto
numerable. Por ejemplo, puntuaciones obtenidas por un grupo de alumnos en
una asignatura.
 Variable cuantitativa continua: si los posibles valores pertenecen a un conjunto
no numerable. Como las alturas de un conjunto de alumnos.
Si sólo se tiene en cuenta una característica de la población, se dice que es un estudio
unidimensional. Si se estudian dos o más características, es un estudio bidimensional o
multidimensional, respectivamente.
Población: conjunto de elementos con alguna o algunas características comunes.
Muestra: Es un subconjunto de la población.

114

www.full-ebook.com
Introducción a la Estadística Descriptiva

Variable estadística: divide la población, de manera natural, en grupos denominados


clases (conjuntos disjuntos) al considerar los diversos atributos de la variable.
Si se desea conocer con gran exactitud, cómo es cierta característica de una determina-
da población, la mejor forma será recoger los datos de todos, y cada uno, de los indivi-
duos que integran la población completa, analizarlos y extraer las conclusiones corres-
pondientes.
El cometido de la Estadística Descriptiva de este capítulo, es un estudio básico en el
que se muestra cómo obtener gráficos y parámetros, representativos de una serie de
datos unidimensionales.

5.3 Distribución de frecuencias


El conjunto de valores observados, o serie numérica, constituye el material inicial a
partir del cual debe llevarse a cabo el análisis estadístico descriptivo.
Sí el número de datos no es muy reducido, su interpretación se facilita presentándolos
agrupados en una tabla.
(a) Cuando la variable estudiada es de tipo discreto, cualitativa o cuantitativa, con
un número reducido de valores posibles, los datos pueden sintetizarse en una
tabla, en la que para cada valor xi se muestra la frecuencia absoluta ni o núme-
ro de veces que dicho valor se observa en la muestra. Dado que la frecuencia
absoluta depende del número total de observaciones N, la frecuencia relativa
no es más que ni/N.
- Frecuencia absoluta, ni, es el número de veces que se repite cada valor de la
variable. A la suma de todas las frecuencias absolutas se le llama N = ¦ ni
i
- Frecuencia relativa, fi, es el cociente entre la frecuencia absoluta y el número

total de datos: ݂௜ ൌ ೔

- Frecuencia absoluta acumulada, Ni, indica el número de datos que hay iguales
o inferiores al considerado.
- Frecuencia relativa acumulada, Fi, es el resultado de dividir cada frecuencia
absoluta acumulada entre el número total de datos. Informa del tanto por uno
de datos que hay igual o inferior al considerado.
(b) Cuando la variable estudiada es de tipo continuo, como es difícil encontrar va-
lores repetidos, se procede a un agrupamiento de datos en intervalos, por lo
general de igual amplitud, que suele denominarse clase. Generalmente la mar-
ca de la clase es el punto medio del intervalo.
La anchura de la clase se obtendrá dividiendo la diferencia entre el mayor y el
menor valor por el número de clases. También se puede hacer de otro modo,
estableciendo una anchura de clase determinada. Pero hay que tener en cuenta

115

www.full-ebook.com
Matlab para Matemáticas en ingenierías

que, el número de clases resultantes esté comprendido entre 5 y 20, para que la
tabla y los gráficos puedan transmitir con facilidad la idea de la distribución de
frecuencias. Analizando como antes, pero referido ahora a la marca de la clase:
- Frecuencia absoluta, ni, N = ¦ ni
i

- Frecuencia relativa, ݂௜ ൌ ೔

- Frecuencia absoluta acumulada, Ni
- Frecuencia relativa acumulada, Fi

5.3.1 Representaciones gráficas


En el análisis descriptivo tienen mucha utilidad las representaciones gráficas de los
datos que se poseen de las variables estadísticas, a partir de los cuales se puede llegar
de forma más fácil a conclusiones. Los tipos de gráficos que aquí se destacan son:
(1) Diagrama de barras (>>bar(Datos)): rectángulos de igual base, generalmente
dispuestos en posición vertical, en el que la altura de cada uno es proporcional
a la frecuencia.
10

0
0 5 10 15 20 25

(2) Gráficos de tarta o sectores (>>pie(f)): la superficie total de un círculo se divi-


de en sectores de forma que el área de cada sector es proporcional a la fre-
cuencia de la clase.
4% 4% data1
8% 8% data2
data3
data4
data5
data6
13%
data7
data8
21% data9

17%

13%

13%

116

www.full-ebook.com
Introducción a la Estadística Descriptiva

(3) Polígono de frecuencias (>>plot(d)): las ordenadas de las frecuencias absolu-


tas se unen mediante una línea poligonal.
5

4.5

3.5

2.5

1.5

1
2 3 4 5 6 7 8 9 10

(4) Histograma (>>hist(Datos,n)): representación gráfica formada por rectángulos


cuyas áreas son proporcionales a las respectivas frecuencias de los intervalos
considerados. Si la amplitud de los intervalos es constante, el gráfico se con-
vierte en un diagrama de barras.

4.5

3.5

2.5

1.5

0.5

0
2 3 4 5 6 7 8 9 10

5.3.2 Ejemplos con Matlab de distribución de frecuencias y diagramas


A. Ejemplo Caso Variable discreta
Los datos pueden sintetizarse en una tabla, en la que para cada valor xi se muestra la
frecuencia absoluta ni.

Considérense las puntuaciones obtenidas en una prueba mostradas en la serie de datos


siguiente:

Datos= {6,4,5,8,5,4,7,4,5,10,9,9,3,8,4,4,6,7,7,8,2,3,6,7}
Se pide:

117

www.full-ebook.com
Matlab para Matemáticas en ingenierías

a) Ordenarlos, calcular el mínimo y máximo de los datos.


b) Obtener una tabla de frecuencias.
c) Representar el polígono, histograma y diagramas de barras.
Resolución:
a) Se introducen los datos definiendo el vector D
>> D=[6, 4, 5, 8,5,4,7,4,5,10,9,9,3,8,4,4,6,7,7,8,2,3,6,7]

En este apartado hay que:


- Ordenar datos >>sort(D);
- obtener el mínimo >>min(D);
- obtener el Máximo >> max(D)

>> D=sort(D)
D=
Columns 1 through 13
2 3 3 4 4 4 4 4 5 5 5 6 6
Columns 14 through 24
6 7 7 7 7 8 8 8 9 9 10
>>min(D) % devuelve el valor mínimo
ans=
2
>> max(D) % devuelve el valor máximo
ans=
10
b) Obtener tablas de frecuencias con variable discreta es muy rápido, ya que el
nombre de la clase coincide con el valor numérico del dato.
Con la orden >>tabulate(D), Matlab devuelve una tabla en la que la primera columna
son los valores de d, ordenados de menor a mayor; la segunda columna corresponde a
la frecuencia absoluta ni ; y finalmente, la tercera columna muestra la frecuencia relati-
va fi en %.
>> tabulate(D)

118

www.full-ebook.com
Introducción a la Estadística Descriptiva

Value Count Percent


1 0 0.00%
2 1 4.17%
3 2 8.33%
4 5 20.83%
5 3 12.50%
6 3 12.50%
7 4 16.67%
8 3 12.50%
9 2 8.33%
10 1 4.17%
c) Representaciones
Al tener variable discreta, el valor numérico coincide con el nombre de la clase. En el
valor 1 no hay ningún dato, por tanto se tienen nueve clases. Para obtener el histograma
de frecuencias se pide como argumento los datos y el número de clases.
En este caso, datos= D, número de clases= 9
>>hist(D,9) % histograma con 9 clases

4.5

3.5

2.5

1.5

0.5

0
2 3 4 5 6 7 8 9 10

También pueden generarse los diagramas de barras en horizontal y vertical:


>>bar(D) % diagrama de barras

119

www.full-ebook.com
Matlab para Matemáticas en ingenierías

10

0
0 5 10 15 20 25

>>barh(D) % diagrama de barras horizontal


25

20

15

10

0
0 2 4 6 8 10

B. Ejemplo Caso variable continua


En este caso, como es difícil encontrar valores repetidos, se procede a un agrupamiento
de datos en intervalos, por lo general de igual amplitud, que suele denominarse clase.
Generalmente la marca de la clase es el punto medio del intervalo.

Considérense los siguientes datos correspondientes a la estatura de 200 personas:

1.83 1.80 1.65 1.61 1.89 1.89 1.74 1.76 1.83 1.65 1.83 1.72 1.57 1.83 1.56 1.81 1.71 1.71 1.77 1.83
1.71 1.80 1.77 1.73 1.66 1.74 1.82 1.86 1.60 1.65 1.67 1.79 1.78 1.77 1.83 1.69 1.88 1.75 1.56 1.83
1.78 1.89 1.86 1.88 1.69 1.78 1.88 1.83 1.64 1.90 1.70 1.68 1.62 1.73 1.69 1.87 1.68 1.87 1.68 1.77
1.72 1.70 1.71 1.71 1.72 1.72 1.69 1.94 1.67 1.71 1.69 1.70 1.75 1.85 1.72 1.64 1.64 1.84 1.86 1.78
1.70 1.70 1.58 1.64 1.66 1.80 1.80 1.68 1.77 1.68 1.86 1.76 1.93 1.77 1.72 1.63 1.67 1.83 1.76 1.66
1.80 1.61 1.78 1.75 1.71 1.77 1.79 1.72 1.79 1.59 1.62 1.67 1.81 1.71 1.74 1.68 1.72 1.77 1.69 1.89
1.71 1.83 1.68 1.69 1.68 1.74 1.51 1.60 1.75 1.79 1.69 1.73 1.62 1.91 1.72 1.88 1.69 1.60 1.77 1.74
1.58 1.76 1.77 1.63 1.75 1.61 1.64 1.87 1.71 1.79 1.68 1.67 1.79 1.54 1.73 1.80 1.78 1.65 1.81 1.73
1.63 1.65 1.74 1.82 1.78 1.54 1.85 1.77 1.78 1.58 1.74 1.75 1.81 1.74 1.82 1.50 1.62 1.74 1.80 1.79
1.71 1.69 1.94 1.70 1.69 1.68 1.65 1.69 1.70 1.73 1.75 1.71 1.87 1.70 1.83 1.74 1.79 1.83 1.71 1.88

120

www.full-ebook.com
Introducción a la Estadística Descriptiva

Se desea:
a) Introducir la tabla en Matlab, asignarle nombre de variable.
b) Pasar de matriz de datos a vector columna.
c) Obtener valor mínimo, valor máximo, ordenar.
d) Construir una tabla de frecuencias absolutas y relativas.
e) A partir de la tabla de frecuencias, ¿cuántas personas miden menos de 1.70?,
¿qué porcentaje de personas su altura se encuentra en el intervalo [1.6, 1.7)?,
¿qué porcentaje de personas tiene un altura inferior a 1.90?
f) Representar los diferentes tipos de gráficos.

Resolución
a) Crear la variable: Para no tener que introducir a mano la matriz, selecciónese
la matriz anterior y cópiese. Entrar en Matlab y clicar en New variable

Figura 5.1 Imagen de Matlab

Se abre el asistente y se pega, el resultado obtenido se muestra en la figura 5.2

Figura 5.2 Imagen de Matlab con la tabla de datos almacenada en variable

121

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Poner el cursor en wokspace/unnamed y clicar el botón derecho para seleccionar rena-


me

Con esto se renombra la variable matriz como x.


b) Si se quiere trabajar con un vector columna.
Para transformar la matriz en un vector existe el comando >>reshape(A,m,n), donde
A es la matriz de la que se parte, m nuevo número de filas y n nuevo número de colum-
nas).
En este caso se tienen 200 datos y, por ello, se va a originar un vector de 200 filas
>>d=reshape(x,200,1)
c) Se obtiene el valor mínimo y máximo
>> min(d)
ans =
1.5000
>> max(d)
ans =
1.9400
d) Para obtener la correspondiente tabla de frecuencias
Si se usase >>tabulate(d), devolvería las frecuencias considerando d como variable
discreta. Como en este caso la variable es continua, hay que emplear otros comandos.
Primero, para ello, se distribuyen los datos en intervalos, los valores van del min= 1.5
al max=1.94, siendo
anchura =(max-min)/nº clases= (1.94-1.5)/nº de clases=0.44/nº de clases

122

www.full-ebook.com
Introducción a la Estadística Descriptiva

Si se considera 5 clases, anchura=(1.94-1.5)/5=0.088. Para no tener que trabajar con


decimales es conveniente tomar anchuras de 0.1
[1.5,1.60[, [1.60,17[, [1.7,1.8[, [1.8,1.9[ , [1.9,2.0[
Los datos se agrupan en 5 grupos, es decir en 5 clases. Marca de la clase, punto medio
del intervalo.
Clase Marca de la clase Intervalo que describe
1 1.55 [1.5, 1.6[
2 1.65 [1.6, 1.7[
3 1.75 [1.7, 1.8[
4 1.85 [1.8, 1.9[
5 1.95 [1.9, 2.0[

El siguiente paso es crear un vector de clase, m, y un vector de frecuencia f.

Nota: si a la orden de histograma se le asigna una salida numérica, ya no repre-


senta el gráfico del histograma, sino que devuelve el vector fila de frecuencias
absolutas. Esto puede comprobarse creando un vector m con los valores que van
del mínimo al máximo de 0.1 en 0.1.

Como son vectores filas, para dar lugar a los vectores columna han de transponerse y a
continuación, ya se puede construir la tabla de frecuencias.
Si se desea una salida con forma de tabla, se tiene el comando >>ta-
ble(columna1,columna2…), proporcionándole como argumentos las columnas que van
a intervenir en la tabla. Con este fin se crea la columna clase y la columna fabs, del
siguiente modo:

123

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>>clase=m’
>>fabs = f’ %frecuencia absoluta
>>table(clase, fabs)

La orden >> cumsum(vector) es la que suma los elementos de vector.


Queda por obtener la frecuencia relativa frel, la frecuencia absoluta acumulada fab-
sacumulada y la frecuencia relativa acumulada frelacumulada, para construir una tabla
de frecuencias en la que aparezcan como columnas: clases, frecuencia absoluta, fre-
cuencia absoluta acumulada y frecuencia relativa. Las expresiones introducidas para
los cálculos y los resultados se muestran a continuación:

124

www.full-ebook.com
Introducción a la Estadística Descriptiva

Y para crear, finalmente, la tabla completa

Con la tabla anterior ya se puede dar respuesta a todas estas cuestiones:


Ͳ ¿Cuántas personas miden menos de 1.70?, si uno observa en la tabla son un total de
73.
Ͳ ¿Qué porcentaje de personas tiene su altura en el intervalo [1.6, 1.7)?, mirando en la
tabla le corresponde 0.295, que es un 29.5%.
Ͳ ¿Qué porcentaje de personas tiene una altura inferior a 1.90?, se ve que van desde
1.50 hasta 1.90; es decir la suma de frecuencia relativa acumulada corresponde a
0.98, que es un 98%.
f) Representación del histograma con la orden >>hist(Datos,clases).
En este ejercicio, los datos corresponden a la matriz d y las clases que se han creado
anteriormente se han asignado al vector m. Escribiendo la orden indicada se consigue
representar el histograma:
>>hist(d,m)

125

www.full-ebook.com
Matlab para Matemáticas en ingenierías

90

80

70

60

50

40

30

20

10

0
1.5 1.6 1.7 1.8 1.9 2

5.4 PARÁMETROS ESTADÍSTICOS DE POSICIÓN Y DISPER-


SIÓN
Fundamentalmente, la pauta de variabilidad constatada en un conjunto de observacio-
nes relativas a una variable cuantitativa unidimensional, puede caracterizarse por dos
tipos de parámetros que definen, respectivamente, la posición y la dispersión.

5.4.1 PARÁMETROS ESTADÍSTICOS DE POSICIÓN


Los parámetros de posición tienen por objetivo proporcionar valores en torno a los
cuales se encuentran las observaciones. Entre ellos están: media aritmética, media
geométrica, mediana, moda, cuartiles y percentiles.
Las expresiones a usar en Matlab son las indicadas en la tabla siguiente.

Tabla 5.5 Parámetros estadísticos de posición en Matlab

PARÁMETROSESTADÍSTICOSDEPOSICIÓN
mean Mediaaritmética
median Mediana
mode Moda
geomean Mediageométrica
quantile(X,p)  Quartiles.
prctile Percentiles.

126

www.full-ebook.com
Introducción a la Estadística Descriptiva

a) Media aritmética: dado un conjunto de N valores, ^x1 ,x2 ,...,xN ` , de una varia-
ble estadística cuantitativa, el valor medio o media aritmética, ‫ݔ‬ҧ , es la suma de todos
los valores dividido por el número total de datos N:
1
x ( x1  x2  ....  x N )
N
Si se conocen las frecuencias, la media aritmética se obtiene mediante:

¦x f i i
Media Promedio Media Aritmética x i 1
N
b) Mediana: la mediana de un conjunto de datos es el valor del dato situado en el
centro de la serie de valores, cuando estos están ordenados.
N 1
En general, si hay N valores, N impar, la mediana correspondería a la posición .
2
En el caso de que el número de datos, N, de la serie sea par, la mediana se obtiene co-
mo promedio de los dos valores centrales.
N N
y 1
2 2

­ x N 1 N impar
° 2
°
Por tanto, para calcular la mediana ® xN  xN debe distinguirse si
1
° 2 2
N par
°̄ 2
el número de datos es par o impar.
c) Moda: de un conjunto de datos es el valor que aparece con mayor frecuencia.
La moda de una serie estadística es un indicador de posición central. Puede denominar-
se robusto, porque resulta poco influida por la presencia de algunos valores extremos,
digamos anormales, y que en ocasiones provienen de errores en la medición o lectura.
Su uso es muy recomendable cuando se trata de variaciones muy discontinuas en una
serie.
d) Media Geométrica de un conjunto de N valores es la raíz n-ésima de los pro-
ductos de dichos números.
n n
MG n – xi o n
–x f i i
i 1 i 1

127

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Ejemplo 5.1 Sean los siguientes datos correspondientes a una variable discreta, Da-
tos={6,4,5,8,5,4,7,4,5,10,9,9,3,8,4,4,6,7,7,8,2,3,6,7}. Calcular la media, moda, media-
na y media geométrica.
Las órdenes a utilizar se pueden consultar en la Tabla 5.1. El vector de datos será
>>D=[6 4 5 8 5 4 7 4 5 10 9 9 3 8 4 4 6 7 7 8 2 3 6 7];

Ejemplo 5.2 Considérese la variable continua d cuya tabla de frecuencias puede con-
sultarse en el epígrafe 5.3.2.2. Hallar los valores de media, mediana y moda, introdu-
cidas las ordenes referidas a los datos d.

e) Cuartiles: Una vez ordenado el conjunto de los datos de forma creciente, se


procede a dividir la cantidad de datos en cuatro partes iguales. Se está pasando a estu-
diar los denominados cuartiles:
- La primera cuarta parte de los elementos es inferior al primer cuartil Q1. Por lo tanto,
el primer cuartil indica el valor tal que hay un 25% de los datos inferiores a él.

128

www.full-ebook.com
Introducción a la Estadística Descriptiva

- el segundo cuartil Q2 es el elemento que supera al 50% de los valores. Evidentemen-


te, dicho cuartil es la mediana,
- el tercer cuartil Q3 es el elemento supera el 75% de los datos.
Acudiendo a >>help quantile se puede encontrar la siguiente ayuda
y = quantile(x,.50); % the median of x
y = quantile(x,[.25 .50 .75]); % the quartiles of x
y = quantile(x,3); % another way to get quartiles
y = quantile(x,[.025 .25 .50 .75 .975]); % a useful summary of x

f) Percentiles: Cuando el conjunto de los datos se divide en 100 partes iguales, se


habla de percentiles. El percentil del 10% de un conjunto de datos, será el dato tal que
haya un 10% de los datos inferiores a él.
Si se busca la ayuda de Matlab sobre la orden percentil >> help prctile
Y = prctile(X,P) returns percentiles of the values in X. P is a scalar
or a vector of percent values. When X is a vector, Y is the same size
as P, and Y(i) contains the P(i)-th percentile. When X is a matrix,
the i-th row of Y contains the P(i)-th percentiles of each column of X.
For N-D arrays, prctile operates along the first non-singleton
dimension.
Examples:
y = prctile(x,50); % the median of x
y = prctile(x,[2.5 25 50 75 97.5]); % a useful summary of x

Ejemplo 5.3 Considérese el conjunto de datos D anterior. Calcular los cuartiles 1, 2, 3


y los percentiles del 25%, 50% y 75%.

Los resultados obtenidos se muestran a continuación.

129

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Ejemplo 5.4 Considérese el conjunto de datos d de variable continua. Calcular los


cuartiles 1, 2, 3 y los percentiles del 25%, 50% y 75%.

Los resultados obtenidos son los siguientes:

5.4.2 Medidas de dispersión


En el apartado anterior se han mostrado diversas formas de establecer un representante
de un determinado conjunto de datos o medidas. Otro aspecto muy importante para
completar la imagen que uno se forma del conjunto de datos, a partir de los parámetros
de posición, es la dispersión.
Se entiende que un conjunto de datos tiene poca dispersión si están agrupados en torno
al valor medio de ese conjunto de datos. Por el contrario, se dice que la dispersión es
alta si hay bastantes datos suficientemente alejado del promedio.

130

www.full-ebook.com
Introducción a la Estadística Descriptiva

Entre las medidas de dispersión se encuentran: recorrido o rango, recorrido intercuartí-


lico, desviación absoluta media, desviación estándar y varianza.
a) El Recorrido es el parámetro de posición más intuitivo. Para conjuntos peque-
ños de datos puede ser el más significativo a efectos prácticos. Se define el Recorrido
como la diferencia entre el mayor valor observado y el menor valor observado.
- ejemplo de variable discreta de las notas: Recorrido =10-2=8
- ejemplo de variable continua de las alturas: Recorrido =1.94-1.5=0.44
En Matlab para calcular el rango puede hacerse mediante la función >> range (datos)
o mediante >>max(datos)-min(datos).

b) Recorrido intercuartílico: En los casos en que la media no es un indicador


adecuado de posición (caso de distribuciones muy asimétricas), la desviación típica no
resultará un parámetro adecuado de dispersión. En esos casos se utiliza, a veces, con
dicho fin el recorrido o distancia intercuartílica. Para calcularlo analíticamente:
Recorrido intercuartílico= diferencia entre el tercer y primer cuartil= Q3-Q1.
En Matlab, la orden >>iqr(datos), devuelve directamente el recorrido intercuartílico.
Uno de los significados del recorrido intercuartílico es que en un intervalo centrado en
la mediana de longitud, se encuentran el 50% de los elementos del conjunto. El interva-
lo intercuartílico es un indicador robusto de dispersión (resulta poco influido por los
valores anómalos).

Ejemplo 5.5 Con los datos d de variable del ejemplo anterior, halla el recorrido inter-
cuartílico y el recorrido.

-Para calcular el recorrido intercuartílico, basta hallar Q3-Q1. Este valor indica dónde se
encuentra acumulado el 50% de la población.
Puede ser calculado a partir de los cuartiles o, utilizando directamente la función
>>iqr(datos).
Los resultados son los mostrados a continuación.
>>iqr(D)
ans=
3.5000
-Para hallar el recorrido, basta restar al valor máximo de la población el valor mínimo.
Otra forma es utilizando la función >> range (datos).
Los resultados utilizando ambas opciones son:

131

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>> max(D)-min(D)
ans =
8
>>range(D)
ans =
8

c) Desviación absoluta media: En un conjunto de N datos, de media x , se deno-


mina desviación de cada elemento a su diferencia respecto a la media del conjunto.
Se define la desviación absoluta media como el promedio de los valores absolutos de
las desviaciones. Las fórmulas que la calculan son:

¦x i x ¦| x i  x | fi
Variable Discreta , Variable continua i 1
N N
d) Varianza: Se define la varianza como la media de las desviaciones al cuadrado.
2
Se representa por V
2

2
¦ x  x
i 1
i fi
V
N
O bien, si no se tienen los datos agrupados por frecuencias
σே
௜ୀଵሺ‫ݔ‬௜ െ ‫ݔ‬ҧ ሻ

ߪଶ ൌ
ܰ
La varianza mide la dispersión de los valores de la variable respecto de la media. Cuan-
to mayor sea la varianza, menos representativa es la media.
e) Desviación estándar: A la raíz cuadrada de la varianza se le denomina Desvia-
ción Estándar. Se expresa en las mismas unidades que la media.
2

¦( x  x )2 ¦ x  x
i 1
i fi
Variable discreta V , Variable continua V
n N
La media puede no resultar un indicador de medida central en aquellas series asimétri-
cas o con valores extremos. Como consecuencia, la desviación estándar tampoco será
un parámetro adecuado de dispersión, ya que su cálculo se basa en desviaciones respec-
to a la media. En esos casos se utiliza el intervalo intercuartílico.

132

www.full-ebook.com
Introducción a la Estadística Descriptiva

Un resumen de los parámetros de dispersión con la expresión a introducir en Matlab se


puede consultar en la siguiente tabla

EXPRESIÓNMATLAB PARÁMETROSESTADÍSTICOSDEDISPERSIÓN
range(datos) RecorridooRango máximoͲmínimo
iqr(datos) Recorrido interͲ Q3ͲQ1
cuartílico
mad(datos) Desviaciónmedia ¦x i x ¦| x
i 1
i  x | fi
N  N 
Std(datos,1) Desviación estánͲ 2

dardelapoblación V
¦( x  x ) 2
¦ x  x
i 1
i fi
n V
N 
var(datos) Varianza 2

V ¦( x  x ) 2

2
¦ x  x
i 1
i fi
n V
N 

Ejemplo 5.6 Obtener los parámetros de dispersión para el conjunto de datos de varia-
ble continua d utilizada en los ejemplos anteriores.

El resultado es:

133

www.full-ebook.com
Matlab para Matemáticas en ingenierías

f) Coeficiente de variación: También es una medida relativa de dispersión. De-


termina el grado de dispersión de un conjunto de datos relativo a su media aritmética.
Si se ha realizado un estudio estadístico en dos poblaciones diferentes y se quiere com-
parar la variabilidad de dichas poblaciones, con valores medios muy diferentes, anali-
zar las diferencias entre sus desviaciones típicas no es significativo. La varianza está
afectada por los cambios de escala y, por tanto, no es útil para comparar dispersiones
entre variables estadísticas con distintas unidades. Por ello, para comparar la disper-
sión entre muestras o poblaciones, se utiliza el coeficiente de variación CV.
El coeficiente de variación se define como la relación entre la desviación típica y la
media de la población:
V
CV 100 , se expresa en %
x
Este valor, expresado en tantos por uno, siempre está en el intervalo [0,1]. Cuanto más
cercano a 0, indica una menor separación de los datos con respecto a la media, y al
revés si es cercano a 1.

Ejemplo 5.7 La demanda de un detergente en un hipermercado tiene un promedio de


400 paquetes diarios con una desviación típica de 75 paquetes. Este mismo producto en
una pequeña tienda de barrio tiene una demanda media de 10 paquetes con una desvia-
ción típica de 4 paquetes. ¿En qué establecimiento la demanda es más variable?

En este caso se recurre para compararlas al coeficiente de variación de las dos mues-
tras
Hipermercado CV=(75/400)*100=18.75 %
Pequeña tienda CV=(4/10)*100=40%
La demanda es más variable en la pequeña tienda de barrio.

Ejemplo 5.8 Dos estudiantes universitarios, A y B, tienen las siguientes calificaciones


en las 10 asignaturas que cursan en su carrera:

Calificaciones del estudiante A: 8, 7, 10, 9, 8, 7, 8, 10, 9 y 10.


Calificaciones del estudiante B: 8, 9, 8, 7, 8, 9, 10, 7, 8 y 10.
¿Qué estudiante tiene menor variabilidad en sus calificaciones?

Primero deben definirse los vectores A y B y a continuación, calcular los coeficientes


de variación usando directamente Matlab.

134

www.full-ebook.com
Introducción a la Estadística Descriptiva

El estudiante A tiene de CV= 12.95% y el estudiante B tiene de CV =12.14%. Por


tanto, el estudiante con una menor variabilidad en sus notas es el B.

5.5 Ejercicios
1.- Se considera el número de materias suspensas que constan en el expediente de un
grupo de alumnos. Con estos datos se construyó la siguiente distribución de fre-
cuencias:

Materias suspensas No de estudiantes


0 12
1 14
2 27
3 18
4 9
5 6
6 5

a) Generar con Matlab una tabla con clases, frecuencias absolutas, relativas y
acumuladas.
b) A partir de la tabla indicar: ¿Cuántos estudiantes tienen menos de dos asignatu-
ras suspendidas? ¿qué porcentaje de estudiantes tienen más de 5 materias sus-
pendidas?
c) Representar el histograma.
d) Calcular la moda, la media, la mediana, la desviación típica y el coeficiente de
variación.

135

www.full-ebook.com
Matlab para Matemáticas en ingenierías

2.- Calcular el tiempo medio y la mediana de montaje si los tiempos obtenidos han
sido:
3.4, 3.5, 2.7, 3.6, 2.8, 2.9, 3.2, 3.5, 2.6, 2.8 horas.

3.- Se considera la siguiente serie de datos x, ordenados de mayor a menor


4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 7, 7, 8, 9, 12, 15, 20.

Al transcribir los datos se reemplaza, por error, el valor 20 por 0 dando lugar a una
nueva serie de datos y.
a) Calcular para ambas series de datos, x, y, el valor medio, moda, desviación tí-
pica, Q1, Q3 y el recorrido intercuartílico.
b) Analizar cuál de los valores calculados muestra mayor robustez como medida
de posición, y cuál mayor robustez como medida de dispersión al producirse el
error.

4.- Se ha realizado una encuesta en 30 hogares en la que se les pregunta el nº de indivi-


duos que conviven en el domicilio habitualmente. Las respuestas obtenidas han sido
las siguientes:
4, 4, 1, 3, 5, 3, 2, 4, 1, 6, 2, 3, 4, 5, 5, 6, 2, 3, 3, 2, 2, 1, 8, 3, 5, 3, 4, 7, 2, 3.
a) Calcule la distribución de frecuencias de la variable obteniendo las frecuencias
absolutas, relativas y sus correspondientes acumuladas.

b) ¿Qué proporción de hogares está compuesto por tres o menos personas? ¿Qué
proporción de individuos vive en hogares de tres o menos miembros?

c) Dibuje el diagrama de frecuencias absolutas y el diagrama de frecuencias acu-


muladas.

d) Agrupar por intervalos de amplitud 2 los valores de la variable. Obtener histo-


grama, tabla de frecuencias, absolutas y relativas.

5.- La tabla siguiente muestra el resultado de una encuesta entre los alumnos de primer
curso, analizando el número de suspensos en la primera evaluación :
022403325232434314110411424203130522303051140
323233124231314
a) Construir la tabla de frecuencias.
b) Obtener: media, varianza, cuartiles.

136

www.full-ebook.com
Introducción a la Estadística Descriptiva

c) Recorrido, recorrido intercuartílico, varianza.

6.- Las estaturas en cm de 40 estudiantes son:


168 194 180 162 174 155 179 187
176 188 170 177 166 178 182 174
198 156 168 196 193 199 184 195
146 173 172 177 165 183 170 165
191 175 165 172 180 186 175 158
a) Construir la tabla de frecuencias con ancho de clase de 5 cm.
b) Construir la tabla de frecuencias con 8 clases.
c) Representar los histogramas de frecuencias. Analizar las diferencias.
d) Calcular la media y la mediana utilizando los datos originales.
e) Buscar la moda y compararla con la media y la mediana.
f) Indicar el primer y tercer cuartil de esta distribución.
g) Indicar el recorrido.
h) Indicar la distancia intercualtílica.

7.- Se ha medido la velocidad de un automóvil durante un viaje de 4 horas, siendo los


resultados
Km/h minutos
Menos de 40 10
Entre 40 y 50 20
Entre 50 y 60 35
Entre 60 y 70 40
Entre 70 y 80 50
Entre 80 y 90 40
Entre 90 y 100 30
Entre 100 y 120 10
Entre 120 y 150 5

Calcúlese la velocidad media y la desviación típica, teniendo en cuenta las marcas de


clase. Representar el histograma.

8.- Sobre un grupo de 25 personas se realizan las siguientes observaciones de sus pesos
(en Kg):
58, 42, 51, 54, 43, 42, 49, 56, 58, 57, 59, 63, 58, 66, 70, 72, 71, 69, 70, 68, 64, 60, 54,
49, 71

137

www.full-ebook.com
Matlab para Matemáticas en ingenierías

a) Construir una tabla de frecuencias, agrupando los datos en 5 grupos.


b) Obtener la tabla de frecuencia absoluta, frecuencia relativa, tomando interva-
los de longitud 4kg.
c) Representar en un histograma.
d) Indicar el peso medio y coeficiente de variación.

9.- El número de unidades defectuosas encontradas en la inspección sistemática de 20


cajas de un lote es: 1, 0, 0, 1, 0, 2, 1, 3, 0, 0, 0, 1, 2, 0, 0, 1, 0, 2, 4, 1
a) Construir una tabla de frecuencias absolutas y frecuencias acumuladas
b) Indicar el tanto por ciento de lotes que tienen al menos una defectuosa
c) Indicar promedio, moda y mediana de unidades defectuosas por caja.
d) Calcular el recorrido y la desviación típica.

10.- Quince estudiantes del grupo A de matemática I obtuvieron las siguientes notas
definitivas al final del periodo:
5, 6, 5.5, 9, 4.5, 7, 5.8, 6.5, 8.8, 6, 7, 8, 4
y el grupo B de 20 estudiantes obtuvo en la misma asignatura las siguientes notas:
7.1, 9, 4.6, 7.5, 7.8 ,8.8, 7.8, 4, 4, 5.8, 7.8, 9.2, 5.6, 6, 7, 7.2, 5.6, 5.8, 8, 7.6
El profesor desea averiguar cuál de estos dos grupos es más homogéneo, teniendo en
cuenta las notas definitivas obtenidas.

138

www.full-ebook.com
6 Capítulo 6
Introducción al Álgebra
matricial

6.1 Introducción a las matrices en Matlab


Una de las características de Matlab es que está especialmente diseñado para trabajar
con variables vectoriales y matriciales. Este capítulo va a comenzar repasando cómo
introducir un vector o una matriz, aunque ya se indicó en capítulos anteriores. Las
matrices están formadas por filas (horizontal), y columnas (vertical). Los elementos de
las filas están separados por espacios o comas y las columnas por intro o por punto y
coma.

6.1.1 Generar matrices. Operaciones con matrices


Para las diferentes explicaciones que van a ser usadas en posteriores ejemplos, van a
definirse las matrices A y B siguientes, que quedarán almacenadas en el Workspace:
§1 2 3 5· § 4 3 2·
A ¨¨ 3 2 4 1 ¸¸ B ¨ 5 3 0¸
¨ ¸
¨6 4 3 2¸ ¨2 5 9¸
© ¹ © ¹
>> A=[1 2 3 5;3 2 4 1;6 4 3 2]

139

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>> B=[4 3 2 ;5 3 0 ;2 5 9]

Nota: Para introducir los elementos de una matriz no es necesario hacerlo uno a
uno, si se observa que los elementos siguen algún tipo de progresión o ley ma-
temática. Para tal fin puede usarse el operador ‘:’, indicando el primer elemento,
el paso (siempre en medio) y el último elemento. Cuando el paso no se indica, se
sobreentiende que este es 1. También pueden usarse matrices ya conocidas o
implementadas en Matlab.
Ejemplo 6.1 Introducir en Matlab la matriz E:

ͳ ͵ ͷ ͹
ͳ ͳ ͳ ͳ
‫ܧ‬ൌ൮ ൲
ͳ Ͳ െͳ െʹ
ͳ ʹ ͵ Ͷ
>> E=[1:2:7;1:-1:-2;ones(1,4);1:4]
E=
1 3 5 7
1 0 -1 -2
1 1 1 1
1 2 3 4
Matlab tiene implementadas expresiones tipo la de ones, que genera una matriz de unos
u otras matrices que se verán en la siguiente sección.

6.1.2 Matrices especiales


En esta sección se trabajará con las matrices A y B introducidas al principio:
§1 2 3 5· § 4 3 2·
A ¨¨ 3 2 4 1 ¸¸ , B ¨ 5 3 0¸
¨ ¸
¨6 4 3 2¸ ¨2 5 9¸
© ¹ © ¹

140

www.full-ebook.com
Introducción al álgebra matricial

Todas las matrices sobre las que se va a explicar cómo generarlas en Matlab, se pueden
consultar en la Tabla 6.1. Las últimas columnas indican la salida de Matlab y la corres-
pondiente expresión matricial. Dicha tabla es un breve resumen de algunas matrices
especiales, definidas ya en Matlab, y la simbología para las operaciones entre matrices:
Tabla 6.1 Algunas Matrices especiales en Matlab

MATRIZ SINTAXIS EJEMPLO Salida Matlab Matriz

§1 0·
Identidad eye(n) >>eye(2) ¨0 1¸
© ¹

Nula § 0 0 0·
zeros(m,n) >>zeros(2,3) ¨ 0 0 0¸
© ¹

Unos § 1·
ones(m,n) >>ones(2,1) ¨ 1¸
© ¹

Diagonal
diag([a >>diag([- § 1 0 ·
¨ 0 3¸
b,…,n]) 1,3]) © ¹

Triangular
superior §1 2 3 5·
¨0 2 4 1¸
triu(A) >>triu(A) ¨ ¸
¨0 0 3 2¸
© ¹

Triangular
inferior §1 0 0 0·
¨ 3 2 0 0¸
tril(A) >>tril(A) ¨ ¸
¨6 4 3 0¸
© ¹

Nota: Las matrices nulas y de unos, pueden ser cuadradas (número de filas igual
a número de columnas, n=m) o rectangulares. En caso de querer construir cual-
quiera de ellas cuadrada basta indicar un solo argumento:
>> ones(3)
ans =
1 1 1
1 1 1
1 1 1

141

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Nota: Matlab también permite construir una matriz identidad rectangular (aun-
que se llama realmente matriz identidad a una matriz cuadrada). En realidad lo
que hace es, poner una diagonal de 1’s en una matriz de las dimensiones indica-
das:
>> eye(3,2)
ans =
1 0
0 1
0 0

Nota: Si se introduce la orden >> diag(A), donde A es una matriz, Matlab de-
vuelve el vector columna formado por la diagonal de la matriz argumento.
>> diag(A)
ans =
1
2
3
>> diag(diag(A))
ans =
1 0 0
0 2 0
0 0 3

6.1.3 Manipulación de matrices, submatrices


En ocasiones puede interesar cambiar elementos de una matriz, seleccionar alguna
columna o columnas, fila o filas, intercambiar filas, columnas, etc.
Para ilustrar de forma más sencilla dichas manipulaciones sobre las matrices A y B
definidas anteriormente, las autoras han agrupado todos los resultados en una tabla. El
lector puede comprobar cada uno de los casos detallados en la Tabla 6.2., la cual se
expone a continuación:

142

www.full-ebook.com
Introducción al álgebra matricial

Tabla 6.2 Ejemplos de manipulación de matrices I

OPERACIÓN SINTAXIS EJEMPLO SALIDA MATLAB


Cambiar el
valor numérico A(m,n)=p
del elemento >>A(2,4)=-1
am,n

Sustituye los
valores de la A(m,:)=v
fila m por el >>A(2,:)=ones(1,4)
vector v

Sustituye los
valores de la
columna n por A(:;4)=w >>A(:,4)=zeros(3,1)
el vector w

Intercambiar
filas
A([fi,fj],:)=A([fij,fi],:) >>A([2,3],:)=A([3,2],:)
Fila fi por fj

Intercambiar
columnas
A(:,[ck;cl])=A(:,[cl;ck]) >>A(:,[1;2])=A(:,[2;1])
columna ck por
cl

Submatriz de A
formada por las
A(f1 : fn, : ) >>A(1:3,:)
filas entre f1 y
fn
Submatriz de A
con elementos A(f1 : f2, c1 : c2)
consecutivos de >>A(1 : 2, 3 : 4)
las filas y co-
lumnas
Submatriz todas
las filas de A y
las columnas de A( : , ck: cl) >>A( : , 2 : 3)
la ck a la cl

143

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Tabla 6.3 Ejemplos de manipulación de matrices II

OPERACIÓN SINTAXIS EJEMPLO SALIDA MATLAB


Submatriz de A
al extraer filas y
columnas no A([f1 fk],[c1,c8,cn]) >>A([1 3],[1,3,4])
consecutivas

al final >>F=
[A;F] ones(1,4);Af=[A;F]

al principio >>F=
Añadir a una
matriz una fila [F;A] ones(1,4);fA=[F;A]

entre las fila fi y fi+1 >>H=


[A(1:2,:);F;A(3,:)]
[A(1:fi:);F;A(fi+1:f
m:)]
al final >>C=
[C A] ones(3,1);cA=[C A]

Añadir a una al principio >>C=


matriz una [A C] ones(3,1); Ac=[A C]
columna
Entre ck y cck+1 >>J=
[A(:,1:2) C A(:,3:4)]
[A(:,1:ck) C
A(:,ck+1:cn)]

Nota: todos los cambios se hacen partiendo de la matriz A introducida.

144

www.full-ebook.com
Introducción al álgebra matricial

6.1.4 Operaciones con matrices


Las operaciones que pueden realizarse con matrices son: suma de matrices, producto de
un escalar por una matriz y producto de matrices.
Matlab permite realizar las operaciones habituales del álgebra, algunos ejemplos pue-
den consultarse en la tabla 6.4. También pueden realizarse operaciones sobre elemen-
tos de una matriz o entre elementos de matrices. Los ejemplos correspondientes pue-
den consultarse en la tabla 6.5.
Tabla 6.4 Operaciones algebraicas con matrices.

OPERACIONES Tipo de operador SINTAXIS EJEMPLO


suma (+) o resta
(-) >>A+ones(3,4)
mismo tamaño
(mun)
Producto (*) >>B*A
(mun)(nup)

Potencias (^) >>B^2


sólo matrices
Operaciones cuadradas
algebraicas con
matrices
>>A’
Matriz traspues-
ta

Matriz Inversa >>A^-1


Tamaño nun No es cuadra-
da(3u4)
>>B^-1
Cuadra-
da(3u3)

145

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Para aplicar operaciones entre elementos de matrices se requiere que las matrices ten-
gan el mismo tamaño.
Tabla 6.5 Operaciones elemento a elemento

OPERACIÓN SINTAXIS EJEMPLO

Producto de com- >>A.*zeros(3,4)


ponentes

Cuadrado de com- >>A.^2


ponentes

División de compo- >>A./A


nentes

Matriz elevada a >>A.^A


matriz

6.1.5 Otras funciones implementadas en Matlab


Matlab tiene entre sus herramientas obtener la traza, el determinante de una matriz,
hallar su tamaño, redimensionar una matriz, etc. Todas ellas se muestran en la tabla
6.6. Los ejemplos se han realizado sobre las matrices A o B, introducidas al principio
del capítulo.

§1 2 3 5· § 4 3 2·
A ¨¨ 3 2 4 1 ¸¸ , B ¨ 5 3 0¸
¨ ¸
¨6 4 3 2¸ ¨2 5 9¸
© ¹ © ¹
Si queremos obtener el rango de las matrices usamos el comando >>rank
>>rank(A)
ans
3

146

www.full-ebook.com
Introducción al álgebra matricial

Tabla 6.6 Más funciones de Matlab

OBJETIVO SINTAXIS SALIDA DE MATLAB

>>A( : )

Cambia de matriz
a vector

Tamaño de la >>size(A)
matriz

Redimensiona >>reshape(A,
una matriz 4, 3)
A (m u n) en
otra de tamaño
pu q

Determinante >>det(B) ans=


11.0000

Traza >>trace(B)
Suma de los ele-
mentos de la dia-
gonal

Forma Escalonada >>rref(A)


reducida de una
matriz

147

www.full-ebook.com
Matlab para Matemáticas en ingenierías

También es posible voltear las matrices como se muestra en la siguiente tabla


Tabla 6.7 Uso del comando flip

OBJETIVO SALIDA DE MATLAB

voltear los elementos de vector o


matriz
>>flip
>>flip([1 2 3 4])
>>flip([1; 2; 3 ;4])
>>flip (B)

voltear de izquierda a derecha


fliplr

voltear de arriba a bajo


flipud

Nota: El comando >>flip(A) puede aplicarse tanto a matrices, como a vectores


columna o fila, actuando de diversa forma según sea el argumento de entrada.
Así:
a) Si A es una matriz, >>flip(A) devuelve otra matriz de las mismas dimensiones
recorrida de abajo a arriba:

148

www.full-ebook.com
Introducción al álgebra matricial

>> A=[1 2 3 5;3 2 4 1;6 4 3 2]


A=
1 2 3 5
3 2 4 1
6 4 3 2
>> flip(A)
ans =
6 4 3 2
3 2 4 1
1 2 3 5

b) Si A es un vector fila, como no puede recorrerlo de abajo a arriba, devuelve el


vector recorrido de izquierda a derecha. Es decir, en este caso hace lo mismo que el
comando >>fliplr(A):
>> C=[ 1 2 3 4 5]
C=
1 2 3 4 5
>> flip(C)
ans =
5 4 3 2 1
>> fliplr(C)
ans =
5 4 3 2 1

c) Si A es un vector columna, de nuevo lo devuelve recorrido de abajo a arriba.


En este caso coincide con el comando >>flipud(A)
>> D=[1;2;3;4;5]
D=
1
2
3
4
5

149

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>> flip(D)
ans =
5
4
3
2
1
>> flipud(D)
ans =
5
4
3
2
1
Es decir, el comando >>flip actúa tanto sea el argumento de entrada matriz o vector,
haciendo la operación adecuada en cada caso. Sin embargo, cuando se usen los coman-
dos >>fliplr y >>flipud, si no pueden efectuar su acción sobre la matriz introducida, la
devolverán tal cual:
>> fliplr(D) %recordemos que D es vector columna
ans =
1
2
3
4
5
>> flipud(C) %recordemos que C es vector fila
ans =
1 2 3 4 5

Nota: El comando >>fliplr se utiliza también para rellenar áreas (consultar


ejemplos del Capítulo de gráficos)

150

www.full-ebook.com
Introducción al álgebra matricial

6.2 Clasificación y resolución de sistemas de ecuaciones lineales


Un sistema lineal de m ecuaciones y n incógnitas x1, x2, ..., xn es el conjunto de m
igualdades:
a11 x1  a12 x2  "  a1n xn b1 ½
a21 x1  a22 x2  "  a2n xn b2 °°
¾
# # " # # °
am1 x1  am 2 x 2  "  a m n xn bm °¿

El sistema de ecuaciones lineales queda determinado cuando se conozca la matriz que


forman sus coeficientes y sus términos independientes, situados en la misma posición
relativa que ocupaban en el sistema.

Denominación de matrices asociadas a un sistema

Matriz de coeficientes Matriz de términos Matriz ampliada


independientes

§ a11 a12 " a1n · § b1 · § a11 a12 " a1n b1 ·


¨a a22 " a2 n ¸ b ¨a a22 " a2 n b2 ¸
A ¨ 21 ¸ b ¨¨ 2 ¸¸ A b ¨ 21
# # # # # # # ¸
¨a am 2 " amn ¸ ¨b ¸ ¨a am 2 " amn bm ¸¹
© m1 ¹ © m¹ © m1

El sistema se escribe matricialmente como: AX=b


§ a11 a12 " a1 n · § x1 · § b1 ·
¨ a 21 a 22 " a 2 n
¸ ¨ x2
¸ ¨b ¸
¨ ¸ ¨ ¸= ¨ 2¸
¨ # # # ¸ ¨ # ¸ ¨# ¸
¨ ¸ ¨ ¸ ¨ ¸
© am 1 am 2 " amn ¹ © xn ¹ © bm ¹

6.2.1 Clasificación de sistemas de ecuaciones


Dada una matriz A, se denomina rango de A, y se escribe rg(A), al número de unos
principales que aparecen en cualquier forma escalonada de la matriz A.

Clasificación de sistemas en función del rango (Rouché-Frobenius)

En la siguiente tabla, n denotará el número de incógnitas del sistema a clasificar, tal y


como se indica en las notaciones empleadas en párrafos superiores.

151

www.full-ebook.com
Matlab para Matemáticas en ingenierías

CRITERIO CLASIFICACIÓN
rg (A)< rg (A|b) Sistema Incompatible
rg (A)= rg (A|b)=n Sistema Compatible Determina-
do
rg (A)= rg (A|b)<n Sistema Compatible Indetermi-
nado (donde nº de paráme-
tros=n-rg(A))

El comando que tiene Matlab para calcular el rango de matrices es >>rank(A).


Se conocen diversos procedimientos para clasificar y resolver sistemas de ecuaciones.
Aunque hallando directamente los rangos de las matrices A, y la matriz ampliada, A|b,
(>>rank(A), rank(Ab)) pueden ser clasificados según la tabla anterior.

Clasificar sistemas usando la función >>rref


>> rref(A) devuelve la forma escalonada reducida de la matriz A

Ejemplo 6.2 Clasificar los sistemas de ecuaciones lineales siguientes con el comando
>>rref

x y z 1½
(a) x °
y z 1¾
x y z 1°¿

x y z 1½
(b) 2 x °
4 y 2 z 2¾
2 x 3 y 2 z 2 °¿

x 4 y  z 3½
(c) 3x  y 2 z °

2 x 5 y  z 1°¿

Primero, se introducen las matrices de coeficientes y las de términos independientes


para construir la matriz ampliada de cada apartado.

152

www.full-ebook.com
Introducción al álgebra matricial

Una vez obtenida la matriz escalonada reducida, se procede a clasificar y resolver el


sistema para cada caso. Las soluciones de cada sistema se han volcado en la tabla 6.8,
que se muestra a continuación:
Tabla 6.8 Soluciones de los sistemas y clasificación

>>rank(A)=3 >>rank(B)=2 >>rank(C)=2

>>rank([A,b1])=3 >>rank([B,b2])=2 >>rank([B,b3])=3

SCD SCI SI

x=1,y=1,z=1 x+z=1,y=1, zԹ No tiene solución

Es evidente que los rangos se podrían haber calculado directamente con el comando
>>rank, pero no era ese el objetivo de este ejemplo.
Para resolver los sistemas, basta partir de la forma escalonada reducida e ir haciendo
sustitución regresiva; es decir, despejar de la última ecuación obtenida la variable que
queda aislada e ir sustituyendo en las ecuaciones anteriores.

153

www.full-ebook.com
Matlab para Matemáticas en ingenierías

6.2.2 Resolución de sistemas usando la función: >>inv(A) o A-1


Dado un sistema de ecuaciones escrito matricialmente como AX=b, siempre que exista
la matriz inversa de A (det(A)0), la solución del sistema viene dada por la expresión
X= A-1 b.

Nota: Únicamente se puede recurrir a la función >>inv(A) si la matriz de coefi-


cientes es invertible, es decir, si el determinante es no nulo. Pero en ocasiones,
aun siendo la matriz invertible, si posee un valor del determinante muy próximo
a cero, Matlab puede interpretarlo como nulo y no permitir calcular su inversa.
Por lo tanto, para estos casos deberá aplicarse otro método.
Si se calculan los determinantes para cada sistema propuesto, a partir del resultado se
concluye

(valor próximo a
cero)
Tiene inversa No tiene inversa No tiene inversa

x=1,y=1,z=1

6.2.3 Resolución de sistemas usando división matricial a la izquierda: A\b


Aplicando esta operación para resolver el sistema AX=b1 del ejemplo anterior, se ten-
drá:
>> A\b1 % devuelve la misma solución que con el cálculo de la inversa
ans =
1
1
1

154

www.full-ebook.com
Introducción al álgebra matricial

Nota: de nuevo este método sirve solo cuando los sistemas son compatibles de-
terminados.

6.2.4 Resolución de sistemas usando la función: >>solve


La función >>solve implementada en Matlab resuelve ecuaciones y sistemas de ecua-
ciones lineales (ya explicado este comando en la parte de Análisis en el Capítulo de
Operaciones básicas). Recordar que >>solve trabaja con variables simbólicas, así que o
previamente se declaran como simbólicas, o bien los argumentos se escriben con comi-
llas simples. La resolución se muestra en la tabla 6.6.
También se puede acceder a la ayuda que ofrece el propio programa:
>>help doc solve

x  y z 1½
°
La resolución del sistema (a) x  y z 1¾ del Ejemplo 6.2 mediante solve
x y z 1°¿

x=
1
>>[x,y,z]=solve('-x+y+z=1','x- y=
y+z=1','x+y-z=1') 1
z=
SCD 1
La solución es única y el sistema se clasifica como Sistema Compatible Determinado.

155

www.full-ebook.com
Matlab para Matemáticas en ingenierías

x  y z 1½
Uso de solve para resolver el sistema (b) 2 x 4 y 2 z °
2 ¾ del Ejemplo 6.2
2 x  3 y 2 z 2 °¿

>>
[x,y,z]=solve('x+y+z=1','2*x+4*y+2*z=
2','2*x+3*y+2*z=2')
Warning: The solutions are parametrized
>> by the symbols:
[x,y,z]=solve('x+y+z=1','2+x+4*y+2*z=
z1 = C_
2','2*x+3*y+2*z=2')
> In solve at 190
x=
1 - z1
SCI y=
0
z=
z1

Nota: En caso de sistema compatible indeterminado el programa avisa con un


mensaje indicando el parámetro.

x 4 y  z 3½
Resolución del sistema (c) 3x  y 2 z °
1 ¾ del Ejemplo 6.2.
2 x 5 y  z 1°¿

Warning:Explicit solution could not be


found.
> In solve at 179
x=
>>[x,y,z]=solve('x+4*y+z=3','3*x-
y+2*z=1','2*x+-5*y+z=-1') [ empty sym ]
y=
[]

SI z=
[]

156

www.full-ebook.com
Introducción al álgebra matricial

6.2.5 Resolución de sistemas usando la Regla de Cramer


Para resolver sistemas de n ecuaciones con n incógnitas compatibles determinados, es
conocida la Regla de Cramer donde, dado el siguiente sistema cuadrado:
a11 x1  a12 x2  "  a1n xn b1 ½
a21 x1  a22 x2  "  a2 n xn b2 °°
¾
# # " # # °
an1 x1  an 2 x2  "  ann xn bn °¿

puede ser resuelto mediante:


b1 a12 " a1n a11 b1 " a1n a11 a12 " b1
b2 a22 " a2n a21 b2 " a2n a21 a22 " b2
# # % # # # % # # # % #
bn an 2 " ann a n1 bn " ann a n1 an 2 " bn
x1 , x2 ,} , x2
a11 a12 " a1n a11 a12 " a1n a11 a12 " a1n
a21 a22 " a2 n a21 a22 " a2n a21 a22 " a2n
# # % # # # % # # # % #
an1 an 2 " ann an1 an 2 " ann a n1 an 2 " ann

a11 a12 } b1i a1i 1 } a1n


a21 a22 } b2i a2i 1 } a2 n
# # # # # # #
an1 an 2 } bni ani 1 } ann
Es decir, en general xi
| A|
x1  x2 + x3 =1 ½
°
Ejemplo 6.3 Resolver el siguiente sistema mediante Cramer: x1  x2  x3 =1 ¾
2 x1  x2  x3 =1 °¿

>> A=[1 1 1;1 -1 1;2 1 1],b=[1;1;1],Ab=[A b]


A=
1 1 1
1 -1 1
2 1 1

157

www.full-ebook.com
Matlab para Matemáticas en ingenierías

b=
1
1
1
Ab =
1 1 1 1
1 -1 1 1
2 1 1 1
>> rank(A) %primero se comprueba mediante rangos que el sistema es SCD
ans =
3
>> rank(Ab)
ans =
3
Por lo tanto, el sistema es COMPATIBLE DETERMINADO, y puede ser resuelto
usando la Regla de Cramer. Así:
>> x1=det([b A(:,2) A(:,3)])/det(A),x2=det([A(:,1) b A(:,3)])/det(A),x3=det([ A(:,1)
A(:,2) b])/det(A)
x1 =
0
x2 =
0
x3 =
1
O bien, también puede escribirse:
>> x=[det([b A(:,2) A(:,3)])/det(A),det([A(:,1) b A(:,3)])/det(A),det([A(:,1) A(:,2)
b])/det(A)]
x=
0 0 1

158

www.full-ebook.com
Introducción al álgebra matricial

x Programando Cramer:
Para no ir poniendo en cada caso la matriz de coeficientes en la que se reemplaza el
vector de los términos independientes y así aplicar Cramer, se puede programar el mé-
todo en Matlab. Debe hacerse desde el Editor de Matlab y usando sentencias de pro-
gramación. Los bucles en Matlab se realizan a través del comando for o while y las
condiciones mediante la estructura if. Para ir al editor, bastará seleccionar en el menú la
opción New Script:

Figura 6.1 Cómo acceder al editor de Matlab

Una vez abierta la ventana del Editor

Figura 6.2 Editor de Matlab

159

www.full-ebook.com
Matlab para Matemáticas en ingenierías

ya puede escribirse en él. Los ficheros creados tendrán extensión .m y reciben el nom-
bre con el que se guarda el fichero. Asegurarse de que el nombre del fichero coincida
con el de la función o instrucción que se crea (es el nombre que Matlab, además, le
pone por defecto). Este fichero en cuanto es guardado aparecerá en la ventana de Cu-
rrent Folder, siempre que esté seleccionada la ruta adecuada para poderlo ejecutar:

Figura 6.3 Acceso desde Current Folder a una función

Las autoras han creado para su asignatura una función que aplica la regla de Cramer
(se llamará cramer). Aunque no se adjunta aquí dicha función, sí se expondrán ejem-
plos de su uso para ilustrar Cramer más ampliamente, e iniciarse un poco con el tema
de programación.
Una función se crea directamente, siempre que conozcamos su estructura, o bien cli-
cando en el icono desplegable de New desde el Editor, y ahí seleccionando function.
Para poder usarla posteriormente, en la sesión de trabajo, debe estar cargada y tener la
ruta donde está almacenada en Matlab. Si se duda acerca de lo que hace o de los argu-
mentos de entrada, teclear en la Command Window:
>> help cramer
Este programa calcula la solución de un sistema de n ecuaciones
con n incógnitas que sea SCD mediante la Regla de Cramer.

Los argumentos de entrada de esta función deben ser:


1.- en primer lugar la matriz de los
coeficientes
2.- en segundo lugar el vector columna de los términos

160

www.full-ebook.com
Introducción al álgebra matricial

independientes.
El argumento de salida será la solución del sistema.
El programador de una función habrá puesto comentarios previos a la primera instruc-
ción, que son los que se obtienen cuando se pide la ayuda con el comando >>help. Su
ejecución indicará si la Regla de Cramer es o no aplicable, y en caso de respuesta afir-
mativa resolverá el sistema.

Ejemplo 6.4 Resolver mediante Cramer los siguientes sistemas:

x1  x2 + x3 =1 ½
x  2x2 =-1½ °
a) 1 ¾ b) x1  2x2 +3 x3 =1 c) x1  x2  x3 =1 ¾
2x1  4x2 =-2 ¿
2 x1  x2  x3 =1 °¿

Resolución:
a) Claramente es un sistema compatible indeterminado, por lo tanto no se puede usar
directamente la regla de Cramer, y así nos lo indicará el programa cramer:
>> cramer([1 2; 2 4],[-1 ;-2])
Error using cramer (line 16)
Aunque la matriz es cuadrada, el sistema NO es compatible determinado. NO podemos
usar la regla de Cramer
b) En este caso el sistema no es un sistema cuadrado, luego tampoco se puede aplicar
Cramer, hecho que también lo indicará función:
>> cramer([ 1 2 3],[1])
Error using cramer (line 22)
La matriz no es cuadrada. NO podemos aplicar Regla de Cramer
c) Este sistema de momento es cuadrado, luego se introducen las matrices argumento:
>> cramer(A,b)
La matriz es cuadrada y el sistema es Compatible Determinado. Podemos aplicar Re-
gla de Cramer
x=
0 0 1
Observar que la función cramer precisa de 2 argumentos, la matriz de coeficientes y el
vector columna de términos independientes. Si no se le proporcionan, devolverá la

161

www.full-ebook.com
Matlab para Matemáticas en ingenierías

solución nula y un mensaje de error avisando de que no hay suficientes argumentos de


entrada:
>> cramer([1 1;1 1])
x=
0 0
Error using cramer (line 10)
Not enough input arguments.

De todas formas, para aquel alumno interesado en la programación y que desee tener el
código empleado, o bien podrá pedir una vez cargado
>>type cramer, saliendo por pantalla en la Command Window el código del programa,
o bien
>>edit cramer, que abrirá la ventana del editor y accederá al programa desde ahí.
(Matlab usa colores para indicar las sentencias de programación –azul-, los comenta-
rios –verde-, las asignaciones o instrucciones –negro-, las salidas de texto por pantalla
–morado-. Ayudando así a una mejor comprensión del código del programa).

6.2.6 Resolución de sistemas de ecuaciones dependientes de parámetros


Para resolver sistemas de ecuaciones lineales con parámetros hay que recurrir a aplicar
Gauss para obtener la forma escalonada asociada al sistema. De este modo el usuario
clasifica y obtiene las soluciones.
Para ello deben realizarse operaciones elementales sobre filas .Si la matriz es A, las
filas de la matriz se identifican como A(1,:){Fila 1; A(2,:){Fila 2, etc. En la tabla
posterior se indican cómo efectuarlas:

Tabla 6.9 Operaciones elementales con Matlab

OPERACIONES ELEMEN- OPERACIÓN SOBRE LA CÓMO SE EXPRESA EN MATLAB


TALES POR FILAS MATRIZ A
Intercambio de filas Intercambiar F1 por las Definimos la nueva matriz como A1
F2 la matriz A
Fi lFj >>A1=[A(2,:);A(1,:);A(3,:)]
Multiplicación de una la fila 3 por (1/4) Definimos la nueva matriz como A2
fila por un número no
>>A2=[A(1,:);A(2,:); (1/4)*A(3,:)]
nulo k Fj
Sumar a una fila un múl- F2 la cambio por F2- Definimos la nueva matriz como A3
tiplo de otra (1/4)F1
>>A3=[A(1,:);A(2,:)- (1/4)*A(1,:);
Fi +k Fj A(3,:)]

162

www.full-ebook.com
Introducción al álgebra matricial

Ejemplo 6.5 Estudiar y resolver en función de m y p Թǡ el sistema de ecuaciones

x  y z 1½
°
x  my  z 1¾
px  y  z 1°¿

Resolución.
1º Definiendo como simbólicas las variables m y p, se introduce la matriz ampliada y
se aplican operaciones elementales sobre filas para obtener la matriz escalonada aso-
ciada al sistema de ecuaciones.

Se ha obtenido la matriz escalonada asociada al sistema.


2º Sustituir los valores de p y m que pueden modificar el rango, es decir, el número de
unos principales. Para clasificar se mira el número de unos principales y, para resolver,
se usará el comando >>rref. Los resultados en función de los valores de m y p se
muestran en la Tabla 6.10.

163

www.full-ebook.com
Matlab para Matemáticas en ingenierías

Tabla 6.10 Resultados de clasificación dependiendo de los valores de m y p

Caso m=1, pz1 Caso mz1, p=1 Caso m=1, p=1 Caso mz1, pz1

>>rank(A)=2 >>rank(A)=2 >>rank(A)=1 >>rank(A)=3


>>rank([A,b])=2 >>rank([A,b])=2 >>rank([A,b])=1 >>rank([A,b])=3
SCI SCI SCI SCD

x+y=1, z=1 zԹ x+z=1,y=1, z Թ x=1-y-z, x=0, y=0, z=1


z Թǡ y Թ

6.3 Ajustes de datos (mínimos cuadrados)


El ajuste de curvas se utiliza cuando se tiene una serie de datos calculados y se desea
conocer valores intermedios no conocidos, o también, en aquellos casos en que se
desee una versión simplificada de una función que se ajuste a un número de valores
concretos, y posteriormente usar la función simplificada para obtener nuevos valores.
Si los datos no son muy exactos, o tienen asociado un error (ruido), entonces la mejor
manera es establecer una sola curva que represente la tendencia general de los datos
observados. Este procedimiento se conoce como REGRESIÓN LINEAL, cuyo método
más sencillo es la regresión por mínimos cuadrados.
La forma de realizar ajustes mediante Mínimos Cuadrados en Matlab es usando el co-
mando >>polyfit(x,y,n), donde:
Ͳ x e y son vectores que contienen los datos puntuales que se desean ajustar

164

www.full-ebook.com
Introducción al álgebra matricial

Ͳ n es el número de datos
Ͳ p son los coeficientes del polinomio de ajuste.
La función >>polyfit se utiliza para obtener el ajuste sobre m puntos, para cualquier
grado indicado por n. Si n=1 ajustamos a una recta; n= 2 será un parábola, etc.
La salida son los coeficientes del polinomio. El número de coeficientes depende del
grado del polinomio que pidamos para ajustar.

Coeficiente de correlación:
Para estudiar el grado de relación lineal que existe entre dos variables, se calcula el
coeficiente de correlación lineal R, con R ࣅ[-1,1]. Si el coeficiente de correlación lineal
está próximo a 1, los datos se agrupan en torno a una recta de pendiente positiva; si
está próximo a -1, los datos se agrupan en torno a una recta de pendiente negativa.
Cuanto más alejado del valor 1 o -1, más dispersa se encuentra la nube de puntos de la
curva ajustada.
Cuando el valor de R es positivo, indica que la relación entre las variables es directa, es
decir, a mayor cantidad de una variable, mayor cantidad de la otra. Mientras que si da
un coeficiente de correlación negativo, la relación sería indirecta, a mayor valor de una
variable menor valor de la otra.
Matemáticamente el coeficiente de correlación de Pearson viene dado por la expresión:
ߪ௫௬
ܴൌ
ߪ௫ ߪ௬
donde ߪ௫௬ es la covarianza de las variables, y ߪ௫ ߪ௬ el producto de las desviaciones
típicas de x e y respectivamente.
En Matlab, el comando >>cov(X), donde X es una matriz de datos, o bien >>cov(X,Y)
donde X e Y son los vectores de datos de las dos variables a analizar, devuelve una
matriz C donde los elementos de la diagonal son las varianzas de cada una de las varia-
bles. Con este matriz es con la que Matlab calcula el coeficiente de correlación.
R, en verdad, será de nuevo una matriz, donde la posición que al usuario le interesa
para conocer el coeficiente de correlación de Pearson, es la posición (1,2) o (2,1), ya
que es una matriz simétrica.
En Matlab se calcula mediante
>> corrcoef(x,y) % devuelve la matriz de correlación entre ambas variables

Una vez obtenida la curva de regresión, se pueden obtener las predicciones para la
variable y a partir de los valores conocidos de la variable x, sustituyendo conveniente-
mente o bien utilizando el comando >>polyval de MATLAB.

165

www.full-ebook.com
Matlab para Matemáticas en ingenierías

>> polyval(m,X) % evalúa el polinomio con coeficientes almacenados en el


vector m en todos los valores de la variable X

Ejemplo 6.6

Se han realizado medidas de la velocidad de un coche en (m/s) cada 0.5 segundos. Los
datos obtenidos se muestran en la siguiente tabla:

v (m/s) 1.58 3.26 4.84 6.38 8.24 9.72


t (s) 0.5 1.0 1. 5 2.0 2.5 3.0

Sabiendo que v= v0+at


(a) Ajustar los datos a un polinomio de grado uno (recta), indicando velocidad
inicial y aceleración.
(b) Representar los datos de las tablas.
(c) Escribir la orden adecuada para que la salida sea el vector de los valores esti-
mados de la aproximación dada por la recta.
(d) Representar la recta de regresión en la misma ventana que los datos del apar-
tado (b).
(e) A partir de la recta de regresión predecir la velocidad que alcanzará en el ins-
tante t=1 minuto.
(a)
>> v=[1.58 3.26 4.84 6.38 8.24 9.72];t=[0.5 1.0 1.5 2.0 2.5 3.0];
>> recta=polyfit(t,v,1)
recta =
3.2674 -0.0480
Por lo tanto, la recta de ajuste buscada es: v = 3.2674 - 0.0480*t
>> R=corrcoef(t,v)
R=
1.0000 0.9997
0.9997 1.0000
En este caso el coeficiente de correlación es R= 0.9997, próximo a 1, lo que indica una
fuerte relación lineal directa entre las medidas.

166

www.full-ebook.com
Introducción al álgebra matricial

(b) representación
>>plot(t,v,'o');xlabel('tiempo');ylabel('velocidad')

10

7
velocidad

1
0.5 1 1.5 2 2.5 3
tiempo

(c) >> polyval(recta,t) % la salida es el vector fila de velocidades


ans =
1.5857 3.2194 4.8531 6.4869 8.1206 9.7543
(d) Ahora se van a representar los valores de t frente a las velocidades que proporciona
el polinomio, denominado como vajuste
>> vajuste=polyval(recta,t)
vajuste =
1.5857 3.2194 4.8531 6.4869 8.1206 9.7543
>> hold on
>> plot(t,vajuste,'r')

167

www.full-ebook.com
Matlab para Matemáticas en ingenierías

10

7
velocidad

1
0.5 1 1.5 2 2.5 3
tiempo

(e) Al evaluar la velocidad que corresponde al instante t=1 minuto se obtiene


>> polyval(recta,60)
ans =
195.9977

En las diversas disciplinas científicas, en ocasiones, es necesario utilizar funciones


distintas a las polinómicas para ajustar datos. Por ello, se muestra en la tabla 6.11 otros
posibles ajustes de curvas:
Tabla 6.11 Relación de comando >>polyfit

NOMBRE FUNCIÓN EXPRESIÓN SINTAXIS DEL COMANDO

recta y=ax+b P=polifit(x,y,1)


Potencial y=bxm P=polyfit(log(x),log(y))
P=polyfit(x,log(y),1)
Exponencial y = bemx y=b10mx
P=polyfit(x,log10(y),1)
y= mLn(x)+l P=polyfit(log(x),y,1)
logarítmica
y=mlog(x)+b P=polyfit(log10(x),y,1)
1 P=polyfit(x,1./y,1)
recíproca y
mx  b

168

www.full-ebook.com
Introducción al álgebra matricial

6.4 Ejercicios
1.- Introducir la siguiente matriz sin hacerlo elemento a elemento.

§1 0 2 3 4·
¨0 1 1 1 1 ¸¸
¨
¨0 0 3 0 0¸
¨ ¸
¨0 0 0 3 0¸
¨0 0 0 0 3 ¸¹
©

§1 0 1 1 1·
¨0 1 1 1 1 ¸¸
¨
2.- Dada la matriz M ¨0 0 2 0 0¸
¨ ¸
¨0 0 0 2 0¸
¨0 0 0 0 2 ¸¹
©
(a) Introducir M en Matlab sin hacerlo elemento a elemento; es decir, utilizando
matrices especiales o los cambios explicados.
(b) Definir una matriz M1 a partir de M pero con una columna de unos entre la 3ª
y 4ª columna.
(c) Calcular para M: traza, rango, determinante e inversa.
(d) Obtener M2 a partir de M1 cambiando la última fila por los números que van
del 2 al 12.
(e) ¿qué cambios deben hacerse para generar a partir de M la matriz M3? siendo
M3 la siguiente matriz

§1 2 1 2 1 2 1·
¨1 0 1 1 1 2 1¸¸
¨
¨0 1 3 1 1 2 1¸
¨ ¸
M 3 ¨0 0 0 4 1 2 1¸
¨0 0 0 0 5 2 1¸
¨ ¸
¨1 2 3 4 5 6 1¸
¨6 5 4 3 2 1 1¸¹
©

169

www.full-ebook.com
Matlab para Matemáticas en ingenierías

§1 1 · § 1 2· §1 3 ·
3.- Sean las matrices A = ¨ ¸ , B= ¨ ¸ y C= ¨ 2 10 ¸ . Obtener la matriz
©3 4 ¹ © -1 0 ¹ © ¹
X que cumple la igualdad C (B+X) A-1 + CT = A

4.- Discutir el siguiente sistema de ecuaciones lineales en función del parámetro kԹ.

kx  y  z 1 ½
°
x  ky  z k ¾
x  y  kz k 2 °¿

5.- Resolver los siguientes sistemas usando Cramer. Primero hallando cada una de las
variables y luego usando la función cramer:
͵‫ ݔ‬െ Ͷ‫ ݕ‬൅ ʹ‫ ݖ‬െ ‫ ݐ‬൅ ͷ‫ ݓ‬ൌ ͵
Ͷ‫ ݔ‬൅ ͹‫ ݕ‬െ ͺ‫ ݖ‬൅ ʹ‫ ݐ‬ൌ ͻ
ͺ‫ ݔ‬൅ ͹‫ ݕ‬െ ͻ‫ ݖ‬൅ ʹ‫ ݐ‬െ ‫ ݓ‬ൌ ͷ ۗ
ۖ
͵‫ ݔ‬െ ‫ ݕ‬൅ ʹ‫ ݖ‬൅ ͻ‫ ݐ‬ൌ ͹
a) ൢ ǡܾሻ ͸‫ ݔ‬െ ʹ‫ ݕ‬൅ ͵‫ ݖ‬െ ͵‫ ݐ‬൅ Ͷ‫ ݓ‬ൌ ͸
ͷ‫ ݔ‬൅ ͸‫ ݕ‬൅ ʹ‫ ݖ‬െ ‫ ݐ‬ൌ ͵
ͷ‫ ݔ‬൅ Ͷ‫ ݕ‬൅ ͸‫ ݖ‬൅ ͺ‫ ݐ‬൅ ‫ ݓ‬ൌ ʹ ۘ
ۖ
ͺ‫ ݔ‬െ ͵‫ ݕ‬൅ ʹ‫ ݖ‬െ ‫ ݐ‬ൌ ͷ
ͺ‫ ݔ‬൅ ʹ‫ ݕ‬െ ͷ‫ ݖ‬൅ ͷ‫ ݐ‬െ ͻ‫ ݓ‬ൌ ͹ۙ

§ 7  x 16 8 ·
6.- Dada la matriz ¨ 16 7  x 8 ¸ , estudiar para qué valores de x Թ el
¨ ¸
¨ 8 8  5  x ¸
© ¹
determinante de la matriz se anula.

0 1 1 1
1 0 1 1 x 3
7.- Encontrar el valor o valores de xԹ que cumple  9.
1 1 0 1 4 1 x
1 1 1 0

k  20 x 2 k 0
2
8.- Resolver en función de x la ecuación k 2k  5 x k 0 , con
2
0 k k  20 x
k Թ.

170

www.full-ebook.com
Introducción al álgebra matricial

§ p q·
9.- Hallar la relación que debe existir entre los elementos de la matriz A ¨ ¸
© r s¹
§ 1 1·
para que conmute con la matriz B ¨ 0 1¸ .
© ¹

§ 1 1 0 ·
¨ ¸
10.- Sea la matriz A ¨ 0 2 3 ¸
¨0 0 3 ¸
© ¹
(i) Calcular A-1
(ii) Si B= A-I, ¿es invertible?

11.- Obtener la recta (pendiente, ordenada en el origen y coeficiente de correlación)


que mejor se ajuste a los puntos de la siguiente tabla, utilizando el método de los
mínimos cuadrados.
x y
1.2 1.0
2.0 1.6
2.4 3.4
3.5 4.0
3.5 5.2

171

www.full-ebook.com
www.full-ebook.com
7 Referencias bibliográficas

[1] Chapra, Steven C.(2012). Applied numerical methods with Matlab for
engineers and scientists Ed Mc Graw Hill International Edition.
[2] Estruch, V. & Sapena Piera, A. (2010) Lecciones de estadística. Ed Universitat
Politècnica de València.
[3] Giner,S. (2008) Curso de Matlab. /Apuntes de simulación de procesos I. Área
departamental Igenieria Química. Facultad de Ingenieria. Procedencia Internet
[4] Moore, H. (2007) Matlab para ingenieros.
[5] Marchand, P. (2003). Graphics and guis with MATLAB.
[6] Pabón Ángel, H. (2010). Probabilidad y estadística con matlab® para
investigadores MSc. Universidad de Cundimarca.
[7] Pateiro López , B. (2008-2009 ) Estadística ingeniería química USC. Curso.
[8] Polanía Puentes, J.A, Tutorial de matlab aplicado
[9] Rodríguez del Río, R. Gráficas con Matlab, Departamento de Matemática
Aplicada, Universidad Complutense de Madrid.
[10] Romero,R., Zúnica R. (2012). Métodos estadísticos en ingeniería. Ed
Universitat Politècnica de València.
[11] https://www.uam.es/personal_pdi/economicas/rociomar/descriptiva.htm
[12] http://www.unizar.es/fmi, Versión actualizada en agosto de 2006. Un curso de
MATLAB, Grupo FMI, Departamento de Matemática Aplicada, Universidad de
Zaragoza.
[13] http://dv.ujaen.es/docencia
(/ilias.php?ref_id=85771&from_page=33288&frame=_blank&obj_id=33286&
cmd=layout&cmdClass=illmpresentationgui&cmdNode=9i&base)
[14]
http://www.academia.edu/1743296/Manual_de_Introducci%C3%B3n_a_Matl
ab
[15] https://cristiancastrop.files.wordpress.com/2010/09/matlab_graficos.pdf
[16] Borrel i Nogueras, Guillem. Introducción informal al Matlab y Octave.
http://www.dc.uba.ar/materias/escuela-compluense/2012/CursoMatlabguillem.

173

www.full-ebook.com

Vous aimerez peut-être aussi