PDF de programación - Métodos Numéricos con Matlab

Imágen de pdf Métodos Numéricos con Matlab

Métodos Numéricos con Matlabgráfica de visualizaciones

Publicado el 17 de Mayo del 2018
1.499 visualizaciones desde el 17 de Mayo del 2018
1,2 MB
134 paginas
Creado hace 17a (29/01/2007)
M¶etodos Num¶ericos con Matlab

Mishelle Segu¶³1

[email protected]
Esta es una primera versi¶on, por lo que se agradece cualquier comentario o sugerencia.

1

Introducci¶on

El prop¶osito de estas notas es dar una introducci¶on a los sistemas de software interactivo

Matlab (Matrix laboratory) y Octave, los cuales son equivalentes, con la ventaja de que
Octave es un software libre2. Esto con el objetivo de que posteriormente los alumnos puedan

crear sus propios programas de programaci¶on din¶amica, los cuales pueden incluir gr¶a¯cas,

regresiones, o cualquier computo num¶erico que se desee.

Dado que Matlab est¶a diseñado para resolver problemas num¶ericamente, es decir, que

tienen un aritm¶etica de precisi¶on ¯nita, nos va a producir soluciones aproximadas y no

exactas. Sin embargo, esto no resta credibilidad a este programa, ya que es uno de los

programas m¶as ultizados entre los economistas que realizan calibraciones, y es muy f¶acil de

usar.

2Si tienen Windows, lo pueden bajar de http : ==sourceforge:net=project=showfiles:php?group id =

2888 y se llama \Octave 2.1.73 for Windows Installer".

2

Temario

1. Introducci¶on a Matlab: Sint¶axis, c¶alculos sencillos y gr¶a¯cas b¶asicas

2. Integraci¶on y diferenciaci¶on num¶erica

3. Resolver un sistema de ecuaciones no lineales con m¶etodos de gradiente (Newton,

secante)

4. Resolver una ecuaci¶on en diferencias con m¶etodos num¶ericos (Gauss-Seidel).

5. Programaci¶on din¶amica num¶erica:

² Iteraci¶on de la funci¶on de valor
² Programaci¶on din¶amica determin¶istica
² Programaci¶on din¶amica estoc¶astica

6. Otros m¶etodos de la aproximaci¶on: polinomios, interpolaci¶on

7. Aplicaciones econ¶omicas

3

1 Introducci¶on a Matlab

1.1 Sint¶axis y c¶alculos sencillos

Antes que nada señalemos que cuando una quiere iniciar Matlab, ¶este puede tardar unos

segundos en abrir (de 10 a 15 seg.).

Algunas cosas que uno debe de saber de Matlab son:

² Las min¶usculas y las may¶usculas no son equivalentes
² Un punto y coma al ¯nal del comando har¶a que no se vea en la pantalla el resultado
² Matlab utiliza par¶entesis () y corchetes [], los cuales no son intercambiables
² Las teclas con las °echas hacia arriba y hacia abajo ayudan para desplazarse entre los

comandos previos que se realicen

² Para seleccionar ayuda, hay que teclear help seguido del comando del cual se requiere

la ayuda

² Matlab se puede cerrar tecleando quit o exit

Explicar las barras de herramienta

Notemos que en la ventana de comandos, cuando asignamos un nombre a una expresi¶on,

es s¶olo un nombre y NO representa una variable matem¶atica, como lo hace Maple.

Veamos ahora unos ejercicios de s¶³mbolos y puntuaci¶on3 para realizarlos en la com-

putadora:

Ver ejercicios1.1.pdf

3 + 7

a = sqrt(3)

b = sin(pi)

c = [1 : 10]

d = 1 : 2 : 8

e = [1 4];
e0
e: ¤ e
f = [1 4; 2 5]

f ^2

3http://www.indiana.edu/~statmath/math/matlab/gettingstarted/

4

Recordemos ahora algunas propiedades b¶asicas de las matrices. Digamos que tenemos el

vector ¯la g = [1 2 3] y el vector columna h = [4; 5; 6], entonces podemos como los vectores
son conformables, podemos multiplicar g ¤ h; o tambi¶en podemos computar el producto
interno con la funci¶on dot(g; h):

Hacerlo y comprobar que da 32
Recordar que el producto a ¤ a no est¶a de¯nido, dado que las dimensiones no son

compatibles, con lo cual si lo tecleamos, Matlab nos arroja un error.

