0% encontró este documento útil (0 votos)
49 vistas

01 - Introducción A Matlab

Métodos numéricos aplicados I. UNIR

Cargado por

Carlos Harim
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
49 vistas

01 - Introducción A Matlab

Métodos numéricos aplicados I. UNIR

Cargado por

Carlos Harim
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 37

Tema 1

Métodos Numéricos Aplicados I

Introducción a Matlab
Índice
Esquema. . . . . . . . . . . . . . . . . . . . . . . 2

Ideas clave . . . . . . . . . . . . . . . . . . . . . . 3

1.1 Introducción y objetivos . . . . . . . . . . . . . 3

1.2 Instrucciones básicas . . . . . . . . . . . . . . 4

1.3 Vectores y matrices . . . . . . . . . . . . . . . 10

1.4 Funciones anónimas . . . . . . . . . . . . . . . 18

1.5 Archivos .m . . . . . . . . . . . . . . . . . . 20

1.6 Estructuras de control . . . . . . . . . . . . . . 23

1.7 Representaciones gráficas . . . . . . . . . . . . 28

1.8 Cálculo simbólico . . . . . . . . . . . . . . . . 32

1.9 Archivos .mlx . . . . . . . . . . . . . . . . . 34


Esquema

INTRODUCCIÓN A MATLAB

Instrucciones básicas Estructuras de control

Vectores Matrices Condicionales Bucles

Representaciones gráficas
Funciones anónimas

Archivos .m Cálculo simbólico

function script Archivos .mlx

Métodos Numéricos Aplicados I


2
Tema 1. Esquema
Ideas clave

1.1 Introducción y objetivos

Los métodos numéricos consisten en una serie de procedimientos que nos permiten
obtener soluciones aproximadas a determinados problemas, cuando no es posible ob-
tener su solución analítica.

La potencialidad de los métodos numéricos se sustenta sobre la computación. Con las


posibilidades que actualmente disponen los ordenadores de sobremesa, cualquiera
puede tener a su alcance una máquina computacional. Este hecho ha supuesto que
en los últimos años estos métodos hayan adquirido mayor relevancia.

A lo largo del curso trabajaremos con el software Matlab. Se trata de una herramienta
matemática de cálculo numérico, aunque en sus últimas versiones también incorpora
cálculo simbólico.

� Accede al vídeo: ¿Qué es Matlab?

Pero antes de conocer a fondo las diferentes posibilidades de Matlab, es importan-


te mencionar que para aprovechar al máximo su usabilidad tendrás que instalártelo.
Como estudiante de UNIR, tienes acceso a una licencia para que puedas utilizarlo.

� Accede al vídeo: Instalación de Matlab

Métodos Numéricos Aplicados I


3
Tema 1. Ideas clave
Una vez instalado el software, te recomendamos que te familiarices con su interfaz
gráfica para que sepas dónde está y qué contiene cada ventana. De esta manera, po-
drás configurar la interfaz gráfica a tu gusto.

� Accede al vídeo: La interfaz gráfica

Ahora ya estamos preparados para arrancar con el uso de Matlab. Los objetivos que
trataremos de alcanzar en este tema serán los siguientes:

I Conocer las instrucciones básicas

I Aprender a introducir y manejar vectores y matrices

I Definir funciones anónimas

I Distinguir entre los elementos función y script

I Conocer la sintaxis de las estructuras de control

I Aprender a realizar representaciones gráficas simples

I Identificar las instrucciones para el cálculo simbólico

I Conocer la potencialidad de los archivos .mlx

1.2 Instrucciones básicas

Situados en la consola de Matlab, conocida como Command Window, ejecutaremos


una serie de instrucciones básicas para conocer su comportamiento.

Métodos Numéricos Aplicados I


4
Tema 1. Ideas clave
Comandos básicos

A continuación mostramos una serie de comandos que nos van a permitir obtener
información, gestionar el Workspace, u otras funcionalidades.

I help par Muestra por pantalla la ayuda del comando par.

I save par Guarda las variables que hay en el Workspace dentro del archivo par.mat.

I clear par Borra la variable par del Workspace.

I clc Limpia la consola.

I whos Muestra información acerca de las variables que hay en el Workspace.

I clear par Carga en el Workspace la variables almacenadas en el archivo par.mat.

Ejemplo 1.
Obtengamos la ayuda del comando save.

