Metodos 2do Corte

13
TALLER 2 DE M ´ ETODOS NUM ´ ERICOS SAMIR ALEJANDRO MACHADO JUAN DAVID ESPITIA ANTONIO BORRE MEJIA RODRIGO ANDR ´ ES MONTES LUIS MIGUEL BURGOS VICTOR MANUEL SWERING PhD. CARLOS REALES UNIVERSIDAD DE C ´ ORDOBA FACULTAD DE INGENIER ´ IAS INGENIER ´ IA MEC ´ ANICA MONTER ´ IA - C ´ ORDOBA 2014

description

Matalab

Transcript of Metodos 2do Corte

  • TALLER2DEMETODOSNUMERICOS

    SAMIR ALEJANDRO MACHADO

    JUAN DAVID ESPITIA

    ANTONIO BORRE MEJIA

    RODRIGO ANDRES MONTES

    LUIS MIGUEL BURGOS

    VICTOR MANUEL SWERING

    PhD. CARLOS REALES

    UNIVERSIDAD DE CORDOBA

    FACULTAD DE INGENIERIAS

    INGENIERIA MECANICA

    MONTERIA - CORDOBA

    2014

  • Ing. Mecanica

    1 Dados los vectores x e y de la misma longitud m, el comando MATLAB polyfit determina los coeficientes cidel polinimio de grado m

    p(x) = c1xn + ...cnx + cn+1

    Cuya grafica ajusta por cuadrados mnimos los puntos (x1, y1), ..., (xm, ym). En particular, cuando n =m 1, p(x) es el polinomio de interpolacion determinado por esos puntos.

    (a) Aprende a utilizar el comando polyfit mediante help de MATLAB.

    (b) i. Genere los puntos (x, senx) para x = 0, 1, ..., 10ii. Dibuje el mismo grafico entre los puntos y los polinomios de grado 5 y 10 que los ajustan en el

    sentido de los cuadrados mnimos. Utilice para ellos los comandos polyfit y polyval.iii. Indique como se ve en el grafico que el grado 10 es el polinomio de interpolacion.

    (c) Dibuje en un mismo grafico:i. f(x) = 1

    1 + x2para 5 x ;

    ii. Los puntos (x, f(x)) para x = 5,4, ..,4, 5;iii. Los polinomios de grado 6 y 10 que ajustan esos puntos en el sentido de los cuadrados mnimos.

    Explique la razon de las oscilaciones que observa.

    Respuesta(a) Consultando sobre el comando polyfit mediante el help de Matlab, el cual nos proporciona un ejemplo

    para aprender a utilizar este comando.

    Usaremos la sintaxis p=polyfit(x, y, n) que devuelve un vector (en este caso de nombre p) en el quese almacenan los coeficientes en orden decreciente de grado. As, si se desea ajustar por un polinomiode grado 2 (3 coeficientes, por tanto) un conjunto de datos puede operarse de la siguiente manera: x =[,25,5,7,8];y = [,52,991,31,45];n = 2;p=polyfit(x, y, n);Ejecutado, se obtiene:

    As, en el vector de coeficientes p quedan almacenados los tres coeficientes, que corresponden alpolinomio:

    P (x) = 0,5985x2 + 2,3124x 0,0199

    (b) i. Con el siguiente codigo en Matlab,

    2

  • Ing. Mecanica

    Obtenemos:

    ii. Ahora, en el mismo grafico se mostraran los puntos del grafo anterior y los polinomios de grado 5y 10 que ajustan en el sentido de los cuadrados mnimos. Con el siguiente codigo:

    Obteniendo:

    3

  • Ing. Mecanica

    iii. As, del grafo anterior podemos concluir que el polinomio de grado 10 (color verde) es el polinomiode interpolacion.

    (c) Dibujaremos en un mismo grafo la funcion f , los puntos (x, f(x)) y los polinomios de grado 6 y 10 queajustan esos puntos en el sentido de los cuadrados mnimos.Con el siguiente codigo de Matlab obtenemos este resultado:

    Obteniendo:

    4

  • Ing. Mecanica

    La oscilacion del polinomio de grado 10 es mayor que la del polinomio de grado 6 ; esto se debe a laforma en que crecen y decrecen los valores del polinomio de grado mayor. Mas aun este es el conocidofenomeno de Runge. Ademas, podemos notar que el polinomio que mejor aproxima o interpola a lafuncion dada es el de grado 10.

    5

  • Ing. Mecanica

    2. Dada la siguiente tabla de valores de un experimento:

    x 120 122 124 126 128 130

    y 234,56 240,50 243,25 246,45 253,20 255,46

    Construya la tabla de diferencias divididas y calcule un valor para y = 125

    Construya la tabla de diferencias finitas y calcule un valor para y = 125

    Respuesta

    La tabla de diferencias divididas para la tabla de valores es la siguiente:

    i xi f [xi] f [xi1, xi] f [xi2, ..., xi] f [xi3, ..., xi] f [xi4, ..., xi] f [xi5, ..., xi]

    0 120 234,56

    2,970

    1 122 240,50 -0,3987

    1,375 0,0758

    2 124 243,25 0,0562 -0,0014

    1,600 0,0646 -0,0028

    3 126 246,45 0,4438 -0,0290

    3,375 -0,1675

    4 128 253,20 -0,5612

    1,130

    5 130 255,46

    Luego el polinomio interpolante del metodo de diferencias divididas es:

    P5(x) = 234, 56 + 2, 970(x 120) 0, 3987(x 120)(x 122) + 0, 0758(x 120)(x 1212)(x 124)

    0, 0014(x 120)(x 122)(x 124)(x 126) 0, 0028(x 120)(x 122)(x 124)(x 126)(x 128)

    As:

    P5(125) = 234, 56 + 2, 970(5) 0, 3987(5)(3) + 0, 0758(5)(3)(1) 0, 0014(5)(3)(1)(1)

    0, 0028(5)(3)(1)(1)(3) = 244, 4615Por lo tanto, para x = 125, calculamos para y el valor de P5(125)

    = y 244, 4615

    La tabla para las diferencias finitas es la siguiente:

    6

  • Ing. Mecanica

    i fi fi 2fi

    3fi 4fi

    5fi

    0 234,56 5,94 -3,19 3,64 -0,54 -10,6

    1 240,50 2,75 0,45 3.1 -11,14

    2 243,25 3,2 3,55 -8,04

    3 246,45 6,75 -4,49

    4 253,20 2,26

    5 255,46

    Luego el polinomio de interpolacion para los datos dados en la tabla es:

    P5(x) = f0+f01!

    t1+2f0

    2!t(t1)+

    3f03!

    t(t1)(t2)+4f04!

    t(t1)(t2)(t3)+5f05!

    t(t1)(t2)(t3)(t4) Entonces

    P5(x) = 234, 56+5, 94t1, 60t(t1)+0, 61t(t1)(t2)0, 02t(t1)(t2)(t3)0, 09t(t1)(t2)(t3)(t4) Donde:

    t =x x0h

    =x 120

    2

    Ahora bien, para obtener un valor de y cuando x = 125, notese que cuando x = 125, t = 125 1202 = 52 = 2, 5.Entonces:

    P5(x) = 234, 56+5, 94(2, 5)1, 60(2, 5)(2, 51)+0, 61(2, 5)(2, 51)(2, 52)0, 02(2, 5)(2, 51)(2, 52)(2, 53)0, 09(2, 5)(2, 5 1)(2, 5 2)(2, 5 3)(2, 5 4) = 244, 45

    As 1 ; y(125) P5(125) 244, 45

    1 Se utilizo el modo fix(2) en la calculadora.

    7

  • Ing. Mecanica

    3. Dada la siguiente tabla de valores obtenidos en observaciones en diferentes tiempos de un experimento:

    x 0 0,2 0,5 0,6 0,85 1,10

    y 38,20 35,25 30,45 27,80 24,90 22,75

    Por medio de una interpolacion de Lagrange calcule el valor de y para t = 0, 30

    Respuesta:

    Los datos dados son: t0 = 0, t1 = 0, 2, t2 = 0, 5, t3 = 0, 6, t4 = 0, 85 y t5 = 1, 10. Ademas, y0 = 38, 20,y1 = 35, 25, y2 = 30, 45, y3 = 27, 8, y4 = 24, 90 y y5 = 22, 75

    Ahora determinemos los polinomios Li(t) Para i0, ..., 5

    L0(t) =

    (t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)(0 0, 2)(0 0, 5)(0 0, 6)(0 0, 85)(0 1, 10)

    L0(t) =t(t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)

    0, 0561

    L1(t) =

    (t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)(0, 2 0, 2)(0, 2 0, 5)(0, 2 0, 6)(0, 2 0, 85)(0, 2 1, 10)

    L1(t) =t(t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)

    0, 01404

    L2(t) =

    (t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)(0, 5 0, 2)(0, 5 0, 5)(0, 5 0, 6)(0, 5 0, 85)(0, 5 1, 10)

    L2(t) =t(t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)

    0, 00315

    L3(t) =

    (t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)(0, 6 0, 2)(0, 6 0, 5)(0, 6 0, 6)(0, 6 0, 85)(0, 6 1, 10)

    L3(t) =t(t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)

    0, 003

    L4(t) =

    (t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)(0, 85 0, 2)(0, 85 0, 5)(0, 85 0, 6)(0, 85 0, 85)(0, 85 1, 10)

    8

  • Ing. Mecanica

    L4(t) =t(t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)

    0, 012085

    L5(t) =

    (t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)(1, 10 0, 2)(1, 10 0, 5)(1, 10, 6 0, 6)(1, 10 0, 85)(1, 10 1, 10)

    L5(t) =t(t 0, 2)(t 0, 5)(t 0, 6)(t 0, 85)(t 1, 10)

    0, 0891

    Por lo tanto el polinomio de grado 5 interpolador de Lagrange esta dado por:

    P5(t)

    5k=0

    ykLk

    As, el valor de y cuando t = 0, 30 es dado por:

    y(0, 30) P5(0, 30) =5

    k=0

    ykLk(0, 30)

    Pero:

    L0(0, 30) = 0, 04705882

    L1(0, 30) = 0, 56410256

    L2(0, 30) = 1, 25714285

    L3(0, 30) = 0, 88

    L4(0, 30) = 0, 11206225

    L5(0, 30) = 0, 0111111

    Por lo tanto: y(0, 30) P5(0, 30) = 34, 4405

    9

  • Ing. Mecanica

    4. Explique mediante ejemplos el uso de los siguientes comandos de Matlab para interpolacion:

    Y0

    Y0

    Y0

    Y0

    S

    = interp1(X,Y,X 0, nearest

    = interp1(X,Y,X 0, linear

    = interp1(X,Y,X 0, spline

    = interp1(X,Y,X 0, cubic

    = spline(X,Y )

    Respuesta:

    El comando interp1 se utiliza para interpolar funciones de una dimension (una variable independiente). Lasintaxis para este comando es:

    Y 0 = interp1(x, y, x0)

    Ademas, si se requiere algun metodo de interpolacion especifico, se le asocia con la siguiente sintaxis

    Y 0 = interp1(x, y, x0, metodo)

    Donde el metodo es dado por un comando tambien. Por ejemplo nearest, linear, spline, cubic, entre otros.As por ejemplo, la sintaxis para el metodo nearest es:

    Y 0 = interp1(x, y, x0, (nearest)

    Ahora, daremos un ejemplo para interpolar varios puntos de la funcion seno en un intervalo dado utilizandocada uno de los metodos anteriores:

    10

  • Ing. Mecanica

    11

  • Ing. Mecanica

    El comando spline: En la matematica campo del analisis numerico, la interpolacion spline es una formade interpolacion donde el interpolador es un tipo especial de polinomios a trozos llamados curvas spline. Seprefiere la interpolacion Spline sobre interpolacion polinomica porque el error de interpolacion puede hacersepequeno, incluso cuando se utilizan polinomios de bajo grado de laSpline. Interpolacion spline evita el prob-lema de fenomeno de Runge, que se produce cuando la interpolacion utilizando polinomios alto grado.

    12

  • Ing. Mecanica

    La sintaxis es S = spline(x, y).

    Devuelve la forma polinomica a trozos del interpolador Spline cubico para su uso posterior con ppval quedevuelve el valor del polinomio a trozos. X debe ser un vector. Y puede ser un escalar, un vector o una matrizde cualquier dimension.

    Por ejemplo veamos la siguiente rutina:

    13