Está en la página 1de 30

UNIVERSIDAD NACIONAL DE

INGENIERÍA
FACULTAD DE INGENIERÍA CIVIL

GUÍA DE LABORATORIO DE MÉTODOS


NUMÉRICOS CON MATLAB

Presentado por:

LEONARDO FLORES GONZALES / CRISTINA NAVARRO FLORES

LIMA-PERÚ

2018
Capı́tulo 1

Laboratorio N◦1: Introducción

El objetivo del laboratorio, es de comprender y aplicar los diversos métodos numéricos


vistos en la teorı́a del curso, para la resolución de problemas, haciendo uso del programa
Matlab.
MATLAB puede considerarse como un lenguaje de programación de cálculo numérico
orientado a matrices. Por tanto, será más eficiente si se diseñan los algoritmos en términos
de matrices y vectores. Presenta las siguientes caracterı́sticas notables:

La programación es mucho más sencilla.

Cuenta con una biblioteca matemática amplia.

Tiene abundante herramientas gráficas, incluı́da funciones de interfaz con el usuario.

Capacidad de vincularse con otros lenguajes de programación o softwares.

Una caractrı́stica extraordinaria en Matlab cualquier variable puede contener números de


cualquier tipo sin una declaración especial durante la programacióncon lo cual ésta última
se hace más rápida y productiva.

1.1. Ventanas en Matlab


Matlab presenta cinco ventanas importantes que podrı́a variar según la versión.

Ventana de comandos, es la ventana principal que se muestra al iniciarse Matlab, que


también puede llamarse ventana de ejecución, y es donde se ejecuta una orden en
cuanto le demos un h Enteri.

Ventana del Editor, en esta ventana se escribe el código del programa a ejecutarse, que
puede ser sólo programa o función creada por el usuario.

2
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil
Ventana del Historial, es aqui donde se muestra las órdenes realizadas en la ventana
de comando, y los guarda por fechas.

Ventana de directorio, en esta ventana se muestran los archivos o programas alamace-


nados en la dirección de trabajo.

Ventana del espacio de trabajo (workspace), contiene las variables que se crea y la
almacena en la memoria sólo durante la sesión de Matlab.

1.2. Algunas funciones propias de Matlab


Se muestran las siguientes funciones predeterminadas por Matlab:

sin seno
cos coseno
tan tangente
asin arco seno
acos arco coseno
atan arco tangente
log logaritmo natural
log10 logaritmo en base 10
exp exponencial
sqrt raı́z cuadrada

función de Matlab significado


abs valor absoluto
min devuelve el valor mı́nimo de un vector
max devuelve el valor máximo de un vector
sum devuelve la suma de los elementos de un vector
norm norma euclidea de un vector
length longitud de un vector
size devuelve el orden de una matriz
det devuelve el determinante de una matriz cuadrada

Laboratorio de Métodos Numéricos 3


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

1.3. Vectores y Matrices en Matlab


Un vector fila en matlab es: v1×n = [v1 v2 . . . vn ], separados por un espacio o también
puede usarse una coma (,).

Un vector columna en matlab es: vn×1 = [v1 ; v2 ; . . . ; vn ], separados por un punto y


coma (;).

Luego una matriz es: Mf c = [m11 m12 . . . m1c ; m21 m22 . . . m2c ; mf 1 mf 2 . . . mf c ]

Ejemplo 1.3.1 Leer los siguientes vectores y matriz en la ventana de comandos de matlab
 
a) Vector fila v = 2 4 6 −4 8

 
2
 
 4 
 
 
b) Vector columna w = 
 6 

 
 −4 
 
8

Laboratorio de Métodos Numéricos 4


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

 
1 2 3 4 5
 
c) La matriz M = 
 6 7 8 9 10 

11 12 13 14 15

Recordando que se usará el espacio en blaco o coma para separar los elementos por
filas y el punto y coma para los saltos de lı́nea.

Laboratorio de Métodos Numéricos 5


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

1.3.1. Algunas matrices predefinidas por Matlab


i) Matriz de unos.

(a) (b)

(c)

Figura 1.1: Usos de la función ones( )

ii) Matriz de ceros.

Laboratorio de Métodos Numéricos 6


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

(a) (b)

(c)

Figura 1.2: Usos de la función zeros( )

iii) Matriz identidad y variantes

(a) (b)

Figura 1.3: Usos de la función eye( )

Laboratorio de Métodos Numéricos 7


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

1.3.2. Operaciones en una matriz o vector


Asumiendo que se tiene la siguiente matriz
 
1 2 3 4 5
 
M =  6 7 8 9 10 