>> help save

Vemos por pantalla la siguiente información.

save - Save workspace variables to file

This MATLAB function saves all variables from the current


workspace in a MATLAB formatted binary file (MAT-file)
called filename.

Ejemplo 2.
Vamos a introducir un vector v, elevaremos sus elementos al cuadrado y guarda-
remos ambas variables en un archivo T01Ejemplo2.mat.

Métodos Numéricos Aplicados I


5
Tema 1. Ideas clave
>> v =[1 4 7 -1 -4 3];
>> w=v. ^2;
>> save T01Ejemplo2.mat

A continuación, eliminamos las variables, limpiamos la pantalla y volvemos a car-


gar las variables.

>> clear all


>> clc
>> load T01Ejemplo2.mat

Vemos cómo en el Workspace aparecen las variables que habíamos guardado.

Tipos de archivos

Matlab tiene una serie de archivos con extensión propia que es necesario conocer.
Si bien no los vamos a desarrollar en este punto, sí que es conveniente conocer su
existencia.

I *.m Son ficheros que contienen texto interpretable por Matlab; en el apartado 1.5
veremos en qué consisten, diferenciando entre function y script.

I *.mat Son ficheros que contienen datos a volcar en el Workspace; en el Ejemplo


2 vimos un caso simple de uso.

I *.fig Son ficheros que almacenan representaciones gráficas; dedicaremos el apar-


tado 1.7 a algunas representaciones simples.

I *.mlx Son ficheros que sirven para generar memorias de trabajos. En ellos, se pue-
de utilizar texto con formato, ecuaciones, ejecuciones de comandos, ejecuciones

Métodos Numéricos Aplicados I


6
Tema 1. Ideas clave
de la consola u otras funcionalidades; en el apartado 1.9 veremos algunos usos de
estos archivos.

Operadores

Las operaciones aritméticas elementales vienen definidas como sigue.

I par1+par2 Suma de par1 y par2

I par1-par2 Resta par2 a par1

I par1*par2 Multiplica par1 y par2

I par1/par2 Divide par1 por par2

I par1^par2 Eleva par1 a par2

Las operaciones anteriores son de aplicación sobre escalares, vectores y matrices,


siempre y cuando cumplan con las reglas del álgebra en cuanto a dimensiones.

Hay otras operaciones adicionales en Matlab para el trabajo con vectores y matrices.
Es necesario mencionar que deben tener las mismas dimensiones.

I par1.*par2 Multiplica elemento a elemento par1 y par2.

I par1./par2 Divide elemento a elemento par1 a par2.

I par1.^par2 Eleva elemento a elemento par1 a par2

Ejemplo 3.
Tenemos almacenados en T01Ejemplo03.mat las variables d y t, que represen-
tan la distancia y el tiempo que han dedicado 10 personas a su entrenamiento de
carrera. A continuación, obtenemos el vector velocidad v para cada uno de los
corredores.

Métodos Numéricos Aplicados I


7
Tema 1. Ideas clave
>> load T01Ejemplo03.mat
>> v=d./t;

Funciones

Identificamos como funciones a aquellos comandos que requieren de la introducción


de un parámetro para actuar sobre él. A continuación listamos una serie de ejemplos
cuyos nombres evidencian su funcionalidad e invitamos a probar.

I sin, asin, sind, asind.

I cos, acos, cosd, acosd.

I tan, atan, atan2, tand, atand, atan2d

I log, log10, log2

Ejemplo 4.
Calculemos 23x−5 = 8. Matemáticamente desarrollamos

log2 (8) + 5
log2 (23x−5 ) = log2 (8) ↔ 3x − 5 = log2 (8) ↔ x = .
3

Ejecutamos en Matlab

>> x=( log2 (8) +5) /3;

Valores fundamentales

En este apartado, listamos las constantes más habituales.

Métodos Numéricos Aplicados I


8
Tema 1. Ideas clave
I π: pi

I e: exp(1)

I i: 1i

I Último elemento calculado sin asignar: ans

I 0
0
: Nan

Ejemplo 5.
π
Calculemos e−i 2 .

Ejecutamos en Matlab

>> exp ( -1i*pi /2) ;

Formatos numéricos de salida

Cuando ejecutamos operaciones, en la consola nos pueden aparecer los resultados en


