Métodos Numéricos notas

Embed Size (px)

Citation preview

  • 7/24/2019 Mtodos Numricos notas

    1/160

    Notas de la materia de

    Mtodos Numricos

    Dr. Antonio Ramos Paz

    Facultad de Ingeniera Elctrica

    U.M.S.N.H.

  • 7/24/2019 Mtodos Numricos notas

    2/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz ii

    Introduccin

    A continuacin se presenta una recopilacin de las notas de la materia de Mtodos Numricos que se

    ofrece dentro de la currcula de las carreras de Ingeniera Elctrica, Electrnica y en Computacin en la

    Facultad de Ingeniera Elctrica. Estas notas no pretenden reemplazar a los textos que sobre la materia

    han sido escritos, sin embargo si pretenden ser un material de apoyo para los estudiantes de esta

    materia. En estas notas el lector encontrar el material completo que corresponde al curso de MtodosNumricos. El material contenido en estas notas est organizado en 8 Unidades

    El contenido de estas notas se ha formado por medio de la recopilacin de materiales de varios autores,

    los cuales son citados en la Bibliografa de este texto, adems de mi aportacin de problemas

    relacionados con las reas de Ingeniera Elctrica y Electrnica.

    Este texto no pretende sustituir a los textos de mtodos numricos que existen actualmente, sus

    objetivos de este texto son

    Objetivos

    Que el estudiante tenga un documento en el cual pueda encontrar todos los temas ysubtemas que contiene el programa vigente de la materia de Mtodos Numricos en la

    Facultad de Ingeniera Elctrica de la Universidad Michoacana de San Nicols de Hidalgo.

    Que el estudiante cuente con un material de apoyo en dnde pueda ver y analizar una gran

    cantidad de problemas resueltos y propuestos, los cuales le permitan afianzar los

    conceptos tericos analizados en clase.

    Que el estudiante ejercite la programacin de computadoras a travs de ejemplos sencillos

    en los cuales se muestra una alternativa de la programacin de los diversos mtodos

    numricos analizados en este texto.

    Que el lector de estas notas vea que los mtodos numricos son una herramienta muypoderosa en el anlisis, diseo y planeacin de los sistemas que son utilizados en las reas

    de Ingeniera, en particular en las ingenieras: elctrica, electrnica y en computacin.

    Que estas notas se conviertan en un futuro en un libro de texto de Mtodos Numricos

    para Ingenieros.

    Espero que estas notas sean de utilidad para el lector.

    Atte.

    Dr. Antonio Ramos Paz

    Profesor e Investigador Asociado

    Facultad de Ingeniera Elctrica

    UMSNH

    Candidato a Investigador Nacional (2008-2010)

    Sistema Nacional de Investigadores

    Morelia Michoacn a 1 de agosto de 2008

  • 7/24/2019 Mtodos Numricos notas

    3/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz iii

    Contenido

    1. Introduccin a la programacin en Matlab ..................................................................................... 1

    2.Modelos, computadoras y errores ......................................................... ......................................... 32

    3.Solucin de Ecuaciones No Lineales ....................................................................................... ......... 414.Solucin de Sistemas de Ecuaciones Lineales y No lineales ............................................................ 66

    5.Optimizacin ................................................................................................................................... 79

    6.Ajuste de curvas .............................................................................................................................. 105

    7. Diferenciacin e integracin ........................................................ .................................................... 118

    8. Ecuaciones diferenciales ordinarias ................................................................................................ 132

    9. Ecuaciones diferenciales parciales .............................................................................. .................... 146

    Bibliografa........................................................................................................................................... 152

  • 7/24/2019 Mtodos Numricos notas

    4/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 1

    Unidad I

    Introduccin a la programacin en Matlab

    Introduccin

    La computadora es un elemento que da con da es usada ms y ms en diversos mbitos de nuestra

    sociedad. El uso de la computadora en el entorno acadmico y cientfico nos permite aprovechar sus

    caractersticas de precisin y rapidez con el objeto de poder resolver problemas de mayor grado de

    dificultad.

    Matlab es un programa de cmputo que nos permite realizar operaciones tales como sumas, restas,

    multiplicaciones y divisiones as como utilizar una amplia gama de funciones.

    Todo nmero que es utilizado en Matlab es representado conceptualmente por el programa como una

    matriz, por ejemplo, la suma,

    2 2

    sera representada en Matlab como:

    2 2

    Operadores matemticos

    Matlab utiliza los siguientes operadores aritmticos:

    + Suma

    Resta

    / Divisin a la derecha

    \ Divisin a la izquierda

    * Multiplicacin

    ^ Potenciacin

    () Agrupacin

    Por ejemplo, la operacin2 1

    3 3 se representara en matlab como 2/3 + 1/3

    El uso de los parntesis es de suma importancia, debido a que permiten agrupar operaciones, porejemplo, la operacin:

    1 3 4

    3

    se representa en matlab como:

    1 3 4 / 3

    El smbolo ^ es muy til para el clculo de cualquier tipo de raz, por ejemplo4 81 puede calcularse

    mediante el uso de una potencia como:

  • 7/24/2019 Mtodos Numricos notas

    5/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 2

    81^(1/4)

    Recordar que:/ nm n mx x

    Operaciones con matrices

    Consideremos la siguiente matriz:

    1 2 3

    4 5 6

    7 8 9

    A

    Su representacin en matlab es:

    A = [1 2 3;4 5 6;7 8 9]

    La matriz se introduce a matlab por medio del uso de corchetes cuadrados. La introduccin de loselementos es por rengln. El smbolo ; representa el final de los elementos del rengln.

    Considrese la matriz

    1 2 4 6

    8 7 4 3B

    Su representacin en matlab es:

    B = [1 2 4 6;8 7 4 3]

    Ejemplo: considrense las matrices:

    3 6 2

    1 0 4

    2 7 5

    A

    8 5 3

    4 6 7

    1 4 3

    B

    la representacin de estas matrices en matlab se realiza por medio las siguientes instrucciones,

    introducidas desde la lnea de comandos:

    A = [-3 6 2; -1 0 4; 2 7 5]

    B = [8 5 -3;4 -6 7;-1 4 3]

    Consideremos ahora la realizacin de algunas operaciones entre las matrices A y B, tales como: A+B, A-

    B, AB, BA, AT, A

    -1, B

    -1, AA

    -1y BB

    -1

    Las operaciones se realizaran de la siguiente forma,

    A B

    A + B

    ans =

    5 11 -1

    3 -6 11

    1 11 8

  • 7/24/2019 Mtodos Numricos notas

    6/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 3

    A B

    A-B

    ans =

    -11 1 5

    -5 6 -3

    3 3 2

    AB

    >> A*B

    ans =-2 -43 57

    -12 11 15

    39 -12 58

    BA

    >> B*A

    ans =

    -35 27 21

    8 73 19

    5 15 29

    'A

    >> A'

    ans =

    -3 -1 2

    6 0 7

    2 4 5

    1A

    >> inv(A)

    ans =

    -0.1892 -0.1081 0.1622

    0.0878 -0.1284 0.0676

    -0.0473 0.2230 0.0405

    1AA

    >> A*inv(A)

    ans =

    1.0000 0.0000 -0.0000

    -0.0000 1.0000 -0.0000

    0.0000 -0.0000 1.0000

    Solucin de sistemas de ecuaciones usando Matlab

    Considrese el siguiente sistema dos ecuaciones con dos incgnitas:

    1 2

    1 2

    1

    7

    x x

    x x

    La representacin matricial del sistema de ecuaciones anterior es:

    1

    2

    1 1 1

    1 1 7

    x

    x

    en forma compacta se tiene:

    AX B

    resolviendo para X tomando en cuenta que A , B y X son matrices se tiene que:

    1X A B

    de aqu se puede apreciar que la solucin est dada por el producto de la inversa de la matriz A con la

    matriz B .

    Utilizando matlab la solucin del sistema de ecuaciones se puede obtener por medio de la siguiente

    secuencia de instrucciones:

  • 7/24/2019 Mtodos Numricos notas

    7/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 4

    >> A = [1 -1;1 1]

    A =

    1 -1

    1 1

    >> B = [1;7]

    B =1

    7

    >> X = inv(A)*B

    X =

    4

    3

    Del valor obtenido para la matriz X se tiene que:

    1

    2

    4

    3

    x

    x

    Otra alternativa para la solucin del sistema de ecuaciones anterior puede ser utilizando la divisin

    izquierda definida en Matlab. Esta divisin realiza implcitamente la inversa de una matriz y la multiplica

    por un vector de trminos.

    >> A = [1 -1;1 1]

    A =

    1 -1

    1 1

    >> B = [1;7]

    B =

    17

    >> A \ B

    ans =

    4

    3

    Manejo de elementos contenidos en una matriz

    Estos pueden ser manipulados en forma independiente al resto de sus elementos compaeros, por

    ejemplo, consideremos la siguiente matriz,

    1 2 3

    4 5 6

    7 8 9

    A

    Los elementos que estn dentro del recuadro pueden ser representados como otra matriz, de la

    siguiente manera:

    B = A(2:3,2:3), aqu se dice que la matriz B est formada por las filas 2 a 3 y las columnas 2 a 3 de la

    matriz A, por lo que entonces, la matriz B tendr los elementos:

  • 7/24/2019 Mtodos Numricos notas

    8/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 5

    5 6

    8 9B

    Consideremos ahora la matriz,

    1 2 3 4 5

    6 7 8 9 10A

    Los elementos contenidos en el recuadro pueden formar otra matriz, la cual se puede definir como:

    B = A(1:1,2:5)

    La instruccin anterior especifica que la matriz B est formada por el rengln 1 de la matriz B y de las

    columnas 2 a 5, por lo que entonces la matriz B es,

    2 3 4 5B

    X(:,2) = [] borra la columna 2 de la matriz X

    Funciones con matrices elementales

    zeros genera una matriz de ceros, del orden que se especifica,

    A = zeros(3)

    0 0 0

    0 0 0

    0 0 0

    A

    A = zeros(3,4)

    0 0 0 0

    0 0 0 0

    0 0 0 0

    A

    ones genera una matriz de unos, del orden que se especifica,

    A = ones(3)

    1 1 1

    1 1 11 1 1

    A

    A = ones(3,4)

    1 1 1 1

    1 1 1 1

    1 1 1 1

    A

    Si quisiramos tener una matriz de orden 3x4 con todos sus elementos iguales a 4, podemos hacer lo

    siguiente.

    A = ones(3,4)*4

  • 7/24/2019 Mtodos Numricos notas

    9/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 6

    4 4 4 4

    4 4 4 4

    4 4 4 4

    A

    Lo que hace la instruccin es generar una matriz de 3x4 y multiplicar cada uno de sus elementos por 4.

    eye genera una matriz identidad del orden que se especifica por el parmetro,

    A = eye(4)

    1 0 0 0

    0 1 0 0

    0 0 1 0

    0 0 0 1

    A

    Si queremos tener una matriz diagonal de orden 4 cuyos elementos sean iguales a 5, podemos hacer lo

    siguiente,

    A = eye(4)*5

    5 0 0 0

    0 5 0 0

    0 0 5 0

    0 0 0 5

    A

    El comando magic(n) genera un cuadrado mgico de n n (un cuadrado mgico es una matriz den n en dnde los elementos de todas sus filas, columnas y diagonales suman una misma cantidad).

    A = magic(3)

    8 1 6

    3 5 7

    4 9 2

    A

    En este caso la cantidad que suman es 15.

    Graficacin en Matlab

    Para realizar la grafica de una funcin se deben de introducir en forma matricial los conjuntos x e y .

    Ejemplo: consideremos la grafica de la funcin 3 2y x

    Para realizar la graficacin de la funcin anterior, primeramente se debe de definir una matriz rengln

    que contenga el rango de valores para la variable x . Si utilizamos un rango de -3 a 3, la forma en la quese define este rango es:

    >> X = -3:3

    X =

    -3 -2 -1 0 1 2 3

    A continuacin se define el valor de las variables y por medio de la funcin que relaciona a las variables

    x e y de la siguiente manera:

  • 7/24/2019 Mtodos Numricos notas

    10/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 7

    >> Y = 3*X+2

    Y =

    -7 -4 -1 2 5 8 11

    Finalmente se procede a dar la instruccin realizar la grfica de los vectores x e y de la siguiente

    manera:

    >> plot(X,Y)

    El resultado es la grfica que se muestra en la Figura siguiente,

    -3 -2 -1 0 1 2 3-8

    -6

    -4

    -2

    0

    2

    4

    6

    8

    10

    12

    Se pueden adicionar elementos a la grfica anterior en base a los siguientes comandos:

    title: establece el ttulo de la grfica

    xlabel establece la etiqueta en el eje de las abscisas

    ylabel establece la etiqueta en el eje de las ordenadas

    grid establece la retcula o cuadrcula en la grfica

    Al adicionar algunos de estos elementos a la grfica anterior se obtiene,

    -3 -2 -1 0 1 2 3-8

    -6

    -4

    -2

    0

    2

    4

    6

    8

    10

    12

    x

    y

    y = 3x+2

    Title

    xlabel

    ylabel

    Ejemplo: sea la funcin2 6y x x , la secuencia de comandos utilizados para realizar la grfica de

    la funcin2 6y x x son:

  • 7/24/2019 Mtodos Numricos notas

    11/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 8

    x = -4:3;

    y = x.^2+x-6;

    plot(x,y)

    -4 -3 -2 -1 0 1 2 3-6

    -4

    -2

    0

    2

    4

    6

    El resultado obtenido es una parbola, sin embargo se aprecia que debido a los pocos puntos que la

    definen, se pierde un poco la caracterstica curva de la parbola. Realicemos la grfica con un mayor

    nmero de puntos, utilizando ahora un incremento de 0,1 entre los elementos que definen el rango, de

    la siguiente manera;

    x = -4:0.1:3;

    y = x.^2+x-6;

    plot(x,y)

    -4 -3 -2 -1 0 1 2 3-8

    -6

    -4

    -2

    0

    2

    4

    6

    Adicionando algunos elementos se tiene

    grid on

    xlabel(x)

    ylabel(y)

    title(y = 3x+2)

    -4 -3 -2 -1 0 1 2 3-8

    -6

    -4

    -2

    0

    2

    4

    6Y = 3X+2

    X

    Y

    Grfica de dos o ms funciones en un mismo plano

    Considrese que se tienen que graficar las funciones

    1y x y

    2 6y x x

    La secuencia de instrucciones utilizadas para la realizacin de las grficas de las funciones son:

  • 7/24/2019 Mtodos Numricos notas

    12/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 9

    x = -3:0.01:4;

    y1 = x+1;

    y2 = x.^2-x-6;

    plot(x,y1,x,y2,'--');

    grid onlegend('y = x+1','y = x*x-x-6');

    xlabel('x');

    ylabel('y');

    -3 -2 -1 0 1 2 3 4-8

    -6

    -4

    -2

    0

    2

    4

    6

    x

    y

    y = x+1

    y = x*x-x-6

    Mltiples grficas en una misma ventana

    Consideremos ahora que se tienen que graficar varias funciones, sin embargo deben hacerse en

    diferentes grficas.

    Por ejemplo, las funciones seny x , cosy x

    x = 0:0.01:2*pi;

    y1 = sin(x);

    y2 = cos(x);

    subplot(2,1,1);

    plot(x,y1);

    title('f(x) = seno(x)');

    grid on

    subplot(2,1,2);

    plot(x,y2);

    title('f(x) = coseno(x)');

    grid on

    0 1 2 3 4 5 6 7-1

    -0.5

    0

    0.5

    1f(x) = seno(x)

    0 1 2 3 4 5 6 7-1

    -0.5

    0

    0.5

    1f(x) = coseno(x)

    Grafica en un mismo plano de funciones de diferentes magnitudes

    En ocasiones es necesario graficar en un mismo plano el comportamiento de funciones que tienen

    rdenes de magnitud diferentes. Para es utilizado el comando plotyy.

    Ejemplo: graficar las funciones0.05200 senxe x y -0.50.8 sen 10xe x .

    Solucin

    x = 0:0.01:20;

    y1 = 200*exp(-0.05*x).*sin(x);

    y2 = 0.8*exp(-0.5*x).*sin(10*x);

    plotyy(x,y1,x,y2,'plot');

    0 2 4 6 8 10 12 14 16 18 20-200

    -150

    -100

    -50

    0

    50

    100

    150

    200

    0 2 4 6 8 10 12 14 16 18 20-0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

  • 7/24/2019 Mtodos Numricos notas

    13/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 10

    Algunos comandos tiles en matlab

    who: despliega el pantalla el nombre de las variables que se encuentran definidas.

    version: despliega en pantalla la versin de matlab.

    clear: borra todas las variables definidas en memoria.

    clc: borra la pantalla del rea de trabajo

    quit: termina la sesin en matlab.

    clock: regresa la hora

    date: regresa la fecha

    Formato numrico

    format: define el formato numrico de salida de matlab.

    FORMAT SHORT formato con 5 dgitos.

    FORMAT LONG formato con 15 dgitos.

    FORMAT SHORT E formato de punto flotante con 5 dgitos.

    FORMAT LONG E formato de punto flotante con 15 dgitos.

    FORMAT HEX formato hexadecimal

    FORMAT RAT Hace una aproximacin racional de las cantidades

    FORMAT + Los smbolos +, - y espacio en blanco son representan elementos positivos,

    negativos y cero. Las partes imaginarias se desprecian.

    Ejemplo: considrese que se desea encontrar una representacin fraccionaria de la raz cuadrada del

    nmero 3.

    >> format rat

    >> sqrt(3)

    ans = 1351/780

    >>

    Solucin de ecuaciones de segundo grado y orden superior

    El comando roots determina la races (roots) de una ecuacin cuadrtica, la cual se especifica por medio

    de un vector el cual contiene los coeficientes de la ecuacin cuadrtica, los cuales deben de estar

    ordenados en base a la forma general,

    2 0ax bx c

    Ejemplo, si quisiramos resolver la ecuacin,

    2

    3 10 0x x

    podramos seguir la siguiente secuencia de instrucciones en matlab,

  • 7/24/2019 Mtodos Numricos notas

    14/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 11

    Primeramente definimos un vector con los coeficientes de la ecuacin cuadrtica,

    A = [1 3 -10]

    A continuacin utilizamos el comando roots, dndole como parmetro el vector que contiene los

    coeficientes de la ecuacin cuadrtica,

    roots(A)

    El resultado sern las races de la ecuacin de segundo grado, las cules son:

    ans =

    -5

    2

    Este comando tambin permite encontrar las races de ecuaciones de orden superior, simplemente es

    necesario formar un vector que contenga los coeficientes de la ecuacin. En caso de que algn

    coeficiente sea cero, ste se debe de poner, por ejemplo, consideremos la ecuacin, 4 16 0x

    El vector que representa los coeficientes de esta ecuacin es:

    A = [1 0 0 0 -16]

    Si aplicamos el comando roots,

    roots(A)

    el resultado ser:

    ans =

    -2.0000

    0.0000 + 2.0000i

    0.0000 - 2.0000i

    2.0000

    El resultado indica que existen dos races reales y dos races imaginarias como solucin de esta ecuacin

    de cuarto grado.

    Evaluacin de polinomios

    Sea el polinomio

    4 3 23 7 2 1y x x x x

    c = [3 -7 2 1 1]

    c = 3 -7 2 1 1

    xi = 2.5

    xi = 2.5000

    yi = polyval(c,xi)

  • 7/24/2019 Mtodos Numricos notas

    15/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 12

    yi = 23.8125

    Funciones adicionales con polinomios

    conv: Multiplicacin de polinomios

    deconv: divisin de polinomios

    poly: Polinomio en base a sus races

    polyder: Derivada de un polinomio

    polyval: Evaluacin de un polinomio

    residue: Expansin en fracciones parciales

    roots: Races de un polinomio

    Ejemplo: considrese los polinomios

    3 23 8 2f x x x x y

    3 23 8 2 10g x x x x

    Calcular con la ayuda de matlab:

    a)

    f x g x

    b) 'f x

    c) 3f

    d) 2 2f g

    Solucin

    Considere la siguiente secuencia de instrucciones

    >> f = [1 3 8 2];

    >> g = [-3 8 -2 10];

    >> h = conv(f,g)

    h = -3 -1 -2 62 30 76 20

    >> derivada_f = polyder(f)

    derivada_f = 3 6 8

    >> f_evaluada_en_3 = polyval(f,3)

    f_evaluada_en_3 = 80

    >> producto = polyval(f,2)*polyval(g,2)

    producto = 532

  • 7/24/2019 Mtodos Numricos notas

    16/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 13

    >>

    Funciones Elementales en Matlab

    Funciones trigonomtricas

    sin calcula el seno del argumento

    cos calcula el coseno del argumento

    tan calcula la tangente del argumento

    cot calcula la cotangente del argumento

    sec calcula la secante del argumento

    csc calcula la cosecante del argumento

    Ejemplo: realizar la grafica de las funciones1

    seny t con la funcin2

    cosy t desde 0t hasta

    2t .

    Solucin

    Considere la siguiente secuencia de instrucciones.

    t = 0:0.01:2*pi;

    y1 = sin(t);

    y2 = cos(t);

    plot(t,y1,t,y2,'--')

    legend('Seno(t)','Coseno(t)')

    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

    Seno(t)

    Coseno(t)

    Funciones trigonomtricas inversas

    asin calcula el seno inverso del argumento

    acos calcula el coseno inverso del argumento

    atan calcula la tangente inversa del argumento

    acot calcula la cotangente inversa del argumento

    asec calcula la secante inversa del argumento

    acsc calcula la cosecante inversa del argumento

    Ejemplo: utilizar las funciones trigonomtricas para determinar el valor de los lados a y b para el

    tringulo rectngulo siguiente.

    a

    b

    30

    Solucin

    Se tiene que,

    5tan30a

  • 7/24/2019 Mtodos Numricos notas

    17/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 14

    5

    cos30b

    Utilizando matlab se tiene que,

    >> a = 5*tan(30*pi/180)

    a = 2.8868

    >> b = 5/cos(3*pi/180)

    b = 5.0069

    >>

    Funciones exponenciales y logartmicas

    exp realiza la operacinxe dondexes el argumento

    log realiza la operacin logx donde x es el argumento y log es el logaritmo

    natural

    log10 realiza la operacin logx

    donde x es el argumento y log es el logaritmo en

    base 10.

    Funciones de nmeros complejos

    abs calcula el valor absoluto de un nmero complejo

    angle calcula el ngulo de fase de un nmero complejo

    conj calcula el conjugado de un nmero complejo

    imag determina la parte imaginaria de un nmero complejo

    real determina la parte real de un nmero complejo

    La introduccin de un nmero complejo se puede hacer de varias maneras:

    EDU z1 = 1+2i

    z1 = 1.0 + 2.000i

    Otra alternativa es la siguiente:

    EDU z1 = 1+2j

    z1 = 1.0 + 2.0000i

    Una tercera alternativa es:

    EDU z1 = 1+2*sqrt(-1)

    z1 = 1.0000 + 2.0000i

  • 7/24/2019 Mtodos Numricos notas

    18/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 15

    Algunas otras funciones de matlab

    cumprod: calcula el promedio acumulado de los valores en un arreglo

    cumsum: calcula la suma acumulada de los valores en un arreglo

    factor: encuentra los factores primos

    Ejemplo: factor(15) ans = 3 5

    factorial: calcula el factorial

    Ejemplo: factorial(4) ans = 24

    gcd: encuentra el mximo comn divisor

    isprime: determina si un nmero es primo. Regresa un uno si es primo, en caso

    contrario cero.

    Ejemplo: isprime(4) ans = 0

    lcn: encuentra el mnimo comn denominador

    length: determina la mayor dimensin de un arreglo

    Ejemplo: A = [12.3 23.2 1.2 4.3];

    length(A) ans = 4

    max: encuentra el mximo valor de un arreglo y determina cul elemento

    Ejemplo:

    [elemento posicion] = max(A)

    elemento = 23.2000 posicion = 2

    mean: calcula el promedio de los elementos de un arreglo

    Ejemplo:

    mean(A) ans = 10.2500

  • 7/24/2019 Mtodos Numricos notas

    19/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 16

    median: encuentra la mediana de los elementos contenidos en un arreglo

    Ejemplo:

    median(A) ans = 8.3000

    min: encuentra el mnimo valor de un arreglo y determina cul elemento

    Ejemplo:

    [elemento posicion] = min(A)

    elemento = 1.2000 posicion = 3

    prod: multiplica los valores en un arreglo

    Ejemplo:

    prod(A) ans = 1.4725e+003

    rand: calcula nmeros aleatorios

    Ejemplo:

    rand() ans = 0.8147

    rats: convierte la entrada a una representacin fraccional

    Ejemplo:

    rats(1.2) ans = 6/5

    size: determina el nmero de filas y columnas de un arreglo

    Ejemplo:

    [filas columnas] = size(A) filas = 1 columnas = 4

    std: determina la desviacin estndar de los nmeros contenidos en un arreglo

    Ejemplo:

    std(A) ans = 9.8185

  • 7/24/2019 Mtodos Numricos notas

    20/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 17

    sum: suma los elementos contenidos en un arreglo

    Ejemplo:

    sum(A) ans = 41

    var: calcula la varianza de los elementos de un arreglo

    Ejemplo:

    var(A) ans = 96.4033

    Ejemplo: utilizando las funciones de nmeros complejos definidas por Matlab, encontrar la impedancia

    equivalente en las terminales a-b para el circuito de la figura siguiente.

    1 2j

    4 2j

    2 3j a

    b Solucin

    z1 = 1+2j;

    z2 = 2+3j;

    z3 = 4+2j;

    zequi = z1+z2+z3

    zequi = 7.0000 + 7.0000i

    Ejemplo: utilizando las funciones de nmeros complejos definidas por Matlab, encontrar la suma de los

    4 vectores que se muestran en la tabla siguiente.

    1 10 0 NF

    2 8 45 NF

    3 10 90 NF

    Solucin

    suma_componentes_x = 10*cosd(0)+8*cosd(45)+10*cosd(90)

    suma_componentes_y = 10*sind(0)+8*sind(45)+10*sind(90)

    magnitud_resultante = sqrt(suma_componentes_x^2+suma_componentes_y^2)

    magnitud_resultante = 22.1421

    angulo_resultante = atand(suma_componentes_y/suma_componentes_x)angulo_resultante = 45

  • 7/24/2019 Mtodos Numricos notas

    21/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 18

    Funciones Numricas

    fix redondea hacia el elemento ms cercano al cero

    ejemplo: fix(0.6) = 0

    fix(-0.6) = 0

    fix(1.6) = 1

    floor redondea hacia el entero ms cercano al infinito negativo

    ejemplo: floor(2.1) = 2

    floor(-2.9) = -3

    ceil redondea hacia el infinito positivo

    ejemplo: ceil(2.3) = 3

    ceil(2.99) = 3

    round redondea hacia el entero ms cercano

    ejemplo:

    round(2.3) = 2

    round(4.5) = 5

    rem regresa el residuo de la divisin de sus argumentos

    ejemplo: rem(2,2) = 0

    rem(3,2) = 1

    sign regresa el signo de la cantidad que se ingresa como argumento.

    ejemplo. sign(-1) = -1

    sign(3) = 1

    sign(0) = 0

    Manejo simblico en Matlab

    Creacin de Variables y expresiones simblicas

    Con el objeto de crear variables simblicas se utilizan el comando sym, por ejemplo

    x = sym(x)

    a = sym(alpha)

    Consideremos la siguiente expresin

  • 7/24/2019 Mtodos Numricos notas

    22/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 19

    1 5

    2

    rho = sym((1 + sqrt(2))/2)

    consideremos la siguiente operacin

    >> rho = sym('(1 + sqrt(5))/2')

    rho = (1 + sqrt(5))/2

    >> f = rho^2-rho-1

    f =

    (1/2+1/2*5^(1/2))^2-3/2-1/2*5^(1/2)

    >> simplify(f)

    ans =0

    >>

    Solucin de ecuaciones

    >> syms a b c x

    >> s = a*x^2+b*x+c

    s = a*x^2+b*x+c

    >> solve(s)

    ans =

    1/2/a*(-b+(b^2-4*a*c)^(1/2))

    1/2/a*(-b-(b^2-4*a*c)^(1/2))

    Consideremos ahora la solucin para b

    >> sol_b = solve(s,b)

    sol_b =

    -(a*x^2+c)/x

    Aplicaciones al Clculo Diferencial e Integral

    Consideremos la siguiente expresin simblica

    >> syms a x

    >> f = sin(a*x)

    f = sin(a*x)

    >> df = diff(f)

    df = cos(a*x)*a

    >>

    Si se quiere encontrar la derivada de la funcin con respecto a la variable a se tiene que,

  • 7/24/2019 Mtodos Numricos notas

    23/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 20

    >> df = diff(f,a)

    df = cos(a*x)*x

    >>

    Consideremos la segunda derivada de una funcin

    >> syms x

    >> f = x^2+x+1

    f = x^2+x+1

    >> d_1 = diff(f,x)

    d_1 = 2*x+1

    >> d_2 = diff(d_1,x)

    d_2 = 2

    >> d_2 = diff(f,x,2)

    d_2 = 2

    Limites

    Consideremos el siguiente lmite

    0

    cos coslimh

    x h x

    h

    >> syms h x

    >> dc = limit((cos(x+h)-cos(x))/h,h,0)

    dc =

    -sin(x)

    >>

    Resumen sobre lmites

    Operacin Matemtica Comando de Matlab

    0

    limx

    f x

    limit(f)

    limx a

    f x

    limit(f,x,a)

    limit(f,a)

    limx a

    f x

    limit(f,x,a,left)

    limx a

    f x

    limit(f,x,a,right)

    Integracin

    >> syms x

    >> f = x^2+3*x+5

    f = x^2+3*x+5

    >> int(f)

  • 7/24/2019 Mtodos Numricos notas

    24/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 21

    ans = 1/3*x^3+3/2*x^2+5*x

    >>

    Resumen sobre integrales

    Operacin Matemtica Comando de Matlab1

    1

    nn xx

    n

    int(x^2)

    int(x^2,x)

    / 2

    0

    sin 2 1x dx

    int(sin(2*x),0,pi/2)

    int(sin(2*x),x,0,pi/2)

    cosg at b

    sin at b

    g t dta

    g = cos(a*t+b)

    int(g)

    int(g,t)

  • 7/24/2019 Mtodos Numricos notas

    25/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 22

    Programacin en Matlab

    Existen dos clases de archivos M

    Archivos de instrucciones

    Archivos de funciones

    Caractersticas:

    Archivos de Instrucciones

    No aceptan argumentos de entrada ni regresan argumentos de salida.

    Operan con datos de la hoja de trabajo

    Son tiles para automatizar una serie de pasos que son realizados de manera

    comn

    Archivos de funciones

    Aceptan argumentos de entrada y regresan argumentos de salida Las variables internas son locales

    Ejemplo de archivo de instrucciones

    % serie de instrucciones utilizadas para graficar la funcin seno en un

    % intervalo de tiempo de 0 a 2pi

    t = 0:0.01:2*pi

    y = sin(t);

    plot(t,y);

    Nota : el signo % se utiliza para colocar comentarios en el programa.

    Ejemplo de archivo de funciones

    % funcin que aceptan como argumentos dos valores a y b y regresa su

    % producto

    function c = producto(a,b)

    c = a*b;

    Control de flujo

    Comando if, and elseif

    Este comando se utiliza cuando el flujo de un programa o una funcin dependen de una condicin que

    puede ser falsa o verdadera.

    if expresin_logica

    Instrucciones

    end

    Ejemplo: considere una funcin que devuelva el valor absoluto de una cantidad x.

  • 7/24/2019 Mtodos Numricos notas

    26/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 23

    Operadores de relacin

    Estos operadores generalmente acompaan a las estructuras de seleccin y de repeticin para

    especificar condiciones de relacin entre dos o ms elementos.

    == igual> Mayor que

    < Menor que

    >= Mayor o igual que

  • 7/24/2019 Mtodos Numricos notas

    27/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 24

    n = 4

    n < 0Nmero

    negativo

    rem(n,2) == 0Nmero

    positivo par

    Nmero

    positivo

    negativo

    Fin

    Inicio

    Si

    No

    Si

    No

    n = 4

    n < 0Nmero

    negativo

    rem(n,2) == 0Nmero

    positivo par

    Nmero

    positivo

    negativo

    Fin

    Inicio

    n = 4

    n < 0Nmero

    negativo

    rem(n,2) == 0Nmero

    positivo par

    Nmero

    positivo

    negativo

    Fin

    Inicio

    Si

    No

    Si

    No

    Comando switch

    El comando switch se utiliza para realizar una secuencia de instrucciones en base a una seleccin de

    varias alternativas.

    La sintaxis de la instruccin switch

    switch expresin

    case valor_1

    instrucciones

    case valor_2

    instrucciones

    case valor_n

    instrucciones

    otherwise

    instrucciones

    end

    Ejemplo: consideremos un programa que reciba una calificacin de 5 a 10 y muestre en pantalla una

    palabra asociada con la calificacin,

    10 => Excelente, 9 => Muy bien

    8 => Bien, 7 => Regular

    6 => Suficiente, 5 => Muy mal

    calificacion = 6;switch calificacion

    case 5

    disp('Muy mal');

    case 6

    disp('Suficiente');

    case 7

    disp('Regular');

    case 8

    disp('Bien');

    case 9

    disp('Muy Bien');

    case 10

    disp('Excelente');

    otherwise

    disp('Valor fuera de rango');End

  • 7/24/2019 Mtodos Numricos notas

    28/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 25

    Estructuras de repeticin

    for

    La estructura de repeticin for repite una secuencia de instrucciones un nmero predeterminado de

    veces. Su sintaxis es,

    for indice=inicio:incremento:fin

    instrucciones

    end

    el incremento por default es 1.

    Por ejemplo, si se desea almacenar en un vector x los valores de 1 a 10 existen diversas alternativas, una

    de ellas es por medio de ciclo, tal y como se muestra en el siguiente cdigo

    for i=1:10x(i) = i;

    end

    while

    La estructura de repeticin while repite una secuencia de instrucciones en tanto una expresin es

    verdadera.

    La sintaxis de la estructura de repeticin while es,

    while expresin

    instrucciones

    end

    Ejemplo: ahora utilicemos la instruccin while para llenar el arreglo x con los elementos del 1 al 10.

    i = 1;

    while i

  • 7/24/2019 Mtodos Numricos notas

    29/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 26

    if valor > numero

    disp 'mas pequeo'

    else

    disp 'mas grande'

    end

    end

    End

    return

    La instruccin return termina la ejecucin de una secuencia de comandos y regresa el control a la

    funcin que invoc a la secuencia de comandos o a la lnea de comandos.

    Partes de un archivo de funciones

    Lnea de definicin de la funcin

    Lnea H1

    Texto de ayuda

    Cuerpo de la funcin

    Comentarios

    Lnea de definicin de la funcin

    function y = promedio(x)

    Argumento de entrada

    Nombre de la funcin

    Argumento de salida

    Palabra reservada

    function y = promedio(x)

    Argumento de entrada

    Nombre de la funcin

    Argumento de salida

    Palabra reservada

    Si la funcin tiene varios valores de salida, stos deben ser especificados entre corchetes cuadrados, por

    ejemplo, consideremos una funcin que recibe como argumento dos nmeros a y b y da como resultado

    su suma, su producto, su diferencia y su cociente,

    function [suma, resta, producto, cociente] = operaciones(a,b)

    suma = a + b;

    resta = a - b;

    producto = a*b;

    cociente = a/b;

    Ejemplo: realizar una funcin que convierta grados Fahrenheit en grados Celsius

    Solucin

    Se sabe que: 5

    329

    C FT T

    Por lo que se propone la siguiente funcin

    % funcion que convierte una temperatura expresada en grados Fahrenheit en grados centigrados

    function celsius = far_en_cel(fahrenheit)

    celsius = 5/9*(fahrenheit-32);

  • 7/24/2019 Mtodos Numricos notas

    30/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 27

    Ejemplo de utilizacin

    >> a = far_en_cel(78)

    a = 25.5556

    Ejemplo: realizar un programa que contenga una funcin que sea capaz de determinar la magnitud y

    direccin de un vector expresado en forma rectangular.

    Solucin

    Se sabe que la magnitud de un vector expresado en forma rectangular es:2 2

    x yM C C

    Adems de que la direccin de un vector expresado en forma rectangular es:1

    tan y

    x

    C

    C

    Por lo que se propone la siguiente funcin en matlab,

    % funcion que determina la magnitud y direccin de un vector

    % expresado en forma rectangular

    function [magnitud direccion] = mag_dir(cx,cy)

    magnitud = sqrt(cx^2+cy^2);

    direccion = 180/pi*(atan(cy/cx));

    Ejemplo de aplicacin

    >> [magnitud direccion] = mag_dir(1,1)

    magnitud = 1.4142

    direccion = 45

    Ejemplo: realizar una funcin que realice la grfica de una funcin polinomial de orden n en el rango

    especificado. La funcin deber de recibir como parmetros un vector P que contenga los coeficientes

    del polinomio as como el dominio de la funcin.

    Se propone el siguiente cdigo,

    % funcion que grafica una funcion polinomial

    function grafica_polinomio(p,xmin,xmax)

    [filas columnas] = size(p);

    puntos = 1000;

    y = zeros(puntos,1);

    paso = (xmax-xmin)/puntos;

    x = xmin:paso:xmax-paso;

    for i=1:puntos

    for j=1:columnas-1

    y(i) = y(i) + p(j)*x(i)^(columnas-j);

    end

    y(i) = y(i) + p(columnas);

    end

    plot(x,y)

    grid on

    xlabel('x');

    ylabel('y');

  • 7/24/2019 Mtodos Numricos notas

    31/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 28

    Ejemplo de aplicacin.

    Considrese la grfica de la funcin 2 6f x x x

    >> p = [1 -1 -6]

    p = 1 -1 -6

    >> grafica_polinomio(p,-3,4)

    Dando como resultado la grfica que se muestra en la figura siguiente.

    -3 -2 -1 0 1 2 3 4-8

    -6

    -4

    -2

    0

    2

    4

    6

    x

    y

    Ejemplo: realizar una funcin que muestre el comportamiento de un objeto que es lanzado con una

    velocidad inicial0

    v . La funcin debe de recibir como parmetros: v0 y theta.

    Solucin

    Se sabe que el tiempo de vuelo est dada por:vuelo

    2 senovtg

    La posicin en x est dada por: cosx t vo t

    La posicin en y est dada por: 21

    sen2

    oy t v t gt

    Se propone la siguiente funcin

    % funcion que realiza la grfica de la posicin de un objeto que es lanzado

    % en tiro parablico

    function grafica_tiro_parabolico(vo,theta)

    g = 9.81;

    theta = (pi/180)*theta;

    tiempo_vuelo = 2*vo*sin(theta)/g;

    paso = tiempo_vuelo/512;

    t = 0:paso:tiempo_vuelo-paso;

    x = vo*cos(theta)*t;

    y = vo*sin(theta)*t-0.5*g*t.^2;

    plot(x,y);

    grid on

    xlabel('x');

    ylabel('y');

  • 7/24/2019 Mtodos Numricos notas

    32/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 29

    Ejemplo de aplicacin

    grafica_tiro_parabolico(15,60);

    Dando como resultado la grfica que se muestra en la figura siguiente,

    0 2 4 6 8 10 12 14 16 18 200

    1

    2

    3

    4

    5

    6

    7

    8

    9

    x

    y

    Ejemplo: realizar una funcin que calcule la traza de una matriz de nxn. La traza de una matriz cuadradaA es la suma de los elementos de su diagonal.

    Solucin

    Se propone la siguiente funcin

    % funcion que calcula la traza de una matriz

    function tr = traza(A)

    [filas columnas] = size(A);

    if (filas == columnas)

    tr = A(1,1);

    for i=2:columnas

    tr = tr+A(i,i);

    end

    else

    disp 'No es una matriz cuadrada'

    end

    Ejemplo de aplicacin

    >> A = [1 0 0;0 2 0;0 0 3]

    A =

    1 0 00 2 0

    0 0 3

    >> traza(A)

    ans = 6

  • 7/24/2019 Mtodos Numricos notas

    33/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 30

    Ejercicios propuestos Unidad 1

    1. Realizar una funcin que convierta grados Celsius en grados Fahrenheit

    2. Hacer una funcin que determine la distancia entre dos puntos de coordenadas 1 1,x y y

    2 2,x y .

    3. Hacer una funcin que determine el mayor de tres nmeros a, b, c.

    4. Realizar una funcin que devuelva la suma de los elementos de una matriz.

    5. Realizar una funcin que convierta grados sexagesimales en radianes

    6. Realizar una funcin que convierta radianes en grados sexagesimales

    7. Realizar una funcin que determine el promedio de los elementos contenidos en un vector

    8. Realizar una funcin que determine la desviacin estndar de los elementos contenidos en un

    vector

    9. Realizar una funcin que encuentre el valor ms pequeo dentro de los elementos contenidos

    en un vector

    10. Realizar una funcin que reciba una matriz cuadrada devuelva cero si la matriz es no singular y

    uno si la matriz es singular.

  • 7/24/2019 Mtodos Numricos notas

    34/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 31

    Autoevaluacin unidad 1

    1. Realizar una funcin que determine la magnitud de un vector expresado en forma rectangular.

    2 2

    M x y

    2. Realizar una funcin que convierta grados Celsius en grados Fahrenheit

    932

    5F

    T C

    3. Hacer una funcin que determine la distancia entre dos puntos de coordenadas 1 1,x y y

    2 2,x y .

    2 2

    2 1 2 1d x x y y

    4. Hacer una funcin que determine el mayor de tres nmeros a , b , c .

    5. Realizar una funcin que devuelva la suma de los elementos de una matriz de n m .

    6. Realizar una funcin que calcule el producto de dos matrices. La funcin recibir como

    parmetro dos matrices y devolver el producto. No se deber utilizar directamente el

    producto de dos matrices.

    7. Realizar una funcin que determine el promedio de los datos contenidos en una matriz.

    Recordar que el promedio de un nmero n de elementos se calcula como

    1

    n

    i

    i

    x

    xn

    8. Realizar una funcin que devuelva el valor ms pequeo y el valor ms grande de los elementos

    contenidos en un vector

  • 7/24/2019 Mtodos Numricos notas

    35/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 32

    Unidad II

    Modelos, computadoras y errores

    Introduccin

    El anlisis del error en un resultado numrico es fundamental para cualquier computacin inteligente,

    sea hecha a mano o con una computadora. Los datos de entrada rara vez son exactos, ya que a menudo

    se basan en experimentos o son estimados, y los procesos numricos a su vez introducen errores de

    varios tipos.

    Considrese el clculo de las races de la ecuacin

    2 0.4002 0.00008 0x x

    utilizando la formula general para la solucin de ecuaciones de segundo grado con una incgnita, se

    tiene un resultado de

    0.000015x

    esta formula se presenta usualmente en cursos de lgebra sin ninguna discusin de su precisin, sin

    embargo, la aritmtica de punto flotante de cuatro dgitos introduce errores que hacen el resultado

    errneo en 25%; la raz real, determinada con aritmtica de ocho dgitos es -0.0002.

    En este caso la culpa fue de la aritmtica de cuatro dgitos, sin embargo, no se piense que los nmeros

    de punto flotante de ocho dgitos resolvern todos los problemas. Considrese la serie de Taylor para el

    seno:

    3 5 7

    sen3! 5! 7!

    x x xx x

    Esta serie se describe usualmente como vlida para cualquier ngulo finito, y el error por truncamiento

    cometido al suspender la suma despus de un nmero finito de trminos se dice que es menor en valor

    absoluto que el primer trmino despreciado. Estos postulados seran verdaderos si hubiera alguna

    forma de conservar un nmero finito de dgitos en cada resultado aritmtico. Considrese que tratamos

    de valuar el seno de 1470 = 25.7 radianes, usando aritmtica de punto flotante de ocho dgitos y

    calculando los trminos hasta encontrar uno que sea menor que 10-8 en valor absoluto. El resultado

    calculado ser de 24.25401855, que aparentemente tiene gran precisin, pero que por supuesto, carece

    de sentido. An as usamos aritmtica de punto flotante de 16 dgitos, el seno de 2550 resulta 29.5.

    Cifras significativas

    Las cifras significativas de un nmero son aquellas que pueden utilizarse en forma confiable. Se trata del

    nmero de dgitos que se ofrecen con certeza, ms uno estimado.

    Definicin de errores

    Valor exacto del error

    tE = valor exacto del error = valor verdadero - valor aproximado

  • 7/24/2019 Mtodos Numricos notas

    36/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 33

    Error relativo fraccional verdadero

    error verdadero100%

    valor verdaderot

    Ejemplo: se tiene que medir la longitud de una calle y la longitud de un clavo. Se obtienen las siguientes

    mediciones:

    Longitud de la calle 9999 cms

    Longitud del clavo 9 cms

    Si los valores verdaderos son de 10000 cms y 10 cms, respectivamente. Determinar:

    a) El error verdadero

    b) El error relativo porcentual en cada caso.

    Solucin

    a)

    10000 cm 9999 cm 1cmtE

    1cm100% 0.01%

    10000cmt

    b)

    10 cm 9 cm 1cmtE

    1cm 100% 10.0%10cm

    t

    Error relativo porcentual

    error aproximado aproximacin actual - aproximacin anterior100% 100%

    valor verdadero aproximacin actuala

    A menudo, cuando se realizan clculos, no importa mucho el signo del error, sino ms bien que su errorabsoluto porcentual sea menor que una tolerancia porcentual prefijada

    s , por lo que los clculos se

    repiten hasta que,

    a s

    Si se cumple la relacin anterior, entonces se considera que el resultado obtenido est dentro del nivel

    aceptable fijados .

    Es posible demostrar que si el siguiente criterio se cumple, se tendr la seguridad que el resultado es

    correcto en al menos n cifras significativas.

  • 7/24/2019 Mtodos Numricos notas

    37/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 34

    20.5 10 %ns

    Tipos de errores

    Errores Inherentes

    Errores por truncamiento Errores por redondeo

    Errores Inherentes

    Los errores inherentes son errores que existen en los valores de los datos, causados por la

    incertidumbre en las mediciones, por verdaderas equivocaciones, o por la naturaleza necesariamente

    aproximada de la representacin, mediante un nmero finito de dgitos, de cantidades que no pueden

    representarse exactamente con el nmero de dgitos permisibles.

    Una medicin fsica, tal como una distancia, un voltaje, o un periodo de tiempo, no puede ser exacta. Si

    la medicin se da con muchos dgitos, tal como un voltaje de 6.4837569, se puede estar seguro de que

    al menos algunos de los dgitos de la extrema derecha no tienen ningn sentido, porque los voltajes nopueden medirse con esta precisin. Si la medicin se da con unos cuantos dgitos, tal como el intervalo

    de tiempo de 2.3 segundos, podemos estar bastantes seguros de que hay algn error inherente, porque

    slo accidentalmente el intervalo de tiempo sera exactamente 2.3 segundos. En tales casos se pueden

    conocer algunos lmites razonables del error inherente, por ejemplo, decir que el tiempo es de

    2.3 0.1 segundos.

    Reloj Analgico Reloj Digital

    Voltmetro Termmetro

  • 7/24/2019 Mtodos Numricos notas

    38/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 35

    Errores por truncamiento

    Los errores por truncamiento se refieren a errores debido a la manera de efectuar los procesos

    numricos. Consideremos la serie infinita de Taylor

    3 5 7

    sen 3! 5! 7!

    x x xx x

    La cual puede ser utilizada para calcular el seno de cualquier ngulo x expresado en radianes. Es unhecho que no pueden ser utilizados todos los trminos de la serie para el clculo, debido a que la serie

    es infinita. Si se utilizan hasta los trminos7x o 9x , los trminos omitidos introducen un error, debido

    a un truncamiento de un proceso matemtico infinito.

    Errores por redondeo

    Supngase que se dispone de una computadora en la cual cada nmero contiene cinco dgitos y que se

    desea sumar 9.2654 y 7.1625, los que se suponen exactos. La suma es 16.4279, que contiene seis dgitos

    y que por lo tanto no puede ser almacenada en la computadora hipottica. La computadora debeentonces redondear el resultado de seis dgitos a 16.428 y al hacerlos introduce un error por redondeo.

    Debido a que el trabajo de una computadora se efecta con cantidades que tienen algn nmero fijo de

    dgitos, la necesidad de redondear ocurre con frecuencia.

    Lista de algunas recomendaciones para lograr mayor precisin

    1. Cuando se van a sumar y/o restar nmeros, trabajar siempre con los nmeros ms pequeos

    primero.

    2. De ser posible, evitar la sustraccin de dos nmeros aproximadamente iguales. Una expresin

    que contenga dicha substraccin a menudo puede ser reescrita para evitarla.

    3. Una expresin del tipo a b c puede reescribirse en la forma ab ac y /a b c puedereescribirse como / /a c b c . Si hay nmeros aproximadamente iguales en el parntesis,ejecutar la resta antes que la multiplicacin. Esto evitar complicar el problema con errores de

    redondeo adicionales

    4. Cuando no se aplica ninguna de las reglas anteriores, minimizar el nmero de operaciones

    aritmticas.

    Series de Taylor

    El desarrollo de Taylor, que es una serie infinita de potencias, representa de manera exacta a una

    funcin dentro de un cierto radio alrededor de un punto dado. Por lo tanto, mediante la comparacin

    del desarrollo polinomial de la solucin numrica con la serie de Taylor de la solucin exacta, es posible

    evaluar el error, el cual se conoce como error de truncamiento.

    Desarrollo de Taylor para funciones unidimensionales

    Se dice que una funcin f x es analtica en x a si f x se puede representar por medio de unaserie de potencias en trminos de h x a dentro de un radio de convergencia,

    0D x a

    Una condicin necesaria para que una funcin sea analtica es que todas sus derivadas sean continuas

    tanto en x a como en alguna vecindad alrededor de ese punto.

  • 7/24/2019 Mtodos Numricos notas

    39/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 36

    Una punto en dnde una funcin f x no es analtica recibe el nombre de punto singular. Si f x es

    diferenciable en todas partes en la vecindad de0

    x excepto en0

    x , entonces0

    x es un punto singular.

    Por ejemplo tanx es analtica excepto en1

    2x n

    , 0,1,2,3, ,n , los cuales son

    puntos singulares. Los polinomios son analticos en todas partes.

    Si fes analtica alrededor de x a , se puede representar f x de manera exacta en la vecindad dex a por medio de una serie de Taylor, que es una serie de potencias dada por:

    2 3

    ' '' '''2 6 !

    mmh h h

    f x f a hf a f a f a f am

    Donde

    h x a

    El desarrollo de Taylor de una funcin alrededor de 0x recibe el nombre de serie de Maclaurin.

    Ejemplo: Realizar el desarrollo de Taylor dex

    e

    alrededor de 1x (Utilice los cuatro primerostrminos de la serie)

    Solucin

    xf x e ' xf x e '' xf x e

    2 1 3 11 1

    2! 3!

    x h e h ee e he

    Donde

    1h x

    Ejemplo: Realizar el desarrollo de Maclaurin dexe (Utilice los primeros 4 trminos de esta serie)

    Solucin

    xf x e ' '' ''' xf x f x f x e

    2 0 3 00 0

    2! 3!

    x x e x ee e xe

    Realizando operaciones

    2 3

    12 6

    x x xe x

  • 7/24/2019 Mtodos Numricos notas

    40/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 37

    Ejemplo: Realizar el desarrollo de Maclaurin de senx

    Solucin

    senf x x

    ' cosf x x

    '' senf x x

    ''' -cosf x x

    senivf x x

    Se tiene entonces que,

    2 3 4 50 cos0 0 cos0sen 0 cos0

    2! 3! 4! 5!

    x sen x x sen xx sen x

    Realizando operaciones y simplificando

    3 5 7

    sen3! 5! 7!

    x x xx x

    Ejemplo: Evale5

    e

    con el uso de dos mtodos:

    2 3 4

    11! 2! 3! 4!

    x x x x xe

    y

    2 3 4

    1 1

    11! 2! 3! 4!

    x

    xe

    x x x xe

    Y comprelo con el valor verdadero de 6.737947x10-3

    . Utilice 20 trminos para evaluar cada serie y

    calcule los errores relativos aproximado y verdadero como trminos se agreguen.

  • 7/24/2019 Mtodos Numricos notas

    41/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 38

    Solucin. Se propone el siguiente cdigo en lenguaje C.

    #include

    float factorial(int n)

    {

    if (n == 1.0)

    return 1.0;else

    return n*factorial(n-1.0);

    }

    float serie(int n, float x)

    {

    int i;

    float suma = 1.0;

    for (i=1; i

  • 7/24/2019 Mtodos Numricos notas

    42/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 39

    Mtodo 2

    n Aproximacin tE t a

    1 1.666667E-01 -1.599287E-01 -2.373553E+03 1.000000E+02

    2 5.405406E-02 -4.731611E-02 -7.022333E+02 -2.083333E+02

    3 2.542373E-02 -1.868578E-02 -2.773216E+02 -1.126126E+02

    4 1.529637E-02 -8.558420E-03 -1.270182E+02 -6.620763E+01

    5 1.093892E-02 -4.200980E-03 -6.234804E+01 -3.983428E+01

    6 8.840320E-03 -2.102380E-03 -3.120202E+01 -2.373898E+01

    17 6.737980E-03 -4.000000E-08 -5.321500E-04 -1.451310E-03

    18 6.737960E-03 -1.000000E-08 -1.313100E-04 -4.008400E-04

    19 6.737950E-03 0.000000E+00 -2.764000E-05 -1.036700E-04

    20 6.737950E-03 0.000000E+00 0.000000E+00 -2.764000E-05

    Ejemplo: evale el polinomio

    3 27 8 0.75y x x x

    En 1.37x . Utilice aritmtica de 3 dgitos con corte. Evale el error relativo porcentual. Repita elproblema pero exprese y como:

    7 8 0.35y x x x

  • 7/24/2019 Mtodos Numricos notas

    43/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 40

    Autoevaluacin Unidad 2

    1. Se tiene que medir la longitud de un tramo de tubo conduit (utilizado en canalizaciones

    elctricas) y la longitud del dimetro de un conductor elctrico. Se obtienen las siguientes

    mediciones:

    Longitud del tubo conduit 1199 cmsLongitud del dimetro del conductor 1.19 cms

    Si los valores verdaderos son de 1200 cms y 1.2 cms, respectivamente. Determinar:

    a) El error verdadero

    b) El error relativo porcentual en cada caso.

    2. Muestre que el desarrollo de Taylor de1

    ln1

    x

    x

    alrededor de 1x es2 1

    1

    22 1

    n

    n

    x

    n

    3. Realizar el desarrollo de Taylor de xe alrededor de 1x

    4. Realizar el desarrollo de Taylor de cosx alrededor de 1x

    5. Desarrolle las siguientes funciones en serie de Maclaurin

    2

    1

    1 x

    tanx

    11 x

    ln 1 x

  • 7/24/2019 Mtodos Numricos notas

    44/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 41

    Concepto de aproximacin numrica

    En el campo de la ingeniera existe infinidad de fenmenos fsicos que necesitan representarse

    mediante modelos matemticos. Por ejemplo, considere un circuito RLC en serie excitado por una

    fuente de voltaje variante en el tiempo. La aplicacin de la ley de voltajes de kirchhoff alrededor de la

    malla produce la siguiente ecuacin integro-diferencial:

    1di t

    v t Ri t L i t dt dt C

    Este tipo de modelos no siempre son fciles de resolver a partir de mtodos analticos; en

    algunos casos es de hecho imposible obtener una solucin, y en otros, sta implica procesos complejos

    que para fines prcticos resultan inconvenientes.

    Con los llamados mtodos numricos es posible obtener aproximaciones numricas tan

    cercanas al valor exacto como se desee.

    Se entender por aproximacin numrica el acercarse a la solucin con un cierto grado de

    aproximacin.

    La principal ventaja de los mtodos numricos es que se pueden programar en una

    computadora digital, pues consisten en una serie de operaciones aritmticas y decisiones lgicas que la

    computadora efecta con gran eficiencia.

    Errores

    Al obtener una aproximacina

    x de la solucin x de un problema, es importante medir o estimar el

    error que se comete al utilizar la aproximacin en lugar del valor exacto. Para ellos se definen el error

    absoluto y el error relativo.

    El error absoluto, representado pora

    e , se obtiene como el valor absoluto de la diferencia entre

    el valor exacto x y la aproximacin a este valorax , esto es,

    a ae x x

    La diferencia se toma en valor absoluto, debido a que no interesa si la aproximacin es mayor o

    menor que el valor exacto.

    El error relativor

    e se define como el valor absoluto del cociente de la diferenciaa

    x x entre el

    valor exacto x , esto es,

    a

    r

    x xe

    x

    En la mayora de los casos es suficiente calcular el error absoluto para determinar si el mtodo

    que proporciona el valor aproximadoa

    x es apropiado para estimar a x ; sin embargo, como este error

    tiene las mismas unidades que x , no es comparable con el error absoluto de dos aproximaciones que

    corresponden a problemas y unidades diferentes.

    Por otra parte, el error relativo es adimensional y presenta al error absoluto como una razn

    del valor correcto, esto es,

    a

    reex

  • 7/24/2019 Mtodos Numricos notas

    45/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 42

    Por tanto,r

    e , si se puede usar para comparar mtodos numricos que se hayan aplicado a

    diferentes problemas.

    En general, al efectuar una serie de operaciones aritmticas para resolver un problema, se

    presentan algunos errores que pueden clasificarse, de acuerdo con su origen, en los siguientes tipos:

    Errores inherentes

    Errores por truncamiento

    Errores por redondeo

    Errores inherentes

    Los errores inherentes o errores propios de los datos son aquellos que se producen al leer en algn

    dispositivo de medicin una magnitud, al transmitirla o al reproducirla; son debidos a la imprecisin de

    los instrumentos o a errores humanos.

    Errores por truncamiento

    Los errores por truncamiento son aquellos que se presentan al aproximar funciones analticas por medio

    de algunos trminos de una serie infinita; esto se hace frecuentemente en los mtodos numricos

    cuando es difcil realizar operaciones con alguna funcin complicada y se toman en su lugar los primeros

    trminos de una serie que se aproxima a dicha funcin, truncando los dems. Tambin se presentan

    cuando se utilizan nmeros irracionales, tales como 2 , e , , etc., ya que para trabajar con ellos se

    toma un nmero determinado de cifras significativas y se truncan las dems.

    Errores por redondeo

    Por ltimo los errores de redondeo se presentan como una consecuencia directa de redondear a un

    determinado nmero de cifras decimales las cantidades que se operan en un proceso de solucin.

    Se puede verificar fcilmente que el error por redondeo es menor o igual que el de truncamiento. Por

    esta razn, en las computadoras digitales los nmeros que tienen ms cifras decimales que las que la

    mquina puede manejar se redondean al mximo nmero posible.

    Ejemplo: el nmero e , con cinco cifras decimales, es igual a 2.71828; calcular el error absoluto y el

    error relativo en el que se incurre en cada caso, al tomar hasta el primero, segundo, tercero y cuarto

    trminos de la serie:

    0

    1

    !k

    ek

    Convergencia y estabilidad de un mtodo iterativo

    Para facilitar el estudio de las caractersticas de los mtodos numricos, se debe considerar que stos en

    general parten de uno o varios datos de entrada, y mediante la aplicacin de un algoritmo proporcionan

    aproximaciones a la solucin de un modelo matemtico; es decir, se pueden considerar como un

    sistema formado por datos de entrada, un algoritmo y una salida, que es la aproximacin a la solucin.

    La mayora de los mtodos numricos son procesos cclicos o iterativos, en los cuales se repite una serie

    de pasos y se basan en la aplicacin de las denominadas ecuaciones o formulas de recurrencia, que

    relacionan dos o ms elementos consecutivos de una sucesin de nmeros, funciones, matrices, etc.

  • 7/24/2019 Mtodos Numricos notas

    46/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 43

    Ejemplo: en el ejemplo anterior se calcularon los valores del nmero e , tomando los primeros

    trminos de la serie:

    0

    1

    !ke

    k

    calcular las mismas aproximaciones con la siguiente formula de recurrencia:

    1

    1

    !k ke e

    k

    Dondek

    e es la k-sima aproximacin del nmero e. Ntese que ek est en funcin del valor anterior

    ek-1 y, en consecuencia, se requiere de un valor inicial e0, en este caso es igual a la unidad, para

    generar la sucesin e1, e2, e3, , en.

    En general, los mtodos iterativos se clasifican en mtodos de aproximaciones sucesivas y mtodos depaso a paso.

    Los mtodos que parten de una aproximacin inicial0

    x a la solucin x de un problema, y mediante la

    aplicacin reiterada de una o varias formulas de recurrencia proporcionan aproximaciones

    1 2 3, , , , nx x x x a la solucin x , se denominan mtodos de aproximaciones sucesivas.

    Por otra parte, los mtodos denominados de paso a paso son aquellos que parten de un valor inicial y se

    basan en la aplicacin de una frmula de recurrencia; pero, a diferencia de los mtodos de

    aproximaciones sucesivas, se utilizan para obtener aproximaciones a la solucin de una sucesin de

    nmeros, en lugar de un solo valor.

    Los mtodos iterativos no siempre proporcionan aproximaciones aceptables y, en muchos casos, elerror que se obtiene al aplicarlos aumenta a medida que se incrementa el nmero de iteraciones. Dos

    de las principales causas del aumento del error se explican con los conceptos de convergencia y

    estabilidad que a continuacin se definen.

    Convergencia

    Se dice que una sucesin de nmeros1 2 3, , , , nx x x x converge a un valor x , si para todo 0 existe un

    nmero entero m , tal que para todo entero n m , se cumple que:

    nx x

    Para determinar la convergencia de un mtodo de aproximaciones sucesivas, cuyos resultados son los

    nmeros 1 2 3, , , , nx x x x no es posible aplicar la definicin anterior, debido a que no se conoce de

    antemano el valor de x ; sin embargo, se puede demostrar que si el mtodo converge, la diferencia en

    valor absoluto de las dos ltimas aproximaciones es menor que la diferencia en valor absoluto entre la

    penltima y la antepenltima aproximaciones, es decir,

    1 1 2n n n nx x x x

    El criterio anterior es vlido nicamente en el intervalo de2n

    x a nx ; sin embargo, al cumplirse en los

    primeros valores de n, puede esperarse que la convergencia contine. Tambin se puede demostrar que

    si un mtodo es convergente, la diferencia en valor absoluto entre las ltimas dos aproximaciones es

    mayor o igual que el error absoluto, es decir, que esta diferencia es una cota del error absoluto, con lo

    cual se puede escribir,

  • 7/24/2019 Mtodos Numricos notas

    47/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 44

    1n n ax x e

    Entonces, si se tiene un mtodo de aproximaciones sucesivas que produzca una sucesin1 2 3, , , , nx x x x

    convergente a la respuesta buscada, se podr obtener una aproximacin a x con un error menor que

    una tolerancia dada, determinando adecuadamente el valor de n .

    Ejemplo: a fin de mostrar las caractersticas anteriores, en la siguiente tabla comparativa se resumen

    los resultados del primer ejemplo.

    Nmero de trminos n Aproximacin del

    nmero e

    ne

    Error absoluto

    ae

    Diferencias sucesivas

    1n ne e

    1 1.00000 1.71828

    2 2.00000 0.71828 1.00000

    3 2.50000 0.21828 0.50000

    4 2.66667 0.01898 0.16667

    Como se observa en la tabla, los valores de la ltima columna disminuyen a medida que n aumenta, y

    en todos los casos1n n ae e e lo cual ilustra los criterios establecidos.

    Estabilidad

    Cuando en un sistema cualquiera existen variaciones pequeas en la salida que corresponden a

    pequeas variaciones en la entrada se dice que el sistema es estable.

    Sea E n la funcin de error, que representa el error absoluto en la salida del algoritmo, despus de n

    iteraciones. En el caso de un mtodo iterativo y en especial en los mtodos de paso a paso, si E n se

    incrementa en forma lineal o aproximadamente lineal, conforme n aumenta, entonces se dice que el

    mtodo es estable.

    En caso de que E n aumente en forma exponencial o aproximadamente exponencial, se considera

    que el mtodo es inestable.

    Criterios para seleccionar un mtodo numrico

    Cuando se tiene un problema que puede representarse mediante un modelo matemtico, es necesario

    seleccionar entre diferentes mtodos el ms adecuado para obtener una aproximacin a la solucin.

    Para ello es conveniente comparar los mtodos en base en su eficiencia, la cual puede definirse segn

    diferentes puntos de vista. Por ejemplo, se considera que un mtodo A es ms eficiente que otro

    mtodo B si en general, con A se realizan menos operaciones que con B, es decir, si un mtodo requiere

    de diez iteraciones para encontrar una aproximacin a la solucin, semejante a la que se obtendra con

    otro mtodo en cinco iteraciones, entonces el ltimo es ms eficiente que el primero.

    Como en la actualidad los mtodos numricos tienen la ventaja de poder programarse en una

    computadora digital, tambin se puede definir la eficiencia a partir de otros criterios, como son lafacilidad para programar el mtodo en la computadora o la cantidad de memoria requerida para su

  • 7/24/2019 Mtodos Numricos notas

    48/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 45

    ejecucin. En este caso un mtodo se considera ms eficiente que otro si en general requiere de menos

    instrucciones para programarse o utiliza menos cantidad de memoria.

    Puede concluirse que la eficiencia de un mtodo ser relativa a las condiciones especficas bajo las

    cuales se utilice.

    Problemas

  • 7/24/2019 Mtodos Numricos notas

    49/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 46

    Unidad III

    Solucin de Ecuaciones No Lineales

    Introduccin

    Uno de los problemas ms comunes en el trabajo cientfico es hallar las races de una ecuacin de la

    forma,

    0f x (1)

    donde x y f x pueden ser reales, complejas o valuadas en forma matricial. El objetivo es calcular el

    valor de x o, similarmente, los valores del vector x que satisfagan la Ecuacin (1). Estos valores son

    conocidos como las races de la ecuacin (1) o ceros de f x . Generalmente no es fcil ni justificable

    resolver la Ecuacin (1) en forma exacta. Es ms adecuado resolverla en forma aproximada, a un gradode precisin pre-establecido. Esta forma de solucin requiere, por necesidad, de la aplicacin de

    mtodos iterativos. Estos mtodos requieren de una solucin inicial estimada de la raz o races de la

    Ecuacin (1).

    En el ao de 1225 Leonardo de Pisa estudi la ecuacin3 22 10 20 0x x x y obtuvo un valor

    para x de 1.368808107 .

    Estimacin inicial de la raz o races

    Generalmente se determina un valor inicial aproximado de x o x basndose en alguno de lossiguientes procedimientos:

    a) Conocimiento del rango aproximado en que se encuentra el valor de la raz, o de cada raz

    buscada.

    b) SI el problema es relativamente simple, graficando la funcin f x .

    c) Haciendo una tabulacin de los valores de f x .

    Ejemplo: Sea la funcin 2

    sen

    2

    xf x x

    Su grfica se muestra en la Figura 3.1,

    0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.6

    -0.5

    -0.4

    -0.3

    -0.2

    -0.1

    0

    0.1

    x

    f(x)

    Figura 3.1

  • 7/24/2019 Mtodos Numricos notas

    50/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 47

    De la grfica puede observarse que la raz de f x es cercana a 1.9.

    Tabulando algunos valores de la funcin f x .

    x f x

    1.000000 -0.591471

    1.100000 -0.588707

    1.200000 -0.572039

    1.300000 -0.541058

    1.400000 -0.495450

    1.500000 -0.434995

    1.600000 -0.359574

    1.700000 -0.269165

    1.800000 -0.163848

    1.900000 -0.043800

    2.000000 0.090703

    Puede observarse que al evaluar la funcin en 1.9x y posteriormente en 2.0x se ha detecta un

    cambio de signo de f x . La raz se encuentra, por lo tanto en esta regin 0 1.9,2.0x .

    Ejemplo: determine una aproximacin de las races reales de 20.5 2.5 4.5f x x x .

    Solucin.

    Realizando la grfica para x desde igual a 3 hasta 8x , se tiene,

    -4 -2 0 2 4 6 8-8

    -6

    -4

    -2

    0

    2

    4

    6

    8

    Figura 3.2

    de la grfica se aprecia que una raz es cercana a 1.4x en tanto que la segunda raz es cercana a6.4x .

    Mtodos de solucin

    Los mtodos de solucin puede clasificarse en: mtodos cerrados y mtodos abiertos

    Mtodos cerrados

    Son los mtodos que aprovechan el hecho de que una funcin cambia de signo en la vecindad de una

    raz. Estos mtodos necesitan de dos valores iniciales ,a b para ambos lados de la raz.

  • 7/24/2019 Mtodos Numricos notas

    51/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 48

    Mtodo de biseccin

    Mtodo de la falsa posicin

    Mtodo de la falsa posicin modificada

    Mtodos abiertos

    Son mtodos que se basan en formulas que requieren solamente de un valor inicial0

    x o que empiecen

    con un par de ellos, pero que no necesariamente encierren la raz.

    Mtodo de iteracin simple de punto fijo

    Mtodo de Newton-Raphson

    Mtodo de la secante

    Mtodo de Biseccin

    El mtodo de biseccin, conocido tambin como de corte binario, de particin de intervalos o de

    Bolzano, es un tipo de bsqueda incremental en el que el intervalo se divide siempre a la mitad. Si la

    funcin cambia de signo sobre un intervalo, se evala el valor de la funcin en el punto medio. Laposicin de la raz se determina situndola en el punto medio del subintervalo, dentro del cual ocurre el

    cambio del signo.

    0a

    0b

    m

    1a

    1b

    0a

    0b

    m

    1a

    1b

    Figura 3.3

    En la Figura 3.3 anterior se muestra una primera iteracin del mtodo de biseccin, en dnde se aprecia

    que se hace una primera aproximacin a la raz en base a m . Puede apreciarse que el producto de

    f a f m es positivo, lo que indica que la raz no se encuentra en la regin comprendida entre a ym sino en la regin comprendida entre m y b , por lo que se a toma el valor de m y b mantiene suvalor.

    Algoritmo del mtodo de biseccin

    Dada una funcin f x continua sobre el intervalo 0 0,a b y tal que 0 0 0f a f b

    .

    1. Until convergence, Do

    2. Calcular2

    n na b

    m

    3. if 0nf a f m then

    4. 1n na a , 1nb m 5. else

    6.1n

    a m , 1n nb b 7. endif

    8. EndDo

  • 7/24/2019 Mtodos Numricos notas

    52/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 49

    Donde m representa la aproximacin a la raz de 0f x

    Un criterio de convergencia es que cuando la diferencia absoluta entre dos valores consecutivos de m sea menor que la tolerancia especificada, se tendr una buena aproximacin de la raz.

    Ejemplo: encontrar la raz de xf x e x

    entre 0 y 2.

    Solucin

    Se propone el siguiente cdigo en Matlab.

    function [m ite] = biseccion(a,b,tol)

    % Mtodo de biseccin

    % La raz se encuentra en el rango de a a b

    % se especifica un criterio de convergencia de tol

    % m representa la aproximacin de la raiz

    % ite es el nmero de iteraciones necesarias para obtener la

    solucin

    error = 1.0;m = (a+b)/2;

    ite = 1;

    while (error > tol)

    if (funcion_x(a)*funcion_x(m)

  • 7/24/2019 Mtodos Numricos notas

    53/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 50

    ,a f a

    ,b f b

    ,0wx

    f x

    En base a la ecuacin de la recta que pasa por dos puntos:

    0 f b f af a w ab a

    Despejando w

    f b a f a bw

    f b f a

    Algoritmo del mtodo de la falsa posicin

    Dada una funcin f x continua en el intervalo 0 0,a b y tal que 0 0 0f a f b .

    1. Until convergence, Do

    2. Calcular

    n n n n

    n n

    f b a f a bw

    f b f a

    3. if 0nf a f w then

    4.1n n

    a a , 1nb w 5. else

    6.1n

    a w , 1n nb b

    7. endif8. EndDo

    Ejemplo: encontrar la raz de xf x e x entre 0 y 2 por medio del mtodo de regula-falsi

    Solucin

    Se propone el siguiente cdigo en Matlab.

  • 7/24/2019 Mtodos Numricos notas

    54/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 51

    % Mtodo de regula falsi

    function [w ite] = regula_falsi(a0,b0,tol)

    % Mtodo de regula falsi

    % La raz se encuentra en el rango de a a b

    % se especifica un criterio de convergencia de tol

    % w representa la aproximacin de la raiz

    % ite es el nmero de iteraciones necesarias para obtener lasolucin

    error = 1.0;

    w_vieja = 0;

    ite = 1;

    while (error > tol)

    w = (funcion_x(b0)*a0-funcion_x(a0)*b0)/(funcion_x(b0)-

    funcion_x(a0));

    if (funcion_x(a0)*funcion_x(w)

  • 7/24/2019 Mtodos Numricos notas

    55/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 52

    Mtodo de Regula falsi modificado

    Una forma de disminuir la naturaleza unilateral de la falsa posicin consiste en obtener un algoritmo

    que detecte cuando se estanca uno de los lmites del intervalo. Si ocurre esto, se divide a la mitad el

    valor de la funcin en el punto de estancamiento. A este mtodo se le llama mtodo d e la falsa

    posicin modificado.

    Algoritmo del mtodo de la falsa posicin modificado

    Dada una funcin f x continua sobre el intervalo 0 0,a b y tal que 0 0 0f a f b .

    Dada una funcin f x continua en el intervalo 0 0,a b y tal que 0 0 0f a f b .

    1. Tomar 0F f a , 0G f b , 0 0w a 2. Until convergence, Do

    3. Calcular1

    n nn

    Ga FbwG F

    4. if 1 0n nf a f w then

    5.1n n

    a a , 1 1n nb w , 1nG f w

    6. if 1 0n nf w f w then7. / 2F F 8. endif

    9. else

    10.1 1n n

    a w , 1n nb b , 1nF f w

    11. if 1 0n nf w f w then12. / 2G G 13. end if

    14. end if15. EndDo

    Ejemplo: encontrar la raz de xf x e x entre 0 y 2 por medio del mtodo regula-falsimodificado.

    Solucin

    Se propone el siguiente cdigo en Matlab.

  • 7/24/2019 Mtodos Numricos notas

    56/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 53

    function [w ite] = regula_falsi_mod(a0,b0,tol)

    % Mtodo de regula falsi modificado

    % La raz se encuentra en el rango de a a b

    % se especifica un criterio de convergencia de tol

    % w representa la aproximacin de la raiz

    % ite es el nmero de iteraciones necesarias para obtener la

    solucin

    error = 1.0;

    w_vieja = 0;

    ite = 1;

    F = funcion_x(a0);

    G = funcion_x(b0);

    w0 = a0;

    while (error > tol)

    wn = (G*a0-F*b0)/(G-F);

    if (funcion_x(a0)*funcion_x(wn) 0 )

    F = F/2;

    end

    else

    a0 = wn;

    F = funcion_x(wn);

    if (funcion_x(w0)*funcion_x(wn) > 0)

    G = G/2;

    end

    end

    error = abs(w0-wn);

    [ite wn error]

    w0 = wn

    ite = ite + 1;

    end

    Iteracin Error Raz

    1 6.981620E-01 0.69816198

    2 1.166817E-01 0.58148033

    3 2.494416E-02 0.55653617

    4 1.063462E-02 0.56717079

    5 2.744922E-05 0.56714334

    6 1.055380E-07 0.56714324

    7 5.266708E-08 0.56714329

    8 0.000000E+00 0.56714329

    [w,ite] = regula_falsi_mod(0,2,1e-10)

    w = 0.56714329040978

    ite = 9

    Mtodo de iteracin de punto fijo

    Este mtodo emplea una formula para predecir la raz. Esta formula puede desarrollarse como una

    iteracin simple de punto fijo al arreglar la ecuacin

    0f x

    de tal modo que x est del lado izquierdo de la ecuacin

    x g x

    esta transformacin se realiza mediante operaciones algebraicas o simplemente sumando x a cada ladode la ecuacin original.

    Ejemplo. Sea la ecuacin2 2 3 0x x

    Se puede arreglar como:

    2 3

    2

    x

    x

  • 7/24/2019 Mtodos Numricos notas

    57/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 54

    Ejemplo. Sea la ecuacin sen 0x

    Se puede arreglar como: senx x x

    Algoritmo del mtodo de de iteracin de punto fijo

    Dada una funcin de iteracin g x y un punto de partida 0x

    1. Until convergence, Do

    2. Calcular 1n nx g x 3. EndDo

    Ejemplo: encontrar la raz de

    x

    f x e x

    , por medio del mtodo de iteracin de punto fijo.

    Considere0

    0x

    Solucin

    x xg x e x x e

    Se propone el siguiente cdigo en Matlab.

    function [xn ite] = ite_punto_fijo(x0,tol)

    % Mtodo de iteracin de punto fijo% La raz se encuentra cercana a x0

    % se especifica un criterio de convergencia de tol

    % xn representa la aproximacin de la raiz

    % ite es el nmero de iteraciones necesarias para obtener la

    solucin

    error = 1.0;

    ite = 1;

    while (error > tol)

    xn = funcion_x2(x0);

    [ite error xn]

    error = abs(x0-xn);

    x0 = xn;

    ite = ite + 1;

    end

    Iteracin Error Raz

    1 1.000000E+00 0.36787944

    2 6.321206E-01 0.69220063

    3 3.243212E-01 0.5004735

    4 1.917271E-01 0.60624354

    5 1.057700E-01 0.54539579

    6 6.084775E-02 0.57961234

    7 3.421655E-02 0.56011546

    8 1.949687E-02 0.57114312

    39 4.504900E-10 0.56714329

    40 2.554900E-10 0.56714329

    41 1.449000E-10 0.56714329

    [xn ite] = ite_punto_fijo(1,1e-10)

    xn = 0.56714329038004

    ite = 42

  • 7/24/2019 Mtodos Numricos notas

    58/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 55

    Ejemplo: utilice la iteracin simple de punto fijo para localizar la raz de: 0.2sen 0.5f x x x .

    Haga una eleccin inicial de0

    0.5x .

    Ejemplo: utilice la iteracin simple de punto fijo para localizar la raz de: 2senf x x x . Haga

    una eleccin inicial de 0 0.5x .

    Ejemplo: utilice la iteracin simple de punto fijo para localizar la raz de:

    3 22 11.7 17.7 5f x x x x . Haga una eleccin inicial de 0 3.0x .

    Ejemplo: utilice la iteracin simple de punto fijo para localizar la raz de: 2 1.8 2.5f x x x .

    Haga una eleccin inicial de0

    5.0x .

    Mtodo Newton-Raphson

    Considere la siguiente figura

    1ix ix

    ' im f x

    x

    f x

    if x

    La pendiente de la curva est dada por

    1

    0'

    i

    i

    i i

    f xm f x

    x x

    Despejando 1ix

    1 'i

    i i

    i

    f x

    x x f x

    Algoritmo del mtodo de Newton-Raphson

    Dada una funcin f x y un punto 0x .

    1. Until convergence, Do

    2. Calcular 1 '

    n

    n n

    n

    f xx x

    f x

    3. EndDo

  • 7/24/2019 Mtodos Numricos notas

    59/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 56

    Ejemplo: utilice el mtodo de Newton-Raphson para calcular la raz de

    xf x e x

    utilice0

    0x

    Solucin

    Se sabe que

    1x

    df xe

    dx

    Se propone el siguiente cdigo en Matlab

    function [xn ite] = newton_raphson(x0,tol)

    % Mtodo de newton-raphson

    % La raz se encuentra cercana a x0% se especifica un criterio de convergencia de tol

    % xn representa la aproximacin de la raiz

    % ite es el nmero de iteraciones necesarias para obtener la

    solucin

    ite = 0;

    error = 1.0;

    while (error > tol)

    xn = x0 - funcion_x3(x0) /funcion_x3_derivada(x0);

    error = max(abs(xn-x0));

    ite = ite + 1;

    x0 = xn;

    end

    Iteracin Error Raiz

    1 5.000000E-01 0.500000

    2 6.631100E-02 0.566311

    3 8.321618E-04 0.567143

    4 1.253749E-07 0.567143

    5 0.000000E+00 0.567143

    [xn ite] = newton_raphson(0,1e-10)

    xn = 0.56714329040978

    ite = 5

    Mtodo de secante

    La derivada de una funcin se puede aproximar como:

    1

    1

    ' n n

    n

    n n

    f x f xf x

    x x

    sustituyendo la expresin anterior en la expresin del mtodo de Newton-Raphson,

    1 1

    1

    1

    n n n n

    n n

    n n

    f x x f x xx x

    f x f x

  • 7/24/2019 Mtodos Numricos notas

    60/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 57

    Algoritmo del mtodo de la secante

    Dada una funcin f x y dos puntos 1nx , nx .

    1. Until convergence, Do

    2. Calcular

    1 1

    1

    1

    n n n n

    n n

    n n

    f x x f x xx x

    f x f x

    3. EndDo

    Ejemplo: utilice el mtodo de la secante para calcular la raz de

    xf x e x

    utilice0

    0x y1

    1x

    Solucin

    Se propone el siguiente cdigo en Matlab

    function [x2 ite] = secante(x0,x1,tol)

    % Mtodo de la secante

    % La raz se encuentra cercana a x0 y x1

    % se especifica un criterio de convergencia de tol

    % xn representa la aproximacin de la raiz

    % ite es el nmero de iteraciones necesarias para obtener la

    solucin

    ite = 0;

    error = 1.0;

    while (error > tol)

    x2 = x1 - funcion_x3(x1)*(x1-x0)/(funcion_x3(x1)-

    funcion_x3(x0));

    error = max(abs(x2-x1));

    ite = ite + 1;

    x0 = x1;

    x1 = x2;

    end

    Iteracin Error Raz

    1 3.873002E-01 0.612700

    2 4.886145E-02 0.563838

    3 3.331969E-03 0.567170

    4 2.705181E-05 0.567143

    5 1.619526E-08 0.567143

    6 8.000000E-14 0.567143

    [x ite] = secante(0,1,1e-10)

    x = 0.56714329040978

    ite = 6

    Ejemplo: Calcular la raz de xf x e x . Considere los valores iniciales: 0 0x , 1 1.0x .

    Ejemplo: Calcular la raz de 2sen cos 1 1f x x x . Considere los valores iniciales de:

    a) 0 1.0x , 1 3.0x .

    b)0

    1.5x ,1

    2.5x .

    c)0

    1.5x ,1

    2.25x .

  • 7/24/2019 Mtodos Numricos notas

    61/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 58

    Ejemplo: Calcular la raz de 3 20.95 5.9 10.9 6f x x x x . Considere los valores iniciales de

    0 2.5x ,

    1 3.5x .

    Ejemplo: Calcular la raz de 8sen 1xf x x e . Considere los valores iniciales de 0 0.5x ,

    1 0.3x .

    Evaluacin de polinomios

    Considrese un polinomio de segundo grado de la forma

    22 1 0f x a x a x a

    expresado en forma anidada es

    2 1 0f x a x a x a

    Considrese ahora un polinomio de tercer grado de la forma

    3 23 2 1 0f x a x a x a x a

    expresado en forma anidada es

    3 2 1 0f x a x a x a x a

    Finalmente considrese un polinomio de cuarto grado

    4 3 24 3 2 1 0f x a x a x a x a x a

    expresado en forma anidada es

    4 3 2 1 0f x a x a x a x a x a

    En general para un polinomio de grado n

    1 2 0n n n nf x a x a x a x x a

    Ejemplo: exprsese en forma anidada el polinomio 3 22 5 6f x x x

    Solucin

    2 5 6f x x x x

  • 7/24/2019 Mtodos Numricos notas

    62/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 59

    Evaluacin de funciones polinomiales en forma anidada

    Considrese un polinomio de grado 3 3 23 3 2 1 0f x a x a x a x a

    en forma anidada se expresa como 3 3 2 1 0f x a x a x a x a

    Un pseudocdigo adecuado para realizar la evaluacin de un polinomio en forma anidada se muestra a

    continuacin

    for i = n, 0, -1

    p = p*x + a(i)

    end

    Ejemplo: evaluar el polinomio 2 5 6f x x x x en 3x

    Solucin

    Comparando contra la forma 3 3 2 1 0f x a x a x a x a Haciendo 0p

    0 3 1 1p

    1 3 2 1p

    1 3 5 2p

    2 3 6 0p

    Ejemplo: evaluar el polinomio 4 3 28 4 3 2f x x x x x en 2x utilizando la evaluacin depolinomios en forma anidada.

    Solucin

    Llevando el polinomio a su forma anidada se tiene,

    8 4 3 2f x x x

    Haciendo 0p

    0 2 1 1p

    1 2 8 6p

    6 2 4 8p

    8 2 3 13p

    13 2 2 28p

  • 7/24/2019 Mtodos Numricos notas

    63/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 60

    Ejemplo: utilizando matlab evaluar el polinomio 4 3 26 3 8 6 9f x x x x x en 1x .

    Solucin.

    a = [6 -3 8 -6 9];

    n = 5;

    p = 0;

    x = 1;

    for i=n:-1:1

    p = p*x+a(i);

    end

    Deflacin polinomial

    Sea un polinomio de n-simo grado de la forma,

    1 2 21 2 2 1 0n n n

    n n nf x a x a x a x a x a x a

    un pseudocdigo que divide el polinomio anterior entre un factor polinomial x t es

    r = a(n)

    a(n) = 0

    for i=n-1,0,-1

    s = a(i)

    a(i) = r

    r = s+r*t

    end

    Ejemplo: dividir el polinomio 2 2 24x x entre 4x

    Solucin

    2n 2 1r a

    Para 1i

    1 2s a 1 1a r 2 1 4 6r s rt

    Para 0i

    0 24s a

    0 6a r 24 6 4 0r s rt

    Por lo que el polinomio resultante de la divisin es:

    1 0 6a x a x

    es decir

    2 2 246

    4

    x xx

    x

  • 7/24/2019 Mtodos Numricos notas

    64/160

    UMSNH Mtodos Numricos FIE

    Dr. Antonio Ramos Paz 61

    Ejemplo: utilizando matlab hacer un programa para dividir el polinomio2 2 24x x entre 4x

    Races mltiples

    Una alternativa consiste en definir una nueva funcin u x , que es el cociente de la funcin original

    entre su derivada

    'f x

    u xf x

    Se puede demostrar que esta funcin tiene races en las mismas posiciones que la funcin original. Por

    lo tanto. Sustituyendo la ecuacin anterior en la ecuacin del mtodo de Newton-Raphson, se desarrolla

    una forma alternativa del mtodo de Newton-Raphson,

    1 2

    '

    ' ''