análisis numérico-i parcial

Upload: lenin-saavedra

Post on 28-Feb-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Anlisis Numrico-I Parcial

    1/41

    ANALISIS NUMERICO CON MATLAB

    ANALISIS NUMERICO

    Ing. Jacinto Daniel Pinto

    5 de junio de 2016

    Ing. Jacinto Daniel Pinto UTH

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    2/41

    ANALISIS NUMERICO CON MATLAB

    Forma de Evaluar

    1 Primer parcial:1 Examen 10 %2 Tareas en clase y tareas para llevar 10 %

    2 Segundo parcial:

    1 Examen 15 %

    2 Tareas en clase y tareas para llevar 20 %3 Tercer parcial:

    1 Examen 15 %2 Tareas en clase y tareas para llevar 15 %3 Proyecto 15 %

    Nota: El proyecto describe un evento fsico real en el cual hay una seriede datos tomados experimentalmente. El evento fsico estudiado debe seranalizado con un modelo matematico y poder predecir la serie de datosutilizando MATLAB.

    Ing. Jacinto Daniel Pinto UTH

    http://goforward/http://find/http://goback/
  • 7/25/2019 Anlisis Numrico-I Parcial

    3/41

  • 7/25/2019 Anlisis Numrico-I Parcial

    4/41

    ANALISIS NUMERICO CON MATLAB

    MATLAB

    1 Los archivos de disco que contienen instrucciones de MATLAB sellaman archivos-M. Esto es as porque siempre tienen una extencionde .mcomo la ultima parte de su nombre de archivo.

    2 Un archivo M consiste de una secuencia de instrucciones normales deMATLAB, que probablemente incluyen referencias a otros archivosM. Un archivo M se puede llamar a s mismo recursivamente. Puedescrear archivos-M utilizando un editor de texto o procesador depalabras.

    Ing. Jacinto Daniel Pinto UTH

    A A S S M CO CO MA A

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    5/41

    ANALISIS NUMERICO CON MATLAB

    Mi Primer Programa en Matlab

    % script de Bienvenida

    disp(Hola Alumnos)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/http://goback/
  • 7/25/2019 Anlisis Numrico-I Parcial

    6/41

    ANALISIS NUMERICO CON MATLAB

    Sentencia if

    % Script para imprimir la raiz cuadrada de un numero

    num = input (Por favor Ingrese un numero)

    if num < 0

    num=0

    end

    fprintf(La raiz cuadrada de %.5f is % .5f\n,num,sqrt(num))

    %input es el parametro de entrada

    % .xf donde x es la cantidad de cifras despues del punto

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    7/41

    ANALISIS NUMERICO CON MATLAB

    Sentencia if

    % script para imprimir la raiz cuadrada de un numero

    num= input(Ingrese un numero :);

    % s el numero ingresado es negativo, utilice el valor absoluto

    if num

  • 7/25/2019 Anlisis Numrico-I Parcial

    8/41

    ANALISIS NUMERICO CON MATLAB

    Sentencia if else

    % script para imprimir la raiz de un valor

    num = input(Ingrese un numero: ) ;

    if num >0

    y=sqrt(num);

    fprintf(\n la raiz cuadrada de %f es %f. \n,num,y);else

    beep

    disp(El numero debe ser positivo)

    end

    %beep produce un sonido cuando esa condicion se cumple

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    9/41

    ANALISIS NUMERICO CON MATLAB

    Sentencia if else

    % script para imprimir la raiz de un valor

    num = input(Ingrese un numero: ) ;

    if num >0

    y=sqrt(num);

    fprintf(\n la raiz cuadrada de %f es %f. \n,num,y);

    else

    z=abs(num);

    p=sqrt(z);

    beep

    fprintf(\n la raiz cuadrada del valor absoluto de

    %f es %f. \n,num,p);end

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    10/41

    ANALISIS NUMERICO CON MATLAB

    Ejercicios

    Elabore un Script .m que tenga como entrada un numero y que

    calcule el logaritmo natural de ese numero y que imprima elresultado utilizando cuatro cifras despues del punto. En caso

    que el numero proporcionado sea un valor negativo que imprima

    un mensaje recordandole al usuario que no existe el logaritmo

    de numeros negativos.

    Elabore un Script .m que tenga como entrada un numero y que

    calcule el logaritmo natural de ese numero y que imprima el

    resultado utilizando tres cifras despues del punto. En caso

    que el numero proporcionado sea un valor negativo que

    imprima un mensaje recordandole al usuario que no existe

    el logaritmo de numeros negativos pero que se calculara

    el logaritmo del valor absoluto proporcionado.

    Imprima el resultado.

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/http://goback/
  • 7/25/2019 Anlisis Numrico-I Parcial

    11/41

    Sentencia if elseif

    % Este Script le indicara el piso en el cual esta su aulax=input(Ingrese el numero de aula que aparece en su forma);

    if x

  • 7/25/2019 Anlisis Numrico-I Parcial

    12/41

    Ejercicio

    Elabore un Script .m que tenga como entrada un caracter seguido

    de un numero.

    En donde el caracter indica el edificio de la Universidad.

    a = Edificio de Ingeniera.

    b = Edificio de Asignaturas Generales.

    c = Edificio de la Salud.

    d = Edificio de AdministracionY el numero indica el piso del edificio.

    S es numero es menor que 100 \ Primer piso.

    S es numero es menor que 200 \ Segundo piso.

    S es numero es menor que 300 \ Tercer piso.

    S el valor de entrada no satisface la entrada de caracter,

    la de numero o ambas que imprima un mensaje al estudiante

    que debe avocarse a las oficinas de registro.

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    13/41

    while

    %Script para saber en que edificio y piso esta su aula

    letra = menu (Elija la letra del aula que desea consultar,a,b,c,d);

    aula = input(Ingrese el numero de su aula: );

    switch letra

    case 1

    disp(A usted le toca en el Edificio de Ingenieria);if aula

  • 7/25/2019 Anlisis Numrico-I Parcial

    14/41

    while

    case 2

    disp(A usted le toca en el Edificio de Matematicas);

    if aula

  • 7/25/2019 Anlisis Numrico-I Parcial

    15/41

    while

    case 3

    disp(A usted le toca en el Edificio de Ciencias Sociales);

    if aula

  • 7/25/2019 Anlisis Numrico-I Parcial

    16/41

    while

    case 4disp(A usted le toca en el Edificio de Ciencias de la Salud)

    if aula

  • 7/25/2019 Anlisis Numrico-I Parcial

    17/41

    for while

    MATLAB como en la mayora de los lenguajes de programacion, proporcio-

    na sentencias denominadas iterativas que permiten realizar una tarea unay otra vez hasta que se cumpla una determinada condicion, dicha tareaviene definida por un conjunto de sentencias agrupadas en un bloque. Lassentencias iterativas son for, while.

    % Este escript calcula el factorial de un numero proporcionado

    n= input (Ingrese el numero para el cual desea

    saber el factorial);

    resultado=1;

    for k=1:n

    resultado=k*resultado;end

    fprintf(El factorial de %i es %i\n,n,resultado)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/http://goback/
  • 7/25/2019 Anlisis Numrico-I Parcial

    18/41

    Metodo de biseccion

    En matematicas, el metodo de biseccion es un algoritmo de busqueda de

    races que trabaja dividiendo el intervalo a la mitad y seleccionando elsubintervalo que tiene la raz.Si f es una funcion continua sobre el intervalo [a, b] y si f(a) f(b) < 0,entonces fdebe tener un cero en (a, b). Dado quef(a)f(b)< 0, la funcioncambia de signo en el intervalo [a, b] y por lo tanto tiene por lo menos un

    cero en el intervalo.

    Figura 1:Raices de una funcion

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/http://goback/
  • 7/25/2019 Anlisis Numrico-I Parcial

    19/41

    Metodo de biseccion

    Primero se calcula el punto medio del intervalo c = (a+b)/2 ; despues seaverigua s f(a)f(c)< 0. Si lo es, entonces ftiene un cero en [a, c].A continuacion se renombra a c como b y se comienza una vez mas con elnuevo intervalo [a, b], cuya longitud es igual a la mitad del intervalo original.S f(a)f(c)> 0 , entonces f(c)f(b)< 0 y en este caso se renombra c comoa.En ambos casos se ha generado un nuevo intervalo que contiene un cero def, y el proceso puede repetirse.Para detener el metodo de biseccion y dar una aproximacion del cero deuna funcion se pueden usar varios criterios (llamados criterios de parada).

    Uno de los criterios de parada consiste en examinar si |f(cn)|< , donde es una tolerancia previamente establecida.

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    20/41

    Metodo de Newton

    1 En analisis numerico, el metodo de Newton (conocido tambien comoel metodo de Newton-Raphson o el metodo de Newton-Fourier) es unalgoritmo eficiente para encontrar aproximaciones de los ceros oraces de una funcion real.

    2 Tambien puede ser usado para encontrar el maximo o mnimo de unafuncion, encontrando los ceros de su primera derivada.

    xn+1 =xn f(xn)

    f(xn) (1)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    21/41

    Metodo de la secante

    1 En analisis numerico el metodo de la secante es un metodo paraencontrar los ceros de una funcion de forma iterativa.

    2 Es una variacion del metodo de Newton Raphson donde en vez decalcular la derivada de la funcion, se aproxima la pendiente a la recta

    que une la funcion evaluada en el punto de estudio y en el punto dela iteracion anterior. Este metodo es conveniente cuando derivar lafuncion y evaluarla es demasiado complejo, por lo que el metodo deNewton no resulta atractivo.

    xn+1 =xn

    xnx

    n1

    f(xn)f(xn1) f(xn) (2)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    22/41

    fzero

    La funcion fzero puede encontrar la raz de una ecuacion trascendentef(x) = 0. Su sintaxis es: fzero(f uncion, x0)Dondefunciones el nombre de la funcion cuyas races queremos determinary x0 puede ser un valor cercano a la raz es decir, una primera aproximacion.

    >> clear

    >> x=0:0.1:10;

    >> f = @(x)x.*sin(x)-1;

    >> z = fzero(f,1)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    G fi M l b

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    23/41

    Graficos en Matlab

    1 Una de las funciones mas importantes en Matlab es la funcion plot.

    Plot tambien parece ser una de las mas sencillas funciones paraaprender a usar. La sintaxis basica de la funcion es escribir elsiguiente comando en la ventana de comandos del Matlab o en unarchivo-m.

    2 plot(x,y)

    x = 0:0.1:100;

    y = x.*sin(x)-1;

    plot(x,y)

    x = linspace(0,2*pi,50);y = sin(x);

    z = cos(x);

    plot(x,y,r, x,z,gx)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    G fi M l b S b l

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    24/41

    Graficos en Matlab Subplot

    x = linspace(0,2*pi,50);

    y = sin(x);

    z = cos(x);

    w = x.^2;

    subplot(2,2,1)

    plot(x,y)

    subplot(2,2,2)

    plot(x,z)

    subplot(2,2,3)

    plot(x,w)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    G fi M tl b S b l t

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    25/41

    Graficos en Matlab Subplot

    x = linspace(0,2*pi,50);

    y = sin(x);

    z = cos(x);

    w = x.^2;

    subplot(2,2,1)

    plot(x,y)

    title(Grafico 1)

    xlabel(Unidades de x tiempo (seg.))ylabel(Unidades de y longitud (mts.))

    subplot(2,2,2)

    plot(x,z)

    title(Grafico 2)

    xlabel(Unidades de x tiempo (seg.))ylabel(Unidades de y longitud (mts.))

    grid

    subplot(2,2,3)

    plot(x,w)

    title(Grafico 3)

    xlabel(Unidades de x tiempo (seg.))Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    Aj t d C

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    26/41

    Ajuste de Curvas

    Suponga que tiene una serie de datos tabulados y requiere estudiar alguna

    relacion entre ellos.

    tiempos = [ 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1

    9.1 10.1];

    posiciones = [ 12 22 32 42 61 62 72 82

    92 102];

    plot( tiempos, posiciones, o );

    polyfit(tiempos,posiciones,1) %polyfit(xi,yi,k), donde k es

    el grado del polinomio que queremos obtener

    hold on

    x=0:0.1:11;y=A*x+B

    plot (x,y) % Los valores de A y B son los de polyfit

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    l t 3D

    http://find/http://goback/
  • 7/25/2019 Anlisis Numrico-I Parcial

    27/41

    plot 3D

    t = 0:pi/50:10*pi;

    x = sin(t);

    z = cos(t);

    plot3(x,z,t)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    Mesh

    http://find/http://goback/
  • 7/25/2019 Anlisis Numrico-I Parcial

    28/41

    Mesh

    La funcion mesh dibuja superficies 3D a partir de matrices. El comandomesh(Z) dibuja los valores de la matriz Z sobre sus coordenadas. Los valoresde Z se muestran como la altura sobre la rejilla xy.

    [X,Y] = meshgrid(-8:.5:8);

    R = sqrt(X.^2 + Y.^2) + eps;Z = sin(R)./R;

    figure

    mesh(Z)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    Meshc

    http://goforward/http://find/http://goback/
  • 7/25/2019 Anlisis Numrico-I Parcial

    29/41

    Meshc

    [X,Y] = meshgrid(-8:.5:8);

    R = sqrt(X.^2 + Y.^2) + eps;

    Z = sin(R)./R;

    figure

    meshc(Z)

    Ing. Jacinto Daniel Pinto UTH

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    30/41

    ANALISIS NUMERICO CON MATLAB

    Surfc

  • 7/25/2019 Anlisis Numrico-I Parcial

    31/41

    Surfc

    [x,y] = meshgrid([-2:.2:2]);

    Z = x.*exp(-x.^2-y.^2);

    surfc(x,y,Z,gradient(Z))colorbar

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    Surfc

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    32/41

    Surfc

    [X,Y] = meshgrid(-8:.5:8);

    R = sqrt(X.^2 + Y.^2) + eps;

    Z = sin(R)./R;

    surf(X,Y,Z,FaceColor,red,EdgeColor,none)

    camlight left;

    lighting phong

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUMERICO CON MATLAB

    Waterfall

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    33/41

    Waterfall

    El comando waterfall hace visualizar la superficie como una malla unidi-reccional.)

    x = -10:0.5:10;

    y =x;[X,Y] = meshgrid (x,y);

    Z = sin (sqrt (X .^2 + Y .^2)) ./ sqrt (X .^ 2 + Y .^ 2 + 0.1);

    waterfall(X,Y,Z);

    Ing. Jacinto Daniel Pinto UTH

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    34/41

    ANALISIS NUMERICO CON MATLAB

    contour3

  • 7/25/2019 Anlisis Numrico-I Parcial

    35/41

    contour3

    x = -2:0.25:2;

    [X,Y] = meshgrid(x);

    Z = X.*exp(-X.^2-Y.^2);contour3(X,Y,Z,30)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUM

    ERICO CON MATLAB

    Sphere

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    36/41

    Sphere

    [x,y,z] = sphere;

    figure

    surf(x,y,z)

    hold on

    surf(x+3,y-2,z) % Centrada en: (3,-2,0)

    surf(x,y+1,z-3) % Centrada en: (0,1,-3)

    title(Esferas Varias)

    xlabel(Este es el eje x)

    ylabel(Este es el eje y)

    zlabel(Este es el eje z)

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUM

    ERICO CON MATLAB

    Cylinder

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    37/41

    Cylinder

    t = 0:pi/10:2*pi;

    figure

    [X,Y,Z] = cylinder(2+cos(t));surf(X,Y,Z)

    axis square

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUM

    ERICO CON MATLAB

    Cylinder

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    38/41

    y

    t = 0:0.1:2*pi;

    r = sin(2*t);

    [x,y,z] = cylinder(r);surf(x,y,z);

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUM

    ERICO CON MATLAB

    TAREA2 Ajuste de Curvas

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    39/41

    j

    Ver archivo: Tarea2 Analisis numerico.doc

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUM

    ERICO CON MATLAB

    Tarea3

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    40/41

    Tarea 3 Hacer un Script que modele la cada libre de un cuerpo. El scriptdebe tener como parametros de entrada:

    1 La posicion inicial vertical del cuerpo y0.

    2 La velocidad inicial proporcionada al cuerpo v0.

    El script debe mostrar los graficos de posicion vrs tiempo, velocidad vrstiempo y aceleracion vrs tiempo.

    Ing. Jacinto Daniel Pinto UTH

    ANALISIS NUM

    ERICO CON MATLAB

    http://find/
  • 7/25/2019 Anlisis Numrico-I Parcial

    41/41

    Ing. Jacinto Daniel Pinto UTH

    http://find/