11 12 13 14 15

se puede hacer las siguientes operaciones.

Se puede adicionar un vector columna al inicio o al final de la matriz M .

Se puede adicionar un vector fila al inicio o al final de la matriz M .

Se puede extraer submatrices o vectores de la matriz M .

Es decir, se puede hacer las siguientes acciones en Matlab

La expresión A = M (: , 4) se lee: en A copia de M todas las filas de la columna


4

La expresión A = M (2 , :) se lee: en A copia de M la fila 2 todas las columnas

La expresión A = M (1 : 2, 3 : 5) se lee: en A copia de M desde la fila 1 hasta


la fila 2, desde la columna 3 hasta la columna 5

Veamos:

Laboratorio de Métodos Numéricos 8


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Figura 1.4: Adicionando una columna C1 más a la matriz M

Laboratorio de Métodos Numéricos 9


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Figura 1.5: Adicionando dos filas más f1 y f2, al final de la matriz M

Figura 1.6: Extrae desde la fila 2 hasta la fila 3, desde la columna 2 hasta la columna 4 de
la matriz A

Laboratorio de Métodos Numéricos 10


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Figura 1.7: Extrae una columna o fila de la matriz A

Laboratorio de Métodos Numéricos 11


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

1.4. Expresiones matemáticas


Sı́mbolo significado
+/− Suma o resta de números o matrices
∗ Multiplicación usual de matrices
/ División
∧ potencia
\ Soluciona un sistema lineal de ecuaciones
·∗ Multiplica dos vectores o matrices de la misma dimensión elemento a elemento
·/ Divide dos vectores o matrices de la misma dimensión elemento a elemento
·∧ Para elevar a la potencia cada elemento de una vector o matriz

Ejemplo 1.4.1 Sea el número x = 2, se desea evaluar la siguiente expresión

y = x sen(2x) + ln(x2 ) − e3x

Luego en Matlab se tiene:

Figura 1.8: Para un número x = 2

Ejemplo 1.4.2 Para la misma expresión matemática

y = x sen(2x) + ln(x2 ) − e3x

Se quiere evaluar para una lista de números almacenados en un vector


 
x= 1 2 3 4 5 6 7 8 9 10

Luego en Matlab se tiene:

Laboratorio de Métodos Numéricos 12


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Figura 1.9: Para un vector x de 10 elementos

1.4.1. Inversa de una matriz


La inversa de una matriz se ejecuta con la orden inv

Ejemplo 1.4.3 Dada la matriz


 
1 2 3 4
 
 9 5 2 1 
A=
 

 3 1 1 2 
 
3 4 1 2

En matlab serı́a de forma directa

Laboratorio de Métodos Numéricos 13


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

1.4.2. Matriz transpuesta de una matriz


La transpuesta de una matriz se ejecuta con el sı́mbolo ’ (apóstrofe)

Ejemplo 1.4.4 Dada la matriz


 
1 2 3 4
 
 9 5 2 1 
A=
 

 3 1 1 2 
 
3 4 1 2

En Matlab serı́a de forma directa

Laboratorio de Métodos Numéricos 14


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

1.5. Gráfica de funciones en dos dimensiones


Para graficar funciones en 2D se presentará dos formas, sinembargo Matlab tiene mas
funciones para gráficos en 2D asi como para 3D.

1.5.1. Función plot()


Esta función requiere dos vectores X e Y de la misma cantidad de elementos, la primera
alamcena las abscisas y la segunda las ordenadas de un punto a graficar. Es decir si la
longitud de los vectores es n se tiene n puntos a graficar, plot grafica uniendo los puntos con
un segmento, es por ello para que se observe una gráfica continua y suave se requiere mayor
cantidad de puntos muy cercanos.

 
Sintaxis : plot(X,Y)
 

Laboratorio de Métodos Numéricos 15


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Ejemplo 1.5.1

Ejemplo 1.5.2

Laboratorio de Métodos Numéricos 16


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Además que esta función permite agregar detalles al gráfico, como color de la lı́nea, forma
de las lı́neas, tı́tulo al gráfico, ejes, cuadros de texto interior, etc. Puede verse las diversas
opciones escribiendo en la ventana de comando: help plot
la opción hold on permite agregar un gráfico sobre otro gráfico.

Ejemplo 1.5.3

Figura 1.10: Presenta más detalles en la gráfica, además se usa hold on

1.5.2. Función fplot()


Esta función es directa, y puede combinarse con la función plot usando hold on

 
Sintaxis : fplot(cad,intervalo)
 

Donde
cad: Es la expresión matemática en cadena a graficar.
intervalo: Es el intervalo donde se grafica.

Laboratorio de Métodos Numéricos 17


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Ejemplo 1.5.4

Observación 1.5.1 Matlab tiene una ayuda directa, si en la ventana de comando se digita
help Nombre-Funcion devuelve en datalle el uso de la función Nombre-Funcion a buscar.

Laboratorio de Métodos Numéricos 18


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

1.6. Programación en Matlab


Para escribir el código de un programa vamos a la ventana del Editor, en el menú archi-
vo(File), nuevo(new),archivo en blanco(Blank M-File)

Se tiene dos formas de programas: Sólo programa ó sólo función, la diferencia está en
que si es sólo programa no requiere datos de ingreso ya es interno y si es función requiere los
datos de ingreso y es más flexible. Construiremos funciones.
 
Sintaxis : function [salida1, ... ,salida2]=Nombre-funcion(dato1, ...,dato2)
 
Y se guarda esta función con el mismo nombre Nombre-funcion

Laboratorio de Métodos Numéricos 19


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Ejemplo 1.6.1

Figura 1.11: Debe guardarse con el mismo nombre (pruebita). Se ejecuta en la ventana de
comandos

Ejecución:

Figura 1.12: Para ejecutar,la ventana de comandos debe estar en el directorio donde está en
archivo pruebita

Laboratorio de Métodos Numéricos 20


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

1.6.1. Codificación
Para rutinas mas complejas se requiere usar condiciones y bucles. Matlab presenta las
siguientes:

if-else / si-sino

Sintaxis:

if hcondicioni

Sentencia(1);
..
.

Sentencia(k);

else

Sentencia(1);
..
.

Sentencia(n);

end

while / mientras

Sintaxis:

while hcondicioni

Sentencia(1);
..
.

Sentencia(k);

end

for / Desde

Sintaxis:

Laboratorio de Métodos Numéricos 21


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

for I = ValInical : variacion : ValFinal

Sentencia(1);
..
.

Sentencia(k);

end

Ejemplo 1.6.2

Laboratorio de Métodos Numéricos 22


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Figura 1.13: Ejecutando la función en la ventana de comandos

Funciones importantes para el mantenimiento de los programas y/o funciones

clc Limpia la ventana de comandos


clear Limpia las variables de la memoria
hold on Agrega gráficas sobre otra ya existente
hold of Limpia los gráficos

Laboratorio de Métodos Numéricos 23


Capı́tulo 2

Laboratorio N◦2

2.1. Objetivos
Los objetivos que se pretende lograr en los dos primeros laboratorios son:

Conocer y usar los comandos de Matlab.

Programar en Matlab, algoritmos para una ecuación no lineal: Bisección, Newton y


Secante

2.2. Método de la Bisección

Método de la Bisección
Siendo I = [a, b] el intervalo incial donde existe raiz.

ai + bi
yi = , donde : Ii = [ai , bi ]; i = 1, 2, 3, . . .
2

Algoritmo
Datos: a, b, f, tol Salida: Raiz, niter

1. niter ← 0

2. A ← a, B ← b

3. Mientras (|A − B| > tol)

A+B
3.1 y ← 2

24
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

3.2 Si (f (A) ∗ f (y) < 0) B ← y


sino A ← y

3.3 niter ← niter + 1

4. Raiz ← y

2.3. Método de Newton Raphson


Siendo y0 una aproximación inicial

f (yi−1 )
yi = yi−1 − , i = 1, 2, 3, . . .
df (yi−1 )

Algoritmo
Datos: y0 , f, df, tol Salida: Raiz, niter

f (y0 )
1. y1 ← y0 − df (y0 )

2. niter ← 1

3. Mientras (|y0 − y1 | > tol)

3.1 y0 ← y1
f (y0 )
3.2 y1 ← y0 − df (y0 )

3.3 niter ← niter + 1

4. Raiz ← y1

2.4. Método de Newton Raphson

Método de Newton Raphson


Siendo y0 una aproximación inicial

f (yi−1 )
yi = yi−1 − , i = 1, 2, 3, . . .
df (yi−1 )

Laboratorio de Métodos Numéricos 25


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

Algoritmo
Datos: y0 , f, df, tol Salida: Raiz, niter

f (y0 )
1. y1 ← y0 − df (y0 )

2. niter ← 1

3. Mientras (|y0 − y1 | > tol)

3.1 y0 ← y1
f (y0 )
3.2 y1 ← y0 − df (y0 )

3.3 niter ← niter + 1

4. Raiz ← y1

2.5. Método de la Secante