Matlab tiene muchas funciones matem¶aticas para las matrices, por ejemplo exp(g);

log(h), sqrt(g); abs(g); sin(g);etc.

Por default Matlab nos muestra el resultado con 4 d¶³gitos decimales, aunque siempre

los guarda completos en la memoria y computa el equivalente a 14 d¶³gitos decimales. Si

deseamos ver dichos d¶³gitos, escribimos format long, por ejemplo sqrt(g). Si deseamos

regresar al formato anterior, s¶olo escribimos format.

Notemos tambi¶en que Matlab nos muestra los n¶umeros muy grandes y muy pequeños

en notaci¶on de exponencial, con una factor de 10 denotado por e.Por ejemplo, 2^(¡24).

Para redondear n¶umeros, Matlab tiene los comandos round; f ix; ceil y f loor; por

ejemplo round(g):

Matlab tambi¶en puede realizar varias funciones de an¶alisis de datos, por ejemplo sumar,

sacar la media,mediana, desviaci¶on est¶andar o ver la diagonal: sum(g); mean(g); median(g);

std(g); diag(f ):

Veamos a continuaci¶on algunas funciones de algebra lineal que Matlab realiza. Por

ejemplo, recordando que h es un vector columna, tal vez quisieramos resolver el sistema
lineal B ¤ x = h, en donde B = [¡3 0 1; 2 5 ¡7;¡1 4 8]; a trav¶es del operador n, de
la forma x = Bnh: Recordemos que la divisi¶on inclinada a la derecha a=b, signi¯ca a
b , pero
inclinada a la izquierda anb, signi¯ca b
a:

Ver que el resltado es -1.3717, 1.3874, -0.1152.
Uno podr¶³a comprobar el resultado a trav¶es de la norma euclideana del residuo: norm(B¤
x¡ h); que es practicamente cero. Los valores propios (eigenvalues) se pueden encontrar us-
ando eig, por ejemplo j = eig(B):

Si queremos saber el tamaño de la matriz, simplemente escribimos size(B): Si la quer-

emos transponer ponemos B0:

Como ya vimos podemos generar una secuencia se n¶umeros a trav¶es de los dos puntos,

como en el caso c; el cual tambi¶en lo podemos observar sin los corchetes. Notamos que en

5

este caso va del 1 al 10 en valores de uno, pero >c¶omo hacemos para que incrementen on

otras unidades? Esto es muy sencillo, s¶olo se incorporan los incrementos especi¯candolo

como m : s : n; en donde m es el valor con el que se desea inicializar, s es el paso con el cual

se desea incrementar, y n es el valor ¯nal. Por ejemplo, k = 1 : 3 : 10 ¶o l = 1 : 0:2 : 10:

En Matlab tambi¶en podemos hacer matrices m¶as grandes usando otras que ya ten¶³amos,

por ejemplo:

C = [B; g]:

Si deseamos s¶olo un elemento de la matriz, lo señalamos como C(i; j); en donde i es
la ¯la y j es la columna, por ejemplo C(2; 3); que nos de ¡7: Pero >qu¶e tal si queremos
una submatriz? Entonces s¶olo seleccionamos C(i1 : i2; j1 : j2);por ejemplo, C(2 : 3; 1 : 2):

En Matlab tambi¶en podemos escoger s¶olo las columnas o las ¯las, por ejemplo C(:; j) es la

columna j de C, y C(i; :) es la ¯la i:

Matlab tambi¶en tiene por default algunas matrices, como la identidad y la de ceros

y unos, a trav¶es de eye, zeros y ones. Por ejemplo, I3 = eye(3; 3), Y = zeros(3; 5);

Z = ones(2): Si lo que deseamos es una secuencia de s¶olo un n¶umero repetido varias veces,

por ejemplo si el n¶umero cero lo queremos repetido 3 veces, escribimos x(3) = 0:

Posteriormente veremos que es ¶util generar valores aleatorios a trav¶es de los comandos

rand y randn, los cuales vienen de la distribuci¶on uniforme [0,1] y de la normal (0,1),

respectivamente. Por ejemplo, F = rand(3) y G = randn(1; 5):

Matlab puede computar el in¯nito, a trav¶es del comando inf, sin embargo recordemos

que no podemos dividir inf/inf, porque matem¶aticamente no est¶a de¯nido y en la pantalla

