Anda di halaman 1dari 4

Taller de programacion 2a

Consigue familiarizarte con MATLAB


John Gonzalez
Metodos numericos - MA0079
Septiembre 2016
MATLAB es un ambiente de computaci
on numerica desarrollado por MathWorks que te permite la manipulaci
on de matrices, graficar funciones y datos, creacion de interfaces de usuarios y sirve como interfaz
de otros lenguajes de programaci
on como C, Python o Java. Sin embargo, en particular MATLAB es
una excelente herramienta para implementar metodos numericos porque permite facilmente concentrarse en
el resultado y no en la metodologa. Por este motivo permite obtener rapidamente prototipos que despues
podran ser reimplementados en otros leguajes como C para produccion.
MATLAB es software privativo, por lo cual tiene costo. No obstante tiene un compa
nero libre llamado
Gnu Octave. Este u
ltimo es gratuito y se puede descargar desde el siguiente enlace:
https://www.gnu.org/software/octave/download.html
Desc
argalo, escoge el sistema operativo y selecciona el archivo instalador (si usa Windows escoge el archivo
con extensi
on .exe).
Vista general de Octave
Octave tiene dos principales ventanas:
Ventana de comandos: Usada para entrar comandos y datos
Editor: Usado para crear archivos .m
En la ventana de comandos siempre estar
a visible el smbolo:
>>

El cual simboliza un nuevo comando de entrada (como en la calculadora cuando se realiza alguna operaci
on).
Observe el siguiente ejemplo:
>> 10-8

Este resultado arrojar


a una salida y Octave lo mostrara en pantalla:
ans = 2

Este resultado queda almacenado en la memoria del computador y puede ser utilizado como cualquier
calculadora,
>> ans + 3

Consiguiendo el resultado final ans = 5.


Para que Octave no muestre en la pantalla el resultado de cada comando u operacion, finalice la instrucci
on
con el smbolo ; como se muestra en el siguiente ejemplo:
1

>> 10 - 8;

Escalares:
Octave no s
olo almacena valores en la variable ans, tambien se puede guardar informacion con el nombre de
variable que tu escojas. Escribe el siguiente codigo:
>>
>>
>>
>>
>>

a = 1+2;
a
pi
format long
pi

Como se puede observar Octave tiene almacenado en memoria algunos n


umeros muy importantes como .
Adem
as permite personalizar la salida en pantalla con el n
umero de decimales que escojas digitando el comando format long.
Vectores y matrices:
Octave es un lenguaje poderoso en el manejo de vectores y matrices. Compruebalo escribiendo los siguientes
comandos:
>> a = [1 2 3 4 5]
>> b = [2;4;6;8;10]
>> b = [2
4
6
8
10]
>> b = [2 4 6 8 10]'
>> A = [1 2 3; 4 5 6; 7 8 9]
>> A = [1 2 3
4 5 6
7 8 9]
>> who
>> b(4)
>> A(2,3)
>> E = zeros(2,3)
>> u = ones(1,3)

Operador dos puntos:


El operador dos puntos es muy u
til para manipular vectores y matrices. Digita los siguientes comandos:
>>
>>
>>
>>
>>

t = 1:5
t = 1:0.5:3
t = 10:-1:5
A(2,:)
t(2:4)

linspace:
linspace es otra muy buena utilidad para generar vectores. Consta de tres parametros, si el u
ltimo es omitido
crea un vector de 100 puntos, como se puede observar en el siguiente ejemplo:
>> linspace(0,1,6)
>> linspace(0,1)

Operaciones entre vectores:


Hay varias operaciones que se pueden realizar. En este taller usaremos principalmente operaciones elemento
a elemento, para esto se debe anteponer el signo punto (.) antes del operador. En talleres futuros se explicar
a
2

con detalle otros operadores. Escribe el siguiente codigo:


>>
>>
>>
>>
>>
>>
>>
>>

