graficación en dos y tres dimensiones

Upload: mvictor619

Post on 10-Oct-2015

7 views

Category:

Documents


0 download

DESCRIPTION

Graficar en matlab

TRANSCRIPT

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    1/23

    Graficacin en dos y tres dimensiones.

    Graficas en dos dimensiones.

    Suponga que desea graficar un conjunto de puntos de datos [xi, yi], i =1,2,3, ..., n. En necesario hacer dos arreglos, del mismo tamao, parax y y que representen los valores que deseamos graficar. Una manerade hacerlo es utilizando la instruccin plot.

    Ejemplo 1.

    Graficar la funcin f(x)=seno(x)e(-0.4x)para x = [0, 10].

    x = 0: 0.05: 10;

    y = sin(x).*exp(-0.4*x);

    plot(x,y);

    xlabel('Eje x');

    ylabel('Eje y');

    grid on;

    Los rtulos de los ejes de imprimen con los comando xlabel y ylabel.

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    2/23

    Tambin se pueden utilizar vectores columna para realizar grficas.

    Ejemplo 2.

    p= 0: 0.05: 8*pi;

    z = (cos(p) + i*sin(2*p)).*exp(-0.05*p) + 0.01*p;

    plot(real(z), imag(z));

    xlabel('Real(z)');

    ylabel('Imaginario(z)');

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    3/23

    Graficacin utilizando nicamente marcas.

    Los datos pueden graficarse solo con marcas sin estar conectados por

    lneas. Se dispone de cinco tipos de marcas o letras.

    Tipo de marca SmboloPunto .

    Mas +

    Estrella *Circulo o

    Marca x x

    Tambin se pueden utilizar lneas

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    4/23

    Tipo de lnea Smbolocontinua -guiones --

    Punteada :

    Guiones ypuntos -.

    y colores.

    Color de lnea Smbolo

    rojo ramarillo y

    magenta mturquesa c

    verde g

    azul bblanco wnegro k

    Es posible hacer combinaciones de colores y marcas as, por ejemplo:

    plot(x, y, +g); % grafica una curva utilizando cruces y color verde.

    plot(x, y, k); % grafica en color negro sin marcas

    plot(x, y, -.b); % grafica en color azul con linea punteda.

    Graficacin de funciones con fplot.

    Otra forma de grafica funciones individuales es con fplot.

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    5/23

    fplot(archivo, [xmin, xmax]);

    donde archivo es el nombre del archivo que contiene los datos agraficar y [xmin y xmax] los limites de la funcin a graficar.

    Borrado de Grficas.

    El comando clf borra todo lo que haya en la ventana de grficos,mientras cla borra las curvas y redibuja los ejes.

    Retculas

    Se puede agregar un conjunto de lneas paralelas a los ejes, parahacer mas legible la lectura de datos en la grfica, a este conjunto delneas se le llama retcula. La instruccin para ponerla es:

    grid on;

    Graficas polares.

    Podemos hacer grficas en coordenadas polares utilizando lainstruccin:

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    6/23

    polar(t, y);

    Esta instruccin es muy similar a plot, la diferencia estriba en que el

    sistema de coordenadas ya no es un sistema cartesiano x, y, sino unsistema polar r, .

    tetha = 0: 0.05: 4*pi+0.1;

    r = sin(4*tetha);

    polar(tetha, r);

    title('Rosa de ocho hojas');

    grid on;

    tetha = 0.01: 0.05: 2*pi+0.1;

    r = 2-5*cos(tetha);

    polar(tetha, r);

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    7/23

    title('Caracol de Pascal');

    grid on;

    Ejes.

    El mnimo y el mximo de los ejes de coordenadas son determinados automticamente, sinembargo, hay manera de ajustarlos automticamente utilizando el comando axis.

    axis(square); % redibuja en forma cuadrada.

    axis(off); % cancela el efecto

    axis([x_min, x_max, y_min, ymax]) % establece los valores mnimos ymximos para cada eje.

    Grficas Logartmicas y semilogaritmicas.

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    8/23

    Las funciones pueden graficarse en una escala log-log utilizando elcomando

    loglog(x,y);

    y tambin podemos representar una curva en una escalasemilogartmica utilizando

    semilogx(x,y); % en la direccin de x

    semilogy(x,y); % en la direccin de y

    Ejemplo 3.

    El siguiente ejemplo muestra como trazar una funcin en una escalalogartmica-locartmica.

    x = 0:0.1:10;

    y = x.^2;

    loglog(x,y);

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    9/23

    x = 0:0.1:10;

    y = x.^2;

    %loglog(x,y);

    semilogy(x,y);

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    10/23

    Graficacin de mltiples curvas.

    Se uno desea graficar mas de una curva entonces ser necesario enla instruccin plot poner mas de un par de termino a graficar tal comose muestra a continuacin.

    x = 0: 0.05:5;

    y = sin(x);

    z = cos(x);

    plot(x, y, x, z);

    Automticamente se seleccionaran los colores de cada grafica y si uno desea podrn

    cambiarse haciendo

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    11/23

    x = 0: 0.05:5;

    y = sin(x);

    z = cos(x);

    plot(x, y, '--', x, z, '*');

    En algunos casos resulta til mandar a graficar utilizando solo un par de argumentos en la

    sentencia plot. En tal caso se procede :

    clear;

    x = 0: 0.05:5;

    y(1, :) = sin(x);

    y(2, :) = cos(x);

    y(3, :) = sin(x).*cos(x);

    plot(x, y);

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    12/23

    Retencin (Sobre poner grficas).

    Hasta el momento hemos realizado el trazado de las curvas utilizandouna sola operacin. Pero si deseamos graficar sobre una grafica yarealizada utilizaremos el comando hold on.

    clear;

    x = 0: 0.05:5;

    y = sin(x);

    plot(x, y, 'b*');

    hold on;

    z = cos(x);

    plot(x, z, 'r--');

    yz = sin(x).*cos(x);

    plot(x, yz, 'k-.');

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    13/23

    Ttulos y Leyendas.

    Podemos agregar ttulos a nuestras grficas utilizando la instruccin

    title (texto para la grafica);

    y leyendas en cualquier posicin con el comando

    text(x, y, cadena)

    donde x y y representa las coordenadas de la grfica donde deseas que aparezcaimpresa la cadena.

    Subgrficas.

    Con el comando subplot podemos grficar m por n grficas en una sola figura. Lasintaxis del comando es

    subplot(m, n, k)

    donde m y n se refiere al arreglo de graficas y k al nmero de grafica sobre al quese trabaja.

    Ejemplo 4.

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    14/23

    Calcular el voltaje y corriente transitoria que circulan por la inductancia de uncircuito RL serie. Para encontrar la solucin utilice el mtodo de la reglatrapezoidal y compare el resultado con la solucin real.

    function y1 = RL1(Tf, inc)

    global V R L H

    V = 10;

    R = 5;

    L = 1;

    H = inc;

    Ic(1) = 0;

    num_iter = Tf/inc;

    t = 0:inc:Tf;

    Ir = (V/R)*(1-exp(-R*t/L));

    for iter = 1: num_iter

    Ic(iter+1) = f(Ic(iter));

    end;

    subplot(1, 2, 1);

    plot(t, Ir, '.r');

    title('Corriente corriente en la inductancia');

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    15/23

    xlabel('tiempo en segundos');

    ylabel('corriente en amperes');

    hold on;

    plot(t, Ic, 'k');

    text(1, 1, '... Real');

    text(1, 0.5, '---calculada');

    Vr = V - R*Ir;

    Vc = V - R*Ic;

    subplot(1,2, 2);

    plot(t, Vr, '.r');

    title('Voltaje en la inductancia');

    xlabel('tiempo en segundos');

    ylabel('Voltajes');

    hold on;

    plot(t, Vc, 'k');

    text(1, 1, '... Real');

    text(1, 0.5, '---calculada');

    hold off;

    function I1 = f(Io)

    global V R L H

    I1 = (Io + (2*V-R*Io)*H/(2*L))/(1+R*H/(2*L));

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    16/23

    Grficas en tres dimensiones.

    Una funcin tridimensional puede ser definido como una funcin z =z(x,y) . Una matriz es el mejor ejemplo de una funcin en tresdimensiones donde x y y representan los ndices del arreglo y z(x,y) el

    contenido de la matriz.

    Para grficar una funcin en tres dimensiones utilizamos el comando

    mesh(z)

    El comando mesh(z) desplegara la funcin contenida en la matriz z.

    Ejemplo 5.

    Trazar la curva de la funcin f(x,y) = (x-50)2+ (y-50)2,en el rangox =[1,100]y y =[1,100].

    clear;

    for k=1:100;

    for l=1:100;

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    17/23

    z(k,l) = (k-50)^2 + (l-50)^2;

    end;

    end;

    mesh(z);

    title ('grafica de (k-50)^2 + (l-50)^2');

    xlabel ('eje x');

    ylabel ('eje z');

    zlabel ('z(x,y)');

    Si deseas nicamente graficar las lneas de contorno se utiliza lainstruccin contour.

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    18/23

    clear;

    for k=1:100;

    for l=1:100;

    z(k,l) = (k-50)^2 + (l-50)^2;

    end;

    end;

    contour(z);

    title ('grafica de (k-50)^2 + (l-50)^2');

    xlabel ('eje x');

    ylabel ('eje y');

    zlabel ('z(x,y)');

    Malla.

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    19/23

    En algunos casos donde los puntos en la direccin de x y de y no sonvalores enteros positivos, tenemos que hacer uso del comandomeshgrid.

    Ejemplo 6.

    Trazar la grfica de la funcin z = x*exp(-x2-y2) en el rango x=[-2,2] y y=[-2,2].

    clear, clf;

    xa = -2:0.2:2;

    ya = -2:0.2:2;

    [x y] = meshgrid(xa,ya);

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

    mesh(x, y, z);

    title ('Grafica en 3D');

    xlabel('x'); ylabel('y'); zlabel('z');

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    20/23

    Grfica Vectorial.

    En ocasiones, las cantidades correspondientes a los puntos de una retcula se dan en forma

    vectorial. Por ejemplo la distribucin de la velocidad en un flujo, etc. Los vectores en estos

    puntos pueden calcularse utilizando el comando quiver y requieren de dos vectores uno en

    la direccin de x y otro en la direccin de y.

    Ejemplo 7.

    Graficar el vector gradiente correspondiente a la curva z = x*exp(-x

    2

    -y2).

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

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

    [px,py] = gradient(z,.2,.2);

    contour(z),hold on, quiver(px,py), hold off

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    21/23

    Ejemplo 8.

    Determinar la grfica correspondiente a un tiro parablico.

    clear;

    Vo = 10;

    tetha =45*pi/180;

    g = 9.81;

    yo = 15;

    t = 0:0.1:3;

    x = Vo*cos(tetha)*t;

    [tm xm] = meshgrid(t,x);

    ym = yo + Vo*sin(tetha)*tm- g*tm.^2/2;

    Vy = Vo*sin(tetha)- g*tm;

    Vx = ones(length(t))*Vo*cos(tetha);

    [px,py] = gradient(ym,.1,.1);

    subplot(1,2,1);

    mesh(tm, xm, ym);

    Title('Desplazamiento del tiro parabolico');

    xlabel('tiempo');

    ylabel('x');

    zlabel('y');

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    22/23

    subplot(1,2,2);

    quiver(Vx,Vy);

    Title('Campo vectorial de desplazamiento');

    Ejemplo 9.

    Determinar la distribucin de potencial elctrico en un conductorcuadrado, utilizando diferencias finitas.

    clear;

    N = 50;

    z = zeros(N,N);

    z(N, :) = 0.1;

    for iter = 1: 100

    for n=2:N-1

  • 7/13/2019 Graficacin en Dos y Tres Dimensiones

    23/23

    for m=2:N-1

    suma = 0;

    suma = suma + z(n-1,m);

    suma = suma + z(n+1,m);

    suma = suma + z(n,m-1);

    suma = suma + z(n,m+1);

    z(n,m) = suma/4;

    end;

    end;

    end;

    [c, h] = contour(z); clabel(c, h); colorbar;