diferentes formatos. La Tabla 1 recoge algunos ejemplos.

Comando Resultado
format short 4 dígitos tras el punto decimal
format long 15 dígitos tras el punto decimal
format shortE 4 dígitos tras el punto decimal con notación científica
format longE 15 dígitos tras el punto decimal con notación científica
format shortG Ajusta automáticamente la presentación
format bank 2 dígitos tras el punto decimal
format rat Fracción entre dos enteros

Tabla 1: Algunos formatos numéricos

Métodos Numéricos Aplicados I


9
Tema 1. Ideas clave
� Accede al vídeo: Elementos básicos

1.3 Vectores y matrices

Uno de los éxitos de Matlab es la facilidad con la que se pueden ejecutar operaciones
con vectores y matrices.

Vectores

Los vectores son conjuntos de valores en una dimensión. Pueden ser vectores fila

h i
v= v1 v2 · · · vn ,

o vectores columna  
v1
 
v2
 
 
v=
 ..
.

 . 
 
vn

Introducción de vectores

Para introducir un vector, este debe ir entre corchetes []. Si se trata de un vector

I fila, separamos sus componentes por espacios o comas ,

I columna, separamos sus componentes por punto y coma ;

Métodos Numéricos Aplicados I


10
Tema 1. Ideas clave
Para transformar un vector fila en un vector columna, y viceversa, podemos utilizar el
operador .'.

Ejemplo 6.
Vamos a introducir el vector
 
1
 
v =  0 ,
 
 
−i

a partir de un vector fila. Para ello, ejecutamos en la consola

>> v =[1 0 -1i].'

Extracción de elementos de un vector

Para extraer elementos de un vector hay que llamar al vector y poner la componente
a extraer entre paréntesis.

Ejemplo 7.
Sea el vector  
1
 
v =  0 .
 
 
−i

Para extraer la segunda componente, ejecutamos

>> v (2)

En caso de que queramos extraer más de una componente, entre paréntesis introdu-
ciremos un vector con las componentes a extraer.

Métodos Numéricos Aplicados I


11
Tema 1. Ideas clave
Ejemplo 8.
Sea el vector
h i
v= 1 −1 0 3 1.5 7 0 .

Para extraer las componentes 3, 4 y 6, ejecutamos

>> componentes =[3 4 6];


>> v( componentes )

Generación de vectores con componentes equiespaciadas

A lo largo de la asignatura vamos a generar en incontables ocasiones vectores cuyas


componentes están equiespaciadas. Para ello, disponemos de diferentes opciones,
que se utilizan en función del uso que le vayamos a dar.

I a:b genera un vector de componentes espaciadas una unidad desde a hasta b.

I a:h:b genera un vector de componente espaciadas h desde a hasta b.

I linspace(a,b) genera un vector de 100 componentes equiespaciadas entre a y


b.

I linspace(a,b,n) genera un vector de n componentes equiespaciadas entre a y


b.

Ejemplo 9.
Para generar un vector

h i
I v= 1 2 3 · · · 9 10 ejecutamos

Métodos Numéricos Aplicados I


12
Tema 1. Ideas clave
>> v =1:10;

h i
I v= 2 4 6 8 10 ejecutamos

>> v =2:2:10;

h i
I v= 10 8 6 4 2 ejecutamos

>> v =10: -2:2;

h i
I v= 0 0.01 0.02 · · · 0.98 0.99 ejecutamos

>> v= linspace (0 ,0 .99 );

h i
I v= 0 0.01 0.02 · · · 0.99 1 ejecutamos

>> v= linspace (0 ,1 ,101) ;

Operaciones y comandos específicos con vectores

Previamente vimos las operaciones aritméticas y las adicionales elemento a elemento


para trabajar con vectores. Otras de las operaciones algebraicas disponibles son

I el producto escalar: dot(v1,v2),

I el producto vectorial: cross(v1,v2),

I la norma: norm(v).

Asimismo, también hay otras operaciones que serán de utilidad, como

Métodos Numéricos Aplicados I


13
Tema 1. Ideas clave
I obtener el tamaño del vector: length(v),

I voltear el vector horizontalmente: fliplr(v),

I voltear el vector verticalmente: flipud(v).

Ejemplo 10.
h i
Calculemos el producto vectorial entre los vectores e1 = 1 0 0 y e2 =
h i
0 1 0 . Para ello, ejecutamos

