Sunteți pe pagina 1din 181

Matlab para matemticas

en ingenieras
Luca Agud Albesa
M Leonor Pla Ferrando

EDITORIAL
UNIVERSITAT POLITCNICA DE VALNCIA
Subido por:

Libros de Ingeniera Qumica y ms

https://www.facebook.com/pages/Interfase-
IQ/146073555478947?ref=bookmarks

Si te gusta este libro y tienes la posibilidad,


cmpralo para apoyar al autor.
Luca Agud Albesa
M Leonor Pla Ferrando

Matlab para matemticas


en ingenieras

EDITORIAL
UNIVERSITAT POLITCNICA DE VALNCIA
Los contenidos de esta publicacin han sido revisados por el Departamento de Matemtica
Aplicada de la Universitat Politcnica de Valncia

Coleccin Acadmica

Para referenciar esta publicacin utilice la siguiente cita: AGUD ALBESA, L; PLA FERRANDO, M L
(2015). Matlab para matemticas en ingenieras. Valencia: Universitat Politcnica de Valncia

Primera edicin, 2015 (versin impresa)


Primera edicin, 2015 (versin electrnica)

Luca Agud Albesa


M Leonor Pla Ferrando

de la presente edicin: Editorial Universitat Politcnica de Valncia


distribucin: Telf.: 963 877 012 / www.lalibreria.upv.es / Ref.: 6270_01_01_01

ISBN: 978-84-9048-421-0 (versin impresa)


ISBN: 978-84-9048-422-7 (versin electrnica)

Queda prohibida la reproduccin, distribucin, comercializacin, transformacin y, en general,


cualquier otra forma de explotacin, por cualquier procedimiento, de la totalidad o de cualquier
parte de esta obra sin autorizacin expresa y por escrito de los autores.
Para todas las personas
que nos han ofrecido su apoyo da a da.
Contenido
1 Captulo1EntornodetrabajoMatlab................................................................5
1.1 Introduccin.................................................................................................5
1.2 ComandosoinstruccionesenMatlab..........................................................7
1.3 Variablesyformatos....................................................................................8
1.4 Variablessimblicasynumricas................................................................9
1.4.1 Salidamatemticaeleganteporpantalla.............................................12
1.4.2 Generarvectoresovariables................................................................12
1.4.3 GenerarMatrices..................................................................................13
1.5 Funciones...................................................................................................13
1.5.1 Crearfunciones.....................................................................................13
2 Captulo2GrficosconMatlab........................................................................19
2.1 Introduccin...............................................................................................19
2.2 Funcionesdeunavariable,y=f(x)..............................................................20
2.2.1 AlgunosComandospararepresentar...................................................20
2.2.2 Subventanas..........................................................................................26
2.3 Representacindefuncionessimblicas...................................................27
2.3.1 Representacindefuncionescreadascomofichero.m.......................31
2.4 Funcionesatrozos:definicinyrepresentacin.......................................32
2.4.1 Funcinatrozosdesdefichero.m........................................................32
2.4.2 Funcinatrozosvectorizada................................................................33
2.5 Otroscomandosparadibujarcurvasenelplanoycurvasparamtricas:
>>ezplot.............................................................................................................35
2.5.1 Curvasenparamtricas.......................................................................37
2.6 Curvasplanasencoordenadaspolares......................................................38

I
2.6.1 Otroscomandosparacurvasencoordenadaspolares.........................39
2.6.2 Cambiosdecoordenadasrectangularesapolares...............................40
2.7 Rellenoderegionesdelplano....................................................................40
2.8 Funcionesdevariasvariables.Superficies.................................................43
2.8.1 Representacindefuncionesen3D:z=f(x,y).Comandosmsusados.43
2.8.2 Curvasdeniveldeunasuperficie.........................................................44
2.8.3 Curvasenelespacio..............................................................................45
2.8.4 Superficiesderevolucin......................................................................46
2.8.5 SuperficiesParamtricas.......................................................................51
2.8.6 Cambiosdecoordenadasacilndricasyesfricasyviceversa..............54
2.9 Ejercicios....................................................................................................54
3 Captulo3Operacionesbsicasconfunciones..................................................57
3.1 Polinomios..................................................................................................57
3.1.1 Polinomiointroducidocomovector....................................................57
3.1.2 Polinomiointroducidocomofuncin...................................................58
3.2 Dominiosdefuncioneseinecuaciones......................................................61
3.2.1 Comando>>solve..................................................................................61
3.2.2 Comando>>fzero(resolucinnumricaoaproximadadeecuaciones).62
3.2.3 Inecuacionesconvaloresabsolutos......................................................64
3.3 Simplificar,factorizar,expandirydemsoperacionesalgebraicas...........65
3.4 Clculodelmites.......................................................................................67
3.4.1 Lmiteslaterales....................................................................................67
3.4.2 Asntotas...............................................................................................68
3.4.3 Lmitesdefuncionesatrozos................................................................72
3.5 NmerosComplejos...................................................................................74
3.6 Derivadas....................................................................................................79

IV
3.6.1 Funcionesde1variable........................................................................80
3.6.2 Funcionesdevariasvariables...............................................................81
3.7 Integracin.................................................................................................81
3.7.1 Integralesimpropias.............................................................................82
3.7.2 Clculodereas....................................................................................84
3.8 Ejercicios....................................................................................................85
4 Captulo4Funcionesdevariasvariables.Ecuacionesdiferenciales.................89
4.1 Derivacindefuncionesdevariasvariables..............................................89
4.2 Vectorgradiente........................................................................................91
4.3 MatrizJacobianayJacobiano.....................................................................91
4.4 MatrizHessianayHessiano.......................................................................92
4.5 Puntoscrticosdefuncionesdevariasvariables.......................................95
4.6 Integracindefuncionesdevariasvariables.............................................99
4.7 Ecuacionesdiferenciales..........................................................................103
4.7.1 SistemasdeEDOs...............................................................................105
4.7.2 MtodosnumricosparalaresolucindeEDOs...............................106
4.8 Ejercicios..................................................................................................107
5 Captulo5IntroduccinalaEstadsticaDescriptiva........................................111
5.1 Introduccin.............................................................................................111
5.2 Estadsticosyrepresentacin...................................................................114
5.2.1 Variablesestadsticas..........................................................................114
5.3 Distribucindefrecuencias.....................................................................115
5.3.1 Representacionesgrficas..................................................................116
5.3.2 EjemplosconMatlabdedistribucindefrecuenciasydiagramas.....117
5.4 Parmetrosestadsticosdeposicinydispersin...................................126
5.4.1 Parmetrosestadsticosdeposicin..................................................126

III
5.4.2 Medidasdedispersin........................................................................130
5.5 Ejercicios..................................................................................................135
6 Captulo6Introduccinallgebramatricial..........................................139
6.1 IntroduccinalasmatricesenMatlab.....................................................139
6.1.1 Generarmatrices.Operacionesconmatrices.....................................139
6.1.2 Matricesespeciales.............................................................................140
6.1.3 Manipulacindematrices,submatrices.............................................142
6.1.4 Operacionesconmatrices...................................................................145
6.1.5 OtrasfuncionesimplementadasenMatlab.......................................146
6.2 Clasificacinyresolucindesistemasdeecuacioneslineales................151
6.2.1 Clasificacindesistemasdeecuaciones.............................................151
6.2.2 Resolucindesistemasusandolafuncin:>>inv(A)oA1................154
6.2.3 Resolucindesistemasusandodivisinmatricialalaizquierda:A\b154
6.2.4 Resolucindesistemasusandolafuncin:>>solve...........................155
6.2.5 ResolucindesistemasusandolaRegladeCramer...........................157
6.2.6 Resolucindesistemasdeecuacionesdependientesdeparmetros162
6.3 Ajustesdedatos(mnimoscuadrados)....................................................164
6.4 Ejercicios..................................................................................................169
7 Referenciasbibliogrficas................................................................................173

IV
Captulo 1 1

Entorno de trabajo Matlab

1.1 Introduccin
Este libro consta de dos partes, una dedicada al lgebra: matrices, determinantes, sis-
temas de ecuaciones, etc; y otra enfocada al anlisis matemtico, donde se trabajarn
funciones, expresiones algebraicas, ecuaciones, derivadas e integrales. El paquete ma-
temtico que se emplea es Matlab, cuyo nombre responde a las siglas de Matrix Labo-
ratory.
Al abrir este paquete matemtico se observa que la pantalla se subdivide en varias
ventanas que se detallan a continuacin:
- La ventana Command Window (ventana central) es donde se introducirn 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 sesin 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.

5
Matlab para Matemticas en ingenieras

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


han introducido, permitiendo recuperarlos o bien arrastrndolos 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 funcin, Matlab abre una nueva ventana
de Figure, la cual se puede minimizar y mantener toda la sesin 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), tambin se abrir una nueva ventana donde Matlab permite programar o
crear funciones en ficheros con extensin .m.
La sesin 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 sesin
realizada. Si en cualquier momento se quiere volver a activar dicha sesin, 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 slo las variables creadas en la sesin, bastar realizarlo con
el comando >>save, o bien en File >>Save Workspace. Para recuperarlas en una nue-
va sesin de trabajo se cargan con el comando >>load y el nombre especificado cuan-
do han sido guardadas.

6
Entorno de trabajo Matlab

1.2 Comandos o instrucciones en Matlab


Los comandos en Matlab se escriben en minscula y sus argumentos entre parntesis.
Su escritura es en ingls y se ejecutan en cuanto se presiona la tecla enter.
Cuando hayan dudas de los argumentos de alguna instruccin, 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 clculo del mximo co-
mn 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 lnea de edicin
para poder modificar las expresiones.

Para interrumpir el funcionamiento de una instruccin de MATLAB se pulsan las te-


clas Control y C a la vez y despus enter. A veces, esta operacin 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 dndole al enter al final de cualquier instruccin
para que as se ejecute.
Si no se quiere que la ejecucin de un comando salga por pantalla, aunque s que sea
ejecutado, bastar con poner despus del comando un ;.
Al introducir una orden en la ventana Command Window que no quepa toda entera en
una misma lnea de instruccin, se puede terminar con y darle a enter. Matlab en-
tiende que no ha terminado la instruccin y sin aparecer el prompt del sistema, >>,
permite seguir escribiendo en la lnea siguiente, ejecutando luego la instruccin 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

7
Matlab para Matemticas en ingenieras

Si en una lnea de instruccin se introduce el smbolo %, cambia el color del texto y


automticamente 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 ejecucin sin variable de salida, Matlab ir guardando en ella ese resultado,
machacando el resultado anterior. Para guardar en una variable la operacin realizada,
se asignar con el =
>>a=gcd(3,12)
a=
3
Automticamente en la ventana del Workspace aparecer la variable a e indicar su
tipo y dimensin. 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 maysculas
y minsculas; 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 funcin 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 asignacin previa
eps ....................................................... como valor es 2.2204e-016.Tambin
puede utilizarse como comando
(mirar >>help eps en caso de que-
rer ms informacin)

Matlab almacena internamente los nmeros en formato de coma flotante normalizado;


es decir, notacin cientfica tal que, la parte entera es 0 y la primera cifra decimal es
distinta de cero (0.0003 sera 0.3*e03). Generalmente, por pantalla muestra el resultado
con el formato short, 4 dgitos decimales. Si interesa cambiar el formato, se consigue
con el comando
>>format tipodeformato

8
Entorno de trabajo Matlab

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


