APUNTES MATLAB(1)

63
 1 Año de la Integración Nacional y el Reconocimiento de Nuestra Diversidad UNIVERSID D N CION L DEL C LL O  Departamento académico de M TEM TIC SE P PA RATA USO DEL MATLAB PARA LA IMPLEMENTACION DEL LABORATORIO DE MATEMATICA COMPUTACIONAL I RESOLUCION DECANAL Nº 048-2012-D-FCNM Docente: Humberto Emiliano Galvez Perez CICLO: 2012-A Bellavista - Callao

Transcript of APUNTES MATLAB(1)

  • 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) .