Departamento de Matemática Aplicada y Métodos Informáticos 1
Universidad Politécnica de Madrid E.T.S.I. de Minas
ANÁLISIS NUMÉRICO INTRODUCCIÓN A MATLAB
Marzo, 201 1
Arturo Hidalgo López
Departamento de Matemática Aplicada y Métodos Informáticos 2
Universidad Politécnica de Madrid E.T.S.I. de Minas
ASPECTOS GENERALES
Para acceder al programa se hace clic sobre el icono:
Departamento de Matemática Aplicada y Métodos Informáticos 3
Universidad Politécnica de Madrid E.T.S.I. de Minas
Hacer click aquí para buscar el directorio de trabajo
Departamento de Matemática Aplicada y Métodos Informáticos 4
Universidad Politécnica de Madrid E.T.S.I. de Minas
Elegir el directorio de trabajo
Departamento de Matemática Aplicada y Métodos Informáticos 5
Universidad Politécnica de Madrid E.T.S.I. de Minas
Directorio actual
Command window
Historial de comandos
Departamento de Matemática Aplicada y Métodos Informáticos 6
Universidad Politécnica de Madrid E.T.S.I. de Minas
Asignación de un valor a una variable.
Si la línea termina en ; no escribe nada.
Distingue entre mayúsculas y minúsculas.
Departamento de Matemática Aplicada y Métodos Informáticos 7
Universidad Politécnica de Madrid E.T.S.I. de Minas
Operaciones aritméticas
Ejemplo: Realizar las siguientes operaciones en Command window.
a=5 b=3 a*(b+a)^8 b/a+3*sqrt(3*b)
Departamento de Matemática Aplicada y Métodos Informáticos 8
Universidad Politécnica de Madrid E.T.S.I. de Minas
Matrices
>> A=[1 -1 log10(2); 3 0 5; 8 9 -12] A = 1.0000 -1.0000 0.3010 3.0000 0 5.0000 8.0000 9.0000 -12.0000
Para referirnos a elementos de matrices: A(1,2)
Departamento de Matemática Aplicada y Métodos Informáticos 9
Universidad Politécnica de Madrid E.T.S.I. de Minas
Matrices Generación de algunas matrices particulares:
A=zeros(m,n) Produce una matriz con mxn elementos = 0
A=ones(m,n) Produce una matriz con mxn elementos = 1
A=M*ones(m,n) Produce una matriz con mxn elementos= M
A=rand(m,n) Produce una matriz aleatoria con elementos de valor inferior a la unidad.
A=eye(n) Produce la matriz unidad de dimensión nxn
Departamento de Matemática Aplicada y Métodos Informáticos 1 0
Universidad Politécnica de Madrid E.T.S.I. de Minas
Vectores
Vector fila: x=[1 4 5]
Vector columna: y=[1; 4; 5]
Si tratamos de sumar los vectores x+y aparece un mensaje de error al no coincidir las dimensiones. Para evitar este problema de puede sumar al “x” el traspuesto del “y”: x+y’
Departamento de Matemática Aplicada y Métodos Informáticos 1 1
Universidad Politécnica de Madrid E.T.S.I. de Minas
Operaciones con matrices y vectores
+ Suma - Resta * Multiplicación ‘ Transposición ^ Potenciación \ división-izquierda / división-derecha .* producto elemento a elemento ./ .\ división elemento a elemento .^ elevar a una potencia elemento a elemento
Departamento de Matemática Aplicada y Métodos Informáticos 1 2
Universidad Politécnica de Madrid E.T.S.I. de Minas
Operaciones con matrices y vectores
\ división-izquierda
Se aplica a la resolución de sistemas de ecuaciones
Ax=b x=inv(A)b
x=A\b
EJEMPLO:
Resolver el sistema: 2x+3y=5 x-y=-1
Nota: b debe ser un vector columna.
Departamento de Matemática Aplicada y Métodos Informáticos 1 3
Universidad Politécnica de Madrid E.T.S.I. de Minas
Operaciones con matrices y vectores
/ división-derecha
Se aplica a la resolución de sistemas de ecuaciones
yB=c y=c inv(B)
y=c/B
EJEMPLO:
Resolver el sistema: 2x+3y=5 x-y=-1
Departamento de Matemática Aplicada y Métodos Informáticos 1 4
Universidad Politécnica de Madrid E.T.S.I. de Minas
Operaciones con matrices y vectores
Para aplicar elemento a elemento los operadores matriciales *,^,\ y / se preceden de .
[1 2 3 4].^2
[3 -2 1; 4 3 5].* [1 2 -5; 0 4 4]
Departamento de Matemática Aplicada y Métodos Informáticos 1 5
Universidad Politécnica de Madrid E.T.S.I. de Minas
El operador “dos puntos” (: )
Sirve para definir vectores, por ejemplo:
z=1:10 Genera un vector que contiene los números naturales: 1, 2, 3, …, 10
y=1:2:10 Idem con salto 2
w=10:-1:1 Idem con salto -1
Departamento de Matemática Aplicada y Métodos Informáticos 1 6
Universidad Politécnica de Madrid E.T.S.I. de Minas
El operador “dos puntos” (: )
También se puede emplear para extraer parte de una matriz o vector:
Como ejemplo: 1) define una matriz aleatoria A(5,5), usando la instrucción: A=rand(5,5), 2) extrae los elementos (3,2), (3,3), (3,4): A(3,2:4) 3) extrae las columnas 3,2,1: A(:,3:-1:1)
Departamento de Matemática Aplicada y Métodos Informáticos 1 7
Universidad Politécnica de Madrid E.T.S.I. de Minas
Operadores de relación y lógicos
< menor que > mayor que <= menor o igual que >= mayor o igual que == igual a ~= distinto a
Operadores de relación:
Operadores lógicos:
& y | or xor(A,B) or exclusivo (vale 0 si A y B son ambos 0 ó 1 . En caso contrario vale 1 )
Departamento de Matemática Aplicada y Métodos Informáticos 1 8
Universidad Politécnica de Madrid E.T.S.I. de Minas
Cálculo simbólico Algunas operaciones simbólicas:
> syms x, f=sin(x)
> diff(f)
> int(f,’x’,0,pi)
> syms t s, g=cos(t+s) =f(x) sen(x)= +g(t,s) cos(t s)
df(x)dxπ
∫ f(x)dx0
∂∂
g(t,s)t
> diff(g,t)
∂∂
( )g(t,s)t
2
2> diff(g,t,2)
f( )5 > subs(f,x,5)
Para que x deje de ser simbólica: > clear x
Departamento de Matemática Aplicada y Métodos Informáticos 1 9
Universidad Politécnica de Madrid E.T.S.I. de Minas
Programación en Matlab (1 )
Condicionales:
if (condición 1) Sentencias 1 elseif (condición 2) Sentencias 2 elseif (condición 3) Sentencias 3 else Sentencias 4 end
Departamento de Matemática Aplicada y Métodos Informáticos 20
Universidad Politécnica de Madrid E.T.S.I. de Minas
Programación en Matlab (2)
Bucles:
for vc = vi : incr : vf Sentencias end
while Condición Sentencias end
Los “for” y los “if” pueden ir encajados unos dentro de otros (anidados).
for i = 1:m for j = 1:n Sentencias end end
Departamento de Matemática Aplicada y Métodos Informáticos 21
Universidad Politécnica de Madrid E.T.S.I. de Minas
Ejemplo Realiza un bucle que sume los 100 primeros números naturales y almacene en tres matrices A, B y C el último número sumado (1ª columna) y el valor de la suma acumulada (2ª columna), según el criterio siguiente:
Si 0 50suma≤ ≤ :A(k,1)i; A(k,2) suma
Si 51 75suma≤ ≤ :B(l,1)i; B(l,2) suma
(k=1,2,…)
(l=1,2,…)
(m=1,2,…) Si 76 suma≤ :C(m,1)i; C(m,2) suma
Departamento de Matemática Aplicada y Métodos Informáticos 22
Universidad Politécnica de Madrid E.T.S.I. de Minas
Ejercicios
1) Realiza un programa Matlab para sumar dos matrices A y B.
3) Realiza un programa Matlab para multiplicar dos matrices A y B.
4) Realiza un programa Matlab para realizar el producto escalar de dos vectores: u,v.
Departamento de Matemática Aplicada y Métodos Informáticos 23
Universidad Politécnica de Madrid E.T.S.I. de Minas
Programación en Matlab (3)
Llamada a funciones:
function [s1,s2,…,sn]=Nombre(e1,e2,…,en)
Vbles. de salida Vbles. de entrada
Definición de funciones:
[s1,s2,…,sn]=Nombre(e1,e2,…,en)
Departamento de Matemática Aplicada y Métodos Informáticos 24
Universidad Politécnica de Madrid E.T.S.I. de Minas
function[xn,u]= meflin1d(a,b,nelem,aa,ba,ga,ab,bb,gb,K,v,q,f)
(Datos constantes)
(Resultados) (Funciones dadas)
Departamento de Matemática Aplicada y Métodos Informáticos 25
Universidad Politécnica de Madrid E.T.S.I. de Minas
Líneas de comentarios (Comienzan con %)
Sentencia seguida de un comentario
Sentencias
Sentencia de apertura de los ficheros .M
Tipos de línea en los ficheros .M
Departamento de Matemática Aplicada y Métodos Informáticos 26
Universidad Politécnica de Madrid E.T.S.I. de Minas
Primeros pasos sobre gráficos (1 )
Comando “plot”:
Definamos el vector: x=1:10 Definamos los valores: u=x.^2
Departamento de Matemática Aplicada y Métodos Informáticos 27
Universidad Politécnica de Madrid E.T.S.I. de Minas
Departamento de Matemática Aplicada y Métodos Informáticos 28
Universidad Politécnica de Madrid E.T.S.I. de Minas
Primeros pasos sobre gráficos (2)
Comando “ezplot”: ezplot(‘sin(x)’)
-6 -4 -2 0 2 4 6
-1
-0.5
0
0.5
1
x
sin(x)
Departamento de Matemática Aplicada y Métodos Informáticos 29
Universidad Politécnica de Madrid E.T.S.I. de Minas