FORMAT SHORT son 5 dgitos, contando parte entera y decimal.
FORMAT LONG son 5 dgitos o 7
FORMAT SHORTE son 5 dgitos en coma flotante normalizada
FORMAT LONGE son 15 dgitos o 7 en coma flotante normalizada
FORMAT SHORTG elige el mejor formato con 5 dgitos de salida (adecuado si
trabajas en un vector con nmeros 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 ms informacin sobre los formatos de Matlab, el programa la


proporciona escribiendo
>> help format

1.4 Variables simblicas y numricas


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

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

9
Matlab para Matemticas en ingenieras

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

Nota: dependiendo de la versin de Matlab, esta ltima operacin de sustitucin


puede hacerla de forma directa. Por ejemplo, en la versin R2011a; sin embargo
en la versin R2013b hay que hacerlo como se ha indicado en el Ejemplo 1.1.
El comando >>subs siempre evala funciones de tipo simblico y el resultado que
devuelve es considerado tambin simblico. Si se define la funcin de otra forma, por
ejemplo con el comando >>inline, la instruccin >>subs no funciona; debe evaluarse
con su nombre directamente o con el comando >>feval.
Ejemplo 1.2 Define la funcin f(x)=x2-3x+2 con inline y evalala 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 ms 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 nmeros. Al efectuar operaciones con ellos, el resultado final puede verse afec-

10
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 operacin 1-
y comparar los resultados:

a) de forma numrica,
b) definiendo como simblico los nmeros.
Es evidente, sin ms que realizar los clculos, que esta operacin 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 pequeo. Esto se
debe al trabajo con decimales y su redondeo. La forma de solucionarlo sera:

>> 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 pequeo, 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 solucin 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 opcin para que evale bien vuelve a ser, definir este valor como
simblico:
>>syms pi,sin(pi)
ans=
0

11
Matlab para Matemticas en ingenieras

1.4.1 Salida matemtica elegante por pantalla


Matlab escribe por pantalla las expresiones matemticas 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 expresin matemtica:
>> pretty(f)
3 2
x - 6 x + 11 x 6
Otro ejemplo sera:

>> 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 logartmicamente entre
10-1 y 103.

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


rrespondiente al nmero 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 clculos elemento a elemento, todo esto se explica
con ms detalle en el Captulo 6.

12
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 ms sobre matrices y matrices implementadas ya por Matlab, consultar la
parte de lgebra.

1.5 Funciones
Matlab posee muchas funciones implementadas. Para saber cules basta teclear >>hel-
pwin y desde ah acudir a matlab\elfun, donde mostrar las funciones que tiene defini-
das. Entre las ms habituales destacan:
 Funciones seno y coseno: sin(x), cos(x),sind(x),cosd(x)
 Funciones seno y coseno hiperblico: sinh(x), cosh(x)
 Funcin tangente: tan(x)
 Funciones arcoseno, arcocoseno y arcotangente: asin(x), acos(x), atan(x)
 Funcin exponencial, logaritmo neperiano y logaritmo decimal: exp(x),
log(x), log10(x)
 Funcin valor absoluto: abs(x)
 Funciones hiperblicas: sinh(x),cosh(x),asinh(x), etc.

Nota: Matlab trabaja, salvo definicin distinta de la variable, con valores num-
ricos. Concretamente, para las funciones trigonomtricas, si no se declaran pre-
viamente como variables simblicas, entiende que son valores numricos 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 slo se va a indicar cmo
definirlas y evaluarlas. Para su representacin grfica consultar el tema de grficos.

13
Matlab para Matemticas en ingenieras

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

A. Definicin de funcin simblica usando Anonymus

Esta definicin se realiza mediante el smbolo @. Cuando las funciones son bsicas 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 composicin de funciones o la funcin 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 asignndole un nombre:
>> y(1)
ans =
2
>> y(0)
ans =
1
O tambin con el comando >>subs

>> subs(y,0)
ans =
1
B. Definicin de funciones simblicas mediante el comando >>inline

Los argumentos se introducen entre comillas simples.

De esta forma se hallan los valores de la funcin sin ms que calcular su imagen direc-
tamente o con el comando >>feval. Se detalla en el ejemplo siguiente

14
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. Definicin de funciones simblicas definiendo la variable como simblica

Para evaluar se utiliza el comando >>subs.

>> x=sym('x');p=2*x-5;
>> subs(p,1)
ans =
-3
D.- Definicin de funcin simblica 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
Matlab para Matemticas en ingenieras

>> 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 funcin a trozos:


 

1. Desde fichero .m
Esta definicin debe hacerse desde la ventana del Editor de Matlab, icono de NewScript
o ms directamente en NewFunction. 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 funcin.

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 funcin del Ejemplo 1.5, quedara
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
Entorno de trabajo Matlab

2. Vectorizada
x Para introducir y evaluar una funcin 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 Tambin puede definirse mediante Anonymus, en este caso hay que evaluarla,
de nuevo, llamndola 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 grficamente, dirigirse al Captulo 2, donde se indica cmo dibujar


cada una de las posibles definiciones.

17
Captulo 2
2

Grficos con Matlab

2.1 Introduccin
Este captulo se dedica a mostrar cmo 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 ms detalle algo de los comandos para grficos, tipos de ar-
gumentos que admiten o cualquier caracterstica suya, basta introducir el comando:
>> help nombredelcomando

y automticamente, Matlab proporciona una ayuda sobre dicha instruccin. Otra op-
cin 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 grficos en dos dimensiones y
con >>help graph3d proporciona ayuda para dibujar superficies.

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


la grfica, en el men de Herramientas: File>Save. Matlab permite guar-
darlas con diversas extensiones (por defecto las guarda con extensin .fig).
Para recuperar una figura, basta con teclear:

>> openfig('nombre')

19
Matlab para Matemticas en ingenieras

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 captulo todos los comandos ms importantes relacio-
nados con grficos -necesarios para muchas versiones anteriores de Matlab como
Matlab R2011a-, cabe destacar que en la versin de Matlab R2013b aparecen directa-
mente como iconos en la pestaa plots, y se activan sin ms que seleccionar la variable
o funcin 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 ms usado son los indicados a continuacin: Comando >>plot(x,y)
Comando >>fplot
Comando >>ezplot
D. Comando >> plot(x,y)

Es uno de los comandos ms sencillos, >>plot(a,b). Si, por ejemplo, se quiere dibujar
la grfica de la funcin 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
Grficos 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 funcin 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 Representacin de y=sinx , y=cosx

21
Matlab para Matemticas en ingenieras

En la figura 2.2 se han representado en la misma ventana dos funciones gracias al co-
mando >>hold on. Pueden seguir aadindose grficas en la misma figura, y para re-
presentar una grfica posterior en una ventana aparte indicarse con el comando >>hold
off. Otra forma de dibujar varias funciones en una misma ventana grfica, 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 smbolos, trazado y color entorno grfico

SMBOLO COLOR SMBOLO TIPO DE SMBOLO TPO DE LNEA


LNEA
y amarillo . puntos s cuadrados

m magenta o crculos d diamantes

c cian x equis ^ Tringulo (bajo)

r rojo + mases v tringulo (arriba)

g verde * asteriscos < Tringulo (izquierda)


b azul - lnea conti- > Tringulo (derecha)
nua
w blanco : lnea de p pentagrama
puntos
k negro -. guion- h hexagrama
t
- lnea de
guiones

Nota: En caso de utilizar algn smbolo para representar puntos de la grfica,


debe especificarse a continuacin el tipo de trazado, para forzar a que una dichos
puntos mediante una lnea.
Ejemplo 2.2 Representacin 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
Grficos con Matlab

>> v=[1.1,1.2,1.3,1.5,2];
>> plot(t,v); % representa una lnea 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 Representacin [t, v] lnea continua

>> plot(t,v,bo); %Si se quiere indicar cmo representar el tipo de puntos

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

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 Representacin [t, v] puntos y puntos con lnea

E. Comando >>fplot

La grfica del seno dibujada en el Ejemplo 2.1 tambin podra representarse mediante
el comando >>fplot con la siguiente orden:
>>fplot(sin(x),[0,2*pi])

La funcin >>fplot puede dibujar varias grficas 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 funcin a trozos o con asntotas, se le
exija un trazado discontinuo. Por defecto une mediante un trazo continuo.

23
Matlab para Matemticas en ingenieras

Respondera al siguiente comando:


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

Los trazados se pueden modificar desde la ventana de grficos en el men Edit/Figure


Properties/, botn derecho del ratn y seleccionando la funcin 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 dems operaciones debe es-
pecificarse: ./, .*, o bien .^ dependiendo de la operacin a realizar.

Ejes: En cuanto a los ejes, adems de poder cambiarlos desde la misma ventana de la
grfica como se ver en la siguiente seccin, tambin 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 logartmico en los ejes, basta utilizar estos comandos:

>>semilogx, >>semilogy, (eje x en logartmico y eje y en lineal, o vicever-


sa respectivamente)
>>loglog, (escalado logartmico para ambos ejes)
>>polar, para coordenadas polares (que sern descritas ms adelante)

F. Comando >>ezplot

A la hora de representar grficas, en general, es mucho ms sencillo utilizar el coman-


do >>ezplot.
Este comando dibuja tambin funciones definidas de forma implcita. Las variables
deben ser simblicas o ir escritas entre comillas simples. Adems dibuja perfectamente
los saltos de las funciones, o las asntotas, 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 grfica de la funcin en el intervalo [-5,3].

24
Grficos con Matlab

Se puede observar, en las Figuras 2.5 y 2.6, la diferencia de grficos que se obtienen al
representar la funcin 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 Representacin 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 Representacin usando >>fplot, en la segunda grfica con trazo discontinuo

Este comando ser desarrollado con mayor amplitud en secciones posteriores.

Captura de coordenadas: Si una vez representada la grfica se busca obtener las coor-
denadas de algn punto de la grfica, Matlab lo permite con la instruccin
>>ginput
En ese momento, aparece el cursor sobre la grfica y basta hacer click con el ratn en
cada punto del que se quiere obtener su posicin. Pulsando Enter se vuelve a la ventana
de comandos, donde aparecen las coordenadas de los puntos seleccionados.

25
Matlab para Matemticas en ingenieras

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

2.2.2 Subventanas
Cuando en una misma figura se desea visualizar varias ventanas con sus grficas co-
rrespondientes, se tiene el comando >> subplot.
Los argumentos de este comando son, el nmero de filas y columnas de ventanas y el
lugar que estas ocuparn.
Ejemplo 2.4

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

Figura 2.7 Subventanas grficas del Ejemplo 2.4

26
Grficos con Matlab

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

Figura 2.8 Opciones para modificar cada una de las grficas

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

2.3 Representacin de funciones simblicas


Para definir funciones o variables simblicas hay diferentes modos de hacerlo, algunos
ya explicados en el Captulo 1; es conveniente recordar que, para declarar la variable x
como simblica se har
>>syms x
o bien, con >>x=sym(x).

A. Representacin de funcin simblica definida usando Anonymus


Cuando las funciones a representar son bsicas 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 simblico.

27
Matlab para Matemticas en ingenieras

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 Representacin de f(x)= arctg(x) Figura 2.10 Representacin 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 Representacin de f(x)= sin(1/x)

B. Representacin de funcin simblica definida mediante el comando >>inline

Las funciones as definidas se dibujan, tambin, con el comando:


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

28
Grficos con Matlab

C. Representacin de funcin simblica 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 funcin, tambin 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 Funcin y=sin(x) con >>fplot

Nota: De todas formas, en general, para dibujar funciones simblicas -tanto de-
finidas va inline, va Anonymus, o va variable simblica o funcin entre comi-
llas simples-, es recomendable por su sencillez, el comando:
>>ezplot(funcin, intervalo)

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


no se le indica. Adems este comando ya le pone ttulo a la grfica con el nom-
bre de la funcin dibujada.

Ejemplo 2.6 Dibujar la funcin y=sin(x) definindola 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
Matlab para Matemticas en ingenieras

sin(x)

0.5

-0.5

-1

-6 -4 -2 0 2 4 6
x

Figura 2.13 Representacin del Ejemplo 2.5

Las figuras creadas en Matlab, se guardan y salvan sin ms que acceder a File/Save as
en el men de la ventana de Figure, con la extensin que ms interese.

Figura 2.14 Imagen de cmo guardar una figura

30
Grficos con Matlab

2.3.1 Representacin 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 funcin almacenada como fichero y no como variable (casos anteriores).
Para llamar a ese archivo desde cualquier sesin 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 simblica al ser introducida como argumento de entrada:

Figura 2.15 Introduccin de una funcin con el Editor

Para representarla se le referencia con el nombre puesto al archivo creado (debe coin-
cidir el nombre de la funcin con el nombre del archivo). Matlab pone este por defecto
pero hay que prestar atencin si se efectan modificaciones para no cambiarle el nom-
bre. Esta llamada se hace como argumento carcter, es decir, nombre del archivo:

Figura 2.16 Cmo dibujar una funcin .m

31
Matlab para Matemticas en ingenieras

2.4 Funciones a trozos: definicin y representacin


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

2.4.1 Funcin a trozos desde fichero .m


Si se quiere definir y representar, por ejemplo, la funcin siguiente:



se ha de utilizar un poco de programacin, ya que una funcin a trozos no es ms que
una sentencia de la forma: if, elseif, else, end.

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

En el Editor se introduce la siguiente funcin:


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
Grficos con Matlab

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

0
-5 0 5 10

Figura 2.17 Representacin de funcin a trozos con >>fplot

2.4.2 Funcin a trozos vectorizada


Directamente en la ventana Command Window, se introducen los distintos trozos de la
funcin mediante operadores lgicos. 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 lnea.
Ejemplo 2.8 Definir y representar la funcin 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('Funcin definida a trozos'),axis([-5 5 0 10])

33
Matlab para Matemticas en ingenieras

Funcin definida a trozos


10

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

Figura 2.18 Representacin 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 Representacin directa de funcin a trozos con trazo discontinuo

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

34
Grficos 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 funcin, o una funcin que vaya a presentar asn-
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 (ms detallado a continuacin).
x Para dibujar una funcin 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 lneas). 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-


mtricas: >>ezplot
El comando ms fcil de usar para dibujar curvas planas definidas por una frmula
matemtica (no por un conjunto de valores), es el comando
>>ezplot(f)
donde:
- f es una cadena de caracteres conteniendo la expresin de una funcin y=f(x),
- dibuja la funcin y=f(x) para x en el intervalo [-2,2]

35
Matlab para Matemticas en ingenieras

Directamente Matlab abrir una ventana grfica como primera representacin de la


figura; en ella, editando la figura y dndole al icono de Show Plot Tools and Dock
Figure pueden modificarse ejes, texto y ms propiedades del grfico.
>>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 Representacin con >>ezplot(f) y con >>ezplot (f,[a,b])

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


(x,y), dibujan la curva implcitamente 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 funcin definida en forma implcita 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 Representacin de f(x,y)=x y-1

36
Grficos con Matlab

2.5.1 Curvas en paramtricas


Sea una curva en paramtricas r(t) = (x(t), y(t)), con t [ a, b].
Una primera forma de dibujarla sera 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 paramtricas 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 grfica 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 grficas):
>>plot((t.*(t.^2-1))./(t.^2+1),(2*(t.^2-1))./(t.^2+1))

37
Matlab para Matemticas en ingenieras

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 representacin 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 ejecucin es
diferente. Minimizando un poco la ventana principal de Matlab, se consigue ver simul-
tneamente la Command Window y la ventana de grficas. 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 ejecucin depende del nmero 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 funcin 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 posicin del punto con el semieje positivo horizontal, medido en
sentido positivo, es 0.
Por lo tanto, la relacin 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
Grficos 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 Representacin 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 expresin de una funcin 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 roscea 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
Matlab para Matemticas en ingenieras

2.6.2 Cambios de coordenadas rectangulares a polares


Cuando se desea cambiar las coordenadas en las que viene expresada una funcin,
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 slo sirven para hallar puntos, es decir, los argumentos no
pueden ser variables simblicas. 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 ecuacin 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 ecuacin en polares de la circunferencia quedara:
r2 - 2cos(theta) r = 3.

Nota: Si la funcin se define va inline, en vez del comando >>subs, bastar


con evaluar la funcin 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 polgonos es ms 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 grficas, el cual se hallar
con el comando >>solve (este comando se desarrolla ampliamente en el siguiente cap-
tulo).

40
Grficos 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 representacin ser x[-2,2], la regin a pintar se encuentra
entre los puntos de corte, x[-1,1]. La representacin de las curvas, la regin 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
Matlab para Matemticas en ingenieras

En el caso de representacin de polgonos se puede proceder de dos modos diferentes,


como se muestra en los Ejemplos 2.16 y 2.17.

Ejemplo 2.16 Dibujar el tringulo cuyos vrtices son (0,0), (0,1) y (1,1). Rellenar el
rea encerrada por este tringulo.

>> x=[0,1,0];y=[0,1,1]; % Vrtices del tringulo 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 Representacin de relleno de un polgono 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, recorrindola 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 Representacin de relleno de un polgono usando >>fliplr

42
Grficos con Matlab

Nota: Se obtendra 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 Representacin de funciones en 3D: z=f(x,y). Comandos ms usados


Una superficie se define por la expresin z=f(x,y), siendo x,y las variables independien-
tes. Los comandos ms usados son:

Comando Dibuja (x,y) vara 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]
expresin de
>> ezmesh(f,[a,b,c,d]) dos variables z=f(x,y) en el rectngulo [a,b]u[c,d]

El proceso para dibujar consiste en crear una malla con segmentos coloreados, en fun-
cin de los valores de los extremos. Editando posteriormente la grfica, se pueden
cambiar colores, ejes y dems propiedades.
En caso de querer que los ejes X e Y se orienten al revs, en la ventana de la figura,
con los ejes seleccionados, se elige la opcin Reverse.

Ejemplo 2.18 Representar la superficie dada por la funcin 

>> 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
Matlab para Matemticas en ingenieras

Otros comandos interesantes para representar superficies son:


>>ezmesh(... , 'circ') ........................... dibuja la funcin correspondiente sobre
un crculo 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 lneas de nivel (isovalores) de la funcin 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 slido las distintas zonas determinadas por las lneas de nivel.

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

44
Grficos con Matlab

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


tneamente las lneas 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, adems, dibuja las lneas 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 paramtricas se tienen los comandos detallados a
continuacin:

>> plot3(x,y,z) dibuja una lnea en el espacio a travs 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 funcin deben ponerse entre
comillas simples)

45
Matlab para Matemticas en ingenieras

- dibujan la curva de ecuaciones paramtricas 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 revolucin


Matlab tiene implementadas algunas funciones para ello:

Cilindro: El comando >>cylinder(R,n) genera automticamente un cilindro de


revolucin de radio R, donde n es el nmero de puntos de la circunferencia de
la base del cilindro.
Si no se indica el segundo argumento, el nmero 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 tambin admite radios
variables R(t), donde t [ a, b]. De esta forma, puede ser utilizado para obtener las
grficas de diferentes tipos de superficies de revolucin, donde la generatriz es una
funcin 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 revolucin que se obtiene al girar la curva z=e-y
alrededor del eje OZ.

En este caso, la funcin radio es r=r(z), y por lo tanto ser y=-ln(z). Con lo que la
ecuacin de la superficie vendr dada por:

Para ello en Matlab se introduce:

46
Grficos 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 revolucin

Superficies de revolucin con respecto a cualquier eje

En el supuesto de que la superficie de revolucin no venga de girar alrededor del eje


OZ, debe tenerse especial atencin.

Ejemplo 2.21 Dibujar la superficie de revolucin que se obtiene al girar la curva


y= , alrededor del eje OX.

En este caso, la funcin radio es r=r(x) y por lo tanto ser y= . As, la ecuacin 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 revolucin mostrando como eje el vertical

47
Matlab para Matemticas en ingenieras

Esta no es la grfica esperada ya que el eje de rotacin debe ser el eje OX.
Sin embargo, la superficie es la correcta. Simplemente, puede interpretarse la represen-
tacin grfica 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 revolucin con los ejes indicados

Nota: En el caso de que querer dibujar una superficie de revolucin que gire con
respecto al eje OX, o bien eje OY, y obtener una representacin realista en di-
chos ejes, debe parametrizarse la superficie.
La parametrizacin 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 parmetro la variable que nos
da el radio.
Se ilustra esto mediante el siguiente ejemplo.

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

Se va a realizar tanto la representacin de la curva, como de la superficie de revolucin


obtenida. Como el giro se efecta con respecto al eje OY, la funcin radio es .
Y la ecuacin de la superficie de revolucin ser:

En este caso, la parametrizacin de las circunferencias vendra dada por:

48
Grficos con Matlab



Puede hacerse de varias formas:
Opcin 1: asignar a la variable y el parmetro t (como luego es un radicando, slo 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 orientacin de los ejes ha sido cambiada desde la ventana grfica, dndole a la op-
cin de Reverse para el eje OY. Tambin 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 aadir un


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

49
Matlab para Matemticas en ingenieras

Opcin 2: parametrizar de otra manera para que no haya radicales, esta vez asignar a la
variable y el valor t2, es decir, el parmetro 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 revolucin obtenida

Opcin 3: Con el comando >>cylinder. Este exige darle como argumento la funcin
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
rotacin 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 Ejecucin del comando >>cylinder

50
Grficos con Matlab

2.8.5 Superficies Paramtricas


Una superficie S puede ser representada por una funcin 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 paramtricas 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 paramtricas, 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 paramtricas 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 rectngulo [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 Representacin del helicoide

51
Matlab para Matemticas en ingenieras

Tambin 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 ecuacin z2=x2+y2 con z[0,1]. Parametrizar y re-
presentar para los valores de z[0,1].

Para realizar la parametrizacin, considrese 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 ecuacin 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 Representacin del semicono parametrizado

Ejemplo 2.24 Sea el paraboloide de ecuacin z=2-x2-y2 con z. Parametrizar y


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

Para realizar la parametrizacin, considrese 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
Grficos con Matlab

Sustituyendo en la ecuacin 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 Representacin 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
representacin:

1.5

0.5

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

Figura 2.38 Representacin conjunta del semicono y paraboloide

53
Matlab para Matemticas en ingenieras

2.8.6 Cambios de coordenadas a cilndricas y esfricas y viceversa


>>[TH,R,Z] = cart2pol(X,Y,Z) .............. pasa de coordenadas cartesianas a cilndricas.
>>[X,Y,Z] = pol2cart(TH,R,Z) .............. pasa de coordenadas cilndricas a cartesianas.
>>[TH,PHI,R] = cart2sph(X,Y,Z) ......... pasa de coordenadas cartesianas a esfricas.
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
elevacin desde el plano XY y R es el radio.
>>[X,Y,Z] = sph2cart(TH,PHI,R) ......... pasa de coordenadas esfricas a cartesianas

2.9 Ejercicios
1.- Representa las siguientes grficas:

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 grficas.

b) Adems 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 adems,
y= -x2 + 3x + 2, z= -x3 + 2x.

c) Qu se observa en las grficas anteriores? Cules son los coeficientes directores


de los polinomios en cada caso? Qu puede decirse de los lmites 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 funcin y = x ex2 con x variando entre -5 y 5 a intervalos de 0.05.


5.- Dibuja la superficie z= , en el rectngulo [-2,2]u[-2,2].

54
Grficos con Matlab


6.- Dibujar en la misma ventana las funciones , , . Qu puede

decirse sobre la relacin 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 representacin grfica, los valores de los lmites ms importantes
de las funciones anteriores: puntos frontera, lmites en los infinitos. Realizar analtica-
mente con Matlab dichos lmites.

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 revolucin 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 ecuacin de la Lemniscata de Bernoulli


. Hacerlo definiendo la funcin con variables simblicas y
tambin definiendo la funcin va inline.

13.- Representar las siguientes superficies en el intervalo indicado


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

55
Captulo 3
3

Operaciones bsicas 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 funcin. Dependiendo de cmo se trabaje con ellos, los
comandos a utilizar son diferentes.

3.1.1 Polinomio introducido como vector


En este caso se introducen slo los coeficientes del polinomio, ordenados desde el de
mayor grado hasta el trmino 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
Matlab para Matemticas en ingenieras

b) Si se quiere calcular sus races, se emplear el comando >>roots. En el Ejem-


plo 3.1 como se tiene un polinomio de grado 4 con coeficientes reales, tendr 4
races (tantas como el grado). Pudiendo ser 4 races 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 races 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 divisin 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 funcin


Lo primero ser definir la variable x como simblica y despus 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 cmo haya sido introducido. Si se ha hecho como
acaba de explicarse:
>> subs(p,0)
ans =
1
Pero tambin podra haberse definido como una funcin inline, directamente,
sin declarar x como variable simblica. 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
Operaciones bsicas con funciones