Método de la Secante
Siendo y0 , y1 dos aproximaciones iniciales

f (yi−1 )(yi−1 − yi−2 )


yi = yi−1 − , i = 2, 3, 4, . . .
f (yi−1 ) − f (yi−2 )

Algoritmo
Datos: y0 , y1 , f, tol Salida: Raiz, niter

1. niter ← 0

2. Mientras (|y0 − y1 | > tol)

f (y1 )(y1 −y0 )


3.1 y2 ← y1 − f (y1 )−f (y0 )

3.2 y0 ← y1 , y1 ← y2

3.3 niter ← niter + 1

3. Raiz ← y2

Laboratorio de Métodos Numéricos 26


UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

2.6. Aplicación

Problema
3
Por un canal trapezoidal fluye agua a una tasa de Q = 20 ms . La profundidad crı́tica y
Q2
para dicho canal satisface la ecuación 0 = 1 − gA3c
B donde g = 9,81 sm2 , Ac : Área de la
sección transversal (m2 ) y B : Ancho del canal en la superficie (m). Para este caso, el ancho
y área de la sección transversal se relacionan con la profundidad y, por medio de B = 3 + y,
Ac = 3y + y 2 /2. Resuelva para la profundidad crı́tica con el uso de los métodos:

1. Bisección con una tolerancia de 10−6 .

2. Newton con una tolerancia de 10−6 .

3. Secante con una tolerancia de 10−6 .

2.7. Planteo del problema no lineal

Planteo del problema no lineal

y2 3
f (y) = (9,81)[3y + ] − 400(y + 3) = 0
2

Si y > 0, usando bolzano tenemos y ∈ I = [1, 2]

También se expresa su derivada como:

y2 2
df (y) = 3(9,81)[3y + ] (3 + y) − 400
2

Laboratorio de Métodos Numéricos 27


Capı́tulo 3

Laboratorio N◦3 (Evaluado)

3.0.1. Método estático, del análisis sı́smico de una edificación.

El análisis sı́smico de una edificación puede modelarse mediante cargas estáticas equiva-
lentes Pi aplicadas a cada nivel de la edificación, como se muestra en la figura: Donde mi

es la masa equivalente del nivel y ki es la rigidez por entrepiso. El fuerza de corte en la base
n
del edificio se calcula como V = ZC( mi )g, donde g = 9,81m/s2 es la gravedad, Z = 0,4
P
i=1
es el factor de zona y el factor C se calcula como:

C = 1, si x > 2,5
2,5
C= x
, si 1 ≤ x ≤ 2,5
C = 2,5, si x < 1

Donde x es el periodo de vibración de la estructura.

mi hi
La carga equivalente Pi se calcula como Pi = n
P V , donde hi es la altura del nivel i
mj hj
j=1
n
P
medido desde la base. La fuerza de corte en la base del entrepiso i se calcula como Fi = Pj .
j=i

28
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingenierı́a Civil

i
P
Los desplazamientos laterales de los niveles se calcula como ui = Fj /kj y con estos
j=1

resultados, se puede calcular el periodo de vibraci’on x de la estructura, usando la ecuación:


v
u n m u2
uP
u i i
x = g(x), donde g(x) = 2π u i=1 (3.1)
u
tP n
Pi u i
i=1

Dada la siguiente situación, se tiene una edificacion de n = 5 pisos con los siguientes
datos:
Masas: m = [10 9 8 8 6]
Alturas h = [3 5,5 8 10,5 13]
Rigideces k = [10000 8000 8000 8000 8000]
Se pide evaluar en x = 1,5 para los items (1, 2, 3, 4 y 5) lo siguiente:

1. Una función que calcule la fuerza de corte en base V, en función del periodo de vibración
x.

2. Una función que calcule el vector de cargas equivalentes por niveles P = [Pi ], en función
del periodo de vibración x.

3. Una función que calcule el vector de cortes de entrepiso F = [Fi ], en funci’on del
periodo de vibración x.

4. Una función que calcule el vector de los desplazamientos laterales u = [ui ], en función
del periodo de vibración x.

5. Una función que calcule el valor de g de la relación (3.1) en función del periodo de
vibración x, en base a los pasos anteriores.

6. Plantee la ecuación no lineal f (x) = x − g(x) = 0, que tiene por solución el periodo de
vibración fundamental de la estructura. Use el método de la secante para aproximar el
periodo de vibración (T), con un error de 10−5 usando valores iniciales de x0 = 0,5 y
x1 = 1,5

7. Evalue el vector u en x = T y plotee la gráfica u vs. h.

Laboratorio de Métodos Numéricos 29