9
 Universidad Nacional Mayor de San Marcos Facultad de Ingenier ´ ıa de Sistemas e Inform´ atica Departamento Acad´ emico de Ciencias de la Computaci´ on Laboratorio de M´ etodos Num´ ericos 2011 II  Introducci´ on a la programaci´ on en  MatLab Taller 01 Introducci´ on al  MatLab 1 En esta sesi´ on desarroll aremos una revisi´ on de las principale s herramientas que posee MatLab, esto es en cuanto al manejo de variables, el uso de funciones matem´ aticas, las operaciones entre arrays (vectores) y el dise˜ no de gr´ acos de curvas en general. Esto permitir´ a una familiarizaci´ on mas r´ apida de su entorno, adem´ as que permitir´ a hacer un reconocimiento acerca de las reglas ortogr´ acas y de las respectivas sintaxis de sus comandos y funciones. Operaciones con Variables A semejanza de C,  MatLab  hace distinci´ on entre may´ usculas y min´ usculas en cuanto a los nombres de las variables, dichos nombres de variables pueden empezar siempre con una letra y pueden constar de hasta 31 letras y n´ umeros, consider´ andose el car´ acter  _  como una l etra. Ade as, cuando se llamen a las funciones propias de  MatLab  esta s tambi´ en deb er´ an ser escritas en min´ usculas, caso contrario se presentar´ an errores en la compilaci´ on de c´ odigo. Si una expresi´ on termina en punto y coma  ;  su resultado se calcula, pero no se escribe en pantalla; y si esta se omite, entonces MatLab  ejecutar´ a la expresi´ on y mostrar´ a los resultados. Las operaciones aritm´ eticas entre escalares son efectuadas de manera natural usand o los siguie ntes s ´ ımbolo s: Potencia  Multiplicaci´ on  * Divisi´ on  /  Suma y Resta  ± Ejemplo 1  Dadas las variables y sus respectivos contenidos,  a = 2,  b = 5  y  c  = 10; calcule la expresi´ on: E  = 4ab 2  10c b Soluci´ on. Veamos: >> a=2; >> b=5; >> c=10; >> E=4*a*b^2-10*c /b E = 180 >> 1 Extraido del texto  MatLab: Introducci´ on a los etodos Num´ eri cos  del mismo autor. Prof . J. R. Avenda˜ no Q.  1

Taller01labomn Fisi 2011 II

Embed Size (px)

DESCRIPTION

METODOS NUMERICOS