ans =
1
tambin directamente
>>p(0)
ans=
1
b) Para calcular sus races 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
funcin. Si hubiera varias deber especificarse cul de ellas es la que se desea
resolver ya que sino Matlab elige siempre la ms cercana alfabticamente 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

Tambin podra haberse hecho directamente, llamando al polinomio desde el


argumento. Obsrvese 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


atencin a que el = en Matlab slo indica asignacin. Cuando se desee in-
dicar una igualdad hay que usar el operador lgico de Matlab ==. Es con-
veniente tener especial cuidado aqu con las versiones de Matlab.
Por ejemplo en Matlab R2011a basta poner:

59
Matlab para Matemticas en ingenieras

>> 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 versin Matlab R2013b, entiende todas estas rdenes:

- Variable no simblica y polinomio simblico:

>> 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 simblica: aqu slo 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 ecuacin o un polinomio, slo se busca que saque por pantalla las
races reales, est la opcin:
>>solve(5*x^4-x^3+2*x-3, 'Real', true)
Si se buscan slo races positivas, pdase:
>>syms x positive, solve(5*x^4-x^3+2*x-3)

60
Operaciones bsicas con funciones

c) Finalmente, para calcular productos o divisiones de polinomios, se efecta


con las operaciones habituales.
El comando >>solve, lo desarrollamos en el prrafo posterior.

3.2 Dominios de funciones e inecuaciones


Para calcular dominios de funciones, es necesario recordar que:

a) Si las funciones son polinmicas, 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 ms que resolver ecuaciones o inecuaciones. Este


proceso en Matlab se ejecuta con el comando >>solve. Para ello, la variable debe ser
simblica o introducir la funcin entre comillas simples.

3.2.1 Comando >>solve


Este comando, que trabaja en simblico, resuelve tanto ecuaciones, inecuaciones como
sistemas. Hay que tener cuidado cuando se quiere resolver un sistema con parmetros,
en definirle todas las variables como simblicas e indicarle quin es el parmetro:
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: Tambin hay que prestar atencin 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
Matlab para Matemticas en ingenieras

Si en algn momento al ejecutar este comando no devolviera todas las soluciones de la


ecuacin sino slo una de ellas, es conveniente ejecutar la orden:
>>solve(ecuacin,x,IgnoreProperties,true)

Nota: Puede ocurrir que al resolver en Matlab una ecuacin tan sencilla como
sin(x)=0, slo devuelva una solucin de todas las existentes:
>> solve(sin(x))
ans =
0

O incluso, si se le pide que saque las races 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 continuacin.

3.2.2 Comando >>fzero (resolucin numrica o aproximada de ecuaciones)


Este hecho, que puede darse con ms ecuaciones, se resuelve usando funciones que
hallen las races de la ecuacin que se encuentren ms prximas a un nmero que el
usuario decida. Dicha accin la realiza el comando >>fzero.
Su argumento debe ser una funcin simblica. Como segundo argumento se introduce
o bien el punto al que la solucin buscada debe acercarse; o bien un intervalo donde se
verifique el Teorema de Bolzano;es decir, la funcin cambie de signo en dicho interva-
lo y por lo tanto seguro exista solucin en ese dominio especificado.

Ejemplo 3.2 Para encontrar los puntos de corte de la funcin 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 ms prximas, por ejemplo, a x=3, de la
siguiente forma:

>> fzero('sin(x)',3)
ans =
3.1416
Tambin podra haberse definido va inline o va Anonymus:
>>X = fzero(@sin,3)
X=
3.1416

62
Operaciones bsicas con funciones

O, de otra forma, si el argumento no es slo 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 operacin. Para solucionarlo deben
distinguirse los dos casos a estudiar.
Para que una fraccin 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 solucin en este primer caso viene dada por: [1,2)(3,)

Nota: si se hubiera definido la variable como simblica, en vez de slo declarar-


la, saldra directamente (segn ordenadores):
>> x=sym('x');solve(x-1>=0,x^2-5*x+6>0)

63
Matlab para Matemticas en ingenieras

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 solucin final sera:
Dom(f)= (Solucin del caso I) U (Solucin 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 inecuacin |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
Operaciones bsicas con funciones

Que evidentemente no son las soluciones de la inecuacin. Esto ocurre porque en


Matlab, para resolver inecuaciones, hay aplicar primero las propiedades y luego hacer
la unin o interseccin de los casos, segn convenga. Es decir, como
|x2-7x+12|<2 -2< x2-7x+12<2
Se resuelve por separado, pidiendo que obtenga slo las soluciones reales:

Caso I: hallar cundo -2< x2-7x+12


>> syms x, solve(x^2-7*x+12>-2, 'Real',true)
ans =
R_
Es decir, la solucin 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 solucin final es: Solucin Caso I Solucin Caso II= (2,5) .

3.3 Simplificar, factorizar, expandir y dems operaciones algebraicas


Cuando uno quiere trabajar con expresiones algebraicas, o polinmicas, en su forma
ms simplificada, o al contrario, expandir una expresin, 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
Matlab para Matemticas en ingenieras

En ocasiones, hay expresiones que Matlab las simplifica de forma automtica. 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 ms simples


posibles. Tambin 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 expresin introducida. Muy til para


recordar frmulas de igualdades notables o de desarrollos trigonomtricos.
>> expand((x-1)^2)
ans =
x^2 - 2*x + 1
O tambin por ejemplo:
>> syms x y
>> expand(sin(x+y))
ans =
cos(x)*sin(y) + cos(y)*sin(x)

COMANDO RESIDUE: Descompone una funcin racional en fracciones simples. Los


polinomios deben ser introducidos como vectores. La salida son los coeficientes de las
fracciones simples, tomando las races en orden decreciente.
Es importante indicar que en el caso de tener un denominador q(x) cuyas races sean

complejas, no se obtiene la descomposicin de que en ocasiones se busca para

despus integrar. Matlab las trata como races o bien simples o bien mltiples, segn
sea el caso. Si se quiere obtener algo parecido a esta descomposicin, podemos aplicar
los comandos >>diff(int(expresion)), cuando el denominador es un polinomio de
grado 2 con races complejas.

66
Operaciones bsicas con funciones


Ejemplo 3.5 Calcular la descomposicin en fracciones simples de

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


ans =
2.0000
-1.0000

Por lo tanto, la solucin sera:

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

3.4 Clculo de lmites


Para calcular lmites Matlab trabaja con variable simblica, 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 lmites 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 Lmites laterales


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

67
Matlab para Matemticas en ingenieras

>>syms x, limit((x^2-5*x+4)/(x-2),x,2)
ans =
NaN
Para ver el por qu no existe, se calculan los lmites laterales y se observa que dan
resultados distintos. Por lo tanto, el lmite no existir, como bien ha indicado Matlab.
El clculo de los lmites laterales se hace especificndolo como tercer argumento en el
comando anterior:
>>limit(expression,x,punto,Right), o bien
>>limit(expression,x,punto,Left).
Estos argumentos tambin pueden indicarse con minsculas.
>> 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 Asntotas

El clculo de las asntotas de una funcin no es ms que ir hallando los diversos lmites
en cada caso.
a) Asntotas verticales: la funcin f(x) tiene una asntota vertical en x=a, si
lim f x f .
x oa

De hecho, posee A.V. (asntota vertical) aunque el lmite no exista y aunque slo uno
de los lmites laterales d infinito.

Ejemplo 3.6 Hallar las asntotas verticales de f(x)= . Representar la funcin y la

asntota en la misma grfica.

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


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

68
Operaciones bsicas con funciones

Por lo tanto, se observa que no va a existir el lmite. Si se hallan los lmites 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 funcin y la asntota 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 Grfico de funcin con asntota 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 grfica to-
da unida, defnase la variable como un vector y despus indquese la asntota de
forma grfica.
Si se desea en la grfica cambiar colores, ejes, poner una leyenda, un ttulo o dems
propiedades, recordar que puede ser realizado desde la ventana de la grfica, o bien en
el men Edit> Properties Figure; o bien clicando en el ltimo icono de dicha ventana y
luego con el botn derecho del ratn acceder a ms propiedades.

b) Asntotas horizontales: la funcin f(x) tiene una asntota horizontal en y=b, si


lim f x b .
x of

69
Matlab para Matemticas en ingenieras


Ejemplo 3.7 Calcular las asntotas de la funcin . Representar dicha fun-

cin e indicar todas sus asntotas en la misma grfica.
>> syms x, y=1./log(x);limit(y,x,inf)
ans =
0
>> limit(y,x,1)
ans =
NaN

Por lo tanto, este lmite no existe. Se comprueba con los lmites 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 Grfico de funcin con asntota horizontal y vertical


c) Asntotas oblicuas: Para hallar las asntotas oblicuas, rectas de la forma y=mx+n,
deben verificarse dos propiedades:

70
Operaciones bsicas con funciones

Cuando se verifiquen estas dos propiedades, entonces se calcula n lim f x  mx .


xof
Con lo que la ecuacin de la asntota oblicua (A.O.) ser y=mx+n, con lo valores de m
y n obtenidos.
Observar que, por propia definicin, si hay asntotas horizontales ya no hay oblicuas y
viceversa.


Ejemplo 3.8 Calcular las asntotas de la funcin

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 asntota vertical.
Si se representa la funcin y la asntota:
>> 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 tambin se observa que existe una
asntota oblicua que va a ser calculada:

71
Matlab para Matemticas en ingenieras

>> limit((x^2-1)/(x-2),x,inf)
ans =
Inf
Por lo tanto, se cumple la primera condicin 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
grfica:
>>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 Grfico de funcin con asntota oblicua y vertical

3.4.3 Lmites de funciones a trozos


Hasta el momento Matlab no calcula de forma directa lmites de funciones a trozos,
debe irse seleccionando, en cada caso, el trozo de funcin en el que se est trabajando
segn dnde se quiera calcular el lmite.
x 2  1 ,x  1

Ejemplo 3.9 Dada la funcin f x 1 ,1 d x  3 , averigua si es continua o no.
x  1 ,x ! 3

Primero, observar que el Dom(f)=. Adems, como en cada uno de los trozos es con-
tinua, por ser funciones polinmicas, basta estudiar qu ocurre en los puntos frontera
x=1,3.

72
Operaciones bsicas con funciones

Se introduce la funcin en Matlab, va inline o va 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 calcularn los lmites
x o1

laterales, pero al ser una funcin 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 lmite existe, coincide con la
x o1 x o1
funcin 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 lmites 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 lmites laterales no coinciden. Adems, al
x o3

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

73
Matlab para Matemticas en ingenieras

As, la funcin f es continua en .

3.5 Nmeros Complejos


Para trabajar con z, Matlab proporciona las siguientes posibilidades.
Primero el usuario puede construir un nmero 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 nmero complejo, no real, como puede compro-
barse con el siguiente comando lgico (la respuesta de este tipo de comandos es 1 si la
comparacin es cierta, y 0 si la comparacin 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 nmeros complejos puede hacerse con las operaciones habi-
tuales.
1 i
Ejemplo 3.10 Calcular .
2  3i

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

74
Operaciones bsicas 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 mdulo y argumento, si se pretende expresarlo en forma po-


lar, exponencial o trigonomtrica, 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 nmero 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, segn la representacin del nmero complejo.

Para calcular races, de forma directa Matlab slo averigua una de ellas.

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

Para obtenerlas todas, se puede pasar el nmero complejo de forma binmica a forma
exponencial, y trabajar con la expresin de un nmero complejo en forma exponencial:

75
Matlab para Matemticas en ingenieras

z=|z|eiArg(z). Ahora basta operar as el nmero complejo, acordndose de que en Matlab


el nmero e debe ser definido mediante
>>e=exp(1)

Finalmente, la frmula para calcular races n-simas de un nmero complejo,


z=|z|eiArg(z), dado en forma exponencial, quedara 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 nmero real y N el ndice de la raz,


calcula las races N-simas del nmero real X.
Ejemplo 3.11 Clculo de las 4 races 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 frmula:
>> 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 nmero complejo a su forma polar (o viceversa). Dadas las


coordenadas cartesianas tambin puede efectuarse (adems de calculando su
mdulo 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, segn el afijo del nmero 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 nmero complejo como un vector en el plano se tiene el


comando

76
Operaciones bsicas con funciones

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

Si lo que se quiere es representar slo el afijo del nmero complejo z:


>>plot(z,o)

Ejemplo 3.12 Representa los siguientes nmeros 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 Representacin usando >>compass

Aunque este comando permite ir ms all, ya que directamente representa todas las
races obtenidas de un nmero complejo. Retomando el Ejemplo3.11, si se quiere re-
presentar las races 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
Matlab para Matemticas en ingenieras

Ejemplo 3.13 Se pide

(a) Dados los nmeros 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 tringulo cuyos vrtices son los afijos de las races
cbicas de z. Comprobar que el tringulo es equiltero.
(c) Representar, en una misma figura, el tringulo del apartado (b) y el tringulo 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 Representacin del polgono cuyos vrtices son los afijos 

78
Operaciones bsicas con funciones

b) >> z=-9; % Clculo de las 3 races cbicas 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);
>>% Representacin del tringulo
>>vertices=[z_0 z_1 z_2 z_0];
>>plot(real(vertices),imag(vertices), 'g')