>> e1 =[1 0 0];


>> e2 =[0 1 0];
>> prodVect = cross (e1 ,e2)

Matrices

Una vez conocemos cómo trabajar con vectores, demos un paso más con las matrices.

Introducción de matrices

Una matriz de tamaño m × n se introduce entre corchetes []. Los elementos de cada
una de las m filas se introducen como vectores, es decir, separados por espacio o por
coma ,, mientras que para separar cada una de las n filas se introduce un punto y
coma ;.

Ejemplo 11.
Para introducir la matriz  
1 −1 0
 
A= 0
 
2 5 
 
1 3 1

Métodos Numéricos Aplicados I


14
Tema 1. Ideas clave
ejecutamos

>> A =[1 -1 0; 0 2 5; 1 3 1];

Extracción de elementos de una matriz

Para extraer elementos de una matriz se sigue un procedimiento similar al de los vec-
tores. En este caso, pondremos entre paréntesis el elemento con los subíndices sepa-
rados por una coma.

Ejemplo 12.
Para extraer el elemento a21 de la
 
1 −1 0
 
A= 0 2 5 
 
 
1 3 1

ejecutamos

>> A (2 ,1)

Si lo que queremos es extraer más de una componente, pondremos entre paréntesis


los vectores que contienen los subíndices a extraer.

Ejemplo 13.
Para extraer los elementos a21 y a22 de la
 
1 −1 0
 
A= 0 2 5 
 
 
1 3 1

Métodos Numéricos Aplicados I


15
Tema 1. Ideas clave
ejecutamos

>> A (2 ,1:2)

En caso de que queramos acceder a todos los elementos de una fila o de una columna,
podemos utilizar los dos puntos :.

Ejemplo 14.
Para extraer los elementos a21 , a22 y a23 de la matriz
 
1 −1 0
 
A= 0 5 ,
 
2
 
1 3 1

es decir, la segunda fila, ejecutamos

>> A (2 ,:)

Matrices especiales

Existen una serie de matrices especiales que se pueden generar de una forma más
rápida utilizando una serie de comandos de Matlab que describimos a continuación.

I Matriz cuadrada de n × n ceros: zeros(n)

I Matriz rectangular de m × n ceros: zeros(m,n)

I Matriz cuadrada de n × n unos: ones(n)

I Matriz rectangular de m × n unos: ones(m,n)

I Matriz identidad de tamaño n: eye(n)

Métodos Numéricos Aplicados I


16
Tema 1. Ideas clave
Operaciones específicas con matrices

Además de las operaciones aritméticas y las adicionales elemento a elemento para


trabajar con matrices, también encontramos otras como las que se describen a conti-
nuación.

I Determinante: det

I Matriz inversa: inv

I Rango: rank

I Eliminación de Gauss-Jordan: href

Una de las operaciones más habituales con matrices es la de la resolución del sistema
de ecuaciones lineales

Ax = b ↔ A−1 Ax = A−1 b ↔ x = A−1 b.

La implementación en Matlab podría ser

>> x= inv (A)*b;

El cálculo de la matriz inversa implica un coste computacional bastante elevado, aun-


que no seamos capaces de percibirlo. Es por ello que Matlab tiene implementado un
operador que nos permite resolver este sistema de una forma más eficiente. Se trata
del operador contrabarra \. Matlab nos propone que, para resolver el sistema, utili-
cemos la instrucción

>> x=A\b;

Métodos Numéricos Aplicados I


17
Tema 1. Ideas clave
Ejemplo 15.
Vamos a resolver el sistema

x1 + x2 − 2x3 = 4 



x1 − x2 = 1 ,



x1 + 3x3 = 0 

por lo que tenemos un sistema Ax = b, donde


     
1 1 −2 x 4
   1   
A =  1 −1 0  , x =  x2  , b =  1  .
     
     
1 0 3 x3 0

Para ello, ejecutamos

>> A =[1 1 -2;1 -1 0;1 0 3];


>> b =[4 1 ’0];
>> x=A\b;

� Accede al vídeo: Vectores y matrices

1.4 Funciones anónimas

Cuando queremos trabajar con una función f (x) podemos trabajar con funciones anó-
nimas. Estas funciones se almacenan en el Workspace. Su definición comienza con
una arroba @ seguida de la variable entre paréntesis, poniendo fuera del paréntesis la
expresión de f (x).