a = [1 2 3];
b = [4 5 6];
3*a
3.*a
b/2
a.^2
a.*b
a*b

Funciones:
Las funciones son un concepto poderoso porque permite reutilizar y ordenar el codigo. Octave tiene algunas
funciones por defecto, escribe el siguiente codigo:
>>
>>
>>
>>

E = [-1.6 -1.5 -1.4 1.4 1.5 1.6];


round(E)
ceil(E)
floor(E)

Las funciones round, ceil y floor consiguen redondear cada componente del vector E de diferentes maneras.
Ahora prueba las siguientes funciones:
>> F = [1 4 9]
>> sum(F)
>> sqrt(F)

En efecto, la funci
on sum realiza la suma de las componentes del vector y sqrt calcula la raiz cuadrada de
cada componente. Las siguientes funciones tambien pueden ser muy u
tiles:
>> min(F), max(F), mean(F), prod(F), sort(F)

Sin embargo algunas veces es necesario crear nuestra propia funcion. Para crearla se debe dirigir al editor
de Octave, luego dirjase a Archivo Nueva funci
on, esto abrira un cuadro de texto donde puede colocar el
nombre de la funci
on. Se recomienda nombrarla con extension .m, por ejemplo suma.m. Lo anterior generar
a
un c
odigo con una estructura predeterminada (las lneas que contengan al inicio el smbolo #, ## o % no
son ejecutadas, son comentarios muy u
tiles para documentar nuestro codigo). Usted debera ver algo as:
...
function [retval] = suma (input1, input2)
endfunction

El c
odigo dentro de function y endfunction son ejecutados cada vez que se llame la funcion. En este caso el
nombre de la funci
on es suma y debe coincidir con el nombre del archivo. Las palabras input1 e input2 son
las variables de entrada y retval es la variable de salida. Ahora modifiquemos la funcion:
...
function [resultado] = suma (a, b)
resultado = a + b;
endfunction

Ahora guarde y cambie la ventana a Ventana de comandos. All ejecute:


>> suma(2,3)

El resultado obtenido debe ser 5. Felicitaciones a conseguido escribir su primera funcion!.

Problema 1. Aplicando lo aprendido


Del taller de programaci
on 1 se observ
o que la velocidad de cada libre de un objeto es
r

r
gm
gcr
v(t) =
tanh
t .
cr
m

(1)

El objetivo es obtener la velocidad en funcion del tiempo. Donde v(t) es la velocidad en m/s en cualquier
tiempo t (s), g = 9,81m/s2 la gravedad, m = 68kg la masa del objeto y cr = 0,25kg/m el coeficiente de
rozamiento del objeto con el aire.
a) Cree una nueva funci
on llamada velocidad.m.
b) Reescriba la funci
on con el siguiente c
odigo:
function [resultado] = velocidad (t, g, m, cr)
resultado = sqrt(g*m/cr)*tanh(sqrt(g*cr/m)*t);
endfunction

c) En la ventana de comandos, construya un vector columna de tiempo desde 0s hasta 20s con pasos de
tiempo de 2s usando el siguiente c
odigo:
>> t = [0:2:20]'

d) Asigne valores a los par


ametros y ejecute la funcion:
>> gravedad = 9.81; masa = 68.1; coefrozamiento = 0.25;
>> v = velocidad(t, gravedad, masa, coefrozamiento)

e) Grafique la funci
on, agregue un ttulo, nombres de los ejes y dibuje una grilla usando el siguiente c
odigo:
>>
>>
>>
>>
>>

plot(t, v)
title('Grafica de la velocidad en funcion del tiempo')
xlabel('Tiempo (s)')
ylabel('Velocidad (m/s)')
grid

e) Cu
al es la velocidad terminal?
Referencias
Chapra S. Applied Numerical Methods with Matlab. Edicion 3. Editorial McGraw-Hill

Anda mungkin juga menyukai