Es interesante comprobar que se ha obtenido un tringulo equiltero, 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) Representacin en la misma figura del tringulo girado

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

Figura 3.6 Representacin de las races cbicas y del giro efectuado

3.6 Derivadas
Para derivar en Matlab se utiliza el comando
>>diff
el cual trabaja en simblico. Si no fuera as, Matlab lo que hace es calcular derivacin
numrica mediante diferencias finitas, que no es objeto de estudio de este libro. Por

79
Matlab para Matemticas en ingenieras

eso, para hallar derivadas de funciones, se definir previamente como simblica aque-
lla variable con respecto a la cual se quiere derivar la funcin.
Si se acude a la ayuda del comando que proporciona Matlab para derivacin simblica,
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 cmo ir obteniendo las derivadas sucesivas, sin ms que indicar el orden de
derivacin en el segundo o tercer argumento.

3.6.1 Funciones de 1 variable


Cuando slo 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
Operaciones bsicas con funciones

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

Finalmente, para poner esta operacin ms 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 ms profundidad en el captulo
de funciones de varias variables, se ilustra aqu un ejemplo.

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



Hallar

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


ans =
6*x

Hllese ahora

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


ans =
- 2*y

3.7 Integracin
Al igual que para la parte de derivacin, en integracin se procede a centrarse en el
caso simblico. El comando existente es:
>>int
Si de nuevo se accede a la ayuda de Matlab para integracin simblica:

81
Matlab para Matemticas en ingenieras

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, adems 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 sera
 



Si esto es as, debe indicrsele 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
Operaciones bsicas con funciones

2
Ejemplo 3.16 Sea la funcin 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 integracin el valor x=-1, x  1 dx se
1

pasa a tener una integral impropia de 2 especie, ya que la funcin 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
Matlab para Matemticas en ingenieras

3.7.2 Clculo de reas


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

Figura 3.7 Imagen de Matlab del icono area

A continuacin, se introduce la funcin de la que se quiere calcular el rea, teniendo


cuidado de que al ser representada, no puede definirse de forma simblica. Al darle al
icono, Matlab pone la orden en la ventana Command Window de forma automtica.
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 representacin grfica 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
Operaciones bsicas con funciones

Para calcular el rea encerrada, debe separarse en dos integrales, ya que el segundo
trozo da una aportacin 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 tambin sus asntotas:

a) , b) , c)
, d) 

2.- Representar las siguientes grficas:



a)

, b) , c)  , d) j(x)=log2(x-2),


e) , f) , h)

3.- a) En cada apartado del ejercicio anterior, calcular todas las asntotas de las funcio-
nes y dibujarlas en las grficas ya obtenidas.
b) Observando las grficas anteriores, indicar el dominio de cada apartado. Despus
calcularlo tambin analticamente.
c) Observando las grficas nuevamente y sin necesidad de calcularlos, indicar los
lmites en los infinitos y en los puntos siguientes -segn 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 expresin para representar las siguientes funciones, introdcelas y repre-
sntalas grficamente:

85
Matlab para Matemticas en ingenieras

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 numrico:

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 funcin y=sen(x). Evaluar dicha funcin para x=, /2, 0, /4, -/3.
7.- Calcular los siguientes lmites:

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
Operaciones bsicas 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 ecuacin ez=z0, para los valores de z0=-2,1+ y 1.

11.- Calcular las siguientes races complejas y representarlas:



a) , b)  , c) , d)

12.- Dados los nmeros z1=2-i, z2= 4S, z3= 3 cos S4  i sin S4 , realizar las operaciones
que se indican a continuacin expresando el resultado en forma binmica.
(i) z1z2 (ii) z3 + z2 (iii) z2 (iv) z34 (v) 3 z3

e x  x si x  0

13.- Dada la funcin f x 2
bx  x . Obtener b para que la
x  2 si 0 d x  10

funcin sea continua en x=0.

14.- Estudiar qu valor (o valores) debe tomar el parmetro a para que la siguiente
funcin sea continua en su dominio de definicin
senx  a cos x si x  0
f x 2
2 x  a  2 si x t 0

15.- Calcular las derivadas obteniendo la expresin ms 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 asntotas.
b) Representar en la misma grfica la funcin y las asntotas.

17.- Hallar los extremos relativos de f(x)=

87
Matlab para Matemticas en ingenieras

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


concavidad o convexidad y obtener, en caso de existir, mximos, mnimos y los
puntos de inflexin.
a) f(x)= x3 3x2 3x + 4
b) f(x) = x4 6x3 +11x26x
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 regin limitada por la curva f(x) y el eje
OX en el intervalo [1, e].

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

x 1 3
,x d 1
24.- Dada la funcin 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 parmetro b (con b>3) de
x2  4
manera que en la regin limitada por la grfica de la curva, el eje de abscisas y
3
las recta x=3, x=b, el rea sea Ln 4 b  2 .

88
Captulo 4
4

Funciones de varias variables.


Ecuaciones diferenciales

4.1 Derivacin 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 simblicas.
Ejemplo 4.1 Hallar las derivadas parciales de la funcin 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
Matlab para Matemticas en ingenieras

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-
vacin.
>>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
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 funcin 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 clculo de las
derivadas de rdenes superiores lo har de forma directa.

4.2 Vector gradiente


Dada una funcin 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 funcin con respecto a cada una de las variables, sera
>> G = gradient(f,v)
El cual devuelve en G el vector gradiente de la funcin f, derivando con respecto a
cada una de las variables indicadas en el vector v.
G
Ejemplo 4.3 Sea la funcin 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
funcin. El Jacobiano es el determinante de la matriz Jacobiana.

91
Matlab para Matemticas en ingenieras

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


transformacin de cartesianas a cilndricas de forma analtica, sera respectivamente:




J(r,)=
=r, J(r,)= =r






Para pasar de coordenadas cartesianas a esfricas: 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 cilndricas y finalmente a esfricas salen los expuestos arri-
ba.

4.4 Matriz Hessiana y Hessiano


La matriz Hessiana est formada por las derivadas de orden 2 de la funcin z=f (x,y).
La matriz Hessiana, viene definida por:




92
Funciones de varias variables. Ecuaciones diferenciales

Y en general, si se trabaja con una funcin de n-variables (x1,x2, ,xn), su definicin


sera:








Adems, 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 simtrica, es decir,
.
Aunque en este libro se trabaja con funciones de dos variables, este comando es vlido
para cualquier nmero 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 funcin 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
Matlab para Matemticas en ingenieras


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 funcin 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 funcin 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 simblica 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
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 rpida
de evaluar en el siguiente ejemplo.

4.5 Puntos crticos de funciones de varias variables


Para hallar los puntos crticos (mximos y mnimos relativos y puntos silla o puntos de
inflexin), debe cumplirse la condicin de:


Esto es equivalente a resolver el sistema formado por las derivadas parciales:






Los puntos (a,b) que son solucin del sistema (no necesariamente lineal y resoluble
mediante el comando >>solve) sern los puntos crticos. Para clasificarlos, hay que
tener en cuenta el siguiente criterio:
 










V


Ejemplo 4.6 Hallar y clasificar los puntos crticos 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 expresin ms 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
Matlab para Matemticas en ingenieras


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 estn las de la variable y. Los puntos crticos 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 evala 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
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 hacindose 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 ms 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 dems puntos son mximos o mnimos relativos, al tener hessiano positivo. Para

saber si son mximos o mnimos, 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 instruccin 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
Matlab para Matemticas en ingenieras

As:
x Mximos relativos: (1/2,1/2), (-1/2,-1/2)
x Mnimos relativos: (-1/2,1/2), (1/2,-1/2)
Formato tabla: Para una mejor visualizacin, ilustramos lo obtenido mediante una ta-
bla. Para ello, se va a usar el comando >>table que trabaja con datos numricos. As
que lo primero es convertir los datos que son simblicos (por haber sido obtenidos
mediante el comando >>subs) en numricos:
>> 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
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 slo interesan los datos corres-


pondientes a los puntos con determinante positivo para discernir si son mnimos o
mximos. Y ya, desde la tabla, se puede clasificar:
x Puntos silla: (0,0),(1,0),(0,1),(-1,0),(0,-1)
x Mximos relativos: (1/2,1/2), (-1/2,-1/2)
x Mnimos relativos: (-1/2,1/2), (1/2,-1/2)

4.6 Integracin de funciones de varias variables


Siempre que se pueda aplicar el Teorema de Fubini, el clculo de integrales mltiples
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

integracin.

Analticamente, como la funcin no tiene primitiva con respecto a la variable y, no
se podra hallar esta integral. Sin embargo, esto no resulta ser un problema para
Matlab, que cambiando el orden de integracin 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
Matlab para Matemticas en ingenieras

Para representar el dominio de integracin, al ser un tringulo de vrtices (0,0), (0,1) y