Métodos Numéricos Aplicados I


18
Tema 1. Ideas clave
Ejemplo 16.
Vamos a introducir la función anónima

x2
f (x) = e−x + .
sin(πx)

Para ello, ejecutamos

>> f=@(x) exp (-x)+x ^2/ sin (pi*x);

Para ejecutar la función f (x), es suficiente con escribir el nombre de la función intro-
duciendo entre paréntesis el escalar o el vectorial sobre el que se quiere evaluar.

Ejemplo 17.
Queremos evaluar la función

x2
f (x) = e−x +
sin(πx)

sobre los valores de la matriz


 
1 2 3
 
A= 1 3 5 .
 
 
1 4 7

Para ello, ejecutamos

>> A =[1 2 3;1 3 5;1 4 7];


>> f(A)

Las funciones anónimas no solo permiten un parámetro de entrada, sino que también
son útiles para funciones de varias variables. En este caso, la estructura es similar,
pero las variables de las que depende se definen dentro del paréntesis separadas por

Métodos Numéricos Aplicados I


19
Tema 1. Ideas clave
comas.

Ejemplo 18.
Vamos a introducir la función anónima

f (x, y) = e−x (cos(πy) + sin(πy)) .

Para ello, ejecutamos

>> f=@(x,y) exp (-x)*( cos (pi*y)+ sin (pi*y));

1.5 Archivos .m

Los archivos de extensión .m son ficheros cuyo contenido es capaz de interpretar


Matlab como si fueran comandos. Estos ficheros se pueden generar con cualquier edi-
tor de texto, aunque habitualmente se hacen con el editor de Matlab. Dentro de los
ficheros .m podemos distinguir entre función y script.

Script

Un script es un conjunto de líneas de código que se ejecutan secuencialmente. Su fun-


cionalidad es similar a la de la consola. La ventaja que tiene es que se puede acceder
a las líneas de código sin necesidad de teclearlas en cada ocasión.

Los scripts no tienen parámetros de entrada ni de salida. Actúan con las variables del
Workspace tal y como se encuentran al iniciar la ejecución, y las modifican si necesitan
acceder a ellas.

Métodos Numéricos Aplicados I


20
Tema 1. Ideas clave
Ejemplo 19.
Vamos a generar un script para resolver el sistema

x1 + x2 − 2x3 = 4 



x1 − x2 = 1 .



x1 + 3x3 = 0 

A =[1 1 -2; 1 -1 0;1 0 3];


b =[4 1 0] ';
Ab =[A b];
sol = href (Ab);
x= sol (: ,4) ;

Como este script lo tenemos guardado como un archivo .m, cuando queramos
recordar cómo resolver el sistema de ecuaciones, podemos acceder a él.

Función

Una función es, al igual que los scripts, un conjunto de líneas de código que se ejecutan
secuencialmente.

La mayor diferencia está en la posibilidad de introducir parámetros de entrada y/o


de salida. Una vez iniciada la ejecución de la función, esta trabaja con un Workspace
local, por lo que no accede a las variables que hubiera previamente. En el caso en que
tuviera parámetros de salida, las variables quedarían almacenadas en el Workspace
una vez finalizara la ejecución de la función.

Un requisito de las funciones es que queden definidas en la primera línea. Para ello,
la estructura que se sigue es

Métodos Numéricos Aplicados I


21
Tema 1. Ideas clave
function [out1 , out2 ]= nombre_funcion (in1 ,in2 , in3 )

Las funciones pueden tener tantos parámetros de entrada y de salida como se quiera,
siempre y cuando cumplan con la estructura mencionada anteriormente.

Habitualmente, bajo la primera línea se introduce un comentario en el que se describe


qué hace la función. Los comentarios en Matlab se introducen precedidos de un signo
porcentual %.

Ejemplo 20.
Vamos a generar una función para resolver cualquier sistema de tres ecuaciones
con tres incógnitas. Para ello, implementamos el siguiente programa.

function x= sistemaAxb (A,b)


% La función x= sistemaAxb (A,b) resuelve el sistema ...
de ecuaciones lineales Ax=b, tomando como ...
parámetros de entrada la matriz A y el vector ...
b. Devuelve como salida el vector solución x
Ab =[A b];
sol = href (Ab);
x= sol (: ,4) ;

