apuntes matlab(1)
TRANSCRIPT
-
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) .