-
1
Ao de la Integracin Nacional y el Reconocimiento de Nuestra
Diversidad
UNIVERSIDAD NACIONAL DEL CALLAO
Departamento acadmico de MATEMATICA
SSEEPPAARRAATTAA
USO DEL MATLAB PARA LA IMPLEMENTACION
DEL LABORATORIO DE MATEMATICA
COMPUTACIONAL I
RREESSOOLLUUCCIIOONN DDEECCAANNAALL NN
004488--22001122--DD--FFCCNNMM
DDoocceennttee:: HHuummbbeerrttoo EEmmiilliiaannoo GGaallvveezz
PPeerreezz
CCIICCLLOO:: 2012-A
Bellavista - Callao
-
2
Indice
1. Resumen .. 3
2. Materiales y Mtodos .. 3
3. Introduccin .. 4
4. Estudio del entorno del programa MATLAB . 5
5. Manejo de variables. Operaciones .. 8
6. Funciones matemticas del MATLAB .. 24
7. Formatos de salida .. 34
8. Grficos en MATLAB .. 36
9. Programacin en MATLAB .. 41
10 Implementacin de algoritmos de la asignatura
de Matemtica Computacional I .. 46
11. Discusin y Conclusiones .. 55
12. Referencias .. 56
13. Apndice .. 57
-
3
1. Resumen
En esta separata se describe y analiza el software MATLAB, para
su aplicacin en la
implementacin ciertos algoritmos y de esta manera obtener la
solucin de problemas aplicados
tanto en las reas de ciencias bsicas como en la ingeniera.
De los diversos materiales que se pueden encontrar, esta
separata est orientada a hacer
manejable el entorno del software MATLAB, mediante ejemplos as
como la descripcin de
manera didctica de la programacin en el MATLAB y de as realizar
la implementacin de
algunos algoritmos del Anlisis Numrico.
2. Materiales y Mtodos
El material que se ha empleado es el software MATLAB, haciendo
uso de su entorno grfico y de
su lenguaje de programacin.
Los mtodos usados para la implementacin de los algoritmos
corresponden a:
Mtodo de biseccin.
Mtodo del punto fijo.
Mtodo de Newton.
Mtodo de la secante.
Mtodo de la sustitucin regresiva.
Mtodo de la eliminacin gaussiana.
Mtodo iterativo de Jacobi y Gauss-Seidel.
Mtodo de interpolacin de Lagrange.
Mtodo de Interpolacin de Newton con diferencias divididas.
-
4
3. Introduccin
MATLAB es un lenguaje de muy alto nivel diseado para el cmputo
tcnico. Integra en un mismo
ambiente muy fcil de usar clculos visualizacin y programacin. En
este ambiente los
problemas y sus soluciones se pueden expresar en notacin
matemtica fcil de entender.
Algunos de los usos ms comunes del MATLAB son: Clculos
matemticos, desarrollos de
algoritmos, modelado y simulacin, anlisis de datos y obtencin de
graficas. Debido a las
bondades de este lenguaje se ha motivado el desarrollo de esta
separata, cuyo fin es de dar a
conocer este programa para su aplicacin en la implementacin de
algoritmos del anlisis
numrico.
En esta separata, en los captulos del 3 al 8 se estudia el
programa del MATLAB, para luego en el
captulo 9, realizar algunas implementaciones de los algoritmos
de la asignatura de Matemtica
Computacional I y de esta manera preparar y motivar al
estudiante, para el uso de herramientas
computacionales tales como este software que tiene una gran
acogida en las reas de ciencias
como en las de ingeniera.
-
5
4. Estudio del entorno del programa MATLAB
El programa MATLAB
MATLAB es el nombre abreviado de MATrix LABoratory. MATLAB es un
programa para realizar clculos numricos con vectores y matrices.
Como caso particular puede tambin trabajar con nmeros escalares,
tanto reales como complejos. Una de las capacidades ms atractivas
es la de realizar una amplia variedad de grficos en dos y tres
dimensiones. MATLAB tienen tambin un lenguaje de programacin
propio. Al inicializar el programa MATLAB se abre una pantalla, del
tipo de la figura 1.
figura 1.
En la pantalla inicial aparecen en principio tres ventanas.
Command Window (ventana de comandos): Ejecuta las funciones del
programa. Aqu trabajaremos regularmente. Command History (historial
de comandos): Presenta todas los comandos introducidos y realizados
anteriormente. Permite copiarlos y ejecutarlos. Launch Pad: Ejecuta
herramientas y documentacin de acceso para todos los productos Math
Works (empresa que desarrolla MATLAB) instalados actualmente en el
computador. Current Directory (directorio actual): Muestra ficheros
MATLAB y ejecuta operaciones con stos.
La ventana de comandos de MATLAB Se utiliza para ejecutar
comandos y todo tipo de operaciones. Los comandos a ejecutar se
escriben a continuacin del prompt caracterstico de MATLAB (), en la
versin estudiante aparece EDU . Una vez completada, se pulsa Enter.
Una observacin antes de seguir adelante, es posible recuperar
comandos anteriores de MATLAB y moverse por dichos comandos con las
teclas-flechas y . Al pulsar la primera de
-
6
dichas flechas aparecer el comando que se haba introducido
inmediatamente antes. De modo anlogo es posible moverse sobre la
lnea de un comando con las teclas y . MATLAB es sensible al uso de
maysculas y minsculas. Tambin algunos comandos aparecen en
diferentes colores, para indicar y ayudar a interpretar mejor
determinados elementos. Si se desea salir el programa, basta
teclear los comandos quit o exit, o bien elegir Exit MATLAB en el
men File (extremo superior izquierdo).
Uso del Help MATLAB dispone de un excelente Help(ayuda) con el
que se puede encontrar la informacin que se desee. La figura 2
muestra distintas opciones que aparecen en el men Help.
figura 2.
1. Help Window, se puede buscar ayuda sobre la funcin o el
concepto que se desee. 2. Help Tips, ofrece ideas practicas para
utilizar la ayuda. 3. Help Desk, se abre un browser de internet que
permite acceder a toda la informacin sobre
MATLAB en formato HTML. Esta informacin es equivalente a los
manuales impresos del programa. Desde la parte inferior de esta
pgina, mediante el enlace Online Manual (in PDF) se puede acceder a
la versin *.pdf (Portable Document Format) de los manuales de
MATLAB. El formato *.pdf requiere del programa gratuito Adobe
Acrobat Reader 3.0 .
4. Examples and Demos. Se abre una ventana que da acceso a un
numero de ejemplos resueltos con MATLAB, cuyos resultados se
presentan grficamente de diversas formas. Es bastante interesante
recorrer estos ejemplos para hacerse idea de las posibilidades del
programa.
Si deseamos ayuda en lnea,solo debemos introducir el comando
help y a continuacin la funcin especifica. Ejemplo 1. help plot
PLOT Linear plot. PLOT(X,Y) plots vector Y versus vector X. If X or
Y is a matrix, then the vector is plotted versus the rows or
columns of the matrix, whichever line up. If X is a scalar and Y is
a vector, length(Y) disconnected points are plotted. PLOT(Y) plots
the columns of Y versus their index. If Y is complex, PLOT(Y) is
equivalent to PLOT(real(Y),imag(Y)).
-
7
In all other uses of PLOT, the imaginary part is ignored.
Various line types, plot symbols and colors may be obtained with
PLOT(X,Y,S) where S is a character string made from one element
from any or all the following 3 columns: b blue . point - solid g
green o circle : dotted r red x x-mark -. dashdot c cyan + plus --
dashed m magenta * star y yellow s square k black d diamond v
triangle (down) ^ triangle (up) < triangle (left) > triangle
(right) p pentagram h hexagram For example, PLOT(X,Y,'c+:') plots a
cyan dotted line with a plus at each data point; PLOT(X,Y,'bd')
plots blue diamond at each data point but does not draw any line.
PLOT(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined by
the (X,Y,S) triples, where the X's and Y's are vectors or matrices
and the S's are strings. For example, PLOT(X,Y,'y-',X,Y,'go') plots
the data twice, with a solid yellow line interpolating green
circles at the data points. The PLOT command, if no color is
specified, makes automatic use of the colors specified by the axes
ColorOrder property. The default ColorOrder is listed in the table
above for color systems where the default is blue for one line, and
for multiple lines, to cycle through the first six colors in the
table. For monochrome systems, PLOT cycles over the axes
LineStyleOrder property . PLOT returns a column vector of handles
to LINE objects, one handle per line. The X,Y pairs, or X,Y,S
triples, can be followed by parameter/value pairs to specify
additional properties of the lines. See also SEMILOGX, SEMILOGY,
LOGLOG, PLOTYY, GRID, CLF, CLC, TITLE, XLABEL, YLABEL, AXIS, AXES,
HOLD, COLORDEF, LEGEND, SUBPLOT, STEM. Overloded methods help
idmodel/plot.m help iddata/plot.m help ntree/plot.m help
dtree/plot.m help wvtree/plot.m help rwvtree/plot.m help
edwttree/plot.m
-
8
5. Manejo de Variables. Operaciones
VARIABLES
Matlab no requiere ningn tipo de comandos para declarar
variables, se crea la variable mediante
la asignacin directa del valor.
Ejemplo:
A= 2.173
ans A = 2.173
5*A
ans
b=0.456
A+b
A+B
MENSAJE DE ERROR
OPERACIONES
Suma +
Diferencia Producto *
Divisin /
Potencia ^
Ejemplos:
3.56*7.98
ans =
28.4088
23.4/56
ans =
0.4179
23^7
ans =
3.4048e+009
-
9
Observacin:
1. Se respeta el orden de prioridad de las operaciones:
POTECIACION 1
MUT DIV 2
SUMA REST 3
Ejemplos:
3/5-4^5+5*8.23
ans =
-982.2500
2. El orden de prioridad se altera por el uso de los parntesis;
lo primero a efectuarse es la operacin indicada dentro de los
parntesis.
Ejemplos:
(3/5-4)^5+5*8.23
ans =
-413.2042
COMANDOS ESPECIALES
1.- La Coma: ,
Realiza la separacin de dos o ms comandos a ejecutarse en una
misma lnea.
Ejemplo:
X=2.34, Y=67.98, X/Y, help surf
X =
2.3400
Y =
67.9800
ans =
0.0344
SURF 3-D colored surface.
-
10
SURF(X,Y,Z,C) plots the colored parametric surface defined
by
four matrix arguments. The view point is specified by VIEW.
The axis labels are determined by the range of X, Y and Z,
or by the current setting of AXIS.
2.- Punto La Coma: ;
Ejecuta el comando sin mostrar el resultado.
Ejemplos:
q=23^101;
q
q =
3.4238e+137 3423800000.0000
FORMATOS DE SALIDA
1. format long ofrece resultados con 16 cifras.
2. format short formato por defecto del MATLAB , 4 cifras
decimales.
3. format rat ofrece resultados en formato racional
aproximado.
4. vpa boperaciones b n ofrece el resultado de los operaciones
con n dgitos
exactos.
Ejemplos:
A=174/13
A =
13.3846
A=174/13
A =
13.3846
format long
A
-
11
A =
13.38461538461539
format long
A
A =
13.38461538461539
vpa '6^400' 50
ans =
.18217977168218728251394687124089371267338971528175e312
182750000 00000
vpa '6^400' 400
ans =1821797716..47748581376. El punto final indica que el valor
mostrado es
exacto.
COMANDOS:
pi
exp(0) e
ALGUNAS SALIDAS ESPECIALES
inf infinito
NaN indeterminacin
VARIABLES VECTORIALES EN MATLAB
Para representar a un vector con n elementos en matlab se
realiza de dos maneras:
-
12
1 Forma:
V= [ a1 a2 an] los elementos van separados por un espacio.
2 Forma:
V=[ a1, a2, , an] los elementos van separados por una coma.
Ejemplo:
A=[-2 3 2/3 -7 0.89]
A =
Columns 1 through 4
-2.00000000000000 3.00000000000000 0.66666666666667 -
7.00000000000000
Column 5
0.89000000000000
B=[3,-3.4,6,12,7.9,0]
B =
Columns 1 through 4
3.00000000000000 -3.40000000000000 6.00000000000000
12.00000000000000
Columns 5 through 6
7.90000000000000 0
FORMAS PARA GENERAR UN VECTOR
1. V=[a:b] Define un vector cuyo primer elemento es a, y el
ltimo elemento es b. Los
elementos intermedios se diferencian en una unidad (tamao de
paso es 1).
Ejemplos:
W=[-5:17]
W =
Columns 1 through 12
-5 -4 -3 -2 -1 0 1 2 3 4 5 6
Columns 13 through 23
7 8 9 10 11 12 13 14 15 16 17
Z=[0.5:15.7]
Z =
-
13
Columns 1 through 4
0.50000000000000 1.50000000000000 2.50000000000000
3.50000000000000
Columns 5 through 8
4.50000000000000 5.50000000000000 6.50000000000000
7.50000000000000
Columns 9 through 12
8.50000000000000 9.50000000000000 10.50000000000000
11.50000000000000
Columns 13 through 16
12.50000000000000 13.50000000000000 14.50000000000000
15.50000000000000
Puede ser cualquier nmero
2. V=[a:s:b] Define un vector cuyo primer elemento es a, y los
elementos intermedios
se diferencian en s unidades (tamao de paso es s) .
Ejemplo:
X=[-5:0.3:14]
X =
Columns 1 through 7
-5.0000 -4.7000 -4.4000 -4.1000 -3.8000 -3.5000 -3.2000
Columns 8 through 14
-2.9000 -2.6000 -2.3000 -2.0000 -1.7000 -1.4000 -1.1000
Columns 15 through 21
-0.8000 -0.5000 -0.2000 0.1000 0.4000 0.7000 1.0000
Columns 22 through 28
1.3000 1.6000 1.9000 2.2000 2.5000 2.8000 3.1000
Columns 29 through 35
3.4000 3.7000 4.0000 4.3000 4.6000 4.9000 5.2000
Columns 36 through 42
5.5000 5.8000 6.1000 6.4000 6.7000 7.0000 7.3000
Columns 43 through 49
7.6000 7.9000 8.2000 8.5000 8.8000 9.1000 9.4000
-
14
Columns 50 through 56
9.7000 10.0000 10.3000 10.6000 10.9000 11.2000 11.5000
Columns 57 through 63
11.8000 12.1000 12.4000 12.7000 13.0000 13.3000 13.6000
Column 64
13.9000
Y=[5:-0.5:0]
Y =
Columns 1 through 7
5.0000 4.5000 4.0000 3.5000 3.0000 2.5000 2.0000
Columns 8 through 11
1.5000 1.0000 0.5000 0 Columns 1 through 4
5.00000000000000 4.50000000000000 4.00000000000000
3.50000000000000
Columns 5 through 8
3.00000000000000 2.50000000000000 2.00000000000000
1.50000000000000
Columns 9 through 11
1.00000000000000 0.50000000000000 0
3. V=linspace(a,b,n) Define el vector V cuyo primer elemento es
a , el ultimo es b y tiene
un total de n elementos igualmente espaciados.
Ejemplo:
Z=linspace(10,30,6)
Z =
10 14 18 22 26 30
L=linspace(2,14,20)
L =
Columns 1 through 4
2.00000000000000 2.63157894736842 3.26315789473684
3.89473684210526
Columns 5 through 8
4.52631578947368 5.15789473684211 5.78947368421053
6.42105263157895
-
15
Columns 9 through 12
7.05263157894737 7.68421052631579 8.31578947368421
8.94736842105263
Columns 13 through 16
9.57894736842105 10.21052631578947 10.84210526315790
11.47368421052632
Columns 17 through 20
12.10526315789474 12.73684210526316 13.36842105263158
14.00000000000000
NOTA:
Si se quiere definir una variable vectorial del tipo columna se
procede de dos formas:
1 Forma: V= [a1; a2 ;a3; .;an]
2 Forma: V= [a1 a2 a3 .an] V=
COMANDOS QUE PERMITEN MANIPULAR LAS COMPONENTES DE UN VECTOR
Sea V= [a1 a2 a3 . an]
1.- V(m) Devuelve la m-esima componente de V
V(m) = am
2.- V(a:b) Devuelve los elementos del vector V situados entre a
y b
( Incluyndolos ).
3.- V(a:s:b) Devuelve los elementos del vector V situados entre
a y b
( incluyndolos, pero separados de s en s).
Ejemplos:
W=[-2:15]
W =
Columns 1 through 12
-2 -1 0 1 2 3 4 5 6 7 8 9
Columns 13 through 18
10 11 12 13 14 15
W(10)
-
16
ans =
7
W(5:16)
ans =
2 3 4 5 6 7 8 9 10 11 12 13
W(5:2:16)
ans =
2 4 6 8 10 12
W(5:3:16)
ans =
2 5 8 11
OPERACIONES VECTORIALES
Sean V=[a1 a2 . an] y W=[b1 b2 . bn]
Suma V+W=[a1+b1 a2+b2 ..an+bn] Resta V-W=[a1-b1 a2-b2 ..an-bn]
Producto por un escalar c*V=[c*a1 c*a2 . c*an]
Ejemplo:
Q=linspace(-2,8,10);
R=linspace(pi,2*pi,10);
Q+R
ans =
Columns 1 through 4
1.14159265358979 2.60176961509977 4.06194657660975
5.52212353811972
Columns 5 through 8
6.98230049962970 8.44247746113968 9.90265442264965
11.36283138415963
Columns 9 through 10
12.82300834566961 14.28318530717959
Q-R
ans =
-
17
Columns 1 through 4
-5.14159265358979 -4.37954739287755 -3.61750213216530
-2.85545687145306
Columns 5 through 8
-2.09341161074081 -1.33136635002857 -0.56932108931632
0.19272417139592
Columns 9 through 10
0.95476943210817 1.71681469282041
OPERACIN ELEMENTO A ELEMENTO
Sean V= [a1 a2 . an] y W=[b1 b2 . bn]
V.* W = [a1*b1 a2*b2 . an*bn] V. / W = [a1/b1 a2/b2 . an/bn]
V.^c = [a1^c a2^c . an^c] V.^W = [a1^b1 a2^b2 . an^bn]
EJEMPLOS:
E=[1 -2 3 -5 9 7.3 12]
E =
Columns 1 through 4
1.00000000000000 -2.00000000000000 3.00000000000000
-5.00000000000000
Columns 5 through 7
9.00000000000000 7.30000000000000 12.00000000000000
3/4*E
ans =
Columns 1 through 4
0.75000000000000 -1.50000000000000 2.25000000000000
-3.75000000000000
Columns 5 through 7
6.75000000000000 5.47500000000000 9.00000000000000
E^(2/3)
??? Error using ==> ^
-
18
Matrix must be square. (se debe usar adecuadamente la
sintaxis)
E.^(2/3)
ans =
Columns 1 through 2
1.00000000000000 -0.79370052598410 + 1.37472963699860i
Columns 3 through 4
2.08008382305190 -1.46200886910643 + 2.53227364240866i
Columns 5 through 6
4.32674871092222 3.76312438359888
Column 7
5.24148278841779
D=linspace(-3,19,7);
E*D
??? Error using ==> *
Inner matrix dimensions must agree.
E.*D
ans =
1.0e+002 *
Columns 1 through 4
-0.03000000000000 -0.01333333333333 0.13000000000000
-0.40000000000000
Columns 5 through 7
1.05000000000000 1.11933333333333 2.28000000000000
Matrices
Las matrices son un tipo comn de variable que es empleado en la
mayora de los lenguajes de
programacin. En MatLab estas se convierten en el centro de
atencin.
Por convenio emplearemos mayscula para representar matrices y
minscula para vectores y
escalares.Las matrices se definen por filas, los elementos de la
fila se separan por espacios o
comas (,) mientras que las filas van separadas por punto y coma
(;)
-
19
Una vez definida la matriz esta pasa a su espacio de trabajo
(Workspace) y estar disponible para
realizarse cualquier operacin.
Ejemplo.
Los elementos de una matriz se acceden poniendo los 2 ndices
entre parntesis separados por
coma (Ej. A(1,2) o A(i,j)).
Ejemplo.
Ejemplo.
A=[1,2,3; 4,5,6; 7,8,9]
B=[1 2 3; 4 5 6; 7 8 9]
-
20
Las matrices se operan a travs de operadores o funciones. Veamos
ahora los operadores.
+ Adicin
- Substraccin
* Multiplicacin
Traspuesta
^ Potencia
/ Divisin (derecha)
\ Divisin (izquierda)
.* y .^ Mult. y Potenciacin elemento a elemento
./ y .\ Div. (derecha y izquierda) elemento a elemento
Ejemplo.
-
21
Matrices predefinidas
eye(n) Matriz unitaria (n x n)
zeros(n) Matriz de ceros (n x n)
zeros(n,m) Matriz de ceros (n x m)
ones(n) Matriz de unos (n x n)
ones(n,m) Matriz de unos (n x m)
rand(n) Matriz de nmeros aleatorios
entre 0 y 1 (n x n)
rand(n,m) Matriz de nmeros aleatorios
entre 0 y 1 (n x m)
linspace
(x1,x2,n)
Genera un vector con n valores
entre x1 y x2 igualmente espaciados
magic(n) Genera una matriz mgica (n x n)
Ejemplos.
-
22
Direccionamiento de Matrices
Los elementos de una matriz pueden ser direccionados a partir de
otros vectores.
Ejemplo.
En el caso en que trabajsemos con vectores estos se
direccionaran mediante otro vector de
posiciones.
Ejemplo.
Como los elementos de una matriz se almacenan como columnas
podemos emplear esta
caracterstica para direccionarlas a travs de un vector.
Ejemplo.
-
23
El operador :
El operador : es utilizado para especificar rangos, su forma de
empleo es muy simple y sus
beneficios inmensos.
Forma de empleo:
=[val_ini : paso : val_fin]
Ejemplo.
El operador : se muestra mucho ms potente cuando se trabaja con
matrices.
Extraccin de submatrices. Extraccin de una columna.
Ejemplo. Ejemplo.
-
24
6. Funciones Matemticas del Matlab
Funciones matemticas elementales
Matlab posee diversos tipos de funciones matemticas
predefinidas. A continuacin daremos las
ms usuales. Todas estas funciones tienen como argumento (x) un
nmero real.
Funciones trigonometricas
FUNCION INVERSA
sin(x) asin(x)
cos(x) acos(x)
tan(x) atan(x)
cot(x) acot(x)
sec(x) asec(x)
csec(x) acsec(x)
Ejemplos.
sin(90)
ans =
0.8940
sin(pi/2)
ans =
1
Funciones hiperblicas
FUNCION INVERSA
sinh(x) asinh(x)
cosh(x) acosh(x)
tanh(x) atanh(x)
coth(x) acoth(x)
sech(x) asech(x)
csech(x) acsech(x)
Ejemplos:
tanh(3)
ans =
0.9951
sinh(3/5)
ans =
0.6367
-
25
Funciones exponenciales y logartmicas
FUNCION SIGNIFICADO
exp(x) Funcin exponencial de base e
log(x) Funcin logaritmo en base e de x
log10(x) Funcin logaritmo en base 10 de x
sqrt(x) Funcin raz cuadrada
Ejemplo:
log(2.35)
ans =
0.85441532815607
exp(pi)
ans =
23.14069263277927
sqrt(2.7)
ans =
1.64316767251550
sqrt(-16)
ans =
0 + 4.00000000000000i
Otras funciones
FUNCION SIGNIFICADO
abs(x) Funcin valor absoluto de x
sign(x) Funcin signo de x
floor(x) Funcin mayor entero menor o igual a x.
ceil(x) Funcin menor entero mayor o igual que x.
round(x) Funcin que redondea al entero ms prximo de x
abs(-23/7)
ans =
3.28571428571429
-
26
sgn(-5.16)
??? Undefined function or variable 'sgn'.
sign(-5.16)
ans =
-1
sign(9)
ans =
1
sign(0)
ans =
0
floor(4.67)
ans =
4
floor(-4.67)
ans =
-5
ceil(4.67)
ans =
5
round(0.678)
ans =
1
round(0.345)
ans =
0
-
27
Algunas Funciones Aritmticas MATLAB incorpora funciones que
permiten manejar cuestiones aritmticas elementales. Algunas de
ellas:
Funcin Descripcin
factor (n) Lista de factores primos de n.
primes(n) Lista de primos menores o iguales a n.
isprime(n) 1 si es primo, 0 si no lo es.
gcd(n,m) Mximo comn divisor de n y m.
lcm(n,m) Mnimo comn mltiplo de n y m.
factorial(n) Factorial de n.
Ejemplo. Hallar los factores primos de 144. Solucin:
factor (144)
ans = 2 2 2 2 3 3
Ejemplo. Hallar los primos menores a 15. Solucin:
primes (15) ans =
2 3 5 7 11 13 Ejemplo. Averiguar si 231 es un nmero primo.
Solucin: isprime(231)
ans = 0
Ejemplo. Verificar si 1787 es primo, si no lo es, mostrar su
descomposicin en factores primos.
Solucin:
isprime(1787) ans=
1 factor (1787)
ans = (1787)
Ejemplo. Hallar el mximo comn divisor de 12 y 14. Solucin:
gcd(12,14) ans =
2 Ejemplo. Hallar el mximo comn divisor de 12 , 14 y 15.
Solucin : gcd(12,gcd(14,15))
ans =
1 Ejemplo. Hallar el factorial de 12.
Solucin : factorial(12)
ans = 479001600
-
28
Funciones que manipulan las componentes de un vector
Sea el vector V= [a1 a2 . an]
max(V) Devuelve el mximo valor de las componentes del vector
V.
min(V) Devuelve el mnimo valor de las componentes del vector
V.
sum(V) Devuelve la suma de las componentes del vector V
prod(V) Devuelve el producto de las componentes del vector V
mean(V) Devuelve la media de las componentes del vector V
Ejemplos.
sum(D) ans =
56
mean(D) ans =
8
Creando funciones en MATLAB
Si tenemos que trabajar con una funcin diferente de las que nos
proporciona Matlab, debemos
de crear un archivo M (M-file) independiente.
Consideremos un M-file para la siguiente funcin f(x)=x3. Si
queremos crear dicha funcin procedemos de la forma siguiente:
-Abrimos en el men File (extremo superior izquierdo) un archivo
m-file.
-
29
-Luego de seleccionar, tendremos otra ventana, donde
escribiremos:
function y=cubica(x)
y=x^3;
-Luego nuevamente, en el men File (de la ventana M-file) abrimos
el submen Save as y
guardamos el archivo con el nombre de la funcin: cubica.m en el
subdirectorio del Matlab en el
cual se trabaja. Desde ahora ya podemos utilizar la funcin
definida.
Ejemplo . Evale la funcin cbica en 1, 1.2 y 2.
Solucin:
cubica(1)
ans = 1
cubica(1.2)
ans =
1.628
cubica(2)
ans =
8
-
30
Comando function:
Permite la definicin de funciones en MATLAB.
SINTAXIS:
function parmetros de salida = nombre de la funcin (parmetros de
entrada)
cuerpo de la funcin
.
Guardar la funcin: save as
Ejemplo: crear la funcin f(x)= x^2-1-sen(x)
Sol:
1 Ir al men principal, luego seleccionar la opcin
FILE NEW M-FILE
2 Aparece una plantilla, sobre la cual se va ha definir la
funcin del usuario.
3 Una vez definida la funcin se procede a guardar la funcin
FILE SAVE AS guardar en el directorio WORK
4. Llamar a dicha funcin desde la ventana de comandos.
-
31
Para ejecutar esta funcin se hace desde la ventana de comandos,
llamando a la funcin con el nombre que ha sido guardado:
NOTA: % sirve para agregar comentarios a archivos de matlab (no
se ejecuta)
-3 -2 -1 0 1 2 3-2
0
2
4
6
8
10
-
32
Ejemplo.
Crear una funcin que de cmo salida las soluciones de una ecuacin
cuadrtica.
Comando feval.
feval (nombredelafuncion, x0) evalua una funcin en el valor
x0
-
33
EJERCICIOS:
Escriba las siguientes funciones en Matlab.
1.- rea lateral de un cono.
2.- Volumen de un tetraedro regular.
3.- Una funcin que convierta radianes a grados
sexagesimales.
4. Una funcin que halle la distancia de un punto a una recta en
el plano.
Funcin inline
Existe una forma de definir una funcin en MATLAB en la lnea de
comandos:
SINTAXIS:
inline (funcion,variable)
Ejemplo: Crear la funcin f(x)= x^3-cos(x)*exp(-x), en la lnea de
comandos y luego graficarla en
el intervalo [-2,pi].
-
34
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3-5
0
5
10
15
20
25
30
35
7. Formatos de Salida
Comando fprintf:
Realiza la escritura por la pantalla.
Sintaxis:
fprintf (formato, A)
El argumento formato consiste en una cadena formada por
caracteres de escape (precedidos del
carcter \) y por caracteres de conversin segn los diferentes
formatos (precedidos del carcter
%).
Caracteres de Escape:
\ n ejecuta el paso a una nueve lnea
Caracteres de Conversin:
% d enteros en sistema decimal
% f nmeros reales en punto fijo
% e nmeros reales en forma exponencial
% s cadena de caracteres
-
35
Observacin:
1.- Cuando se trabaja con nmeros enteros, se utilizan los
caracteres de conversin en la
forma:
% m d
donde m indica el nmero de cifras.
Ejemplo: % 8 d este formato indica que la salida ser un nmero
entero al cual se le
asigna ocho cifras
2.- Cuando se trabaja con nmeros reales se utilizan los
caracteres de conversin de la
forma: % m.r v
Donde m representa el total de cifras del nmero real incluido el
punto decimal, m es el
numero de decimales del nmero real y v puede ser o f o e.
Ejemplo:
-
36
0 1 2 3 4 5 6-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
8. Grficos en Matlab
GRAFICOS EN 2D
Comando plot:
plot(x,y) Dibuja el conjunto de puntos (x,y)
Ejemplo: Graficar f(x)= sen(x) x [0,2 ]
x=0:0.8:2*pi;
y=sin(x)
y =
Columns 1 through 7
0 0.4794 0.8415 0.9975 0.9093 0.5985 0.1411
Columns 8 through 13
-0.3508 -0.7568 -0.9775 -0.9589 -0.7055 -0.2794
plot(x,y)
Ahora si cambiamos el tamao de paso a 0.05
x=0:0.05:2*pi;
y=sin(x);
plot(x,y)
-
37
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-4 -2 0 2 4 6 8-8
-7
-6
-5
-4
-3
-2
-1
0
1
Atributos
TIPO DE MARCA COLOR DE LINEA
. r rojo
+ y amarillo
* m magenta
O c turquesa
X g verde
- b azul
-- w blanco
: k negro
plot(x,y,+r)
Ejemplo: Graficar f(x) = e-x sen(x) x [ ,2 ]
X=-pi:0.05:2*pi;
Y=exp(-X)*sin(X);
??? Error using ==> *
Inner matrix dimensions must agree.
Y=exp(-X).*sin(X);
plot(X,Y)
plot(X,Y,'--g')
-
38
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3-40
-30
-20
-10
0
10
20
-3 -2 -1 0 1 2 32.6
2.8
3
3.2
3.4
3.6
3.8
4
Ejemplo: Graficar la funcin
F(x)=x^3-2x^2+5x-6 en x [ ,3]
X=-2:0.05:3;
Y=X.^3-2*X.^2+5*X-6;
plot(X,Y)
Comando hold on:
hold on aade una grafica a la ventada anteriormente mostrada
hold off deshabilita el comando hold on
Comando fplot:
fplot ( f , [ xmin, xmax])
fplot ( f ,[xmin,xmax,ymin,ymax])
fplot ( [ f1,f2,,fn],[xmin,xmax,ymin,ymax])
Ejemplos: graficar
1.- f(x)=pi+0.5 sen(x/2)
fplot ( pi+0.5 *sin(x/2) , [ -pi, pi])
-
39
-3 -2 -1 0 1 2 3-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
sin(x)
sin(2*x)
sin(3*x)
2.- graficar y=sen(x), y=sen(2x), y=sen(3x)
fplot ( [sin(x), sin(2*x), sin(3*x)],[-pi,pi])
legend( sin(x) , sin(2*x), sin(3*x))
Comando legend:
legend( ) sirve para colocar leyendas a las
graficas.
Operadores relacionales
< Menor que
Mayor que
>= Mayor o igual a
== Igual a
~= Distinto de
Ejemplo:
>> 5.7>=4.9
-
40 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3-1-0.5
0
0.5
1
1.5
2
2.5
3
3.5
4
>> pi> 9==8
>> 3.24~=2.45
Operadores lgicos
& Conjuncin
| Disyuncin
~ Negacin
xor Disyuncin exclusiva
Ejemplo:
>> 2.459.7
>> 4>-3 | pi> X=1:7;
X= 1 2 3 4 5 6 7
>> 2 X= - 2 :0.05:3;
>> Y= (X.^2) .*(X
-
41
Sintaxis:
if
elseif
else
end
Sintaxis:
if
end
9. Programacin en Matlab
Estructuras condicionales y bucles
MatLab posee un lenguaje de programacin propio que dispone de
sentencias para realizar
bifurcaciones y bucles.
Las bifurcaciones permiten realizar una u otra operacin segn se
cumpla o no una determinada
condicin.
Los bucles permiten repetir las mismas o anlogas operaciones
sobre datos distintos.
Sentencia if
Estructura condicional conformada a partir de la sentencia if en
su forma simple:
Estructura condicional conformada a partir de la sentencia if en
su forma general:
-
42
Sintaxis 1:
for = ::
end
Sintaxis 2:
for =
end
Ejemplo: Simple
Ejemplo: General
El bucle for
El bucle for repite un conjunto de instrucciones un nmero
predeterminado de veces.
La estructura del bucle for de MatLab es muy diferente a su
homloga en otros lenguajes como
C/C++/Java, no contando esta con la misma generalidad.
-
43
Sintaxis:
for = ::
for = ::
end
end
Sintaxis:
while
end
Ejemplo:
Ejemplo:
El bucle for de MatLab, al igual que en otros lenguajes, puede
anidarse.
El bucle while
El bucle while de MatLab, es muy similar al lenguajes como
C/C++.
-
44
Sintaxis:
switch
case ,
otherwise
end
Ejemplo:
Sentencia switch
Estructura condicional conformada a partir de la sentencia
switch en su forma general:
Ejemplo:
-
45
Variables caracter:
Comando disp y comando input:
Sintaxis:
disp(cadena) Muestra la cadena tal y como se ha escrito en la
pantalla y luego continua el proceso en MATLAB.
input (cadena) Muestra la cadena en pantalla y MATLAB espera la
presin de una tecla para continuar.
Ejemplo:
-
46
10. Implementacin de los algoritmos de la asignatura de
Matemtica Computacional I
PROGRAMA DEL METODO DE BISECCION
format long
a=input('INGRESE EL EXTREMO IZQUIERDO a DEL
INTERVALO:')
b=input('INGRESE EL EXTREMO DERECHO b DEL INTERVALO:')
nMAX=input('INGRESE EL NUMERO MAXIMO DE ITERACIONES
PERMITIDAS:')
E=input('INGRESE LA TOLERANCIA E ESPECIFICADA:')
F=input('INGRESE LA FUNCION F:')
n=1;
Fa=F(a);
Fb=F(b);
if Fa*Fb
-
47
disp('INGRESE OTRO INTERVALO')
end
EJERCICIOS
Usar el programa de biseccin para encontrar la solucin de
las
siguientes ecuaciones:
1.- 4x^4-9x^3-1=0
2.- x^3-5*exp(x)+3=0
3.- exp(-x)+cos(x)=0
4.- 2+cos(exp(x)-2)-exp(x)=0
5.- x^3-x-1=0
Verificar las aproximaciones obtenidas con el comando del Matlab
fzero
que aproxima races.
Comando fzero:
Halla las races de una funcin f cerca al valor x0
Sintaxis:
fzero( funcion, x0)
fzero( funcion,[a,b])
-
48
PROGRAMA DEL METODO DEL PUNTO FIJO
format long
nmax=input('ingrese el numero maximo de iteraciones
nmax:')
error=input('ingrese el error de la aproximacion
error:')
g=input('ingrese la funcion de iteracion g')
Po=input('ingrese la aproximacion inicial Po:')
n=0;
Pvect=Po;
tol=error+1;
while nerror
n=n+1;
P=g(Po);
Pvect=[Pvect;P]
tol=abs(P-Po)
Po=P
end
if n==nmax
disp('se ha alcanzado el numero maximo de
iteraciones')
end
disp('la aproximacion es:'),P
disp('el numero de iteraciones es:'), n
disp('las aproximaciones son:'), Pvect
EJERCICIOS
Usar el programa del mtodo del punto fijo para resolver:
1.- ln(x)+x=0
Tomando como funcin de iteracin g(x)=exp(-x) p0=0.5
2.- x^2-1-sen(x)=0
Tomar g(x)=sqrt(1+sin(x)) p0=pi/2 error=10^-7
-
49
PROGRAMA DEL METODO DEL NEWTON format long
error=input('ingrese el error de la aproximacion
error:')
f=input('ingrese la funcion f')
df=input('ingrese la funcion derivada Df')
ddf=input('ingrese la segunda derivada de la funcion
f')
Po=input('ingrese la aproximacion inicial Po:')
n=0;
Pvect=Po;
tol=error+1;
fprintf('****************************\n')
fprintf(' n Po\n')
fprintf('****************************\n')
fprintf(' %3d %17.14f \n',n,Po)
if f(Po)*ddf(Po)>0
while tol>error
n=n+1;
P=Po-f(Po)/df(Po);
Pvect=[Pvect;P];
tol=abs(P-Po);
fprintf(' %3d %17.14f \n',n,P)
Po=P;
end
disp('la aproximacion es:'),P
disp('el numero de iteraciones es:'), n
else
disp('Cambie el punto Po pues no es adecuado')
end
EJERCICIOS: Hallar las soluciones de las siguientes ecuaciones,
haciendo uso del programa del mtodo de Newton, tomando un Po y una
tolerancia adecuada. 1.- exp(x)-2
-x +2cosx-6=0
2.- ln(x-1)+cos(x-1)=0 3.- 2xcos2x-(x-2)
2 =0
4.- senx-exp(-x)=0
-
50
PROGRAMA DEL METODO DE LA SECANTE format long
x0 = input(Ingrese el primer punto :);
x1 = input(Ingrese el segundo punto:);
tolerance = 1e-8;
iterations = 0;
while (iterationstolerance)
iterations = iterations + 1 ;
f0 = func(x0);
f1 = func(x1);
x2 = x0-f0*(x1-x0)/(f1-f0);
x0 = x1;
x1 = x2;
end
if iterations==30
disp(raiz no hallada)
else
disp([ Raiz = num2str(x1,10) hallada en ...
num2str(iterations) iterations.])
end
PROGRAMA PARA RESOLVER UN SISTEMA TRIANGULAR SUPERIOR
%AX=B sistema triangular superior
%se resuelve mediante la sustitucion regresiva
%A=input('Ingrese la matriz triangular superior A=')
%B=input('Ingrese la matriz B=')
function X=regresiva(A,B)
n=length(B);
X=zeros(n,1);
X(n)=B(n)/A(n,n);
for k=n-1:-1:1
X(k)=(B(k)-A(k,k+1:n)*X(k+1:n))/A(k,k);
end
%disp('la solucin es:'),X
-
51
PROGRAMA DE LA ELIMINACION GAUSSIANA
function X=elimgauss(A,B)
%Datos
% -A es una matriz invertible de orden NxN
% -B es una matriz de orden Nx1
%Resultados
% -X es una matriz de orden Nx1 que contiene la
solucion de AX=B
%Inicializamos X y una matriz C que sirve de almacn
temporal
[N N]=size(A);
X=zeros(N,1);
C=zeros(1,N+1);
%Clculo de la matriz ampliada Aug=[A|B]
Aug=[A B];
for q=1:N-1
%Pivoteo parcial en la columna q- esima
[Y,j]=max(abs(Aug(q:N,q)));
%Itercambiamos las filas q-esima y (j+q-1)-esima
C=Aug(q,:);
Aug(q,:)=Aug(j+q-1,:);
Aug(j+q-1,:)=C;
if Aug(q,q)==0
'A es singular. No hay solucion o no es unica.'
break
end
%Proceso de eliminacion en la columna q-esima
for k=q+1:N
m=Aug(k,q)/Aug(q,q);
Aug(k,q:N+1)=Aug(k,q:N+1)-m*Aug(q,q:N+1);
end
end
% Sustitucion regresiva en [U|Y]usando el programa 3.1
X=regresiva(Aug(1:N,1:N),Aug(1:N,N+1));
-
52
PROGRAMA DEL METODO ITERATIVO DE JACOBI
%A es una matriz invertible de orden NxN
%B es una matriz de orden Nx1
%P es una matriz de orden Nx1: el punto inicial
%delta es la tolerancia para P
%max1 es el numero maximo de iteraciones
%X es una matriz de orden Nx1: solucion de AX=B
generada por el metodo de Jacobi
function X=jacobi(A,B,P,delta,max1)
format long
N=length(B);
for k=1:max1
for j=1:N
X(j)=(B(j)-A(j,[1:j-1,j+1:N])*P([1:j-
1,j+1:N]))/A(j,j);
end
err=abs(norm(X'-P));
relerr=err/(norm(X)+eps);
P=X';
if(err
-
53
X(N)=(B(N)-A(N,1:N-1)*(X(1:N-1))')/A(N,N);
else
%X contiene la aproximacion k-esima
%y P la (k-1)-esima
X(j)=(B(j)-A(j,1:j-1)*X(1:j-1)-
A(j,j+1:N)*P(j+1:N))/A(j,j);
end
end
err=abs(norm(X'-P));
relerr=err/(norm(X)+eps);
P=X';
if (err
-
54
C=Y*L;
plot(X,Y,'*r')
Z=X(1)-2:0.05:X(w)+2;
R=0;
for i=w:-1:1
R1=C(w-i+1)*Z.^(i-1);
R=R1+R;
end
hold on
plot(Z,R,'--b')
PROGRAMA DEL METODO DE INTERPOLACION DE NEWTON CON
DIFERENCIAS DIVIDIDAS
function[C,D]=newpoly(X,Y)
%Datos
%X es un vector con la lista de las absicisas
%Y es un vector con la lista de las ordenadas
%Resultados
%C es un vector que contiene los coeficientes
% del polinomio interpolador de Newton, escrito
%de forma habitual, en potencias decrecientes de X
%D es la tabla de diferencias divididas
n=length(X);
D=zeros(n,n);
D(:,1)=Y';
% usamos la formula (20) para hallar
% la tabla de diferencias divididas
for j=2:n
for k=j:n
D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));
end
end
% calculo del vector que contiene los coeficientes
% del polinomio interpolador de Newton, escritos
% de forma habitual, en potencias decrecientes de X
C=D(n,n);
for k=(n-1):-1:1
-
55
C=conv(C,poly(X(k)));
m=length(C);
C(m)=C(m)+D(k,k);
end
plot(X,Y,'*r')
Z=X(1)-1:0.05:X(m)+1
R=0
for i=1:m
R=R+C(i)*Z.^(m-i)
end
hold on
plot(Z,R)
11. Discusin y Conclusiones
Como se puede apreciar el manejo del programa MATLAB es muy
accesible y permite obtener
resultados numricos y grficos, adems posee su propio lenguaje de
programacin, lo cual
facilita la implementacin de los algoritmos de los mtodos del
anlisis numrico.
De los algoritmos que se han podido implementar podemos concluir
lo siguiente:
La implementacin de los algoritmos de los mtodos se realiza de
una manera muy
accesible en el entorno del software MATLAB.
Se puede obtener con bastante facilidad una salida numrica en
forma de reportes, a si
como una salida grafica para los programas implementados.
Los grficos y la salida numrica se pueden exportar a un
documento de Word, lo que
facilitara los informes conteniendo los resultados.
-
56
12. Referencias
1.- BURDEN, Richard. Anlisis Numrico, Mxico, Editorial
Iberoamericana, 1995.
2.- CORDERO, Alicia. Mtodos Numricos con Matlab, Espaa,
Editorial de la UPV, 2005.
3.- GILAT, Amos. Matlab: una introduccin con ejemplos prcticos,
Espaa, Editorial Reverte,
2006.
4.- KINCAID, David. Anlisis Numrico las matemticas del calculo
cientfico, Mxico, Editorial
Addison Wesley Iberoamericana, 1994.
5.- MATHEWS, John. Mtodos Numricos con Matlab, Mxico, Prentice
Hall, 2000.
6.- QUARTERONI, A. Calculo cientfico con Matlab y Octave,
Italia, Springer, 2006.
-
57
13. Apndice
La calculadora de funciones FUNTOOL
Matlab dispone de una herramienta que combina el clculo simblico
de funciones con la
visualizacin grafica de stos. Se activa escribiendo el
comando:
>> funtool
Aparecen tres pantallas como se muestra.
-
58
Las dos primeras son ventanas grficas y la tercera es la
calculadora.
En esta aparecen dos funciones que tienen sus grficos en las dos
ventanas superiores, la
mayora de las operaciones son respecto a f(x).
En los recuadros etiquetados con f= y g= se pueden escribir y
cambiar las funciones.
Lo mismo para x= , que vendra a ser el dominio simultneo de f y
g.
Adems a= es un parmetro constante que se puede cambiar. Para
ejecutar los comandos
pulsar Enter desde cualquier posicin.
La fila superior de teclas de la calculadora son operaciones que
slo afectan a la funcin f(x).
df/dx : Derivada de f(x).
intf : Integral de f(x).
simplef : Simplifica La expresin f si es posible.
numf : Extrae el numerador de una expresin racional.
denf : Extrae el denominador de una expresin racional.
1/f : Reemplaza f(x) por 1/f(x).
finv : Reemplaza f por su funcin inversa.
La segunda fila de teclas trasladan y reescalan la funcin f(x)
segn el valor del parmetro a.
f+a : Reemplaza f(x) por f(x)+a.
f-a : Reemplaza f(x) por f(x)+a.
f*a : Reemplaza f(x) por f(x)+a.
f/a : Reemplaza f(x) por f(x)+a.
f^a : Reemplaza f(x) por f(x)+a.
f(x+a) : Reemplaza f(x) por f(x)+a.
f(x*a) : Reemplaza f(x) por f(x)+a.
La tercera fila son operaciones en las que intervienen las dos
funciones f(x) y g(x).Son:
f+g : Remplaza f(x) por f(x)+g(x).
f-g : Remplaza f(x) por f(x)-g(x).
-
59
f*g : Remplaza f(x) por f(x).g(x).
f/g : Remplaza f(x) por f(x)/g(x).
f(g) : Remplaza f(x) por la composicin f(g(x)).
g=f : Remplaza g(x) por f(x).
swap : Intercambia f(x) y g(x).
La cuarta fila son teclas para el manejo de listas de
funciones.
Grficos con simetras respecto al eje y.
Dada una funcin f(x), la funcin g(x) =f(-x) tiene por grfico uno
simtrico (respecto al eje y) al
de f(x).
Ejemplo 1.
Sea f(x) = exp(x), graficar con funtool g(x)=f(-x) y verificar
la simetra.
Solucin:
Sigamos los siguientes pasos :
1. Hagamos f(x) = exp(x) .
2. Pulsemos
g=f
3. Luego introduzcamos a=-1 .
4. Por ultimo pulsemos
f(x*a)
Ejemplo 2.
Realice lo anterior para f(x)= 3x .
Solucin:
1. Hagamos f(x) = 3x .
2. Pulsemos
g=f
3. Luego introduzcamos a=-1 .
-
60
4. Por ltimo pulsemos
f(x*a)
Grficos con simetras respecto al eje x.
Dada una funcin f(x), la funcin g(x)=-f(x) tiene por grfico uno
simtrico (respecto al eje x) al
de f(x).
Ejemplo 3.
Sea f(x)=2
1
x graficar g(x)=-f(x) y verificar la simetra.
Solucin:
1. Hagamos f(x) =2
1
x
2. Pulsemos
g=f
3. Luego introduzcamos a=-1 .
4. Por ltimo pulsemos
f*a
Grficos con simetras respecto al origen.
Dada una funcin f(x), la funcin g(x)=-f(-x) tiene por grfico uno
simtrico (con respecto al origen)
al de f(x).
Ejemplo 5.
Sea f(x)=exp(x) graficar g(x)=-f(-x) y verificar simetras.
Solucin:
1. Hagamos f(x) =exp(x)
2. Pulsemos
g=f
3. Luego introduzcamos a=-1 .
4. Pulsemos
f(x*a)
-
61
5. Por ltimo
f*a
Grficos y Traslaciones.
Sabemos que el grfico de la funcin g(x)=f(x-a) es el grfico de
la funcin f(x) desplazado a lo
largo del eje de abscisas en a unidades.
Ejemplo 6.
Sea f(x)= 2x . Graficar g(x)=f(x-2) y h(x)=f(x+2)
Solucin:
Sigamos los siguientes pasos
1. Hagamos f(x) = 2x
2. Pulsemos
g=f
3. Luego introduzcamos a=-2 .
4. Pulsemos
f(x+a)
De forma similar para h(x).
Por otro lado, el grafico de la funcin g(x)=f(x)+a, es el
grafico de la funcin f(x) desplazado a lo
largo del eje de ordenadas en a unidades.
Ejemplo 7.
Graficar g(x)= 3x +2 y compararla con el grfico de f(x)= 3x
.
Solucin:
Sigamos los siguientes pasos
1. Hagamos f(x) = 3x
2. Pulsemos
g=f
3. Luego introduzcamos a=2.
4. Pulsemos
f+a
Tambin podemos tomar consecutivamente los resultados
anteriores.
-
62
Ejemplo 8.
Graficar g(x)= 123
x y comparar grficamente con f(x)= 3x .
Solucin:
Sigamos los siguientes pasos:
1. Hagamos f(x) = 3x
2. Pulsemos
g=f
3. Luego introduzcamos a=-2 .
4. Pulsemos
f(x+a)
5. Introduzcamos a=1.
6. Pulsemos
f+a
Composicin de Funciones.
Dado f y g funciones con la tecla
f(g)
Funtool realiza la composicin (fog)(x) adems de mostrar el
grfico de la composicin, en la
ventana de la izquierda.
Ejemplo 9.
Calcular (fog)(x) y (gof)(x) en cada caso
a) f(x)= 3x , g(x)=x-3 .
b) f(x)= 12 xx , g(x)=2
1
x .
c) f(x)= 2x , g(x)= x .
Ejemplo 10.
Dado f(x)= 3x , graficar )(xf y f x .
Funcin Inversa. Dada una funcin f(x), funtool calcula la inversa
de f, si la tuviera, mediante el comando
-
63
finv
Recordemos que un grfico es simtrica con respecto a la recta
y=x, del otro. Ejemplo11. Graficar las inversas de las siguientes
funciones:
a) f(x)=exp(x). b) f(x)=x3 .
Ejemplo 12. Estudiar el grfico de las inversas de las siguientes
funciones:
a) f(x)=1/x . b) f(x)=tan(x) .