Una vez implementado el programa, resolvemos el sistema de ecuaciones lineales



x1 + x2 − 2x3 = 4 



x1 − x2 = 1 .



x1 + 3x3 = 0 

ejecutando desde la línea de comandos

A =[1 1 -2; 1 -1 0;1 0 3];

Métodos Numéricos Aplicados I


22
Tema 1. Ideas clave
b =[4 1 0] ';
x= sistemaAxb (A,b)

De esta manera, con las funciones podemos reutilizar el código para diferentes
valores de entrada.

� Accede al vídeo: Funciones y scripts

1.6 Estructuras de control

Cuando ejecutamos unas líneas de código, esta ejecución se realiza secuencialmente.


Sin embargo, las estructuras de control nos permiten modificar el flujo de ejecución.
En este apartado, distinguiremos entre las estructuras condicionales y los bucles.

Pero un elemento común que aparece en las estructuras de control es el uso de con-
diciones.

Condiciones

Un booleano es un tipo de dato que ocupa 1 byte y tiene como posibles estados falso y
verdaderno. En Matlab, los booleanos se llaman datos de tipo logical, y los estados
falso y verdadero se representan por 0 y 1, respectivamente.

Una condición es una operación cuya salida es un booleano. Para ello, se requiere del
uso de operadores relacionales. La Tabla 2 recoge alguno de los operadores relaciona-
les más comunes.

Métodos Numéricos Aplicados I


23
Tema 1. Ideas clave
Operador Significado
== Igual
>= Mayor o igual
> Estrictamente mayor
<= Menor o igual
< Estrictamente menor
~= Diferente

Tabla 2: Operadores relacionales

Ejemplo 21.
Para conocer si las raíces de un polinomio de segundo grado ax2 + bx + c = 0
son reales o complejas, necesitamos saber si el discriminante ∆ = b2 − 4ac es
mayor o igual a cero, o menor que cero. Para conocerlo, ejecutamos

>> b ^2 -4* a*c <0

Una pareja de elementos booleanos se pueden relacionar a través de las operaciones


lógicas. En la Tabla 3 se recogen las funciones de Matlab relacionadas y sus resultados.

A B and(A,B) or(A,B) xor(A,B)


0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0

Tabla 3: Funciones y tablas de verdad

Ejemplo 22.
Para conocer si las raíces de un polinomio de segundo grado ax2 + bx + c = 0
son reales o complejas, necesitamos saber si el discriminante ∆ = b2 − 4ac es
mayor o igual a cero, o menor que cero. Para conocerlo, ejecutamos

Métodos Numéricos Aplicados I


24
Tema 1. Ideas clave
>> or(b ^2 -4* a*c <0 , b ^2 -4* a*c ==0)

Estructuras condicionales

Dentro de la programación podemos encontrar diferentes estructuras condicionales.


En este apartado veremos la más común: la estructura if-else-end.

Estructura condicional if-else-end

Esta estructura ejecuta unas instrucciones u otras dependiendo si se cumple la condi-


ción, tal y como muestra la Figura 1.

Figura 1: Flujograma de la estructura if-else-end

La estructura en código de if-else-end es

if condicion
instrucciones_SI
else
instrucciones_NO
end

Ejemplo 23.
Escribamos una función que calcule la nota final de una asignatura. Para ello,

Métodos Numéricos Aplicados I


25
Tema 1. Ideas clave
debemos introducir la nota de la evaluación continua e y la nota del examen final
f. Si el examen final está suspendido, la nota final de la asignatura es la nota del
examen final. Si el examen está aprobado, la nota final de la asignatura es el 60 %
del examen final más el 40 % de la evaluación continua. Una posibilidad se recoge
a continuación.

function nf= notaFinal (e,f)


% La función nf= notaFinal (e,f) calcula la nota ...
final nf de la asignatura a partir de las notas ...
de la evaluación continua e y la nota del ...
examen final f.
if f <5
nf=f;
else
nf=.6*f+.4*e;
end

La estructura if-else-end se puede anidar, de modo que de cada else puede salir
otra estructura if-else-end.

Bucles

Los bucles repiten la ejecución de unas líneas de código. A continuación nos centrare-
mos en los bucles while y for.

Bucle while

La estructura while ejecuta unas líneas de código mientras se cumpla la condición. El