Citation preview

  • Universidad Nacional Mayor de San MarcosFacultad de Ingeniera de Sistemas e InformaticaDepartamento Academico de Ciencias de la ComputacionLaboratorio de Metodos Numericos 2011 II Introduccion a la programacion en MatLab

    Taller 01

    Introduccion al MatLab1

    En esta sesion desarrollaremos una revision de las principales herramientas que poseeMatLab, esto es en cuanto al manejo de variables, el uso de funciones matematicas,las operaciones entre arrays (vectores) y el diseno de graficos de curvas en general.Esto permitira una familiarizacion mas rapida de su entorno, ademas que permitirahacer un reconocimiento acerca de las reglas ortograficas y de las respectivas sintaxisde sus comandos y funciones.

    Operaciones con Variables

    A semejanza de C, MatLab hace distincion entre mayusculas y minusculas encuanto a los nombres de las variables, dichos nombres de variables pueden empezarsiempre con una letra y pueden constar de hasta 31 letras y numeros, considerandoseel caracter _ como una letra. Ademas, cuando se llamen a las funciones propiasde MatLab estas tambien deberan ser escritas en minusculas, caso contrario sepresentaran errores en la compilacion de codigo.Si una expresion termina en punto y coma ; su resultado se calcula, pero no seescribe en pantalla; y si esta se omite, entonces MatLab ejecutara la expresion ymostrara los resultados.Las operaciones aritmeticas entre escalares son efectuadas de manera natural usandolos siguientes smbolos:

    Potencia Multiplicacion *Division / Suma y Resta

    Ejemplo 1 Dadas las variables y sus respectivos contenidos, a = 2, b = 5 y c = 10;calcule la expresion:

    E = 4ab2 10cb

    Solucion. Veamos:

    >> a=2;

    >> b=5;

    >> c=10;

    >> E=4*a*b^2-10*c/b

    E =

    180

    >>

    1Extraido del texto MatLab: Introduccion a los Metodos Numericos del mismo autor.

    Prof. J. R. Avendano Q. 1

  • Universidad Nacional Mayor de San MarcosFacultad de Ingeniera de Sistemas e InformaticaDepartamento Academico de Ciencias de la ComputacionLaboratorio de Metodos Numericos 2011 II Introduccion a la programacion en MatLab

    Observacion 1 MatLab no hace diferencia si las variables son enteras, reales ode doble precision, como suele ocurrir en los lenguajes de programacion, tales comoPascal, C/C++ o Java entre los mas destacados.

    Algunas funciones (matematicas) elementales

    MatLab tiene definidas diversos tipos de funciones; a continuacion una lista de lasfunciones matematicas que suelen tener mayor uso:

    funcion MatLab funcion MatLab

    | x | abs(x) ex exp(x)arccos(x) acos(x) cos(x) cos(x)arctan(x) atan(x) sen(x) sin(x)cosh(x) cosh(x) ex exp(x)Loge(x) log(x) Log10(x) log10(x)signo(x) sign(x)

    x sqrt(x)

    tan(x) tan(x) tanh(x) tanh(x)senh(x) sinh(x) cosh(x) cosh(x)arcsenh(x) asinh(x) arccosh(x) acosh(x)arctanh(x) atanh(x) arcsen(x) asin(x)

    Ejemplo 2 Verifique la identidad trigonometrica:

    sen2 x+ cos2 x = 1

    para diferentes valores de x (asigne los valores de su agrado).Solucion.

    >> x=0

    >> r=sin(x)^2

    r =

    0

    >> r=sin(x)^2+cos(x)^2

    r =

    1

    >> x=1;

    >> r=sin(x)^2+cos(x)^2

    r =

    1

    >> x=25;

    Prof. J. R. Avendano Q. 2

  • Universidad Nacional Mayor de San MarcosFacultad de Ingeniera de Sistemas e InformaticaDepartamento Academico de Ciencias de la ComputacionLaboratorio de Metodos Numericos 2011 II Introduccion a la programacion en MatLab

    >> r=sin(x)^2+cos(x)^2

    r =

    1

    >>

    Las siguientes constantes matematicas se encuentran definidas en MatLab:

    pi = pi , i =1

    las cuales deben ser llamadas o utilizadas con las palabras claves pi, i o j para laconstante imaginaria.

    >> pi

    ans =

    3.14159265358979

    >> i

    ans =

    0 + 1.00000000000000i

    >> j

    ans =

    0 + 1.00000000000000i

    >>

    Algebra de Vectores

    Una de las cualidades mas saltantes de MatLab es el manejo de arrays (vectores omatrices), los cuales hay que definirlos correctamente; en el caso de los arrays de laforma v = (v1, v2, . . . , vn), esta se definira siguiendo el siguiente formato:

    >> x=[ v1 v2 ... vn]

    MatLab le informara luego el contenido de dicho vector y las respectivas columnas.El vector x tiene n elementos; si se desea conocer la n-esima componente, por ejemplobastara con escribir:

    >> x(n)

    Defina el vector u = (1, 2, 0,5, 7):>> u=[1,2,0,-5,7]

    u =

    1 2 0 -5 7

    >>

    Observe que se muestra a u como un vector fila con 5 columnas, ademas cada elementotambien puede ser separado por comas o por espacios.Y si usted desea ver los m primeros elementos, escriba:

    Prof. J. R. Avendano Q. 3

  • Universidad Nacional Mayor de San MarcosFacultad de Ingeniera de Sistemas e InformaticaDepartamento Academico de Ciencias de la ComputacionLaboratorio de Metodos Numericos 2011 II Introduccion a la programacion en MatLab

    >> x(1:m)

    Ejemplo 3 Haga una prueba de este ultimo item para el vector x = (1, 2, 3, 4, 5),mostrando el quinto elemento y luego los 3 primeros elementos.Solucion. Proceda como sigue:

    >> x=[1,2,3,4,5]

    x =

    1 2 3 4 5

    >> x(5)

    ans =

    5

    >> x(1:3)

    ans =

    1 2 3

    >>

    En MatLab, se esta permitido las operaciones de elemento a elemento al igual quelas operaciones usuales del algebra matricial, exigiendose que las dimensiones entrelos vectores o arrays sean las mismas.Las siguientes operaciones estan permitidas en dicho entorno, para u, v vectores y tun escalar:

    Suma y resta de vectores u vProducto de un vector por un escalar t u t*uProducto interno de vectores u, v u*vProducto de vectores elemento a elemento u.*vDivision de 2 vectores elemento a elemento u./vPotencia de un vector con un escalar ut utPotencia de un vector con un vector elemento a elemento uv u.vTranspuesta de un vector uT u

    Transpuesta conjugada de un vector uH u.

    todas estas operaciones dan como resultado un vector, a excepcion del producto devectores definido por u*v.

    Ejercicio 1 Para los vectores a = (1, 0,2, 3), b = (1, 2, 1, 2) y el escalar c = 3 ,calcule:

    a+ b , a b , c.b , a.b , a./b , ac , ab

    A continuacion tenemos algunas funciones utiles para definir vectores:

    Prof. J. R. Avendano Q. 4

  • Universidad Nacional Mayor de San MarcosFacultad de Ingeniera de Sistemas e InformaticaDepartamento Academico de Ciencias de la ComputacionLaboratorio de Metodos Numericos 2011 II Introduccion a la programacion en MatLab

    Vect=linspace(Vinicial,Vfinal,N): crea el vector Vect de N elementos igual-mente espaciados, en donde el primer elemento tiene el valor Vinicial y elultimo elemento Vfinal.Por ejemplo si queremos definir el vector u = (1, 2, 3, , 10) , escribiramos:

    >> u=linspace(1,10,10)

    u =

    1 2 3 4 5 6 7 8 9 10

    >>

    Vect=(Vinicial:Paso:Vfinal) : donde Paso es el tamano de la distanciaentre cada coordenada de Vect.En el ejemplo anterior el formato correspondiente sera:

    >> u=1:1:10

    u =

    1 2 3 4 5 6 7 8 9 10

    >> u=(1:1:10)

    u =

    1 2 3 4 5 6 7 8 9 10

    >>

    Al igual que el formato anterior, se efectua la construccion de 10 elementosequidistantes. Si el tamano de paso no es multiplo de la longitud del intervalo,entonces este formato creara el array con los elementos comprendidos del valorinicial al final, veamos un ejemplo:

    >> x=1:4:10

    x =

    1 5 9

    >>

    el siguiente elemento en el array sera el numero 13, pero este no se encuentraentre 1 y 10, por lo tanto se descarta.

    Una funcion muy util y conocida que mas adelante se le dara un uso mas noble es lafuncion que retorna la norma de un vector.

    norm(Vect,p) : calcula la norma p del vector Vect, en donde:Si p=1, tendremos la norma suma.Si p>1, tendremos la norma p.Si p=inf, la norma es el maximo valor de los elementos del vector en modulo.

    Ejemplo 4 Calcule la suma de los 50 primeros numeros enteros positivos.Solucion. El respectivo codigo usando la funcion norm sera:

    Prof. J. R. Avendano Q. 5

  • Universidad Nacional Mayor de San MarcosFacultad de Ingeniera de Sistemas e InformaticaDepartamento Academico de Ciencias de la ComputacionLaboratorio de Metodos Numericos 2011 II Introduccion a la programacion en MatLab

    >> v=linspace(1,50,50);

    >> suma=norm(v,1)

    suma =

    1275

    >>

    Ejercicio 2 Calcule S = 1 + 22 + 32 + 42 + 52 + . . .+ 102

    Ejercicio 3 Calcule S = 1 + 22 + 33 + 44 + 55 + . . .+ 1010

    Ejercicio 4 Calcule S =10n=0

    sen( n10

    )El siguiente formato es muy util para construir un vector con elementos no uniformes:

    Vect=[v1,v2] : crea el vector Vect con elementos de los vectores v1 y v2,uno a continuacion del otro, es decir los arrays v1 y v2 se concatenan uno acontinuacion del otro.

    Ejemplo 5 Genere el vector v concatenando los vectores v1=(1,2,3,4,5) yv2=(6,8,10), uno a continuacion del otro.Solucion. Tendremos:

    >> v1=linspace(1,5,5)

    v1 =

    1 2 3 4 5

    >> v2=(6:2:10)

    v2 =

    6 8 10

    >> v=[v1,v2]

    v =

    1 2 3 4 5 6 8 10

    >>

    Las siguientes funciones actuan sobre vectores (no se aplica a escalares ni matrices).

    max(vect): devuelva el valor maximo de vect. min(vect): devuelva el valor mnimo de vect. sum(vect): nos proporciona la suma de los elementos de un vector. mean(vect}: devuelve el valor medio de los elementos de un vector. cumprod(vect): devuelve el vector producto acumulativo de los elementos deun vector.

    Prof. J. R. Avendano Q. 6

  • Universidad Nacional Mayor de San MarcosFacultad de Ingeniera de Sistemas e InformaticaDepartamento Academico de Ciencias de la ComputacionLaboratorio de Metodos Numericos 2011 II Introduccion a la programacion en MatLab

    prod(vect): devuelve el producto de todos los elementos de un vector. diff(vect): devuelve un array que contiene las diferencias finitas de primerorden del array vect.

    Graficos en 2 dimensiones

    En esta seccion solo trataremos las funciones mas importantes para un desplieguegrafico.

    plot. Permite crear un grafico a partir de vectores con escalas lineales sobrelos ejes, siendo su sintaxis es como sigue:

    plot(vectorx,vectory,color)

    La orden plot construye una polilnea usando las coordenadas (vectorxi,vectoryi), mientras que el parametro color puede ser: red, blue, yellow,green, cyan, magenta. Esta funcion tiene muchas variantes, como el poder ele-gir la forma del trazo, color, montar varios graficas, todas estas se desarrollaranal detalle en su debido momento.

    Ejemplo 6 Grafique la funcion f(x) = sen(x) en el intervalo [pi, pi]Solucion. Para esto, generaremos primero un array para el eje x y otro parael eje y, luego plotearemos las coordenadas de ambos, debe notar que ambosarrays tendran el mismo numero de elementos.

    >> x=linspace(-pi,pi,100);

    >> y=sin(x);

    >> plot(x,y,r);

    title. Anade un ttulo (el cual es una cadena de caracteres) al dibujo.

    title(titulo)

    xlabel (y ylabel). Anade etiquetas en los respectivos ejes.

    xlabel(titulo)

    ylabel(titulo)

    text. Introduce un texto en las coordenadas deseadas.

    text(x,y,titulo)

    Prof. J. R. Avendano Q. 7

  • Universidad Nacional Mayor de San MarcosFacultad de Ingeniera de Sistemas e InformaticaDepartamento Academico de Ciencias de la ComputacionLaboratorio de Metodos Numericos 2011 II Introduccion a la programacion en MatLab

    x e y son las coordenadas en donde se empieza a escribir titulo.

    hold. Permite montar o superponer varios graficos en una sola ventana dedibujo.

    hold on % para activar hold %

    hold off % desactiva hold %

    zoom. Permite ampliar o disminuir el grafico, se desactiva con zoom off.

    Ejemplo 7 Grafique a la vez, las funciones f(x) = sen(x) y g(x) = cos(x) para xen el intervalo [2pi, 2pi].Solucion. Los graficos respectivos lo mostramos en una ventana de graficos:

    >> x=linspace(-2*pi,2*pi,100);

    >> y=cos(x);

    >> z=sin(x);

    >> plot(x,y,red);

    >> hold on;

    >> plot(x,z,blue);

    >> title(funciones: seno y coseno);

    Mas adelante veremos como manipular la escala en los ejes x e y para una buenavisualizacion grafica.

    6 4 2 0 2 4 63

    2

    1

    0

    1

    2

    3Funciones: seno y coseno

    cos(x)sen(x)

    Ayuda on-line

    Los siguientes son comandos similares a los empleados bajo el sistema operativoDOS, que nos permiten un mayor grado de libertad y desenvolvimiento en el entornodel MatLab.

    dir (o ls) : nos informa el contenido del directorio actual de trabajo.

    Prof. J. R. Avendano Q. 8

  • Universidad Nacional Mayor de San MarcosFacultad de Ingeniera de Sistemas e InformaticaDepartamento Academico de Ciencias de la ComputacionLaboratorio de Metodos Numericos 2011 II Introduccion a la programacion en MatLab

    cd : permite cambiar el directorio actual. who, whos : nos informa las variables actuales con las que se esta trabajando. clear : limpia o borra la variable (o variables) del entorno del MatLab. clc : limpia la ventana o consola de edicion de comandos de MatLab. what : nos proporciona un listado de todos los archivos .m y .mat que seencuentran en el directorio activo.

    help Nombre : nos proporciona la informacion con respecto a la funcion Nombre. lookfor Palabra : nos proporciona informacion que contenga la cadena decaracteres Palabra.

    control C : detiene la tarea actual que MatLab este realizando. quit, exit : permite abandonar el entorno de MatLab.

    Los formatos de salida se pueden controlar dependiendo de las necesidades del lector,dichos formatos numericos pueden ser activadas como sigue:

    format short: 4 decimales (por defecto). format long : 15 decimales. format short e: notacion cientfica con 4 decimales. format long e: notacion cientfica con 15 decimales. format compact: elimina la lneas en blanco. format rat: expresa los numeros racionales como una fraccion.

    Prof. J. R. Avendano Q. 9