Вы находитесь на странице: 1из 42

Fundamentos

Variables y formatos

Programaci
on b
asica

Introduccion a los Computadores (CNM-130)


Introducci
on a Matlab
Alejandro Piedrahita H.
Instituto de Matem
aticas
Facultad de Ciencias Exactas y Naturales
Universidad de Antioquia
Copyleft 2013. Reproducci
on permitida bajo los
t
erminos de la licencia de documentaci
on libre GNU.
Documento bajo construcci
on, reportar errores al
correo electr
onico mathtutorinfo@gmail.com

Referencias

Fundamentos

Variables y formatos

Contenido

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Programaci
on b
asica

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Que es Matlab?
Matlab (Matrix laboratory): sistema interactivo de
programaci
on para realizar c
alculos numericos con vectores y matrices.

Matlab incluye un lenguaje de programaci


on interpretado de alto nivel, orientado principalmente a
computaci
on cientfica

Proporciona una lnea de comandos interactiva para


resolver problemas matem
aticos numericamente

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Que es Matlab?
Incluye una colecci
on de algoritmos y funciones internas (built-in functions) asi como libreras espcializadas (toolboxes)

Matlab est
a disponible para Windows, Macintosh
y Linux.

Matlab es una marca registrada de The MathWorks, Inc

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Requisitos del sistema - Matlab R2013a - Windows

Referencias

Fundamentos

Variables y formatos

Requisitos del sistema - Matlab R2013a - Mac

Programaci
on b
asica

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Requisitos del sistema - Matlab R2013a - Linux

Referencias

Fundamentos

Variables y formatos

Interfaz de Matlab (R2013a) en Linux Mint 15

Programaci
on b
asica

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Barra de herramientas
Proporciona una serie de men
us desplegables para ejectutar tareas
Permite crear programas, guardar y/o cargar sesi
on de trabajo, etc.

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Ventana de comandos (Command Window)


Permite realizar desde c
alculos numericos hasta ejecutar programas
clc: comando que despeja la ventana de comandos o consola

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Directorio de trabajo (Current Folder)


Lugar en el disco duro desde el que Matlab lee y escribe archivos
pwd: comando para determinar el directorio de trabajo

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Directorio de trabajo (Current Folder)


El directorio de trabajo se puede cambiar como muestra la imagen
cd: comando para cambiar el directorio de trabajo

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Espacio de trabajo (Workspace)


Muestra las variables y los datos almacenados en memoria
clear: comando que permite borrar las variables creadas en una sesi
on

Fundamentos

Variables y formatos

Programaci
on b
asica

Historial de comandos (Command History)


Muestra los comandos ingresados por consola
Para recuperar comandos ingresados, usar teclas () y ()

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Editor
Permite editar y guardar comandos de Matlab (scripts)
Los programas (scripts o functions) son archivos .m

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Editor
Los programas (scripts o functions) se invocan desde la consola o
se ejecutan por medio del men
u Run

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Escritorio por defecto de Matlab


Para configurar la presentaci
on del escritorio por defecto de Matlab:
Layout -> Default

Fundamentos

Variables y formatos

Escritorio por defecto de Matlab

Programaci
on b
asica

Referencias

Fundamentos

Variables y formatos

Sesi
on de trabajo
Guarda la sesi
on de trabajo (archivo .mat)

Programaci
on b
asica

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Sesi
on de trabajo
Carga sesi
on de trabajo previamente guardada (archivo .mat)

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Operadores aritmeticos en Matlab


Operador

*
/
\
+
rem

Operaci
on
Potencia
Multiplicaci
on
Divisi
on (a derecha)
Divisi
on (a izquierda)
Suma
Resta
M
odulo (residuo)

Ejemplo
23
7*3
10/4
9\56
3+4
8-6
rem(11, 4)

Resultado
8
21
2.5000
8
7
2
3

>>

3/4
ans =
0.7500

>>

4+6/2+3
ans =
10

>> 36(1/2)
ans =
6

>>

6/3*(3-1)
ans =
4

>>

(4+6)/(2+3)
ans =
2

>>

>>

6/(3*(3-1))
ans =
1

>>

rem(17,3)
ans =
2

>>

-1+2*32
ans =
17

>>

361/2
ans =
18

>>

>>

00
ans =
1
1/0
ans =
Inf
0/0
ans =
NaN

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Operadores relacionales (de comparaci


on) en Matlab
Operador

Operaci
on

Ejemplo

Resultado

==
=
<
>
<=
>=

Igual
Diferente de
Menor que
Mayor que
Menor o igual que
Mayor o igual que

4 == 5
2 = 3
10 < 4
5>-4
7<=7
3.5 >= 10

0
1
0
1
1
0

>>

1+2>7-3
ans =
0

>>

>>

2*3<7
ans =
1

>>

>>

2==3*8/12
ans =
1

>>

0.3333333 > 1/3


ans =
0

>>

>>

5/3>=11/7
ans =
1
2(2/3)<3(3/4)
ans =
1
3>2>1
ans =
1
2==2<4
ans =
1

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Operadores logicos (booleanos) en Matlab


Operador
&&
||

0 es false
1 es true
2 es true, . . .

n 6= 0 es true

A
1
1
0
0

B
1
0
1
0

0
0
1
1

0
1
0
1

&
|

A && B
1
0
0
0

A || B
1
1
1
0

Operaci
on
y
o
negaci
on
para vectores
para vectores

Ejemplo
Resultado
2 && 3
true
3 || 5
true
7
false
m
as adelante. . .
m
as adelante. . .

Operador
()

*, /, rem(,)
==, !=, <, >, <=, >=
!
&
|

Jerarqu
a
(mayor)

(menor)

>>

0&&1||1
ans =
1

>>

3>2&&2>1
ans =
1

>> 5*4>4&&0<3
ans =
1

0&&(1||1)
ans =
0

>>

2==2&&2<4
ans =
1

>> 2(3&&0/5)>rem(45,6)
ans =
0

>>

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Variables en Matlab
Variables: expresiones (identificadores) asociados a datos almacenados
en un sistema de memoria
Comando para asignar un valor a una variable: =
>>

base = 3
base =
3

>>

>>

alt = 4
alt =
4

>>

>>

area = base*alt
area =
12

>>

perim = 2*base+2*alt
perim =
14

>>

>>

cadena
cadena =
hola
a = 2*a
a =
6
area == 2*a
ans =
1

(1+1/n) n
ans =
2.7048
>>

>>

cadena = hola; a = 3;

n = 100;

Fundamentos

Variables y formatos

Programaci
on b
asica

Variables y formatos en Matlab


Tipo

Formato

short
long
short e
long e
short g
long g

punto
punto
punto
punto
punto
punto

b=1/7
b =
0.1429
>>

format long
b
b =
0.142857142857143

fijo, 5 dgitos
fijo, 15 dgitos
flotante, 5 dgitos
flotante, 15 dgitos
fijo o flotante, 5 dgitos
fijo o flotante, 15 dgitos

3.1416
3.14159265358979
3.1416e+000
3.141592653589793e+000
3.1416
3.14159265358979

Para todo n
umero real n,


5
4
n
=n
4
5

>>
>>

format
b
b =
0.1429
>>
>>

n=2; 1.25*(n*0.8)-n
ans =
0
>>

n=3; 1.25*(n*0.8)-n
ans =
4.4409e-16
>>

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Algunas variables predefinidas en Matlab


Variable

Uso

ans
pi
exp(1)
io
j
eps
Inf
NaN

Almacena el u
ltimo resultado
Almacena el valor de = 3.1415 . . .
Almacena el valor de e = 2.7183 . . .


Unidad imaginaria
1
Epsilon de la m
aquina (menor n
umero tal que 1+eps > 1)
Infinito
Resultado no n
umerico (Not a Number)

pi
ans =
3.1416
>>

>>

format long

pi
ans =
3.141592653589793

i
ans =
0.0000 + 1.0000i
>>

eps
ans =
2.220446049250313e-16
>>

>>

>>

exp(1)
ans =
2.718281828459046

>>

>>

Inf+Inf
ans =
Inf
Inf-Inf
ans =
NaN

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Entorno de trabajo
Variables utilizadas en una sesi
on de trabajo (who, whos)
Historial de o
rdenes ejecutadas (, )
>> who

>> whos
Name

Size

Bytes

Class

Your variables are:


a
alt

ans
area

b
base

cadena
n

a
alt
ans
area
b
base
n
perim

perim

>> clear all


>> whos

>> clear cadena


>> who
Your variables are:
a

alt

ans

area

base

perim

1x1
1x1
1x1
1x1
1x1
1x1
1x1
1x1

8
8
8
8
8
8
8
8

double
double
double
double
double
double
double
double

Attributes

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Algunas funciones matem


aticas
Funci
on

Uso

abs(x)
sqrt(x)
exp(x)
log(x)
log(x,b)
factorial(n)
sin(x)
cos(x)
tan(x)
asin(x)
acos(x)
atan(x)

Calcula valor absoluto de x


Calcula la raz cuadrada de x
Funci
on exponencial
Funci
on logaritmo natural
Funci
on logaritmo en base b
Calcula el factorial de un entero n
calcula sen(x)
calcula cos(x)
calcula tan(x)
calcula sen1 (x)
calcula cos1 (x)
calcula tan1 (x)

>>

abs(-6)
ans =
6

>>

cos(0)
ans =
1

>

factorial(5)
ans =
120

>>

exp(log(15))
ans =
15

> cos(4)2+sin(4)2
ans =
1

>>

4*atan(1)
ans =
3.1416

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Ayuda en Matlab
Comando

Uso

help comando
helpwin
help elfun
help general
demo

Muestra informaci
on de comando
Abre ventana de ayuda
Muestra informaci
on de las funciones elementales
Muestra informaci
on general
Muestra ejemplos y demostraciones en Matlab

>> help cos


cos
Cosine of argument in radians.
cos(X) is the cosine of the elements of X.
See also acos, cosd.
Overloaded methods:
codistributed/cos
gpuArray/cos
Reference page in Help browser
doc cos

>> help elfun


Elementary math functions.
Trigonometric.
sin
sind
sinh
asin
asind
asinh
cos
cosd
cosh
acos
acosd
acosh
tan
tand
tanh
.
.
.

Sine.
Sine of argument in degrees.
Hyperbolic sine.
Inverse sine.
Inverse sine, result in degrees.
Inverse hyperbolic sine.
Cosine.
Cosine of argument in degrees.
Hyperbolic cosine.
Inverse cosine.
Inverse cosine, result in degrees.
Inverse hyperbolic cosine.
Tangent.
Tangent of argument in degrees.
Hyperbolic tangent.
.
.
.

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Salida de datos
Formato

fprintf(cadena de formato, arg1, arg2,...)

Entero

d, i

Punto fijo

f, g

disp(texto)

Punto flotante

Caracter

Cadena de caracteres

disp(hola mundo!)
hola mundo!
>>

>>
>>

m=3;
disp(m)
3

>>

pulg=2.54; cent=6.4516;

>> fprintf( %d pulgadas equivalen a %f centimetros \n, m, cent);


3 pulgadas equivalen a 6.451600 centimetros
>> fprintf( %f pulgadas equivalen a %f centimetros \n, pulg, cent);
2.540000 pulgadas equivalen a 6.451600 centimetros
>> fprintf( %f pulgadas equivalen a %e centimetros \n, pulg, cent);
2.540000 pulgadas equivalen a 6.451600e+00 centimetros

Fundamentos

Variables y formatos

Programaci
on b
asica

Entradas de datos
input(texto)
input(texto, s)

>> palabra = input(Ingrese una palabra: ,s);


Ingrese una palabra: casa

>> palabra
ans =
casa

>> letras = input(Ingrese el n


umero de letras: );
Ingrese el n
umero de letras: 4

>> letras
letras =
4

fprintf(La palabra %s tiene %d letras \n, palabra, letras);


La palabra casa tiene 4 letras

>>

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Scripts
Archivos de texto plano sin formato, con extensi
on .m
Est
an formados por comandos de Matlab
Se editan con cualquier editor de texto (usaremos el de Matlab)

Referencias

Fundamentos

Variables y formatos

Ejecutando scripts
hola.m

% Imprime el texto "Hola, mundo!"


fprintf(Hola, mundo! \n)

Programaci
on b
asica

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Ejemplos de scripts
Ejemplo 3.1 (Promedio de dos n
umeros)
Realice un programa (script) en Matlab que calcule el promedio de dos
datos enteros A y B.
Soluci
on
promedio.m

% Calcula el promedio de dos enteros A y B


% Lee los valores de A y B
A = input(Ingrese A: );
B = input(Ingrese B: );
PROM = (A+B)/2;
% Imprime el promedio
fprintf(El promedio de %d y %d es
promedio
Ingrese A: 1
Ingrese B: 2
El promedio de 1 y 2 es 1.5
>>

%g \n, A, B, PROM);

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Ejemplos de scripts

Ejemplo 3.2 (Area


y permetro de un rect
angulo)
Escriba un programa (script) en Matlab tal que dado como datos la base y
la altura de un rect
angulo, calcule su permetro y a
rea.
Soluci
on
rectangulo.m

% Calcula el perimetro y el area de un rectangulo