flujograma de la Figura 2 representa esta estructura.

Métodos Numéricos Aplicados I


26
Tema 1. Ideas clave
Figura 2: Flujograma de la estructura while

La estructura en código de while es

while condicion
instrucciones
end

Es importante que en las instrucciones se vaya modificando alguna variable que


intervenga en la condicion; en caso contrario, nunca se saldría del bucle.

Ejemplo 24.
Escribamos una función que calcule obtenga un número aleatorio que se encuen-
tre entre 0.5 y 1. Una posibilidad se recoge a continuación.

function x= aleatorioMayor05
% La función x= aleatorioMayor05 obtiene un número ...
aleatorio mayor que 0.5 de una distribución ...
uniforme
x= rand (1) ;
while and (x <0.5 ,x >1)
x= rand (1) ;
end

Métodos Numéricos Aplicados I


27
Tema 1. Ideas clave
Bucle for

La estructura for recorre un conjunto de elementos; en cada elemento, ejecuta unas


instrucciones. La estructura en código de for es

for indice = vector


instrucciones
end

Ejemplo 25.
Escribamos una función que dado un vector v obtenga la diferencia entre sus
elementos. Una posibilidad se recoge a continuación.

function difv = diferenciaVector (v)


% La función difv = diferenciaVector (v) obtiene la ...
diferencia entre los elementos de v
for indice =1: length (v) -1
difv ( indice )=v( indice )-v( indice +1) ;
end

� Accede al vídeo: Estructuras de control

1.7 Representaciones gráficas

Matlab también dispone de un amplio conjunto de herramientas de representaciones


gráficas. En este apartado, recogemos la representación de funciones de una y dos
variables, así como la edición de algunos elementos de la gráfica.

Métodos Numéricos Aplicados I


28
Tema 1. Ideas clave
Cuando realizamos una representación, aparece una ventana emergente. El contenido
de esa ventana se puede guardar como un archivo .fig.

Representación de funciones de una variable

Para representar la función f (x) tenemos diferentes posibilidades. La función plot(a,b)


representa en el eje de abscisas los valores de a y en el eje de ordenadas los valores
de b.

Ejemplo 26.
Para representar la función

2
f (x) = e−x , x ∈ [−2, 2],

vamos a utilizar un vector de 100 puntos para la variable independiente y, a con-


tinuación, evaluamos la función sobre dichos puntos.

>> x= linspace ( -2 ,2);


>> f= exp (-x. ^2) ;
>> plot (x,f)

El resultado es

Métodos Numéricos Aplicados I


29
Tema 1. Ideas clave
1

0.8

0.6

0.4

0.2

0
-2 -1 0 1 2

Representación de funciones de dos variables

Cuando tenemos una función de dos variables f (x, y), también tenemos diferentes
posibilidades. Es necesario mencionar que las variables X e Y deben ser matrices, por
lo que habitualmente se genera un mallado a partir de los vectores x e y utilizando

>> [X,Y]= meshgrid (x,y);

En las siguientes posibilidades, se representa en los ejes X, Y y Z el contenido de las


matrices A, B y C, respectivamente.

I plot3(A,B,C) hace la representación con líneas para cada valor de la variable A.

I mesh(A,B,C) hace la representación con un mallado de las variables A y B.

I surf(A,B,C) hace la representación con un mallado de las variables A y B, gene-


rando una superficie.

Ejemplo 27.

Métodos Numéricos Aplicados I


30
Tema 1. Ideas clave
Para representar la función

2 −y 2
f (x, y) = e−x , (x, y) ∈ [−2, 2] × [−2, 2],

vamos a utilizar un vector de 100 puntos para las variables independientes y, a


continuación, evaluamos la función sobre dichos puntos.

>> x= linspace ( -2 ,2); y= linspace ( -2 ,2)


>> [X,Y]= meshgrid (x,y);
>> f= exp (-X. ^2 - Y. ^2) ;
>> figure
>> subplot (1 ,3 ,1) , plot3 (X,Y,f), title ('plot3 ')
>> subplot (1 ,3 ,2) , mesh (X,Y,f), title ('mesh ')
>> subplot (1 ,3 ,3) , surf (X,Y,f), title ('surf ')

El resultado es

plot3 mesh surf

1 1 1

0.5 0.5 0.5