(1,1), bastar con:
>> x=[0,1,0];y=[0,1,1]; % Vrtices del tringulo
>> fill(x,y,'b'),xlabel('x fijo', 'Fontsize',11),text(0.6,0.5,'y=x'), title('Dominio de inte-
gracin'), axis square
Dominio de integracin
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 integracin

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 funcin como del recinto. No olvi-
dar aadir el Jacobiano de la transformacin a la hora de integrar. La funcin quedara:
>>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
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 slido 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 slido y el dominio de integracin,


parte importante de este tipo de ejercicios para conocer as dnde se mueven las varia-
bles. Se pueden rotar las figuras desde la propia ventana grfica con el icono adecuado
(segunda figura). Adems, si se rotan puede verse la figura desde arriba y as observar
qu curva queda como interseccin de ambas superficies.
Se va a utilizar el comando >>cylinder para la representacin
>> syms y, cylinder(1,100),hold on,
ezsurf(y,[-3,3])

Figura 4.2 Cilindro y plano desde dos puntos de vista

Tambin puede dibujarse el cilindro en paramtricas, tomando, por ejemplo, altura 3.


El cilindro tiene de ecuacin r=1 y considrese altura 3 para representarlo. Usando el
comando >>plot3 o el comando >>mesh, quedara respectivamente:

101
Matlab para Matemticas en ingenieras

>>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 Representacin usando >>plot Figura 4.4 Representacin usando >>mesh

Se dibujar el plano en la segunda grfica, por tener una malla ms clara (rotando la
figura para obtener una mejor visin):
>>[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 integracin


Claramente la funcin a integrar es z=y que es la tapa del slido.
En este ejemplo hay que restringirse al primer cuadrante. Primeramente, se calcular la
proyeccin 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
integracin:

102
Funciones de varias variables. Ecuaciones diferenciales

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


Desde la ventana grfica, se puede manipular la figura para insertar cuadro de texto:
1
Dominio de integracin
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 integracin

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 solucin analtica explcita, el


paquete proporciona una solucin implcita, dando un mensaje de aviso.
Al igual que ocurre con el comando >>solve, el comando >>dsolve tambin trabaja
con argumentos simblicos.
Por defecto toma como variable t, pero la variable puede ser cambiada especificndola
>> 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
Matlab para Matemticas en ingenieras

>> 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 parmetros,
deben declararse dichos parmetros como simblicos; 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 ecuacin 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 solucin, aun sabiendo que existen ms. En ese caso
se introducir un argumento adicional, 'IgnoreAnalyticConstraints', indicando
como argumento ltimo: false

Ejemplo 4.11 Resuelve la ecuacin diferencial yc t y t .

Evidentemente, esta ecuacin puede ser vista como y(t)=y2(t). Y resolverla mediante

variables separadas de la forma . Por lo tanto, la solucin sera .


Despejando la funcin y(t), para dar la solucin de forma explcita, se tendr: y(t)= .

104
Funciones de varias variables. Ecuaciones diferenciales

Si se resuelve directamente con Matlab, sale un solo resultado, lo que indica que la
solucin no es correcta del todo pues una EDO sin condiciones iniciales tendr infinitas
soluciones. De hecho, la solucin 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 EDOs


Este comando tambin resuelve sistemas de EDOs sin ms 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 solucin 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
Matlab para Matemticas en ingenieras

4.7.2 Mtodos numricos para la resolucin de EDOs


En muchas ocasiones no es posible resolver, de forma analtica, una ecuacin diferen-
cial, y es por ello que hay que recurrir al uso de mtodos numricos.
Matlab tambin tiene implementados mtodos numricos para resolver ecuaciones
diferenciales. Para ver ms informacin sobre ellos basta ir, con >>helpwin, a la sec-
cin de matlab\funfun donde se indicarn los comandos que existen para resolver, de
forma numrica, ODEs (Ordinary Differential Equations).
Por ejemplo, si se pretende aplicar los mtodos de Runge-Kutta de rdenes 2 o 3, o de
rdenes 4 o 5, existen respectivamente los siguientes comandos:
>> ode23, >> ode45
>>[x y]=ode45(funcin, intervalo, condicin 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 mtodo >>ode45.

Ejemplo 4.13 Resolver el siguiente P.V.I. (Problema del Valor Inicial) mediante algn
y c x 0.1 y x  0.02 y
mtodo Runge-Kutta, dos mtodos al menos: . Representar
y 0 0.01
las soluciones obtenidas con dichos mtodos.

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


funcin se define de forma simblica 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 ms su repre-
sentacin con ambos mtodos.
6

-1
0 20 40 60 80 100 120

Figura 4.6 Solucin aportada por Runge-Kutta de orden 2,3

106
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 representacin grfica obtenida sera:
6

-1
0 20 40 60 80 100 120

Figura 4.7 Solucin 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 crticos 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
Matlab para Matemticas en ingenieras

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


Sabiendo que en el punto (0,0) la funcin presenta un punto crtico, aplicar el crite-
rio del Hessiano para clasificar dicho punto en funcin de los valores de a.

4.- Sea f(x,y) = x3- 3axy +y3 . Determinar y clasificar los puntos crticos de la funcin
segn los valores de a .

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


o G G
punto (1, -1) segn la direccin del vector v i  j es 3. Obtener el valor de p.

6.- Dada la regin D del plano limitada por las rectas y = -3x+6 e y = 0, la parbola 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 darn un rea mnima.

9.- Sea D la regin limitada por las curvas xy=9, y=x, x=9 e y=0. Calcular:
a) rea de la regin D.
b) Volumen limitado inferiormente por la regin y superiormente por el plano
z=2x+3y.
c) rea del plano z=2x+3y situado sobre la regin 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 ecuacin diferencial yc (x2+1)ey - (2x2+1)(1+ey) =0. Obtener la solu-


cin particular para la condicin inicial y(1) = 1.

108
Funciones de varias variables. Ecuaciones diferenciales

2 y
3( 1  x ) e
12.- Resolver la ecuacin diferencial y' . Obtener la solucin particular
1 ey
para la condicin inicial (1,0).

13.- Resolver la ecuacin diferencial y obtener la solucin particular para la condicin


inicial dada
x2  3 y2
yc
4 xy
y 1 0

109
Captulo 5 5

Introduccin a la Estadstica
Descriptiva

5.1 Introduccin
Este captulo ofrece al lector una introduccin a la estadstica descriptiva, tanto terica
como en el marco de Matlab.

La Estadstica es la parte de las Matemticas que se encarga del estudio de una deter-
minada caracterstica en una poblacin. Recogiendo los datos, organizndolos en ta-
blas, representndolos grficamente y analizndolos para sacar conclusiones de dicha
poblacin.
En el caso de la estadstica descriptiva, el estudio se realiza sobre la poblacin comple-
ta, observando una caracterstica y calculando unos parmetros que proporcionen in-
formacin global de toda la poblacin.
Si se realizase un estudio descriptivo sobre un subconjunto de la poblacin llamado
muestra y, posteriormente, se extendiesen los resultados obtenidos a toda la poblacin,
se estara realizando inferencia estadstica.
Matlab posee toolbox o herramientas para el clculo de estadsticos, ajuste por rectas de
regresin, mnimos cuadrados, distribucin de probabilidad, funcin de densidad. etc.

111
Matlab para Matemticas en ingenieras

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


ndice de ayuda proporcionado por >>helpwin).
Para clculo de parmetros estadsticos 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 clculo de parmetros estadsticos, indicados en el apartado co-
rrespondiente a Descriptive Statistics.
En las tablas 5.1, 5.2, 5.3 y 5.4 se indica una relacin de parmetros estadsticos, rde-
nes para grficos, clculo de probabilidad y funcin de densidad, tomado de la ayuda
que ofrece el programa, aunque las tablas son de elaboracin propia.
Tabla 5.1 Relacin de parmetros estadsticos

PARMETROSESTADSTICOS
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
Introduccin a la Estadstica Descriptiva

Tabla 5.2 Relacin de opciones para representar

REPRESENTACIONES
hist(X,n) HistogramadedatosX,nnmerodeclaseequidistantes
bar(X) Diagramadebarrasvertical
plot Polgonodefrecuencias
barh(X) Diagramadebarrashorizontal
pie(f) Grficodesectores, dondefcorrespondealasfrecuencias

En cuanto a trabajar con distribuciones, o bien discretas o bien continuas, Matlab tam-
bin 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 estn implementadas.


Recordar que, una funcin de densidad para una variable aleatoria, es la funcin f(x)
que verifica:

Y la funcin de distribucin es, F(x) tal que: F x f u du


f

113
Matlab para Matemticas en ingenieras

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 captulo se introducir, primero, la teora necesaria para trabajar el


tema de estadstica: definiciones, representaciones, parmetros, etc. Despus, mediante
ejemplos, se detallar cmo realizar el clculo de los resultados buscados mediante el
uso de los comandos de Matlab.

5.2 Estadsticos y representacin

5.2.1 Variables estadsticas


El cometido de la Estadstica 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.
Segn sea la naturaleza de los valores, la variable estadstica puede clasificarse en:
 Cualitativas. Cuando los valores que toma la variable no son numricos.
 Cuantitativas. Cuando los valores que toma la variable son nmeros 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 slo se tiene en cuenta una caracterstica de la poblacin, se dice que es un estudio
unidimensional. Si se estudian dos o ms caractersticas, es un estudio bidimensional o
multidimensional, respectivamente.
Poblacin: conjunto de elementos con alguna o algunas caractersticas comunes.
Muestra: Es un subconjunto de la poblacin.

114
Introduccin a la Estadstica Descriptiva

Variable estadstica: divide la poblacin, de manera natural, en grupos denominados


clases (conjuntos disjuntos) al considerar los diversos atributos de la variable.
Si se desea conocer con gran exactitud, cmo es cierta caracterstica de una determina-
da poblacin, la mejor forma ser recoger los datos de todos, y cada uno, de los indivi-
duos que integran la poblacin completa, analizarlos y extraer las conclusiones corres-
pondientes.
El cometido de la Estadstica Descriptiva de este captulo, es un estudio bsico en el
que se muestra cmo obtener grficos y parmetros, representativos de una serie de
datos unidimensionales.

5.3 Distribucin de frecuencias


El conjunto de valores observados, o serie numrica, constituye el material inicial a
partir del cual debe llevarse a cabo el anlisis estadstico descriptivo.
S el nmero de datos no es muy reducido, su interpretacin se facilita presentndolos
agrupados en una tabla.
(a) Cuando la variable estudiada es de tipo discreto, cualitativa o cuantitativa, con
un nmero 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 nme-
ro de veces que dicho valor se observa en la muestra. Dado que la frecuencia
absoluta depende del nmero total de observaciones N, la frecuencia relativa
no es ms que ni/N.
- Frecuencia absoluta, ni, es el nmero 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 nmero

total de datos:

- Frecuencia absoluta acumulada, Ni, indica el nmero de datos que hay iguales
o inferiores al considerado.
- Frecuencia relativa acumulada, Fi, es el resultado de dividir cada frecuencia
absoluta acumulada entre el nmero 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 difcil 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 nmero de clases. Tambin se puede hacer de otro modo,
estableciendo una anchura de clase determinada. Pero hay que tener en cuenta

115
Matlab para Matemticas en ingenieras

que, el nmero de clases resultantes est comprendido entre 5 y 20, para que la
tabla y los grficos puedan transmitir con facilidad la idea de la distribucin 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 grficas


En el anlisis descriptivo tienen mucha utilidad las representaciones grficas de los
datos que se poseen de las variables estadsticas, a partir de los cuales se puede llegar
de forma ms fcil a conclusiones. Los tipos de grficos que aqu se destacan son:
(1) Diagrama de barras (>>bar(Datos)): rectngulos de igual base, generalmente
dispuestos en posicin vertical, en el que la altura de cada uno es proporcional
a la frecuencia.
10

0
0 5 10 15 20 25

(2) Grficos de tarta o sectores (>>pie(f)): la superficie total de un crculo 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
Introduccin a la Estadstica Descriptiva

(3) Polgono de frecuencias (>>plot(d)): las ordenadas de las frecuencias absolu-


tas se unen mediante una lnea 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)): representacin grfica formada por rectngulos


cuyas reas son proporcionales a las respectivas frecuencias de los intervalos
considerados. Si la amplitud de los intervalos es constante, el grfico 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 distribucin 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.

Considrense 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
Matlab para Matemticas en ingenieras

a) Ordenarlos, calcular el mnimo y mximo de los datos.


b) Obtener una tabla de frecuencias.
c) Representar el polgono, histograma y diagramas de barras.
Resolucin:
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 mnimo >>min(D);
- obtener el Mximo >> 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 mnimo
ans=
2
>> max(D) % devuelve el valor mximo
ans=
10
b) Obtener tablas de frecuencias con variable discreta es muy rpido, ya que el
nombre de la clase coincide con el valor numrico 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
Introduccin a la Estadstica 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 numrico coincide con el nombre de la clase. En el
valor 1 no hay ningn dato, por tanto se tienen nueve clases. Para obtener el histograma
de frecuencias se pide como argumento los datos y el nmero de clases.
En este caso, datos= D, nmero 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

Tambin pueden generarse los diagramas de barras en horizontal y vertical:


>>bar(D) % diagrama de barras

119
Matlab para Matemticas en ingenieras

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 difcil 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.

Considrense 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
Introduccin a la Estadstica 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 mnimo, valor mximo, ordenar.
d) Construir una tabla de frecuencias absolutas y relativas.
e) A partir de la tabla de frecuencias, cuntas 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 grficos.

Resolucin
a) Crear la variable: Para no tener que introducir a mano la matriz, seleccinese
la matriz anterior y cpiese. 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
Matlab para Matemticas en ingenieras

Poner el cursor en wokspace/unnamed y clicar el botn 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 nmero de filas y n nuevo nmero 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 mnimo y mximo
>> min(d)
ans =
1.5000
>> max(d)
ans =
1.9400
d) Para obtener la correspondiente tabla de frecuencias
Si se usase >>tabulate(d), devolvera 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
Introduccin a la Estadstica 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 numrica, ya no repre-


senta el grfico del histograma, sino que devuelve el vector fila de frecuencias
absolutas. Esto puede comprobarse creando un vector m con los valores que van
del mnimo al mximo de 0.1 en 0.1.

Como son vectores filas, para dar lugar a los vectores columna han de transponerse y a
continuacin, 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), proporcionndole 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
Matlab para Matemticas en ingenieras

>>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 clculos y los resultados se muestran a continuacin:

