Top Banner
UNIDADES TECNOLÓGICAS DE SANTANDER DEPARTAMENTO DE CIENCIAS BÁSICAS Versión 1 2012 APUNTES DOCENTES PROFESOR: ESP. PEDRO ALBERTO ARIAS QUINTERO ASIGNATURA: CÁLCULO INTEGRAL
23

APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de.....

Feb 26, 2018

Download

Documents

HoàngMinh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 2: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 3: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 4: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 5: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 6: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 7: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 8: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 9: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 10: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 11: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 12: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 13: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 14: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 15: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 16: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 17: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 18: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 19: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 20: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 21: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 22: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

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

Page 23: APUNTES DOCENTES - · PDF fileLos métodos numéricos nos sirven para resolver ... aprenderemos a utilizar las órdenes básicas de MATLAB para ... evaluar funciones de una y dos

UNIDADES TECNOLOacuteGICAS DE SANTANDER

DEPARTAMENTO DE CIENCIAS BAacuteSICAS Versioacuten 1 ndash 2012