0 0 0
2 2 2
2 2 2
0 0 0
0 0 0
-2 -2 -2 -2 -2 -2

Edición de elementos de la gráfica

A continuación se listan una serie de elementos que dan un mejor aspecto a las repre-
sentaciones gráficas.

I grid: introduce un mallado de las variables

Métodos Numéricos Aplicados I


31
Tema 1. Ideas clave
I xlabel('texto'), ylabel ('texto'), zlabel('texto'): introduce títulos
en los ejes

I title('texto') introduce texto en el título de la figura

� Accede al vídeo: Representaciones gráficas

1.8 Cálculo simbólico

A pesar de que Matlab es un software orientado al cálculo numérico, también dispone


de herramientas para el cálculo simbólico. Para ello, si queremos trabajar con este tipo
de cálculo, es necesario definir la variable de manera simbólica con el comando syms.
De este modo, si queremos que la variable x sea simbólica, escribiríamos

>> syms x

Una vez obtengamos el resultado, este será simbólico. Para poder recuperar el valor
numérico, utilizaremos el comando double.

Raíces de ecuaciones

Para resolver raíces de ecuaciones, basta con utilizar el comando solve.

Ejemplo 28.
Queremos obtener las raíces de la ecuación

f (x) = x2 − 1,

Métodos Numéricos Aplicados I


32
Tema 1. Ideas clave
que sabemos que son x = ±1. Para desarrollar esta operación en Matlab, ejecu-
tamos

>> syms x;
>> f=x ^2 -1;
>> sol = solve (f ==0)

Funciones derivadas

El comando destinado a obtener la derivada de una función es diff.

Ejemplo 29.
Queremos obtener la derivada de la función

f (x) = x2 − 1,

que sabemos que es


f 0 (x) = 2x.

Para desarrollar esta operación en Matlab, ejecutamos

>> syms x;
>> f=x ^2 -1;
>> df= diff (f,x)

Integral de una función

Para obtener la integral de una función, utilizaremos el comando int.

Métodos Numéricos Aplicados I


33
Tema 1. Ideas clave
Ejemplo 30.
Queremos obtener la derivada de la función

f (x) = x2 − 1,

que sabemos que es


x3
F (x) = − x.
3
Para desarrollar esta operación en Matlab, ejecutamos

>> syms x;
>> f=x ^2 -1;
>> F= int (f,x)

Todas estas funciones tienen su versión para varias variables.

� Accede al vídeo: Cálculo simbólico

1.9 Archivos .mlx

Los archivos Live Script son documentos interactivos en los que se pueden incluir
comandos, texto formateado o ecuaciones, entre otros. Son archivos con extensión
.mlx. Permiten visualizar las diferentes salidas de las ejecuciones que se incluyen.

A continuación, presentamos los elementos más destacados.

Métodos Numéricos Aplicados I


34
Tema 1. Ideas clave
Texto

Dentro de este tipo de archivos podemos introducir texto con diferentes formatos.
Aparecen como formatos predefinidos Título, Encabezado y Normal. Además, sobre
estos formatos podemos seleccionar texto en negrita, cursiva o subrayado. También
podemos utilizar listas con viñetas o enumeradas.

Ecuaciones

Los archivos Live Script permiten la introducción de ecuaciones, tanto en formato nor-
mal como en formato LATEX. Para el formato normal, aparece un editor de ecuaciones
similar al de otros programas como Microsoft Word.

Código

La introducción de código es otra de las grandes ventajas de este tipo de archivos.


Localmente se convierte en una consola de Matlab sobre la que ejecutar instrucciones
y visualizar las salidas, tanto de operaciones como de gráficos.

Una vez introducido el código, para poder ejecutar la salida es necesario pulsar el bo-
tón Run.

Si lo que queremos es ejecutar una parte del archivo Live Script, deberemos generar
una sección con dicha parte del código. Para ello, introduciremos un Section Break
antes y después de esas líneas de código, y pulsaremos Run Section.

Ejemplo 31.
En el archivo adjunto puedes encontrar un archivo Live Script que obtiene las
raíces de diferentes polinomios utilizando el comando roots.

Métodos Numéricos Aplicados I


35
Tema 1. Ideas clave
T01Raices.mlx

� Accede al vídeo: Archivos Live Script

Métodos Numéricos Aplicados I


36
Tema 1. Ideas clave

También podría gustarte