124
Introduccin a la Estadstica Descriptiva

Y para crear, finalmente, la tabla completa

Con la tabla anterior ya se puede dar respuesta a todas estas cuestiones:


Cuntas 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) Representacin 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
Matlab para Matemticas en ingenieras

90

80

70

60

50

40

30

20

10

0
1.5 1.6 1.7 1.8 1.9 2

5.4 PARMETROS ESTADSTICOS DE POSICIN Y DISPER-


SIN
Fundamentalmente, la pauta de variabilidad constatada en un conjunto de observacio-
nes relativas a una variable cuantitativa unidimensional, puede caracterizarse por dos
tipos de parmetros que definen, respectivamente, la posicin y la dispersin.

5.4.1 PARMETROS ESTADSTICOS DE POSICIN


Los parmetros de posicin tienen por objetivo proporcionar valores en torno a los
cuales se encuentran las observaciones. Entre ellos estn: media aritmtica, media
geomtrica, mediana, moda, cuartiles y percentiles.
Las expresiones a usar en Matlab son las indicadas en la tabla siguiente.

Tabla 5.5 Parmetros estadsticos de posicin en Matlab

PARMETROSESTADSTICOSDEPOSICIN
mean Mediaaritmtica
median Mediana
mode Moda
geomean Mediageomtrica
quantile(X,p)  Quartiles.
prctile Percentiles.

126
Introduccin a la Estadstica Descriptiva

