APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ......
Transcript of APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ......
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
APUNTES DOCENTES
PROFESOR ESP PEDRO ALBERTO ARIAS QUINTERO
ASIGNATURA CAacuteLCULO INTEGRAL
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Resumen Los meacutetodos numeacutericos nos sirven para resolver problemas que no puedan manejarse con los
meacutetodos analiacuteticos tradicionales o no sea sencillo aplicarlos Estos meacutetodos proporcionan una
sucesioacuten de valores que se aproxima a la solucioacuten del problema
Al resolver un problema siempre tendremos presente errores El error de redondeo el error inherente
y el error de truncamiento
El error de redondeo es praacutecticamente inevitable y puede invalidar por completo la solucioacuten de un
problema Puede minimizarse su efecto ya sea reduciendo de alguna manera eacutel numero de caacutelculos
a realizar oacute reformulando la solucioacuten de un problema de tal forma que se evite las operaciones
aritmeacuteticas que ocasionan mas error
La suposicioacuten comuacuten de que trabajamos con nuacutemeros reales al realizar caacutelculos no es cierta Puede
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Resumen Los meacutetodos numeacutericos nos sirven para resolver problemas que no puedan manejarse con los
meacutetodos analiacuteticos tradicionales o no sea sencillo aplicarlos Estos meacutetodos proporcionan una
sucesioacuten de valores que se aproxima a la solucioacuten del problema
Al resolver un problema siempre tendremos presente errores El error de redondeo el error inherente
y el error de truncamiento
El error de redondeo es praacutecticamente inevitable y puede invalidar por completo la solucioacuten de un
problema Puede minimizarse su efecto ya sea reduciendo de alguna manera eacutel numero de caacutelculos
a realizar oacute reformulando la solucioacuten de un problema de tal forma que se evite las operaciones
aritmeacuteticas que ocasionan mas error
La suposicioacuten comuacuten de que trabajamos con nuacutemeros reales al realizar caacutelculos no es cierta Puede
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Resumen Los meacutetodos numeacutericos nos sirven para resolver problemas que no puedan manejarse con los
meacutetodos analiacuteticos tradicionales o no sea sencillo aplicarlos Estos meacutetodos proporcionan una
sucesioacuten de valores que se aproxima a la solucioacuten del problema
Al resolver un problema siempre tendremos presente errores El error de redondeo el error inherente
y el error de truncamiento
El error de redondeo es praacutecticamente inevitable y puede invalidar por completo la solucioacuten de un
problema Puede minimizarse su efecto ya sea reduciendo de alguna manera eacutel numero de caacutelculos
a realizar oacute reformulando la solucioacuten de un problema de tal forma que se evite las operaciones
aritmeacuteticas que ocasionan mas error
La suposicioacuten comuacuten de que trabajamos con nuacutemeros reales al realizar caacutelculos no es cierta Puede
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Resumen Los meacutetodos numeacutericos nos sirven para resolver problemas que no puedan manejarse con los
meacutetodos analiacuteticos tradicionales o no sea sencillo aplicarlos Estos meacutetodos proporcionan una
sucesioacuten de valores que se aproxima a la solucioacuten del problema
Al resolver un problema siempre tendremos presente errores El error de redondeo el error inherente
y el error de truncamiento
El error de redondeo es praacutecticamente inevitable y puede invalidar por completo la solucioacuten de un
problema Puede minimizarse su efecto ya sea reduciendo de alguna manera eacutel numero de caacutelculos
a realizar oacute reformulando la solucioacuten de un problema de tal forma que se evite las operaciones
aritmeacuteticas que ocasionan mas error
La suposicioacuten comuacuten de que trabajamos con nuacutemeros reales al realizar caacutelculos no es cierta Puede
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Resumen Los meacutetodos numeacutericos nos sirven para resolver problemas que no puedan manejarse con los
meacutetodos analiacuteticos tradicionales o no sea sencillo aplicarlos Estos meacutetodos proporcionan una
sucesioacuten de valores que se aproxima a la solucioacuten del problema
Al resolver un problema siempre tendremos presente errores El error de redondeo el error inherente
y el error de truncamiento
El error de redondeo es praacutecticamente inevitable y puede invalidar por completo la solucioacuten de un
problema Puede minimizarse su efecto ya sea reduciendo de alguna manera eacutel numero de caacutelculos
a realizar oacute reformulando la solucioacuten de un problema de tal forma que se evite las operaciones
aritmeacuteticas que ocasionan mas error
La suposicioacuten comuacuten de que trabajamos con nuacutemeros reales al realizar caacutelculos no es cierta Puede
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Resumen Los meacutetodos numeacutericos nos sirven para resolver problemas que no puedan manejarse con los
meacutetodos analiacuteticos tradicionales o no sea sencillo aplicarlos Estos meacutetodos proporcionan una
sucesioacuten de valores que se aproxima a la solucioacuten del problema
Al resolver un problema siempre tendremos presente errores El error de redondeo el error inherente
y el error de truncamiento
El error de redondeo es praacutecticamente inevitable y puede invalidar por completo la solucioacuten de un
problema Puede minimizarse su efecto ya sea reduciendo de alguna manera eacutel numero de caacutelculos
a realizar oacute reformulando la solucioacuten de un problema de tal forma que se evite las operaciones
aritmeacuteticas que ocasionan mas error
La suposicioacuten comuacuten de que trabajamos con nuacutemeros reales al realizar caacutelculos no es cierta Puede
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Resumen Los meacutetodos numeacutericos nos sirven para resolver problemas que no puedan manejarse con los
meacutetodos analiacuteticos tradicionales o no sea sencillo aplicarlos Estos meacutetodos proporcionan una
sucesioacuten de valores que se aproxima a la solucioacuten del problema
Al resolver un problema siempre tendremos presente errores El error de redondeo el error inherente
y el error de truncamiento
El error de redondeo es praacutecticamente inevitable y puede invalidar por completo la solucioacuten de un
problema Puede minimizarse su efecto ya sea reduciendo de alguna manera eacutel numero de caacutelculos
a realizar oacute reformulando la solucioacuten de un problema de tal forma que se evite las operaciones
aritmeacuteticas que ocasionan mas error
La suposicioacuten comuacuten de que trabajamos con nuacutemeros reales al realizar caacutelculos no es cierta Puede
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Resumen Los meacutetodos numeacutericos nos sirven para resolver problemas que no puedan manejarse con los
meacutetodos analiacuteticos tradicionales o no sea sencillo aplicarlos Estos meacutetodos proporcionan una
sucesioacuten de valores que se aproxima a la solucioacuten del problema
Al resolver un problema siempre tendremos presente errores El error de redondeo el error inherente
y el error de truncamiento
El error de redondeo es praacutecticamente inevitable y puede invalidar por completo la solucioacuten de un
problema Puede minimizarse su efecto ya sea reduciendo de alguna manera eacutel numero de caacutelculos
a realizar oacute reformulando la solucioacuten de un problema de tal forma que se evite las operaciones
aritmeacuteticas que ocasionan mas error
La suposicioacuten comuacuten de que trabajamos con nuacutemeros reales al realizar caacutelculos no es cierta Puede
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Resumen Los meacutetodos numeacutericos nos sirven para resolver problemas que no puedan manejarse con los
meacutetodos analiacuteticos tradicionales o no sea sencillo aplicarlos Estos meacutetodos proporcionan una
sucesioacuten de valores que se aproxima a la solucioacuten del problema
Al resolver un problema siempre tendremos presente errores El error de redondeo el error inherente
y el error de truncamiento
El error de redondeo es praacutecticamente inevitable y puede invalidar por completo la solucioacuten de un
problema Puede minimizarse su efecto ya sea reduciendo de alguna manera eacutel numero de caacutelculos
a realizar oacute reformulando la solucioacuten de un problema de tal forma que se evite las operaciones
aritmeacuteticas que ocasionan mas error
La suposicioacuten comuacuten de que trabajamos con nuacutemeros reales al realizar caacutelculos no es cierta Puede
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
acarrearnos serias discrepancias entre valores teoacutericos y valores calculados
La precisioacuten y la exactitud no son sinoacutenimas Una nos indica que tan confiable es un valor y la otra
que tan cerca estamos de el
1 Error absoluto El error se define como la diferencia entre el valor real Vr y una
aproximacioacuten a este valor Va
e = Vr ndash Va
2 Error relativo El error relativo se define como el cociente del error entre el valor real Vr
(siacute )
3 Error porcentual El error porcentual es simplemente el error relativo expresado en por
ciento ()
Tambieacuten es usual emplear el valor absoluto en los paraacutemetros anteriores en cuyo caso se denominan
respectivamente error absoluto error relativo absoluto y error porcentual absoluto
4 Errores de redondeo
Los errores de redondeo se originan al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico
requieren y son debidos a la imposibilidad de tomar todas las cifras que resultan de operaciones
aritmeacuteticas como los productos y los cocientes teniendo que retener en cada operacioacuten el nuacutemero de
cifras que permita el instrumento de caacutelculo que se este utilizando Por ejemplo al calcular el valor
de tenemos que quedarnos solo con la mayor cantidad de cifras 3 que maneje nuestro
instrumento de calculo
Existen dos tipos de errores de redondeo
Error de redondeo inferior se desprecian los diacutegitos que no se pueden conservar dentro de la
memoria correspondiente
Error de redondeo superior este caso tiene dos alternativas seguacuten el signo del nuacutemero en
particular
- par nuacutemeros positivos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten de
memoria incrementa en una unidad si el primer diacutegito despreciado es mayor o igual a
5
- para nuacutemeros negativos el uacuteltimo diacutegito que se puede conservar en la localizacioacuten
de la memoria se reduce en una unidad si el primer diacutegito despreciado es mayor o
igual a 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
5 Error numeacuterico total
El error numeacuterico total se entiende como la suma de los errores de redondeo y truncamiento
introducidos en el caacutelculo
Mientras maacutes caacutelculos se tengan que realizar para obtener un resultado el error de redondeo se iraacute
incrementando Pero por otro lado el error de truncamiento se puede minimizar al incluir maacutes
teacuterminos en la ecuacioacuten disminuir el paso o proseguir la iteracioacuten (o sea mayor nuacutemero de caacutelculos
y seguramente mayor error de redondeo)
6 Errores de equivocacioacuten
Son los errores por negligencia o equivocacioacuten Las computadoras pueden dar nuacutemeros erroacuteneos por
su funcionamiento Actualmente las computadoras son muy exactas y el error es atribuido a los
hombres
Se pueden evitar con un buen conocimiento de los principios fundamentales y con la posesioacuten de
meacutetodos y el disentildeo de la solucioacuten del problema
Los errores humanos por negligencia son praacutecticamente inevitables pero se pueden minimizar
7 Cifras Significativas
El concepto de cifras significativas se ha desarrollado para designar formalmente la confiabilidad de
un valor numeacuterico El nuacutemero de cifras significativas es el nuacutemero de diacutegitos que se puede usar con
plena confianza Por ejemplo podemos calcular un nuacutemero irracional con varias cifras pero de ellas
no todas sobre todo las uacuteltimas pueden tomarse con plena confianza de que son correctas Por otro
lado los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar al punto
decimal Por ejemplo los siguientes nuacutemeros tienen todos 4 cifras significativas 000001985
00001985 0001985 1985 19851 Para asegurar que un cero nos represente una cifra significativa
es comuacuten emplear la notacioacuten cientiacutefica
8 Precisioacuten y exactitud
Los errores asociados con los caacutelculos y mediciones se pueden caracterizar observando su precisioacuten
y exactitud La mayoriacutea de la gente piensa que estos teacuterminos son sinoacutenimos pero no es asiacute La
precisioacuten se refiere al nuacutemero de cifras significativas que representan una cantidad La exactitud se
refiere al grado de aproximacioacuten que se tiene de un nuacutemero o de una medida al valor verdadero que
se supone representa es decir que tan cerca estamos del valor buscado
9 Tipos de redondeo
Al realizar los caacutelculos que todo meacutetodo numeacuterico o analiacutetico requiere debemos de redondear Para
redondear se emplea usualmente
Redondeo truncado
Redondeo simeacutetrico
10 Redondeo truncado
El redondeo truncado consiste en truncar el resultado de una operacioacuten al nuacutemero de cifras
significativas que se esteacuten utilizando Por ejemplo siacute redondeamos a 4 cifras significativas
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
tenemos 07777
11 Redondeo simeacutetrico
El redondeo simeacutetrico consiste en aumentar en uno la uacuteltima cifra retenida siacute la primera cifra
descartada esta entre 5 y 9 o dejarla igual siacute la primera cifra descartada esta entre 0 y 4 Por ejemplo
siacute redondeamos a 4 cifras significativas tenemos 07778
Por ejemplo En la praacutectica puede no ser asiacute Siacute Realizamos la suma empleando
uacutenicamente 4 cifras significativas y usamos ambos tipos de redondeo Se obtiene
03333+06666=09999 (Redondeo truncado)
03333+06667=1000 (Redondeo simeacutetrico)
USO DE MATLAB EN METODOS NUMERICOS
1 Vectores y Funciones En esta primera Praacutectica aprenderemos a utilizar las oacuterdenes baacutesicas de MATLAB para trabajar con
escalares vectores y matrices evaluar funciones de una y dos variables y representarlas
graacuteficamente En praacutecticas posteriores usaremos habitualmente MATLAB para efectuar los caacutelculos
MATLAB (MATrix LABoratory) es un programa orientado al caacutelculo con matrices al que se
reducen muchos de los algoritmos que resuelven problemas de Matemaacutetica Aplicada e Ingenieriacutea
MATLAB ofrece un entorno interactivo sencillo mediante una ventana (que llamaremos ventana de
comandos) en la que podemos introducir ordenes en modo texto y en la que aparecen los resultados
Los graacuteficos se muestran en ventanas independientes Cada ventana dispone de una barra de menuacutes
que controla su funcionalidad
Aprenderemos a asignar borrar guardar y recuperar variables utilizar las funciones incorporadas y
maacutes adelante a definir funciones nuevas
En MATLAB todas las instrucciones tienen que estar escritas en minuacutesculas de esa forma nos
evitaremos errores de ejecucioacuten
MATLAB opera directamente con nuacutemeros complejos y con nuacutemeros reales como caso
particular
Lo que distingue a MATLAB de otros sistemas de caacutelculo es su facilidad para trabajar con vectores
y matrices Las operaciones ordinarias suma producto potencia operan por defecto sobre matrices
sin maacutes restriccioacuten que la compatibilidad de tamantildeos en cada caso
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
11 Comandos Baacutesicos 111 Help Dir Pwd
Help nos da una lista de temas sobre los que hay informacioacuten de ayuda
Helpwin abre una ventana de ayuda que es uacutetil para consultar informacioacuten sobre oacuterdenes de
MATLAB sin interferir con la ventana principal help tema explica concisamente el tema elegido y
antildeade informacioacuten sobre temas relacionados
Ejemplo 1
La instruccioacuten clc borra la ventana de comandos esa informacioacuten la obtendraacutes al ejecutar help clc
12 Variables En MATLAB las variables se asignan de modo natural Basta escribir un nombre de variable a
continuacioacuten el signo igual y luego el valor que toma esa variable Para aceptar como siempre hay
que pulsar [Intro] Escribiendo soacutelo el nombre de una variable previamente asignada MATLAB
devuelve su valor
Los signos + minus y ^ denotan las operaciones aritmeacuteticas de suma resta multiplicacioacuten divisioacuten
y elevacioacuten a una potencia (de modo que resultan vaacutelidas para matrices como veremos maacutes
adelante) Si el resultado de una operacioacuten no es asignado a ninguna variable MATLAB lo asigna a
la variable del sistema ans
Al poner punto y coma no se muestra el resultado por pantalla Naturalmente la asignacioacuten de la
variable no resulta afectada
121 Who Whos
La orden who lista las variables definidas y con la orden whos obtenemos ademaacutes el tipo de variable
y su tamantildeo
Ejemplo 3
a = 3 b = 4 a
a + b
c = ans
who
whos
122 Variables especiales format
MATLAB utiliza ciertos nombres de variable para fines especiales como i o j que designan ambas a
la unidad imaginaria (i2 = j2 = ndash1) o pi para el nuacutemero π El nuacutemero e base de los logaritmos
neperianos no estaacute preasignado pero se obtiene faacutecilmente como exp(1)
La precisioacuten relativa en operaciones de coma flotante se llama eps El resultado de 10 en MATLAB
es Inf y el de 00 NaN 10 Infinito
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
00 Indeterminado
Podemos utilizar estos nombres de variable para almacenar otros valores prevaleciendo nuestra
asignacioacuten sobre el valor por defecto de MATLAB Por ejemplo si no utilizamos nuacutemeros
complejos no hay inconveniente en representar por i y j los iacutendices de fila y columna de una matriz
Igualmente podriacuteamos llamar eps a una cantidad a utilizar como criterio de convergencia pero en
general conviene evitar equiacutevocos empleando otros nombres de variable
Internamente MATLAB trabaja con mucha precisioacuten aunque por defecto muestra los resultados con
cuatro decimales La apariencia de los resultados se modifica por menuacute o con la orden format
format long aumenta el nuacutemero de decimales visibles
format short vuelve al estado inicial format rat aproxima el resultado por un cociente de enteros
pequentildeos Explora otras opciones con help format
piformat long pi
format rat pi
123 Cadenas De Caracteres
Podemos usar tambieacuten cadenas de caracteres para manejar texto en funciones de MATLAB Para
introducir una cadena basta escribir el texto entre comillas
Un texto sin comillas produce error porque MATLAB lo interpreta como un nombre de variable o
funcioacuten El mandato ischar nos dice si una expresioacuten es o no un caraacutecter (responde 1 si es verdadero
y 0 si es falso)
Ejemplo 4
a=Esto es una cadena
b=Esto no
c=3
ischar(a)
ischar(c)
13 Vectores 131 Edicioacuten de Vectores
Los vectores se utilizan entre otras cosas para representar Puntos del plano y del espacio
Puntos de un espacio n-dimensional
Magnitudes fiacutesicas
Filas o columnas de una matriz (recuerda la discusioacuten de sistemas de ecuaciones lineales)
Para introducir un vector en MATLAB escribimos sus componentes entre corchetes Separando las
componentes con comas o espacios obtenemos un vector fila
Separaacutendolas por punto y coma o por [Intro] obtenemos un vector columna
Ejemplo 5
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
u = [1 2 3] v = [123] Vectores fila
w = [123]
Para calcular la longitud de un vector se utiliza el mandato length ahora bien como MATLAB
trabaja siempre todas las variables como matrices tanto si son matrices como si son escalares como
si son vectores para obtener la dimensioacuten de cualquier variable podemos utilizar la funcioacuten size que
devuelve un vector de dos componentes que son el nuacutemero de filas y el nuacutemero de columnas de la
matriz
Ejemplo 6
u = [1 2 3] v = [123] Vectores fila
w = [123] raquo z=[1
raquo 2
raquo 3] Vectores columna
length(u)
length(w)
[fc]=size(u)
dimension=size(w)
132 Vectores Progresivos
Es muy frecuente tener que editar vectores con componentes equiespaciadas por ejemplo para
crear una tabla de valores de una funcioacuten
Con ahb creamos un vector de componentes que van de a hasta b y distan h cada una de la
siguiente
La orden linspace(abn) crea n teacuterminos en progresioacuten aritmeacutetica desde a hasta b
Ejemplo 7
x=0011
y=linspace(0111)
133 Suma y producto por un escalar
La suma de dos vectores del mismo tamantildeo se efectuacutea componente a componente y se obtiene con
MATLAB escribiendo directamente
raquo u + v
La orden sum(u) proporciona la suma de todas las componentes del vector u Para multiplicar un
vector u por un escalar a basta escribir raquo au
En ocasiones hay que multiplicar dos vectores elemento a elemento y eso MATLAB lo hace con la
versioacuten punto del producto uv Producto elemento a elemento
Si intentamos multiplicar por las buenas dos vectores del mismo tamantildeo nos da un
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
error pues MATLAB aplica el producto matricial y los tamantildeos no son coherentes
El producto matricial requiere que el primer factor tenga tantas columnas como filas tiene el
segundo Por ejemplo podemos multiplicar una fila por una columna del mismo nuacutemero de
elementos o viceversa
raquo uw Fila times Columna = Escalar
raquo wu Columna times Fila = Matriz de rango 1
Finalmente el producto de todas las componentes de un vector se obtiene con la funcioacuten prod
134 Producto escalar y vectorial de dos vectores
El producto escalar de dos vectores de la misma dimensioacuten se efectuacutea con dot y el producto
vectorial de dos vectores de longitud 3 con cross
Ejemplo 8
a = [1 2 3]
b = [4 5 6]
c = dot(ab)
d = cross(ab)
e = prod(a)
f = prod(b)
135 flipud fliplr
La transpuesta (conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es ctranspose
la transpuesta (no conjugada) de un vector (complejo) v es v su instruccioacuten equivalente es
transpose
Mediante fliplr volteamos un vector fila de izquierda a derecha y con flipud ponemos cabeza abajo
un vector columna
Ejemplo 9
z=[1 i 2-i]
v=z
w=z
136 Diferencias sumas y productos acumulados
La instruccioacuten diff aplicada a un vector X=[X(1) X(2) X(n)] realiza la diferencia entre sus
componentes de la siguiente forma [X(2)-X(1) X(3)-X(2) X(n)- X(n-1)]
Las instrucciones cumsum y cumprod efectuan respectivamente las suma y los productos
acumulados de un vector son interesantes para el estudio de sumatorios y productorios finitos
Ejemplo 10
a = 16
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
b = cumsum(a)
c = cumprod(a)
14 Matrices 141 Edicioacuten de Matrices
Por defecto MATLAB trabaja con matrices Esto supone la ventaja substancial de no tener que
declarar tipos de variable ni tamantildeos de fila o columnas para trabajar tanto con matrices de nuacutemeros
reales o complejos como con vectores o escalares que se consideran casos particulares de matrices
Las matrices se escriben por filas Los elementos de una fila se separan por comas y las distintas
filas por puntos y comas A = [1234]
Lo mismo que con vectores podemos tambieacuten separar los elementos de una fila con espacios y las
filas pulsando la tecla [Intro] raquo B = [-1 -2
-3 -4]
El elemento en la fila i y la columna j de la matriz A se denota por A(ij)
Modifica por ejemplo el elemento 21 de A raquo A(21) = 0
A(i) denota la fila i de la matriz A Anaacutelogamente A(j) es la columna j de A raquo A(2) A(1)
En ocasiones resulta coacutemodo construir una matriz a partir de bloques Con tal de que sus tamantildeos
sean coherentes basta escribir los bloques por filas como si se tratase de elementos individuales raquo M = [ABBA]
Para extraer una submatriz indicaremos las filas y columnas de que se compone raquo M41 = M(1324)
Las filas o columnas no tienen por que ser consecutivas raquo fil = [124] col = [134]
raquo M32 = M(filcol)
142 Matrices usuales
Ya hemos visto coacutemo se escriben las matrices MATLAB tiene varias funciones que facilitan la
edicioacuten de matrices de uso frecuente
eye(n) proporciona la matriz identidad de orden n
zeros(nm) inicializa una matriz m por n con todos los elementos nulos
ones hace lo mismo con elementos de valor 1
rand crea matrices con elementos aleatorios uniformemente distribuidos en el intervalo [01]
Ejemplo 11
M = eye(4)
N = zeros(3)
O = ones(2)
P = rand(32)
143 Operaciones con Matrices
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
Para sumar dos matrices del mismo tamantildeo se suma cada elemento de una con el elemento
correspondiente de la otra raquo A + B
El producto de matrices se hace multiplicando fila por columna y sumando los resultados
Comprueba que el elemento (11) de la matriz producto AB es raquo A(11)B(11)+A(12)B(21)
Observa que el producto de matrices NO es conmutativo raquo AB - BA
MATLAB interpreta AB como el producto de A por la inversa de B Prueba raquo AB Ainv(B) Ainv(A)
La no conmutatividad del producto justifica que inv(A)B se abrevie a AB
Asimismo la solucioacuten del sistema Ax=b que formalmente es x=Andash1b se obtiene en MATLAB con
Ab Bien entendido que la solucioacuten no se obtiene calculando la inversa
de A sino aplicando meacutetodos numeacutericamente maacutes eficientes (ver help slash )
Para multiplicar dos matrices elemento a elemento en lugar de filas por columnas usamos las
variantes punto de las operaciones correspondientes Comprueba la diferencia entre raquo AB AB A^-1 A^-1
Si A es una matriz real A es la transpuesta de A En el caso complejo A es la transpuesta
conjugada La transpuesta sin conjugar se obtiene con A
15 Funciones MATLAB conoce las funciones matemaacuteticas elementales
Trigonomeacutetricas seno coseno tangente cosecante secante y cotangente
Trigonomeacutetricas inversas arco seno arco coseno arco tangente
Exponencial y logaritmos neperiano decimal y en base 2
Hiperboacutelicas seno hiperboacutelico coseno hiperboacutelico tangente hiperboacutelica
Hiperboacutelicas inversas argumento seno hiperboacutelico coseno tangente
Raiacutez cuadrada parte entera valor absoluto
151 sqrt abs
La funcioacuten sqrt realiza la raiacutez cuadrada de un nuacutemero si este es negativo da como resultado un
complejo
La orden abs calcula el valor absoluto de un nuacutemero si este es complejo devuelve su moacutedulo
Ejemplo 12
sqrt(4)sqrt(-4)
abs(4)abs(-4)abs(3+4i)
152 exploglog10
Los mandatos exp log y log10 realizan respectivamente la exponencial el logaritmo neperiano y el
logaritmo decimal de un nuacutemero
Ejemplo 13
exp(1)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
log(ans)
log10(10)
153 sin cos tan atan atan2
Las funciones trigonomeacutetricas tienen el argumento en radianes aparte de estar el nombre en ingleacutes
Ejemplo 14
sin(pi2)
sin(90)
Cuidado en este ejemplo MATLAB daraacute un resultado para ambas ordenes pero solo la
primera es correcta pues su argumento de entrada es correcto ya que el aacutengulo esta en
radianes
La funcioacuten atan devuelve la arcotangente de un nuacutemero sin embargo la funcioacuten atan2 que en este
caso tiene dos argumentos de entrada devuelve la arcotangente teniendo en cuenta el cuadrante
Ejemplo 15
Si intentamos determinar el aacutengulo de un punto (xy) en el plano este viene dado por
arcotangente(yx) teniendo en cuenta el cuadrante para dar la respuesta correcta Los puntos (11) y
(-1-1) se obtendrian con el mismo valor de la arcotangente que si expresamos el resultado en
grados seria
atan(1)180pi ans = 45
luego considerando el cuadrante obtendriamos que los aacutengulos son respectivamente 45
y 225 (o ndash135) grados Ahora bien si utilizamos la instruccioacuten atan2(yx) el resultado se
obtiene directamente
atan2(11)180piatan2(-1-1)180pi ans = 45 ans = -135
154 sinh cosh tanh
Estas oacuterdenes representan a las funciones hiperboacutelicas recuerda que para nuacutemeros reales se definen
como
Ejemplo 16
sinh(1)(exp(1)-exp(-1))2
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
cosh(1)(exp(1)+exp(-1))2
tanh(1)sinh(1)cosh(1)
Una caracteriacutestica destacable de MATLAB es que evaluacutea una funcioacuten sobre todas
las componentes de un vector simultaacuteneamente lo cual es muy praacutectico
Ejemplo 17
x = -10011
y = tanh(x)
plot(xy)
Aparte de estas funciones MATLAB tiene definidas otras tantas menos conocidas
pero no menos uacutetiles tanto funciones elementales que puedes consultar su sintaxis
con help elfun Y otras funciones especiales disponibles con help specfun
16 Graacuteficas 161 Tipos de liacutenea colores y marcadores
En la siguiente tabla se muestran los tipos de color marcadores y tipos de liacutenea que admite la
instruccioacuten graacutefica plot Asiacute como el coacutedigo que los genera en el graacutefico
Ejemplo 18
x = -10011
y = sin(x)
plot(xym)
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
17 Ficheros de funcioacuten 171 Funcioacuten y=f(x)
La programacioacuten en MATLAB de efectuacutea mediante ficherosm Son simplemente ficheros de texto
que contienen oacuterdenes de MATLAB Su utilizacioacuten requiere Editar el fichero con el editor de MATLAB o con un editor ASCII
Guardarlo con extensioacuten m
Indicar a MATLAB doacutende estaacute el archivo con path(pathdireccioacuten)
Ejecutarlo escribiendo en la liacutenea de oacuterdenes el nombre de fichero y los paraacutemetros de entrada necesarios
Como ejemplo creamos un fichero para evaluar la llamada funcioacuten de Runge que utilizaremos maacutes
adelante en la teoriacutea de interpolaciones
Debemos escribir en el editor
function y=runge(x)
Funcioacuten de Runge
y=1(1+25x^2)
Despueacutes de grabarlo con el nombre rungem e indicar el path a Matlab podremos ejecutar llamadas
a la funcioacuten
Noacutetese que se han utilizado las operaciones con el punto delante esto es por si la entrada es un
vector o matriz efectuaraacute las operaciones indicadas para cada uno de los elementos
A su vez hay que fijarse que el nombre asignado a la funcioacuten es el mismo que el del archivo
que se graba en el disco tambieacuten es aconsejable que este no contenga signos ni acentos y si es
posible no supere 8 caracteres
Ejemplo 19
runge(0)
runge([-1 0 1])
El fichero rungem es un archivo de funcioacuten al incluir la palabra clave function A continuacioacuten es
obligatorio poner el nombre de funcioacuten
Notar que las primeras liacuteneas de comentario que escribimos inmediatamente despueacutes del
nombre de la funcioacuten son las que se obtienen con el help de matlab
help runge
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
El nombre de funcioacuten suele ir precedido de los argumentos de salida entre corchetes y seguido de
los nombres de los argumentos de entrada entre pareacutentesis Entre estos y el nombre de funcioacuten
aparece el signo igual
Consideremos la funcioacuten que da las coordenadas cartesianas de un punto a partir de su radio vector
y su aacutengulo respecto al eje OX
Que llamaremos por ejemplo cartpol en referencia al paso de polares a cartesianas la definiriacuteamos
de la siguiente forma
function [xy]=cartpol(rz)
Entradas rradio vector
y z aacutengulo respecto al eje OX
Salidas xy coordenadas cartesinas
x=rcos(z)
y=rsin(z)
Ejemplo 20
ro=ones(13)
zeta=[pi2 pi 3pi2]
[xy]=cartpol(rozeta)
help cartpol
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012
UNIDADES TECNOLOacuteGICAS DE SANTANDER
DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012