Upload
henryvargas2012
View
212
Download
0
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