de Matlab aparecer¶³a NaN(Not a Number).

Por ¶ultimo veamos que Matlbab, como muchos lenguajes de programaci¶on, trabaja con

bucles (loops). Un ejemplo es:

1+

1

1 + 1
1+ 1
1+1

Dicha soluci¶on se puede obtener generando el bucle

m = 2;
for n = 1 : 3; m = 1 + 1
m;

end

m

6

Si deseamos ver todas nuestras variables escribimos who y se desplegaran todos los

nombres de nuestras variables. Aunque si se desea mayor informaci¶on acerca de las variables,

escribimos whos.

1.2 Gr¶a¯cas

Las gr¶a¯cas m¶as sencillas de hacer son las gr¶a¯cas de puntos en el plano cartesiano. Por

ejemplo,

x = [0; 3; 6:1; 7];

y = [3; 8; 10; 9:2];

plot(x; y)

N¶otese que por default, Matlab junta los puntos con l¶³neas rectas, pero para tener s¶olo los

puntos ponemos

plot(x; y;0o0)

Tambi¶en podemos gra¯car una funci¶on con los puntos de x; por ejemplo,

plot(x; sin(x))

Podemos tambi¶en dar no s¶olo puntos, sino intervalos, por ejemplo,

x = (0 : :1 : 2 ¤ pi);

y = sin(x);

plot(x; y)

7

¶o

x = (¡5 : :1 : 5);

y = x:=(1 + x:^2);

plot(x; y)

Para ver las diferentes opciones que tenemos para gr¶a¯car, nos podemos ir a la ayuda,

donde ah¶³ nos señalan c¶omo poner diferentes colores, marcadores y tipos de l¶³neas. Veamos

algunos ejemplo:

plot(x; y;0g ¡ 0)

plot(x; y;0p0;0 MarkerSize0; 10)

Podemos añadirle a las gr¶a¯cas t¶³tulo y nombre a los ejes, por ejemplo

plot(x; y); :::

title(0Gr¶af ica 10); :::

xlabel(0eje x0)

El comando hold on lo usamos para poner en una misma gr¶a¯ca, otra gr¶a¯ca, por

ejemplo usando el ejemplo anterior, posteriormente escribimos:

hold on

v =

8

w =

plot(v; w)

Subplot hace que aparezcan varias gr¶a¯cas en una misma ventana.
Realizemos ahora algunos ejercicios de gr¶a¯cas4

x = ¡10 : 0:5 : 10;
y = x:^2;

plot(x; y)

t = 0 : 0:1 : 2 ¤ pi;
x = cos(t);

y = sin(t);

plot(x; y)
t = 0 : pi=5 : 2 ¤ pi;
u = cos(t);

v = sin(t);

f igure

plot(u; v)
plot(x; y;0r ¡ 0; u; v;0b¤ : 0)

figure

subplot(1; 2; 1)

plot(x; y)
title(0F ino0)
subplot(1; 2; 2)

plot(u; v)
title(0T osco0)

Ver ejercicios1.2.pdf

4idem

9

2 Integraci¶on y diferenciaci¶on num¶erica

En este cap¶³tulo usaremos m¶etodos num¶ericos para resolver problemas de c¶alculo y ecuaciones

diferenciales. Veremos algunas t¶ecnicas num¶ericas para encontrar derivadas e integrales

de¯nidas.

Por ejemplo, c¶omo calculamos el ¶area de un triangulo usando Matlab. Lo que podemos

empezar a hacer es un archivo .m, en el cual de¯namos nuestro objetivo:

function A=Atri(b,h)

A=b*h/2;

Entonces en la ventana de Matlab s¶olo escribimos por ejemplo Atri(2,5) para saber

el ¶area de un tri¶angulo de base 2 y altura 5.

2.1 Integraci¶on num¶erica

El problema general en la integraci¶on num¶erica, tambi¶en llamado cuadratura, es el de com-

Todas las f¶ormulas de integraci¶on num¶erica usan un n¶umero ¯nito de evaluaciones del inte-

putarRD f (x)dx en donde f : Rn ! R es una funci¶on integrable sobre el dominio D ½ Rn.
grando, f , y usan una suma ponderada de estos valores para aproximarRD f (x)dx . Existen

varios m¶etodos, aunque a ve
  • Links de descarga
http://lwp-l.com/pdf11059

Comentarios de: Métodos Numéricos con Matlab (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad