Anda di halaman 1dari 25

1 Introducción

1.1 Origen: MATLAB fue originalmente escrito por Cleve Moler,


con el objetivo de proporcionar un acceso fácil al software matricial desarrollado en
los proyectos de UNIX LINPACK y EISPACK.

1.2 Versiones e historia: La primera versión de MATLAB, a finales de los años 70,
se escribió en FORTRAN, siendo la única estructura de datos la matriz.
Posteriormente, en los años 80, MATLAB fue reescrito en C. La versión 3 para MS-
DOS es de principios de los años 90. En 1993 aparece la versión 4, para Windows
3.11. La versión actual es la 7.x

Hoy en día MATLAB es un estándar de facto en ingeniería y computación científica.

1.3 Características de MATLAB

 Es un lenguaje sencillo pero potente y rápido. Los ficheros son de texto, por
lo que ocupan poca memoria.
 Muchas de las funciones matemáticas y de aplicación (análisis
estadístico,optimización, diseño en ingeniería) están predefinidas y
agrupadas en librerías comerciales (toolboxes). El usuario puede acceder a
la mayor parte de estas funciones para modificarlas y/o crear las suyas
propias.
 Presenta una gran capacidad para generar gráficos, en dos y tres
dimensiones, y permite incorporar efectos y animaciones.
 Permite el desarrollo de aplicaciones complejas con ayuda del editor de
ventanas, menús y controles de la utilidad GUI (Graphics User Interface).
 Puede intercambiar datos con otros lenguajes y entornos.

1.4 Partes constitutivas: El programa MATLAB está constituido por:

1. El entorno (ventanas, variables y ficheros)


2. Los objetos gráficos
3. Un lenguaje propio de programación

El entorno de MATLAB
El entorno es el conjunto de herramientas que permiten trabajar como usuario o
como
programador. Permiten importar, procesar y exportar datos; crear y modificar
ficheros; generar gráficos y animaciones; y desarrollar aplicaciones de usuario.

El entorno de MATLAB incluye las ventanas, las variables y los ficheros.


Ventanas: Son de diversos tipos. Las ventanas que forman el núcleo (kernel) del
programa se organizan en el escritorio (desktop), pero en una sesión típica se
abren y cierran gran número de ventanas secundarias correspondientes a figuras,
editores de ficheros o de variables, aplicaciones diversas…
Variables:Son objetos temporales (al cerrar el MATLAB se borran) y, durante la
sesión en curso, se almacenan en el llamado workspace.
Ficheros: Son objetos permanentes (al cerrar el MATLAB no se borran). Aparte de
los ficheros que conforman el núcleo básico del programa MATLAB, están los
ficheros creados por el usuario y los ficheros comerciales correspondientes a las
librerías, también llamadas toolboxes.

 Ventanas y escritorio
Escritorio: Al abrir el programa MATLAB aparece un escritorio (desktop) como el
mostrado en la Fig. 2 (versión 7.0.4)

 Ventana de comandos: La ventana principal es la ventana de comandos


(Command Window). En ella se escriben los comandos de MATLAB. Las
instrucciones se escriben después del

prompt ». Desde esta ventana es posible ejecutar instrucciones del sistema


operativo con sólo poner el signo ! a continuación del prompt (por ejemplo: »!dir).
También es posible recuperar instrucciones ejecutadas con anterioridad con ayuda
de la tecla <> (ello nos ahorra el tener que volver a teclearlas).

Otras ventanas del escritorio: Aparte de la ventana de comandos, las otras


ventanas que forman el escritorio por defecto son:

 Command History: almacena las instrucciones introducidas en cada una de


las

sesiones anteriores de MATLAB, indicando fecha y hora de la sesión.

 Current Directory: es el listado de ficheros y carpetas en el directorio actual.


El

directorio seleccionado por defecto es el directorio <work>.

 Workspace: muestra las variables creadas, así como su tipo y su valor.


2 Manejo De Matlab
Para iniciarnos en la utilización de Matlab es necesario conocer algunos de los
elementos más importantes y mas usados en dicho programa.

2.1 Tipos de líneas en Matlab:

• Líneas Ejecutables: En principio, al escribir cualquier línea en el Comand Window


de Matlab y pulsar Enter, el programa intentará ejecutarla.
Ejemplo:

3 + 2 (pulso Enter)

ans = 5

• Líneas NO Ejecutables: Cualquier línea que empiece por “%” no se ejecutará (se
considera un comentario de texto).

2.2 Comandos Básicos. Variables:

Hagamos algunas consideraciones generales:


*Para salir del programa: File Exit Matlab ( o escribiendo » exit)
*Las ordenes: las ordenes se escriben a continuacion del prompt »
Ejemplo:
» 2^3
También se puede asignar el valor a una variable:
» x=5+3^2
Se pueden utilizar las funciones matemáticas habituales.
» sqrt(2)
Cálculos/comandos encadenados:
» x=sin(3),y=cos(10),z=tan(8)
Y si no caben en un renglón
» x=sin(10),…
z=3*6
*Operadores:

Los hay de tres tipos:

 Operadores aritméticos

Operación Símbolo

suma +

resta -

multiplicación *

división /
potencia ^

producto elemento a elemento .*

división elemento a elemento ./

elevar a una potencia elemento a elemento .^

En lo que se refiere a la nomenclatura de las variables. Matlab distingue entre


mayúsculas y minúsculas (“Variable” es distinto de “variable”) permitiendo nombres
de variables que contengan al menos una letra.
El símbolo decimal en Matlab es un punto.
Las cadenas de texto en Matlab se ponen entre comillas simples

 Operadores relacionales

Operación Símbolo

mayor que >

menor que <

mayor o igual que >=

menor o igual que <=

distinto que ~=

igual que ==

 Operadores lógicos

Operación Símbolo

OR (l) "o"

AND (&) "y"

NOT (~) negación

Funciones útiles:
FUNCIONES
exp(x)- exponencial de x
log(x)- logaritmo neperiano de x
log10(x)- logaritmo en base 10 de x
abs(x)- valor absoluto
sin(x)- seno de x
cos(x)- coseno de x
tan(x)- tangente de x
sec(x)- secante de x

CONSTANTES
exp(1)- número e
pi- numero (3.14)
i- Unidad imaginaria

ARRAYS
det(A)- determinante de A
A'- Transpuesta de A
eye(n)- matriz unitaria nxn
zeros(m,n)- matriz de ceros de tamaño mxn
ones(m,n)- matriz de unos de tamaño mxn
norm(V)- módulo del vector v

*Ayuda en Matlab:• La ayuda de MATLAB es bastante útil; para acceder a la


ayuda en línea basta con teclear en la línea de comandos:
» help funcion
donde “funcion” sería el nombre de la función sobre la que necesitamos la ayuda.
Por otro lado, para acceder a la ayuda a través del navegador, es necesario
seleccionar la opción “Matlab help”. Este segundo modo de ayuda resulta bastate
más potente y eficaz que la primera añadiendo en muchos casos ejemplos de
utilización

*Formatos númericos: El usuario puede controlar el número de decimales con


que aparece en pantalla el valor de las variables, sin olvidar que ello no está
relacionado con la precisión con la que se hacen los cálculos, sino con el aspecto
con que ´estos se muestran.
Para cambiar la presentación del valor de la variable se usa el comando formato
bien en File Preferences Numeric Format

1/3
format long
1/3

Los más comunes son:

format long
format short e
format long e
format short
format rat
format +

La instrucción formato vuelve al formato estándar que es el de 4 cifras


decimales . La representación interna del número siempre es la misma
*Variables: Como hemos rexplicado anteriormente para conocer el valor de una
variable, basta teclear su nombre.
Para conocer las variables que se han usado hasta el momento se utiliza el
comando who:

who

o, si se quiere más información:

whos

Para deshacerse de una variable

clear y

Los cálculos que no se asignan a una variable en concreto se asignan a


la variable de respuesta por defecto que es ans (del inglés, answer).
Sin embargo, si el cálculo se asigna a una variable, el resultado queda
guardado en ella.
MATLAB tiene definida variables con valor predeterminado.
Por ejemplo:
pi :El valor del número ™.
Inf : Infinito , aparece si hacemos 1/0.
NaN : Mensaje de error (Not a Number), por ejemplo 0/0.
eps : Epsilon de la maquina (obsérvese que MATLAB trabaja en doble
precisión).

eps

ans = 2.2204e-016
pero estos se pierden si se les asignan otro valor distinto.

eps=7

eps = 7
La unidad imaginaria se representa en MATLAB como i o j.

2.3 Almacenar y recuperar datos:

Matlab permite guardar y cargar datos de los archivos del computador. En el menú
File, la opción Save Workspace as… guarda todas las variables actuales y Import
Data… carga variables de un espacio de trabajo guardado previamente.
Otra forma sería guardar el estado de una sesión de trabajo con el comando save
antes de salir:

save

Al teclear esto, automáticamente se crea un fichero llamado matlab.mat. Puede


recuperarse la siguiente vez que se arranque el programa con el comando load:

load
3 Operaciones Básicas
3 Operaciones básicas: matemática sencilla

3.1 Operaciones matemáticas elementales.

Suma:

» 2+3

ans =
5

Resta:

» 10-3

ans =
7

La multiplicación y la división tienen un orden de prioridad mayor que la suma y la


resta por lo que en el caso siguiente se opera la divisón 2/2=1 y posteriormente la
suma 1+1=2

» 2/2+1

ans =
2

Si se desea que haga primero la suma, esta debe ir en un parénteesis:

» 2/(2+1)

ans =
0.6667

Lo mismo ocurre multiplicando (*)

» 2*4+1

ans =
9

» 2*(4+1)

ans =
10

Las potencias todavia tienen mas prioridad que las multiplicaciones

» 3^2*5
ans =
45

» 3^(2*5)

ans =
59049

 Cálculos con vectores y arrays (matrices)

Los vectores se escriben entre corchetes, se parando sus componentes con


espacios o comas y la finalización de una fila con un punto y coma:

» [8 1 ; 2 5]

ans =
81
25

» v = [1 2 3]

v=
123

» w = [1; 2; 3]

w=
1
2
3

Se puede definir un vector equiespaciado con el comando linspace y el número de


componentes o escribiendo los pasos entre 2 puntos

» v = (0:0.2:1)

v=
0 0.2000 0.4000 0.6000 0.8000

» w = linspace(0, 1, 5)

w=
0 0.2500 0.5000 0.7500 1.0000

Operaciones:

» A = [ 1 5; 0 10]; B = [3 2; 1 4];

»A*B

ans =

13 22
10 40
Si se desea que se opere la matriz elemento a elemento se debe escribir un punto
antes del signo de la operación(.*) o (.^)

» A .* B

ans =

3 10
0 40

 Cálculos simples: scripts y funciones.

Scripts:

son programas que contienen una serie de


líneas ejecutables y/o de comentarios y que al llamarlos desde el
Command Window se ejecutan de principio a fin.

Funciones:

Para crear una función hay que escribir en el editor unos argumento de entrada
(que serán los datos que facilites al ordenador) y otros de salida (que serán los que
te de el ordenador tras hacer los cálculos) y después guardar el archivo.

function [z] = producto(x,y)


z=x*y

Luego no hay mas que escribir el nombre con el que se guardó la función y escribir
los argumentos de entrada ( 3 y 5 en este caso)

» producto(3,5)

z=
15

Aqui hay un video con un ejemplo:

Algunas funciones como el coseno ya están predefinidas en matlab.

» cos(0)

ans
=1

Estas son algunas de ellas:

sin seno

cos coseno

tan tangente
sec secante

csc cosecante

cot cotangente

exp exponencial

log log en base e

log10 log en base 10

sqrt raíz cuadrada

abs valor absoluto

 Gráficas

En matlab también se puede estudiar mejor diversas funciones y problemas


mediante gráficas.

Primero se debe definir el dominio en x:

» x=0:0.1:10;

Después definir y en función de x:

» y=(1-exp(-x))./(1.5+cos(x));

y finalmente ejecutar el comando plot con las componente x e y

» plot(x,y)
r

4 Estructuras De Control
Las estructuras de control nos permiten controlar o modificar el flujo de ejecución
de las instrucciones de un programa, por ejemplo: tomar decisiones, realizar
acciones repetitivas etc, dependiendo de unas condiciones que nosotros mismos
establezcamos.

Algunas de las estructuras más conocidas de control que admite Matlab son:

 if
 switch
 case
 for
 while
 continue
 break

Pero nosotros únicamente nos centraremos en el estudio y aprendizaje de las


estructuras if, for y while.
Se utilizan como en cualquier otro lenguaje de programación. Suelen escribirse en
archivos de Matlab y no directamente en la línea de comandos.
Permiten también estructuras anidadas.
Es importante tener en cuenta las sentencias que terminan esos controles (end),
para colocarlas cuando son necesarias y en el orden adecuado.

 Estructuras IF-ELSE-END

Quizá sea la estructura de control más básica y más utilizada.


Se trata de una bifurcación que sirve para evaluar una condición en función de si
esta se cumple o no.
if <condicion>
// ordenes
end

En algunos casos existen dos alternativas, dependiendo de si es cierta o no dicha


expresión.
Entonces:

if <condicion>
// instrucciones que hay que ejecutar si la condición es verdadera
else
// Instrucciones que hay que ejecutar si la condición es falsa
end

En castellano sería algo así:

Si <Tal cosa es cierta>


// Haz esto
En caso contrario
// Haz esto otro

La <condición> es un valor, una expresión, una función…


Una forma de ampliar esta estructura es haciendo uso del elseif. Esta palabra
permite hacer varias evaluaciones, y, por lo tanto, obtener más de dos alternativas.

if <condicion 1>
// instrucciones que hay que ejecutar para la condición 1
elseif <condicion 2>
// Instrucciones que hay que ejecutar para la condición 2
else
// Instrucciones que hay que ejecutar si ninguna condición se cumple
end

 Estructuras en bucle

1. Bucles FOR
Los bucles for permiten que un grupo de órdenes se repitan un número fijo y
predeterminado de veces. La forma general de un bucle for es:

for <variable> = <arreglo de elementos>


<sentencias>
end

for contador=inicio:paso:fin,
sentencias

for x= array,
órdenes
end

Las órdenes entre las sentencias for y end se ejecutan una vez para cada columna
del array. Es decir, en cada iteración la variable x valdrá x=array( :,i) variando i
entre 1 y la última columna.
Los bucles for deben seguir siempre estas reglas:
a) Un bucle for no puede terminarse reasignando a la variable del bucle un valor
dentro del bucle.
b) Pueden anidarse tantos bucles como se desee, pero todos deben terminar con
un end y el más interior corresponderá al for más interior.
c) Deben evitarse siempre que exista otro método, en forma de array o matriz, de
resolver el problema planteado. La forma for, al ser un intérprete, siempre será
más lenta y larga de escribir que una forma matricial.

Por ejemplo:

» for n=1 :10,


x(n)=sin(n*pi/100);
end;

» n=1 :10 ;
x=sin(n*pi/100) ;

2. Bucles WHILE

If else nos permitía decidir si queríamos ejecutar o no una instrucción en función de


una condición, los bucles nos permiten utilizar una condición para determinar
cuantas veces queremos ejecutar una instrucción. El funcionamiento es muy
parecido al del if-else, la diferencia estriba en que si la condición es cierta y se
ejecuta la orden, la condición vuelve a comprobarse una y otra vez mientras siga
siendo cierta. En cambio en el cambio del if-else sólo se comprueba la condición
una vez, si es cierta se ejecuta la instrucción y se sigue con el programa.
Resumiendo el bucle while repetirá un conjunto de órdenes un número indefinido de
veces. El número de veces que se repetirá dependerá de si se cumple o no una
determinada condición. La forma general es:

While (condicion)
// Instrucciones a ejecutar una y otra
//vez mientras la condición sea cierta

NOTA : Es importante realizar la siguiente aclaración, el bucle FOR lo utilizaremos


cuando conozcamos e número de iteraciones del bucle, y el WHILE lo utilizaremos
cuando no conozcamos el número de iteraciones.

5 Ejercicios Resueltos
5.1.Operaciones basicas.

Calcular módulo y argumento del número complejo (3i − 1)5 5 + i Nota: el


comando abs da el valor absoluto de un número real, o bien el módulo de un
número complejo. El comando angle da el argumento en radianes de un número
complejo. Como siempre, se pueden aplicar a matrices.

5.2Gráficas.

Gráfica de la superficie

Con las curvas de nivel correspondientes:


Representar gráficamente la función
5.3 Scripts

Hallar el área de un trapecio a partir de sus dimensiones:


Preparar un script solucion.m que resuelva el siguiente sistema de ecuaciones:

para un valor arbitrario del parámetro r que introduciremos antes de ejecutar el


programa, de esta forma:

r=10;

» solución

5.4 Functions.

Programar una función que dibuje una función matemática dada por el usuario en
un determinado rango de vectores [a,b] dado también por el usuario:
Preparar una function solucion.m que resuelva el siguiente sistema de ecuaciones

para un valor arbitrario del parámetro r. (La variable de entrada será el parámetro
r; la de salida, el vector solución del sistema. Recordar que A\b proporciona la
solución del sistema de ecuaciones con matriz de coeficientes A y vector de
términos independientes b.)
[Métodos de iteración].
Escribir una función de matlab que calcule n+1 puntos del soporte de Tchebycheff,
xk, en un intervalo [a, b] dado por el usuario.

Escribir una función que calcule el i-ésimo polinomio de base de Lagrange para un
soporte de n+1 puntos xk . (el argumento de salida serán los valores Li del pol. en
un vector de puntos dado xx):

5.5 Bucles

La sucesión de Fibonacci se define por recurrencia de la siguiente forma: los


primeros dos términos son iguales a 1, y a partir del tercero, cada término es la
suma de los dos anteriores.
Preparar un programa que calcule y almacene en una variable los 50 primeros
términos de la sucesión. (Empezar creando una matriz fila de 50 ceros, que se irá
rellenando con los sucesivos valores de la sucesión, mediante un bucle for
adecuado).

Crear un script en el que, mediante el uso de bucles y de condicionales, se genere


una matriz 5 × 8 con los siguientes elementos:
• si el elemento está en una columna par o bien en una fila par, la raíz cuadrada de
la suma de los dos índices (de fila y de columna).
• en otro caso, la suma de los dos índices elevados al cuadrado.
Nota: El resto de la división de x entre y se puede calcular en MATLAB mediante
rem(x,y). El “o” lógico se escribe con una barra vertical, |. De esta forma, la
condición “i es par o j es par” se podría escribir así: (rem(i,2)==0)|(rem(j,2)==0).

Escribir una función de matlab que calcule la solución x de un sistema de


ecuaciones triangular Ax=b por remonte, donde A es la matriz triang. superior del
sistema y b el vector de términos independientes.

Escribir una función de matlab que intercambie la fila i de una matriz dada A por
una fila inferior p cuando el elemento aii* sea nulo, devolviendo la matriz A
modificada:

Anda mungkin juga menyukai