a) Media aritmtica: dado un conjunto de N valores, ^x1 ,x2 ,...,xN ` , de una varia-
ble estadstica cuantitativa, el valor medio o media aritmtica, , es la suma de todos
los valores dividido por el nmero total de datos N:
1
x ( x1  x2  ....  x N )
N
Si se conocen las frecuencias, la media aritmtica se obtiene mediante:

x f i i
Media Promedio Media Aritmtica 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 estn ordenados.
N 1
En general, si hay N valores, N impar, la mediana correspondera a la posicin .
2
En el caso de que el nmero 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 nmero 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 estadstica es un indicador de posicin 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 medicin o lectura.
Su uso es muy recomendable cuando se trata de variaciones muy discontinuas en una
serie.
d) Media Geomtrica de un conjunto de N valores es la raz n-sima de los pro-
ductos de dichos nmeros.
n n
MG n xi o n
x f i i
i 1 i 1

127
Matlab para Matemticas en ingenieras

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 geomtrica.
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 Considrese la variable continua d cuya tabla de frecuencias puede con-
sultarse en el epgrafe 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
Introduccin a la Estadstica 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 Considrese 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 continuacin.

129
Matlab para Matemticas en ingenieras

Ejemplo 5.4 Considrese 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 dispersin


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 parmetros
de posicin, es la dispersin.
Se entiende que un conjunto de datos tiene poca dispersin si estn agrupados en torno
al valor medio de ese conjunto de datos. Por el contrario, se dice que la dispersin es
alta si hay bastantes datos suficientemente alejado del promedio.

130
Introduccin a la Estadstica Descriptiva

Entre las medidas de dispersin se encuentran: recorrido o rango, recorrido intercuart-


lico, desviacin absoluta media, desviacin estndar y varianza.
a) El Recorrido es el parmetro de posicin ms intuitivo. Para conjuntos peque-
os de datos puede ser el ms significativo a efectos prcticos. 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 funcin >> range (datos)
o mediante >>max(datos)-min(datos).

b) Recorrido intercuartlico: En los casos en que la media no es un indicador


adecuado de posicin (caso de distribuciones muy asimtricas), la desviacin tpica no
resultar un parmetro adecuado de dispersin. En esos casos se utiliza, a veces, con
dicho fin el recorrido o distancia intercuartlica. Para calcularlo analticamente:
Recorrido intercuartlico= diferencia entre el tercer y primer cuartil= Q3-Q1.
En Matlab, la orden >>iqr(datos), devuelve directamente el recorrido intercuartlico.
Uno de los significados del recorrido intercuartlico es que en un intervalo centrado en
la mediana de longitud, se encuentran el 50% de los elementos del conjunto. El interva-
lo intercuartlico es un indicador robusto de dispersin (resulta poco influido por los
valores anmalos).

Ejemplo 5.5 Con los datos d de variable del ejemplo anterior, halla el recorrido inter-
cuartlico y el recorrido.

-Para calcular el recorrido intercuartlico, basta hallar Q3-Q1. Este valor indica dnde se
encuentra acumulado el 50% de la poblacin.
Puede ser calculado a partir de los cuartiles o, utilizando directamente la funcin
>>iqr(datos).
Los resultados son los mostrados a continuacin.
>>iqr(D)
ans=
3.5000
-Para hallar el recorrido, basta restar al valor mximo de la poblacin el valor mnimo.
Otra forma es utilizando la funcin >> range (datos).
Los resultados utilizando ambas opciones son:

131
Matlab para Matemticas en ingenieras

>> max(D)-min(D)
ans =
8
>>range(D)
ans =
8

c) Desviacin absoluta media: En un conjunto de N datos, de media x , se deno-


mina desviacin de cada elemento a su diferencia respecto a la media del conjunto.
Se define la desviacin absoluta media como el promedio de los valores absolutos de
las desviaciones. Las frmulas 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 dispersin de los valores de la variable respecto de la media. Cuan-
to mayor sea la varianza, menos representativa es la media.
e) Desviacin estndar: A la raz cuadrada de la varianza se le denomina Desvia-
cin Estndar. 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 asimtri-
cas o con valores extremos. Como consecuencia, la desviacin estndar tampoco ser
un parmetro adecuado de dispersin, ya que su clculo se basa en desviaciones respec-
to a la media. En esos casos se utiliza el intervalo intercuartlico.

132
Introduccin a la Estadstica Descriptiva

Un resumen de los parmetros de dispersin con la expresin a introducir en Matlab se


puede consultar en la siguiente tabla

EXPRESINMATLAB PARMETROSESTADSTICOSDEDISPERSIN
range(datos) RecorridooRango mximomnimo
iqr(datos) Recorrido inter Q3Q1
cuartlico
mad(datos) Desviacinmedia x i x | x
i 1
i  x | fi
N  N 
Std(datos,1) Desviacin estn 2

dardelapoblacin 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 parmetros de dispersin para el conjunto de datos de varia-
ble continua d utilizada en los ejemplos anteriores.

El resultado es:

133
Matlab para Matemticas en ingenieras

f) Coeficiente de variacin: Tambin es una medida relativa de dispersin. De-


termina el grado de dispersin de un conjunto de datos relativo a su media aritmtica.
Si se ha realizado un estudio estadstico 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 tpicas no es significativo. La varianza est
afectada por los cambios de escala y, por tanto, no es til para comparar dispersiones
entre variables estadsticas con distintas unidades. Por ello, para comparar la disper-
sin entre muestras o poblaciones, se utiliza el coeficiente de variacin CV.
El coeficiente de variacin se define como la relacin entre la desviacin tpica y la
media de la poblacin:
V
CV 100 , se expresa en %
x
Este valor, expresado en tantos por uno, siempre est en el intervalo [0,1]. Cuanto ms
cercano a 0, indica una menor separacin de los datos con respecto a la media, y al
revs 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 desviacin tpica de 75 paquetes. Este mismo producto en
una pequea tienda de barrio tiene una demanda media de 10 paquetes con una desvia-
cin tpica de 4 paquetes. En qu establecimiento la demanda es ms variable?

En este caso se recurre para compararlas al coeficiente de variacin de las dos mues-
tras
Hipermercado CV=(75/400)*100=18.75 %
Pequea tienda CV=(4/10)*100=40%
La demanda es ms variable en la pequea 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 continuacin, calcular los coeficientes


de variacin usando directamente Matlab.

134
Introduccin a la Estadstica 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 nmero de materias suspensas que constan en el expediente de un
grupo de alumnos. Con estos datos se construy la siguiente distribucin 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: Cuntos estudiantes tienen menos de dos asignatu-
ras suspendidas? qu porcentaje de estudiantes tienen ms de 5 materias sus-
pendidas?
c) Representar el histograma.
d) Calcular la moda, la media, la mediana, la desviacin tpica y el coeficiente de
variacin.

135
Matlab para Matemticas en ingenieras

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, desviacin t-
pica, Q1, Q3 y el recorrido intercuartlico.
b) Analizar cul de los valores calculados muestra mayor robustez como medida
de posicin, y cul mayor robustez como medida de dispersin 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 distribucin de frecuencias de la variable obteniendo las frecuencias
absolutas, relativas y sus correspondientes acumuladas.

b) Qu proporcin de hogares est compuesto por tres o menos personas? Qu


proporcin 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 nmero de suspensos en la primera evaluacin :
022403325232434314110411424203130522303051140
323233124231314
a) Construir la tabla de frecuencias.
b) Obtener: media, varianza, cuartiles.

136
Introduccin a la Estadstica Descriptiva

c) Recorrido, recorrido intercuartlico, 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 distribucin.
g) Indicar el recorrido.
h) Indicar la distancia intercualtlica.

7.- Se ha medido la velocidad de un automvil 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

Calclese la velocidad media y la desviacin tpica, 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
Matlab para Matemticas en ingenieras

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 variacin.

9.- El nmero de unidades defectuosas encontradas en la inspeccin sistemtica 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 desviacin tpica.

10.- Quince estudiantes del grupo A de matemtica 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 cul de estos dos grupos es ms homogneo, teniendo en
cuenta las notas definitivas obtenidas.

138
6 Captulo 6
Introduccin al lgebra
matricial

6.1 Introduccin a las matrices en Matlab


Una de las caractersticas de Matlab es que est especialmente diseado para trabajar
con variables vectoriales y matriciales. Este captulo va a comenzar repasando cmo
introducir un vector o una matriz, aunque ya se indic en captulos anteriores. Las
matrices estn formadas por filas (horizontal), y columnas (vertical). Los elementos de
las filas estn 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 quedarn 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
Matlab para Matemticas en ingenieras

>> 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 algn tipo de progresin o ley ma-
temtica. 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. Tambin 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 vern en la siguiente seccin.

6.1.2 Matrices especiales


En esta seccin 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
Introduccin al lgebra matricial

Todas las matrices sobre las que se va a explicar cmo generarlas en Matlab, se pueden
consultar en la Tabla 6.1. Las ltimas columnas indican la salida de Matlab y la corres-
pondiente expresin matricial. Dicha tabla es un breve resumen de algunas matrices
especiales, definidas ya en Matlab, y la simbologa 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 (nmero de filas igual
a nmero 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
Matlab para Matemticas en ingenieras

Nota: Matlab tambin 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 1s 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 Manipulacin 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 ms 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 continuacin:

142
Introduccin al lgebra matricial

Tabla 6.2 Ejemplos de manipulacin de matrices I

OPERACIN SINTAXIS EJEMPLO SALIDA MATLAB


Cambiar el
valor numrico 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
Matlab para Matemticas en ingenieras

Tabla 6.3 Ejemplos de manipulacin de matrices II

OPERACIN 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=
Aadir 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]

Aadir 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
Introduccin 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. Tambin 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 tamao
(mun)
Producto (*) >>B*A
(mun)(nup)

Potencias (^) >>B^2


slo matrices
Operaciones cuadradas
algebraicas con
matrices
>>A
Matriz traspues-
ta

Matriz Inversa >>A^-1


Tamao nun No es cuadra-
da(3u4)
>>B^-1
Cuadra-
da(3u3)

145
Matlab para Matemticas en ingenieras

Para aplicar operaciones entre elementos de matrices se requiere que las matrices ten-
gan el mismo tamao.
Tabla 6.5 Operaciones elemento a elemento

OPERACIN SINTAXIS EJEMPLO

Producto de com- >>A.*zeros(3,4)


ponentes

Cuadrado de com- >>A.^2


ponentes

Divisin 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 tamao, 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 captulo.

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
Introduccin al lgebra matricial

Tabla 6.6 Ms funciones de Matlab

OBJETIVO SINTAXIS SALIDA DE MATLAB

>>A( : )

Cambia de matriz
a vector

Tamao de la >>size(A)
matriz

Redimensiona >>reshape(A,
una matriz 4, 3)
A (m u n) en
otra de tamao
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
Matlab para Matemticas en ingenieras

Tambin 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 segn 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
Introduccin 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
Matlab para Matemticas en ingenieras

>> flip(D)
ans =
5
4
3
2
1
>> flipud(D)
ans =
5
4
3
2
1
Es decir, el comando >>flip acta tanto sea el argumento de entrada matriz o vector,
haciendo la operacin adecuada en cada caso. Sin embargo, cuando se usen los coman-
dos >>fliplr y >>flipud, si no pueden efectuar su accin sobre la matriz introducida, la
devolvern 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 tambin para rellenar reas (consultar


ejemplos del Captulo de grficos)

150
Introduccin al lgebra matricial

6.2 Clasificacin y resolucin de sistemas de ecuaciones lineales


Un sistema lineal de m ecuaciones y n incgnitas 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 trminos independientes, situados en la misma posicin
relativa que ocupaban en el sistema.

Denominacin de matrices asociadas a un sistema

Matriz de coeficientes Matriz de trminos 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 Clasificacin de sistemas de ecuaciones


Dada una matriz A, se denomina rango de A, y se escribe rg(A), al nmero de unos
principales que aparecen en cualquier forma escalonada de la matriz A.

Clasificacin de sistemas en funcin del rango (Rouch-Frobenius)

En la siguiente tabla, n denotar el nmero de incgnitas del sistema a clasificar, tal y


como se indica en las notaciones empleadas en prrafos superiores.

151
Matlab para Matemticas en ingenieras

CRITERIO CLASIFICACIN
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 parme-
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 segn la tabla anterior.

Clasificar sistemas usando la funcin >>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
1
2 x 5 y  z 1

Primero, se introducen las matrices de coeficientes y las de trminos independientes


para construir la matriz ampliada de cada apartado.

152
Introduccin 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 continuacin:
Tabla 6.8 Soluciones de los sistemas y clasificacin

>>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 solucin

Es evidente que los rangos se podran 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
sustitucin regresiva; es decir, despejar de la ltima ecuacin obtenida la variable que
queda aislada e ir sustituyendo en las ecuaciones anteriores.

153
Matlab para Matemticas en ingenieras

6.2.2 Resolucin de sistemas usando la funcin: >>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 solucin del sistema viene dada por la expresin
X= A-1 b.

Nota: nicamente se puede recurrir a la funcin >>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 prximo
a cero, Matlab puede interpretarlo como nulo y no permitir calcular su inversa.
Por lo tanto, para estos casos deber aplicarse otro mtodo.
Si se calculan los determinantes para cada sistema propuesto, a partir del resultado se
concluye

(valor prximo a
cero)
Tiene inversa No tiene inversa No tiene inversa

x=1,y=1,z=1

6.2.3 Resolucin de sistemas usando divisin matricial a la izquierda: A\b


Aplicando esta operacin para resolver el sistema AX=b1 del ejemplo anterior, se ten-
dr:
>> A\b1 % devuelve la misma solucin que con el clculo de la inversa
ans =
1
1
1

154
Introduccin al lgebra matricial

Nota: de nuevo este mtodo sirve solo cuando los sistemas son compatibles de-
terminados.

6.2.4 Resolucin de sistemas usando la funcin: >>solve


La funcin >>solve implementada en Matlab resuelve ecuaciones y sistemas de ecua-
ciones lineales (ya explicado este comando en la parte de Anlisis en el Captulo de
Operaciones bsicas). Recordar que >>solve trabaja con variables simblicas, as que o
previamente se declaran como simblicas, o bien los argumentos se escriben con comi-
llas simples. La resolucin se muestra en la tabla 6.6.
Tambin se puede acceder a la ayuda que ofrece el propio programa:
>>help doc solve

x  y z 1

La resolucin 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 solucin es nica y el sistema se clasifica como Sistema Compatible Determinado.

155
Matlab para Matemticas en ingenieras

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 parmetro.

x 4 y  z 3
Resolucin 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
Introduccin al lgebra matricial

6.2.5 Resolucin de sistemas usando la Regla de Cramer


Para resolver sistemas de n ecuaciones con n incgnitas 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
Matlab para Matemticas en ingenieras

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, tambin 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
Introduccin 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 trminos 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-
gramacin. Los bucles en Matlab se realizan a travs del comando for o while y las
condiciones mediante la estructura if. Para ir al editor, bastar seleccionar en el men la
opcin New Script:

Figura 6.1 Cmo acceder al editor de Matlab

Una vez abierta la ventana del Editor

Figura 6.2 Editor de Matlab

159
Matlab para Matemticas en ingenieras

ya puede escribirse en l. Los ficheros creados tendrn extensin .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 funcin o instruccin que se crea (es el nombre que Matlab, adems, 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 funcin

Las autoras han creado para su asignatura una funcin que aplica la regla de Cramer
(se llamar cramer). Aunque no se adjunta aqu dicha funcin, s se expondrn ejem-
plos de su uso para ilustrar Cramer ms ampliamente, e iniciarse un poco con el tema
de programacin.
Una funcin 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 sesin 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 solucin de un sistema de n ecuaciones
con n incgnitas que sea SCD mediante la Regla de Cramer.

Los argumentos de entrada de esta funcin deben ser:


1.- en primer lugar la matriz de los
coeficientes
2.- en segundo lugar el vector columna de los trminos

160
Introduccin al lgebra matricial

independientes.
El argumento de salida ser la solucin del sistema.
El programador de una funcin habr puesto comentarios previos a la primera instruc-
cin, que son los que se obtienen cuando se pide la ayuda con el comando >>help. Su
ejecucin 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

Resolucin:
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 tambin lo indicar funcin:
>> 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 funcin cramer precisa de 2 argumentos, la matriz de coeficientes y el
vector columna de trminos independientes. Si no se le proporcionan, devolver la

161
Matlab para Matemticas en ingenieras

solucin 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 programacin y que desee tener el
cdigo empleado, o bien podr pedir una vez cargado
>>type cramer, saliendo por pantalla en la Command Window el cdigo 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 programacin azul-, los comenta-
rios verde-, las asignaciones o instrucciones negro-, las salidas de texto por pantalla
morado-. Ayudando as a una mejor comprensin del cdigo del programa).

6.2.6 Resolucin de sistemas de ecuaciones dependientes de parmetros


Para resolver sistemas de ecuaciones lineales con parmetros 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 cmo efectuarlas:

Tabla 6.9 Operaciones elementales con Matlab

OPERACIONES ELEMEN- OPERACIN SOBRE LA CMO 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,:)]
Multiplicacin de una la fila 3 por (1/4) Definimos la nueva matriz como A2
fila por un nmero no
>>A2=[A(1,:);A(2,:); (1/4)*A(3,:)]
nulo k Fj
Sumar a una fila un ml- 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
Introduccin al lgebra matricial

Ejemplo 6.5 Estudiar y resolver en funcin de m y p el sistema de ecuaciones

x  y z 1

x  my  z 1
px  y  z 1

Resolucin.
1 Definiendo como simblicas 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 nmero de
unos principales. Para clasificar se mira el nmero de unos principales y, para resolver,
se usar el comando >>rref. Los resultados en funcin de los valores de m y p se
muestran en la Tabla 6.10.

163
Matlab para Matemticas en ingenieras

Tabla 6.10 Resultados de clasificacin 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 (mnimos cuadrados)


El ajuste de curvas se utiliza cuando se tiene una serie de datos calculados y se desea
conocer valores intermedios no conocidos, o tambin, en aquellos casos en que se
desee una versin simplificada de una funcin que se ajuste a un nmero de valores
concretos, y posteriormente usar la funcin 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 REGRESIN LINEAL, cuyo mtodo
ms sencillo es la regresin por mnimos cuadrados.
La forma de realizar ajustes mediante Mnimos 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
Introduccin al lgebra matricial

n es el nmero de datos
p son los coeficientes del polinomio de ajuste.
La funcin >>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 parbola, etc.
La salida son los coeficientes del polinomio. El nmero de coeficientes depende del
grado del polinomio que pidamos para ajustar.

Coeficiente de correlacin:
Para estudiar el grado de relacin lineal que existe entre dos variables, se calcula el
coeficiente de correlacin lineal R, con R [-1,1]. Si el coeficiente de correlacin lineal
est prximo a 1, los datos se agrupan en torno a una recta de pendiente positiva; si
est prximo a -1, los datos se agrupan en torno a una recta de pendiente negativa.
Cuanto ms alejado del valor 1 o -1, ms dispersa se encuentra la nube de puntos de la
curva ajustada.
Cuando el valor de R es positivo, indica que la relacin 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 correlacin negativo, la relacin sera indirecta, a mayor valor de una
variable menor valor de la otra.
Matemticamente el coeficiente de correlacin de Pearson viene dado por la expresin:



donde es la covarianza de las variables, y el producto de las desviaciones
tpicas 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 correlacin.
R, en verdad, ser de nuevo una matriz, donde la posicin que al usuario le interesa
para conocer el coeficiente de correlacin de Pearson, es la posicin (1,2) o (2,1), ya
que es una matriz simtrica.
En Matlab se calcula mediante
>> corrcoef(x,y) % devuelve la matriz de correlacin entre ambas variables

Una vez obtenida la curva de regresin, 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
Matlab para Matemticas en ingenieras

>> polyval(m,X) % evala 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 aceleracin.
(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 aproximacin dada por la recta.
(d) Representar la recta de regresin en la misma ventana que los datos del apar-
tado (b).
(e) A partir de la recta de regresin 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 correlacin es R= 0.9997, prximo a 1, lo que indica una
fuerte relacin lineal directa entre las medidas.

166
Introduccin al lgebra matricial

(b) representacin
>>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
Matlab para Matemticas en ingenieras

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 cientficas, en ocasiones, es necesario utilizar funciones


distintas a las polinmicas para ajustar datos. Por ello, se muestra en la tabla 6.11 otros
posibles ajustes de curvas:
Tabla 6.11 Relacin de comando >>polyfit

NOMBRE FUNCIN EXPRESIN 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)
logartmica
y=mlog(x)+b P=polyfit(log10(x),y,1)
1 P=polyfit(x,1./y,1)
recproca y
mx  b

168
Introduccin 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 nmeros 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
Matlab para Matemticas en ingenieras

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 funcin del parmetro 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 funcin 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 funcin de x la ecuacin k 2k  5 x k 0 , con
2
0 k k  20 x
k .

170
Introduccin al lgebra matricial

p q
9.- Hallar la relacin 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 correlacin)


que mejor se ajuste a los puntos de la siguiente tabla, utilizando el mtodo de los
mnimos cuadrados.
x y
1.2 1.0
2.0 1.6
2.4 3.4
3.5 4.0
3.5 5.2

171
7 Referencias bibliogrficas

[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 estadstica. Ed Universitat
Politcnica de Valncia.
[3] Giner,S. (2008) Curso de Matlab. /Apuntes de simulacin de procesos I. rea
departamental Igenieria Qumica. Facultad de Ingenieria. Procedencia Internet
[4] Moore, H. (2007) Matlab para ingenieros.
[5] Marchand, P. (2003). Graphics and guis with MATLAB.
[6] Pabn ngel, H. (2010). Probabilidad y estadstica con matlab para
investigadores MSc. Universidad de Cundimarca.
[7] Pateiro Lpez , B. (2008-2009 ) Estadstica ingeniera qumica USC. Curso.
[8] Polana Puentes, J.A, Tutorial de matlab aplicado
[9] Rodrguez del Ro, R. Grficas con Matlab, Departamento de Matemtica
Aplicada, Universidad Complutense de Madrid.
[10] Romero,R., Znica R. (2012). Mtodos estadsticos en ingeniera. Ed
Universitat Politcnica de Valncia.
[11] https://www.uam.es/personal_pdi/economicas/rociomar/descriptiva.htm
[12] http://www.unizar.es/fmi, Versin actualizada en agosto de 2006. Un curso de
MATLAB, Grupo FMI, Departamento de Matemtica 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. Introduccin informal al Matlab y Octave.
http://www.dc.uba.ar/materias/escuela-compluense/2012/CursoMatlabguillem.

173

S-ar putea să vă placă și