base = input(Ingrese la base: );
altura = input(Ingrese la altura: );
perim = 2*(base+altura);
area = base*altura;
fprintf(El perimetro es %g y el area es %g \n, perim, area);

rectangulo
Ingrese la base: 2
Ingrese la altura: 3
El perimetro es 10 y el area es 6
>>

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Funciones en Matlab
Funciones: scripts que tienen una sintaxis predefinida
Programas que resultan complejos por medio de scripts, se simplifican
por medio de funciones
Las funciones se deben cargar en el workspace
Las funciones se invocan desde la consola o desde un script
Sintaxis de una funci
on en Matlab
function [argumentos salida] = nombre(arg 1, arg 2, ...)
sentencia 1
sentencia 2
sentencia 3
.
.
.
[argumentos salida] =
end

Fundamentos

Variables y formatos

Ejemplo de una funcion


cuadrado.m

function y = cuadrado(x)
% Calcula el cuadrado de un numero
y = x2;
end

cuadrado
Error using cuadrado (line 3)
Not enough input arguments.
>>

cuadrado(2)
ans =
4
>>

cuadrado(-3)
ans =
9
>>

Programaci
on b
asica

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Ejemplos de scripts y funciones

Ejemplo 3.3 (Area


y permetro de un rect
angulo con funciones)
Resuelva el ejemplo (3.2) del rect
angulo utilizando funciones.
Soluci
on
area.m

function z = area(x,y)

rectangulofun.m

% Calcula el perimetro y el area de un rectangulo

% Calcula el area de un
% cuadrado de lados x e y

base = input(Ingrese la base: );


altura = input(Ingrese la altura: );

z = x*y

p = perim(base,altura);
a = area(base,altura);

end

fprintf(El perimetro es %g y el area es %g \n, p, a);


perim.m

function z = perim(x,y)
% Calcula el perimetro de
% cuadrado de lados x e y
z = 2*(x+y);
end

rectangulofun
Ingrese la base: 3
Ingrese la altura: 5
El perimetro es 16 y el area es 15
>>

Fundamentos

Variables y formatos

Programaci
on b
asica

Bibliografa I

S. Attaway
Matlab: A Practical Introduction to Programming and Problem
Solving
Butterworth-Heinemann, 2011
J.W. Brown, D.J. Murdoch
A First Course in Statistical Programming With R
Cambridge University Press, 1th edition , 2008
D. Burton
Elementary Number Theory
McGraw Hill Higher Education, 5th edition, 2002
O. Cair
o
Metodologa de la programaci
on
Segunda edici
on. Alfaomega Grupo Editor, S.A., 2005
M.A. Criado
Programaci
on en lenguajes estructurados
Alfaomega Grupo Editor, S.A. de C.V. Primera Edici
on, 2006

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Bibliografa II
H.P. Langtangen
A Primer on Scientific Programming with Python
Springer, 2011
O. Jones, R. Maillardet, A. Robinson
Introduction to Scientific Programming and Simulation Using R
Chapman and Hall/CRC; 1 edition, 2009
J. Kiusalaas
Numerical Methods in Engineering with Matlab
Cambridge University Press, 2 edition, 2009
D.E. Knuth
The Art of Computer Programming
Volume 1, Fundamental Algorithms
Addison Wesley Longman, 1997
S. Lipschutz
Schaums Outline of Essential Computer Mathematics
McGraw-Hill, 1th edition, 1982

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Bibliografa III

Ch.F. Van Loan


Introduction to Scientific Computing
Prentice-Hall, Inc., 1997
C.B. Moler
Numerical Computing with Matlab
SIAM, 2004
H.M. Mora Escobar
Introducci
on a C y a metodos numericos
Universidad Nacional de Colombia (Sede Bogot
a), 2004
A. Quarteroni, F. Salieri
C
alculo cientfico con Matlab y Octave
Springer-Verlag Italia, 2006
S.M. Ross
Simulation
Elsevier Inc., 2006

Referencias

Fundamentos

Variables y formatos

Programaci
on b
asica

Referencias

Bibliografa IV

R. Seroul
Programming for Mathematicians
Springer, 2000
E. Scheinerman
C ++ for Mathematicians: An Introduction for Students and
Professionals
Taylor & Francis Group, LLC, 2006
A. Shen
Algorithms and Programming
Springer Undergraduate Texts in Mathematics and Technology, 2010
P. Tymann
Schaums Outline of Principles of Computer Science
McGraw-Hill, 1th edition, 2008

Вам также может понравиться