Presentado por:
Mera Carrasco, Junior Lino
Malhaber Montenegro, Miguel ´
Angel
Asesor:
Dr. Collantes Santisteban, Luis Jaime
UNPRG
2014
M´
etodos Num´
ericos para el
C´
alculo Cient´ıfico con Matlab
“PEDRO RUIZ GALLO”
FACULTAD DE CIENCIAS F´ISICAS Y MATEM ´ATICAS ESCUELA PROFESIONAL DE MATEM ´ATICA
“M´
etodos Num´
ericos para el C´
alculo
Cient´ıfico con Matlab”
TOMO 0
CONCEPTOS PREVIOS
Presentado por:
Mera Carrasco Junior Lino
Malhaber Montenegro Miguel Angel
Asesor:
Dr. Collantes Santisteban Luis Jaime
LAMBAYEQUE − PER ´U 2014
La presentaci´on de estos tomos tiene su origen en los Seminarios denominados FUN-DAMENTOS DE ECUACIONES NO LINEALES, INTERPOLACI ´ON, DIFEREN-CIACI ´ON E INTEGRACI ´ON NUM´ERICA PARA EL C ´ALCULO CIENTIFICO y C ´ALCULO CIENT´IFICO DE ECUACIONES NO LINEALES, INTERPOLACI ´ON, DIFERENCIACI ´ON E INTEGRACI ´ON NUM´ERICA CON MATLAB desarrollados en Diciembre del 2012 como investigaci´on de los cursos de Seminario de Matem´atica Pura y Aplicada de la carrera profesional de Matem´aticas de la Universidad Nacional Pedro Ruiz Gallo con el asesoramiento del Dr. Luis Jaime Collantes Santisteban, dichos trabajos enfocaban la parte te´orica y practica de algunos temas del C´alculo Cient´ıfico.
Estos tomos no son documentos comerciales, por el contrario decidimos trabajar para que se encuentre al alcance de todos, es bien sabido la dificultad que tienen estudiantes y profesionales de ingenier´ıa, ciencias medicas, ciencias econ´omicas entre otras para ide-alizar sus problemas y desarrollar un modelo matem´atico adecuado en algunos casos es dif´ıcil porque la aplicaci´on resulta excesivamente compleja o los m´etodos analiticos no se adecuan muy bien a sus resultados por ello es conveniente el uso de m´etodos num´ericos los cuales conducen a soluciones aproximadas pero m´as manejables y se puede dar uso a un ordenador provisto de un software adecuado, para nuestro caso Matlab.
M´etodos Num´ericos para el C´alculo Cient´ıfico con Matlab esta divido en 7 tomos:
TOMO 0 Conceptos Previos TOMO 1 Ecuaciones No Lineales TOMO 2 Interpolaci´on
TOMO 3 Diferenciaci´on e Integraci´on Num´erica TOMO 4 Ecuaciones Lineales
TOMO 5 Ecuaciones Diferenciales Ordinarias TOMO 6 Ecuaciones Diferenciales Parciales
y con ejemplos el uso y la programaci´on de Interfaces Graficas de Usuario (GUI) as´ı co-mo el cl´asico uso de los archivos “.m” y por supuesto la soluci´on “manual”.
Este TOMO denominado Conceptos Previos est´a dividido en tres cap´ıtulos:
En el primero revisaremos la teor´ıa de Matrices, nociones del C´alculo, Series de Taylor, An´alisis del Error y Criterios de Convergencia los cuales ser´an utilizados en los tomos siguientes.
En el segundo cap´ıtulo estudiaremos a Matlab desde su correcta instalaci´on hasta la definici´on de las funciones b´asicas que servir´an en nuestros GUIs.
Para concluir este tomo en el tercer cap´ıtulo explicamos los conceptos que se deben tener sobre las Interfaces Graficas y la elaboraci´on del modelo b´asico de nuestros GUIs.
”Por favor, soy Rodney McKay, dif´ıcil tarda unos segundos. Imposible, un par de min-utos. ”Dr. Rodney McKay - Stargate Atlantis
1. Preliminares 7
1.1. Matrices . . . 7
1.1.1. Matrices Cuadradas: Tipos especiales . . . 8
1.1.2. Operaciones con matrices . . . 9
1.1.3. Determinante . . . 9 1.1.4. Inversa . . . 11 1.2. Repaso de C´alculo . . . 12 1.3. Series de Taylor . . . 16 1.4. An´alisis de error . . . 19 1.4.1. Exactitud y precisi´on . . . 20 1.4.2. Tipos de errores . . . 21 1.5. Criterios de convergencia . . . 23 2. Matlab 25 2.1. ¿Qu´e es Matlab? . . . 25
2.2. Requisitos e Instalaci´on de Matlab . . . 27
2.3. Inicio con Matlab . . . 37
2.4. Operaciones con n´umeros reales . . . 37
2.5. Operaciones con n´umeros complejos . . . 38
2.6. Operaci´on simb´olica con n´umeros . . . 38
2.7. Variables num´ericas . . . 39
2.8. Variables simb´olicas . . . 39
2.9. Operaciones con infinitos . . . 39
2.10. Visualizaci´on de resultados . . . 40 5
2.11. Tipo de dato . . . 40
2.11.1. Datos num´ericos . . . 41
2.11.2. Cadena de Caracter . . . 50
2.11.3. Conversi´on de valores num´ericos a cadenas y viceversa, y entre diferentes bases . . . 55
2.12. An´alisis de error . . . 56
2.12.1. Punto flotante . . . 57
2.12.2. Tipos de errores . . . 57
2.13. Matrices y vectores . . . 61
2.13.1. Introducci´on y operaciones de matices num´ericas . . . 61
2.13.2. Submatrices num´ericas . . . 63
2.13.3. Introducci´on y operaciones de matrices simb´olicas . . . 63
2.13.4. Funciones matriciales . . . 64
2.14. Graficas . . . 66
2.14.1. Primeros Pasos . . . 66
2.14.2. Conveniencia de los ficheros m . . . 82
2.15. Definici´on de funciones . . . 85
2.15.1. Funciones de MATLAB . . . 85
2.15.2. Definici´on funciones propias . . . 86
3. Interfaz Gr´afica de Usuario 89 3.1. Conceptos Previos . . . 89
3.1.1. Iniciando una Interfaz Gr´afica GUI . . . 89
3.1.2. Tipos de control . . . 90
PRELIMINARES
1.1.
Matrices
Una matriz A de n × m es un arreglo rectangular de nm elementos aij, con i =
1, . . . , n, j = 1, . . . , m distribuidos en un orden de n filas y m columnas como se muestra a continuaci´on: A = a11 a12 a13 . . . a1m a21 a22 a23 . . . a2m ... ... ... ... an1 an2 an3 . . . anm (1.1)
A un conjunto de elementos horizontal se le conoce como filas y a uno vertical, columna. El primer sub´ındice designa el n´umero de fila y el segundo, el n´umero de columna. El elemento a11 se localiza en la esquina superior izquierda de A. La matriz A tiene n filas
y m columnas, por lo tanto, se dice que es de dimensi´on (n × m).
Las matrices con dimensi´on de uno en filas, n = 1, son vectores fila y el primer sub´ındice se puede eliminar:
y cuando la dimensi´on de columnas es uno, m = 1, se les llama vectores columna y el segundo sub´ındice se puede eliminar:
c = c1 c2 .. . cn
Al conjunto de elementos aii (sub´ındice igual) de una matriz se le conoce como diagonal
principal.
Las matrices cuadradas (n = m) son particularmente importantes en la soluci´on de sistemas de ecuaciones lineales. Para tales sistemas, el n´umero de ecuaciones (que cor-responde al n´umero de filas) y el n´umero de inc´ognitas (que corresponde al n´umero de columnas) tienen que ser iguales para que exista una posible soluci´on ´unica.
Definici´on 1.1.1. (Transpuesta) Sea A = [aij] una matriz de (n × m), entonces la
traspuesta de A, es la matriz de (m × n) obtenida intercambiando las filas por las columnas de A, es decir, AT = [aji]
Algunas propiedades Propiedad 1. (AT)T = A
Propiedad 2. (AB)T = BTAT
Propiedad 3. (A + B)T = AT + BT
Propiedad 4. det(A)−1 = det(A−1) Suponiendo que A−1 existe.
1.1.1.
Matrices Cuadradas: Tipos especiales
Una matriz sim´etrica es aquella en que aij = aji para todo i y j, es decir, AT = A.
Una matriz diagonal es una matriz cuyos elementos fuera de la diagonal principal son iguales a cero.
Una matriz identidad es una matriz diagonal donde todos los elementos de la diagonal principal son iguales a 1.
Una matriz triangular superior es una donde todos los elementos abajo de la diagonal principal son iguales a cero.
Una matriz triangular inferior es una donde todos los elementos arriba de la diagonal principal son iguales a cero.
1.1.2.
Operaciones con matrices
La adici´on algebraica de matrices se lleva acabo elemento a elemento y es conmutativa: cij = aij ± bij = bij ± aij
y asociativa: aij + (cij + bij) = (aij + cij) + bij
La multiplicaci´on de una matriz A por un escalar k se obtiene multiplicando cada elemento de A por k.
El producto de dos matrices es posible s´olo para tama˜nos compatibles, concretamente, si A es n × p y B es p × m, para alg´un entero positivo p. En tal caso C = AB es una matriz n × m cuyos elemntos son
cij = p
X
k=1
aikbkj, para i = 1, . . . , n, j = 1, . . . , m
el producto de matrices es asociativa (AB)C = A(BC) y distributiba A(B + C) = AB + AC, pero en general, la multiplicaci´on no es conmutativa AB 6= BA
A´un cuando el producto es posible, la divisi´on de matrices no es una operaci´on definida. Sin embargo, si una matriz A es cuadrada y no singular, existe una matriz A−1, llamada
la inversa de A: AA−1 = A−1A = I
Unos de los requisitos para que exista la inversa de una matriz es que sea no singular. Esta caracter´ıstica se basa en la obtenci´on del determinante de una matriz, |A|; si |A| = 0, la matriz es singular; si |A| 6= 0, la matriz es no singular.
1.1.3.
Determinante
Definici´on 1.1.2. El determinante viene a ser una funci´on que aplicada a una matriz cuadrada da un ´unico valor num´erico
| | : Mn×n → R( o C)
1. Si A = [a] es una matriz de 1 × 1, entonces det(A) = |A| = a. 2. Si A = a b c d ⇒ det(A) = |A| = ad − bc .
3. El menor Mij es el derminante de la submatriz de (n − 1) × (n − 1) de una matriz
A de (n × n) suprimiendo la i-´esima fila y la j-´esima columna. 4. El cofactor Aij asociado con Mij se define como Aij = (−1)i+jMij.
5. El determinante de una matriz cuadrada se define mediante la siguiente f´ormula recursiva (regla de Laplace):
det(A) = a11 si n = 1 n P j=1 ∆ijaij, para n > 1, ∀i = 1, . . . , n (1.3) donde ∆ij = (−1)i+jMij PROPIEDADES
Propiedad 1. Si cualquier fila o columna de A es el vector cero , entonces det(A) = 0. Propiedad 2. Si la i-´esima fila o la j-´esima columna de A se multiplican por una constante k, entonces det(A) se multiplica por k, es decir:
det(B) = a11 a12 . . . a1n a21 a22 . . . a2n ... ... ... kai1 kai2 . . . kain ... ... ... an1 an2 . . . ann = k a11 a12 . . . a1n a21 a22 . . . a2n ... ... ... ai1 ai2 . . . ain ... ... ... an1 an2 . . . ann = k|A| (1.4)
Propiedad 3. Si A, B y C son id´enticas excepto por la j-´esima columna y la j-´esima columna de C es la suma de la j-´esima columna de A y B. Entonces det(C) = det(A) + det(B).
Propiedad 4. Si se hace un intercambio de filas o columnas de A, entonces el determi-nante de esa nueva matriz es −|A|.
Propiedad 5. Si A tiene dos filas o columnas iguales , det(A) = 0.
entonces det(A) = 0.
Propiedad 7. Si un m´ultiplo de una fila (columna) de A se suma a otro fila (columna) de A, el determinante no cambiar´a.
Propiedad 8. det(A) = det(AT)
Propiedad 9. det(AB) = det(A)det(B)
1.1.4.
Inversa
La inversa de una matriz A, denominada A−1, calculada mediante cofactores: A−1 = adj(A)
|A| , donde adj(A) = |cofac(A)| T.
De esto podemos decir que la inversa de A existe si y s´olo si el determinante de A es no nulo . La ´ultima condici´on se satisface si y s´olo si los vectores columnas de A son linealmente independientes.
1.2.
Repaso de C´
alculo
Definici´on 1.2.1. Una ecuaci´on lineal con n variables x1, x2, . . . , xn es una igualdad
matem´atica que puede escribirse de la forma: a1x1+ a2x2+ . . . + anxn = b, donde ai se
conocen como coeficientes de la ecuaci´on y a b el t´ermino constante. Si b = 0 se llama ecuaci´on homog´enea.
Definici´on 1.2.2. Si f (α) = 0, α se llama cero de f o ra´ız de la ecuaci´on f (x) = 0. Un cero es simple si f′(α) 6= 0, y m´ultiple en caso contrario.
Todos los m´etodos n´umericos de resoluci´on de ecuaciones presentan dificultades cuando la ecuaci´on tiene ra´ıces multiples ya que todos ellos se basan en los cambios de signo de la funci´on y est´os son dif´ıcilmente detectables en un entorno de una ra´ız m´ultiple. Para funciones que son polinomios de grado n con coeficientes reales, es decir, tiene la forma pn(x) = a0+ a1x + a2x2+ . . . + anxn = n X k=0 akxk, ak∈ R, an 6= 0.
Teorema 1.2.1. (Fundamental del ´Algebra) Cualquier ecuaci´on algebraica
(Poli-nomio) con coeficientes reales o complejos, entonces existe al menos una raiz real o compleja tal que p(α) = 0.
Cuando en un polinomio su grado (n) es 1, tiene un unico cero α = −a0/a1, cuando
n = 2 tiene dos ceros α± = (−a1±pa21− 4a0a2)/(2a2), ¿Se podr´a encontrar soluci´on
por radicales para cualquier grado del polinomio ?.
Teorema 1.2.2. ( de Abel) ∀pn, n ≥ 5, aplicando ´unicamente un n´umero finito operaciones a los coeficientes del polinomio, no existe una f´ormula expl´ıcita para calcular todos los ceros de dicho polinomio.
Denotaremos por Pn el espacio de polinomios de grado menor o igual que n
pn(x) = n
X
k=0
akxk. (1.5)
Teorema 1.2.3. (Algoritmo de la divisi´on) Si p(x) y f (x) son polinomios en x y f (x) 6= 0 entonces se puede encontrar polinomios q(x) y r(x) tal que : p(x) = q(x)f(x)+ r(x), donde r(x) = 0 ´o grado(r(x)) <grado(f (x)).
Teorema 1.2.4. (Del Residuo) El estudio obtenido al dividir un polinomio p(x) por (x − α) es igual a p(α)
p(x) = (x − α)q(x) + r, evaluando en x = α, tenemos : p(α) = r.
Teorema 1.2.5. (del Factor) Cualquier ecuaci´on polinomial , tiene a lo m´as n ra´ıces
de α. Si α1 es una raiz : pn(x) = (x − α1)pn−1(x), si α2 es una raiz : pn−1(x) =
(x−α2)pn−2(x)...p1(x) = (x−αn) entonces pn(x) = (x−α1)(x−α2)(x−α3) . . . (x−αn).
Definici´on 1.2.3. Una funci´on f definida en un conjunto X de n´umeros reales tiene limite L en x0, denotado por l´ım
x→x0
f (x) = L. Si dado cualquier n´umero real ǫ > 0, existe un n´umero real δ > 0 talque |f(x) − L| < ǫ, siempre que x ∈ X y 0 < |x − x0| < δ.
Definici´on 1.2.4. Sea f una funci´on definida en un conjunto X de n´umeros reales y x0 ∈ X. Entonces f es continua en x0 si l´ım
x→x0
f (x) = f (x0).
La funci´on f es continua en el conjunto X si es continua en cada n´umero en X.
C(X) denota al conjunto de funciones que son continuas en X. Cuando X es un intervalo de la recta real, se omite los parentesis en esta notaci´on. Por ejemplo, el conjunto de todas las funciones continuas en el intervalo cerrado [a, b] se denota C[a, b]. El limite de una sucesi´on infinita de n´umeros reales o complejos se define de manera similar.
Definici´on 1.2.5. Sea {xn}∞n=1 una sucesi´on infinita de n´umeros reales o complejos. La
sucesi´on {xn}∞n=1 tiene el limite x (converge a x)si, para cualquier ǫ > 0, existe un entero
positivo N(ǫ) tal que |xn− x| < ǫ, siempre que n > N(ǫ) La notaci´on l´ımn→∞xn = x
significa que la sucesi´on {xn}∞n=1 converge a x.
Teorema 1.2.6. Si f es una funci´on definida en un conjunto X de n´umeros reales y
x0 ∈ X entonces las siguientes afirmaciones son equivalentes: a. f es continua en x0;
b. Si {xn}∞n=1 es cualquier sucesi´on en X que converge a x0, entonces l´ım
n→∞f (xn) = f (x0).
La derivada de f en x0es la pendiente de la recta tangente a la gr´afica de f en (x0, f (x0)).
Como se muestra en la figura 1.
Definici´on 1.2.6. Sea f una funci´on definida en un in-tervalo abierto que contiene a x0. La funci´on f es
deriv-able en x0 si f′(x0) = l´ım
x→x0
f(x)−f (x0)
x−x0 existe. El n´umero
f′(x
0) es la derivada de f en x0. Una funci´on que tiene
derivadas en cada n´umero de un conjunto X es derivable en X. y=f(x ) x f(x ) (x ,f(x )) f'(x ) 0 0 0 0 0 0 Figura 1.1:la derivada
Los siguientes teoremas son fundamentales en la deducci´on de m´etodos para la esti-maci´on del error.
Teorema 1.2.8. ( de Bolzano) Sea f ∈ C[a, b] tal que f(a)f(b) < 0 entonces existe c ∈ (a, b) tal que f(c) = 0. (Sea aplica en el m´etodo de bisecci´on)
Teorema 1.2.9 (Teorema de Rolle).
Suponga que f ∈ C[a, b] y que f es derivable en (a, b). Si f (a) = f (b). entonces existe un n´umero c en (a, b) tal que f′(c) = 0. (ver figura 2) b y=f(x) c a f(a)=f(b) f'(c)=0 Y X
Figura 1.2:Teorema de Rolle
Teorema 1.2.10. (Teorema del Valor medio) Si f ∈ C[a, b] y f es derivable en (a, b). Entonces existe un n´umero c en (a, b) tal que f′(c) = f(b)−f (a)
b−a . (ver figura 3)
pendiente f'(c)
Rectas paralelas
y=f(x)
a c b
Figura 1.3: Teorema del valor medio
El otro concepto b´asico del c´alculo que usaremos ampliamente es la Integral de Rieman. Definici´on 1.2.7. La integral de Riemann de la funci´on f en el intervalo [a, b] es el siguiente l´ımite, si ´este existe:
b R a f (x)dx = l´ım m´ax∆xi n P i=1
Teorema 1.2.11. (Teorema de los Val-ores extremos) Si f ∈ C[a, b], entonces
existen c1, c2 ∈ [a, b] tales que f(c1) ≤
f (x) ≤ f(c2) para toda x ∈ [a, b]. Adem´as, si f es derivable en (a, b), entonces los n´umeros c1 y c2 aparecen en los extremos de
[a, b], o bien donde se anula f′. (ver figura 4) y=f(x) c a 1 c2 b Y X
Figura 1.4: Teorema de los valores ex-tremos
x0, x1, . . . , xn, satisfacen a = x0 ≤ x1 ≤ . . . ≤ xn = b, y ∆xi = xi − xi−1 para toda
i = 1, 2, . . . , n y zi se elige de manera arbitraria en el intervalo [xi−1, xi]
Toda funci´on continua f en [a, b] es Rieman-integrable en [a, b]. Esto nos permite elegir, para fines de c´alculo, los puntos xi uniformemente distribuidos en [a, b], y para cada
i = 1, 2, . . . , n elegir zi = xi. En este caso, b Z a f (x)dx = l´ım n→∞ b − a n n X i=1 f (xi).
donde los n´umeros que aparecen en la figura 5. como xi son xi = a + i(b − a)/n.
a= x x x x x x b=x X Y
y=f(x)
0 1 2 i−1 i n−1 n
Figura 1.5:
En nuestro estudio del an´alisis num´erico necesitaremos otros dos resultados. El primero es una generalizaci´on del teorema del valor medio para integrales.
Teorema 1.2.12. (Teorema del valor medio ponderado para integrales)
de signo en [a, b]. Entonces existe un n´umero c en (a, b) tal que b Z a f (x)g(x)dx = f (c) Z b a g(x)dx
Cuando g(x) = 1, el teorema 1.2.12 es el del valor medio para integrales que proporciona el valor promedio de la funci´on f en el intervalo [a, b] como
f (c) = 1 b − a b Z a f (x)dx
El otro teorema que necesitamos y que normalmente no se presenta en un curso b´asico de c´alculo se deduce al aplicar de manera sucesiva el teorema de Rolle a f, f′, . . . , y, por
´
ultimo, a f(n−1)
Teorema 1.2.13. (Teorema generalizado de Rolle) Suponga que f ∈ C[a, b] en n
veces derivable en (a, b). Si f (x) se anula en los n + 1 n´umeros distintos x0, . . . , xn en
[a, b], entonces existe un n´umero c en (a, b) tal que fn(c) = 0
El siguiente teorema es el del valor intermedio, sirve para determinar si existe soluciones de ciertos problemas. Sin embargo, no proporciona un m´etodo eficaz para determinar tales soluciones.
Teorema 1.2.14. (Teorema del valor intermedio) Si f ∈ C[a, b] y L es cualquier
n´umero entre f (a) y f (b), entonces existe un n´umero c en (a, b) tal que f (c) = L
En la siguiente secci´on describiremos los polinomios de Taylor. ´Estos se usan amplia-mente en el an´alisis n´umerico.
1.3.
Series de Taylor
La Serie de Taylor (Polinomio de Taylor) es el medio m´as importante que se emplea para obtener modelos n´umericos y analizar los errores de truncamientto.
Teorema 1.3.1. (Teorema de Taylor) Supongamos que f ∈ Cn[a, b], que f(n+1) existe en [a, b] y x0 ∈ [a, b]. Para cada x ∈ [a, b], existe un n´umero ξ(x) entre x0 y x tal
que f (x) = Pn(x) + Rn(x), donde: Pn(x) = f (x0) + f′(x0)(x − x0) + f ′′(x0) 2! (x − x0)2+ . . . + f(n)(x0) n! (x − x0) n = = n P k=0 f(k)(x0) k! (x − x0) k y R n(x) = f n+1(ξ(x)) (n+1)! (x − x0) n+1
En este caso, Pn(x) es el n−´esimo polinomio de Taylor para f respecto a x0 y Rn(x) se
llama el t´ermino del residuo asociado a Pn(x) escrito en la forma de Lagrange, y no
es sino un error de truncamiento. J.L. Lagrange (1736-1813) fue uno de los grandes matem´aticos franceses de todos los tiempos que, como veremos, hizo trascendentales aportes en la Teor´ıa de Interpolaci´on. La serie infinita obtenida al tomar el limite de Pn(x) cuando n → ∞ es la serie de Taylor para f en torno a x0. En el caso x0 = 0, el
polinomio de Taylor suele llamarse polinomio de Maclaurin, y la serie de Taylor se nombra serie de Maclaurin.
El t´ermino error de truncamiento se refiere al error impl´ıcito al usar una suma truncada, o finita, para aproximar la suma de una serie infinita.
Ejemplo 1.3.1. Determinar (a) el segundo y (b) el tercer polinomio de Taylor para f (x) = cos x respecto a x0 = 0, y use estos polinomios para aproximar cos(0,01).
Como f ∈ Cn
(R), el teorema de Taylor se puede aplicar a cualquier n ≥ 0. Adem´as, f′(x) = − sen x, f′′(x) = − cos x, f′′′(x) = sen x y f(4)(x) = cos x, de modo que f (0) = 1,
f′(0) = 0, f′′(0) = −1, f′′′(0) = 0.
(a) Para n = 2 y x0 = 0, tenemos cos x = 1 − 12x2 + 16x3sen ξ(x), donde ξ(x) es un
n´umero entre 0 y x (ver figura 6). Para x = 0,001, el polinomio de Taylor y el T´ermino del residuo son
cos 0,01 = 1 −12(0,01)2+ 1
6(0,01)3sen ξ(x) = 0,99995 + 0,1¯6 × 10−6sen ξ(x), donde
0 < ξ(x) < 0,01. (la barra sobre el 6 en 0.16 se usa para indicar que este digito se repite de manera indefinida) Puesto que | sen ξ(x)| < 1 para toda x. tenemos | cos 0,01 − 0,99995| ≤ 0,1¯6 × 10−6, de modo que la aproximacion 0.99995 coincide
por lo menos con los primeros cinco digitos de cos 0,01, y 0,9999483 < 0,99995 − 1.¯6 × 10−6 ≤ cos 0,01 ≤ 0,99995 + 1.¯6 × 10−6 < 0,9999517.
La cota de error es mucho mayor que el error real. Esto se debe, en parte, a la pobre cota que usamos para | sen ξ(x)|. Se puede demostrar que para todo valor
Figura 1.6:
de x, tenemos | sen x| ≤ |x|. Como 0 ≤ ξ < 0,01, podr´ıamos usar el hecho de que | sen ξ(x)| ≤ 0,01 en la f´ormula para el error, lo que produce la cota 0,1¯6 × 10−6
(b) Como f′′′(0) = 0, el tecer polinomio de Taylor con t´ermino de residuo en torno a
x0 = 0 es cos x = 1 −12x2+ 241x4cos ¯ξ(x).
donde 0 < ¯ξ(x) < 0,01. El polinomio de aproximaci´on es el mismo, y la aproxi-maci´on a´un es 0.99995, pero ahora tenemos una mucha mejor garantia de precisi´on puesto que | cos ¯ξ(x)| ≤ 1 para toda x, tenemos |1
24x
4cos ¯ξ(x)| ≤ 1 24(0,01)
4(1) ≃
4,2 × 10−10.
De modo que | cos 0,01 − 0,99995| ≤ 4,2 × 10−10, y 0,99994999958 = 0,9995 − 4,2 ×
10−10 ≤ cos 0,01 ≤ 0,99995 + 4,2 × 10−10 = 0,99995000042.
En las dos primeras partes de este ejemplo se ilustran los dos objetivos del an´alisis num´erico. El primero es encontrar una aproximaci´on, que los polinomios de Taylor proporcionan en ambas partes. El segundo es determinar la precision de la aprox-imaci´on. En este caso, el tercer polinomio de taylor fue mucho m´as informativo que el segundo, aunque ambos dieron la misma aproximaci´on.
Definici´on 1.3.1. Una funci´on f : [a, b] → R, definida en un intervalo abierto [a, b], se llama anal´ıtica cuando, para cada a ∈ [a, b] existe un ε > 0 tal que la serie de Taylor (Pn en teorema 1.3.1) converge para f (x) desde que |x − x0| < ε
1.4.
An´
alisis de error
A lo largo del tiempo, los m´etodos num´ericos han sido desarrollados con el objeto de re-solver problemas matem´aticos cuya soluci´on es dif´ıcil o imposible de obtener por medio de los procedimientos tradicionales.
Las soluciones que ofrecen los m´etodos num´ericos son aproximaciones de los valores reales y, por tanto se tendr´a un cierto grado de error que ser´a conveniente determinar. Aunque la perfecci´on es una meta digna de alabarse es dif´ıcil si no imposible de alcan-zarse.
Las aproximaciones num´ericas pueden introducir errores la pregunta es ¿Qu´e error puede considerarse tolerable?.
El concepto de cifras o digitos significativos se ha desarrollado para designar for-malmente la contabilidad de un valor num´erico
Definici´on 1.4.1. El n´umero de cifras significativas es el numero de digitos, m´as un digito estimado que se pueda usar con confianza.
Ejemplo 1.4.1. Los ceros no siempre son cifras significativas ya que pueden usarse solo para ubicar el punto decimal.
Se puede decir que la aproximaci´on es aceptable siempre y cuando sea correcta hasta cuatro cifras significativas esto es, debe existir seguridad que las primeras cuatro cifras son correctas.
Aunque ciertas cantidades tales como π, o √7 representan n´umeros espec´ıficos, no se puede expresar exactamente con un numero finitos de digitos. Debido a que las computadoras personales solo representan aproximadamente diez cifras significativas (com´unmente varian entre 7 y 14) tales n´umeros jam´as se podr´an representar exac-tamente. A la omision del resto de cifras significativas se le conoce como error de redondeo. Los errores de redondeo y el uso de cifras significativas tienen mucha impor-tancia en la identificaci´on de exactitud y precisi´on.
1.4.1.
Exactitud y precisi´
on
Los errores asociados con los c´alculos se pueden caracterizar observando su precisi´on y exactitud.
La exactitud se refiere a la aproximaci´on de un n´umero al valor verdadero que se supone representa. La inexactitud ( conocida tambi´en como sesgo ) se define tambi´en como un alejamiento sistem´atico de la verdad. La precisi´on por otro lado se refiere a la magnitud del esparcimiento.
Usaremos el t´ermino de error para representar la inexactitud y la precision de las predic-ciones.
Los errores num´ericos se generan con el uso de aproximaciones para representar las op-eraciones y cantidades matem´aticas.
Para los tipos de errores, la relaci´on entre el resultado exacto o verdadero y el aproxi-mado esta dado por :
Valor verdadero = valor aproximado + error Reordenando la ecuaci´on , se encuentra que el error num´erico es
error= Valor verdadero - valor aproximado
Un defecto es que muchas veces no se toma en consideraci´on el orden de magnitud del valor que se esta probando . Por ejemplo, un error de un cent´ımetro es mucho mas sig-nificativo si se esta midiendo un remache que un puente.
Una manera de medir las magnitudes de las cantidades que se est´an evaluendo es nor-malizar el error respecto al valor verdadero, como en:
error relativo fraccional= error/ valor verdadero
1.4.2.
Tipos de errores
Supongamos que al hacer ciertos calculos numericos tengamos un numero de la forma : y = 0.d1d2. . . dkdk+1dk+2. . . × 10n y su aproxiamci´on se puede realizar por dos metodos
:
1. Error de truncamiento
Consiste simplemente en cortar los digitos dk+1dk+2. . . para obtener: y′ = 0.d1d2. . . dk×
10n.
Estos tipos de errores son evaluados con una formulaci´on matem´atica en la serie de Taylor.
2. Error de redondeo
Llamado redondeo, suma S × 10n−(k+1) a y y luego trunca el resultado para
obtener un n´umero de la forma y′ = 0.δ
1δ2. . . δk× 10n.
Si dk+1 ≤ S, sumamos 1 a dk para obtener f l(y); esto es , redondeamos hacia
arriba, si dk+1 < S, Simplemente truncamos todo excepto los primeros k digitos;
as´ı, redondeamos hacia abajo.
En la siguiente definici´on se describen dos m´etodos para medir errores de aproximaci´on. Definici´on 1.4.2. (Errores absoluto y relativo) Supongamos que el valor exacto de un dato es p y disponemos de un valor aproximado p∗.
Se denomina error absoluto de p∗ a la distancia que lo separa del valor exacto p,
es decir |p − p∗|.
Se denomina error relativo de p∗ al cociente entre el error absoluto y el objeto
evaluado, es decir, |p−pp∗|. En el caso p = 0 s´olo se utiliza el error absoluto.
Consideremos los errores absolutos y relativos al representar p por p∗ en el ejemplo
Ejemplo 1.4.2. a. Si p = 0,3000 × 101 y p∗ = 0,3100 × 101, el error absoluto es 0.1
y el error relativo es 0,333¯3 × 10−1
b. Si p = 0,3000 × 10−3 y p∗ = 0,3100 × 10−3, el error absoluto es 0,1 × 10−4 y el
error relativo es 0,333¯3 × 10−1.
c. Si p = 0,3000 × 104 y p∗ = 0,3100 × 104, el error absoluto es 0,1 × 103 y el error
relativo es de nuevo 0,333¯3 × 10−1
Este ejemplo se muestra el mismo error relativo, para una gran variedad de errores absolutos. Como una medida de la precisi´on, el error absoluto puede llevar a confusiones, en tanto que el error relativo es m´as significativo, pues toma en cuenta el tama˜no del valor.
La siguiente definicion utiliza el error relativo como una medida de las cifras significa-tivas de precisi´on para una aproximaci´on.
Definici´on 1.4.3. El n´umero p∗ aproxima a p con t cifras significativas si t es el mayor
entero no negativo para el cual
|p − p∗| |p| < 5 × 10 −t Ejemplo 1.4.3. 1.p = 3,141592, p∗ = 3,14 |p − p∗| |p| ≈ 0,000507 < 10−2 2 Luego p∗ aproxima a p con 3 cifras significativas
2. p = 106, p∗ = 999996,
|p − p∗|
|p| ≈ 0,000004 < 10−5
2 Luego p∗ aproxima a p con 6 cifras significativas
Definici´on 1.4.4. Si t es el mayor entero para el cual |p − p∗| < 10−t
2 se dice que p ∗
aproxima a p con t decimales
La perdida de precisi´on debida al error de redondeo se puede evitar a menudo mediante la reformulaci´on del problema, como se muestra en el siguiente ejemplo.
Ejemplo 1.4.4. La f´ormula cuadr´atica establece que las ra´ıces de ax2 + bx + c = 0, cuando a 6= 0, son x1 = −b + √ b2− 4ac 2a y x2 = −b −p√b2− 4ac 2a
Con aritmetica de redondeo a cuatro cifras, considere esta f´ormula aplicada a la ecuaci´on x2+ 62,10x + 1 = 0, cuyas ra´ıces son aproximadamente
x1 = −0,01610723 y x2 = −62,08390. tenemos:
f l(x1) = −62,10 + 62,06
2,000 =
−0,04000
2,000 = −0,02000. una mala aproximaci´on a x1 = −0,01611, con el error relativo grande
| − 0,01611 + 0,02000|
−0,01611 = 2,4 × 10
−1.
Por otro lado, el c´alculo de x2 es: f l(x2) = −62,10−62,062,000 = −124,22,000 = −62,10
Tiene el error relativo peque˜no |−62,08+62,10||−62,08| ≈ 3,2 × 10−4.
Para obtener una aproximaci´on m´as precisa con redondeo a cuatro cifras para x1, se
cambia la forma de la f´ormula cuadr´atica mediante la racionalizaci´on del numerador. x1 = −b + √ b2− 4ac 2a ( −b −√b2 − 4ac −b −√b2 − 4ac) = b2− (b2− 4ac) 2a(−b −√b2 − 4ac),
lo que se simplifica como una f´ormula cuadr´atica alternativa x1 = −2c
b +√b2 − 4ac
Al usarlo tenemos: f l(x1) = 62,10+62,06−2,000 = −2,000124,2 = −0,01610, con el peque˜no error
relativo 6,2 × 10−4.
1.5.
Criterios de convergencia
Los criterios de convergencia que se ver´an en este punto, son aplicables para todos los m´etodos que se estudian en el pr´oximo capitulo. Previamente se establece una toleracia ya sea para la variable x o para la funci´on f (x), dependiendo de los valores de las propiedades fisicas motivo de estudio, esto es, TOL1 y TOL2 .
Se calcula el error para la variable x, hasta que este sea menor que la tolerancia es decir Critero 1:
Abs(xk+1− xk) ≤ T OL1 (1.6)
Criterio 2:
Abs(f (x)) ≤ T OL2 (1.7) Si se cumple algunos de estos criterios se habr´a encontrado la soluci´on, de lo contrario, se contin´ua iterando de acuerdo al m´etodo seleccionado.
MATLAB
2.1.
¿Qu´
e es Matlab?
MATLABr es un lenguaje de alto nivel y un entorno interactivo para el c´alculo num´eri-co, la visualizaci´on y la programaci´on. Mediante MATLAB, es posible analizar datos, desarrollar algoritmos y crear modelos o aplicaciones. El lenguaje, las herramientas y las funciones matem´aticas incorporadas permiten explorar diversos enfoques y llegar a una soluci´on antes que con hojas de c´alculo o lenguajes de programaci´on tradicionales, como pueden ser C/C++ o JavaT M
MATLAB se puede utilizar en una gran variedad de aplicaciones, tales como proce-samiento de se˜nales y comunicaciones, procesamiento de imagen y v´ıdeo, sistemas de control, pruebas y medidas, finanzas computacionales y biolog´ıa computacional. M´as de un mill´on de ingenieros y cient´ıficos de la industria y la educaci´on utilizan MATLAB, el lenguaje del c´alculo t´ecnico.
En el C´alculo num´erico
MATLAB proporciona una serie de m´etodos de c´alculo num´erico para analizar datos, desarrollar algoritmos y crear modelos. El lenguaje de MATLAB incluye funciones matem´aticas que permiten las operaciones cient´ıficas y de ingenier´ıa habituales. Las funciones matem´aticas principales utilizan librer´ıas optimizadas por procesador a fin de permitir una ejecuci´on r´apida de los c´alculos de vectores y matrices.
Entre los m´etodos disponibles se encuentran: Interpolaci´on y regresi´on
Diferenciaci´on e integraci´on Sistemas lineales de ecuaciones An´alisis de Fourier
Valores propios y valores singulares
Ecuaciones diferenciales ordinarias (EDO) Matrices dispersas
Los productos complementarios de MATLAB proporcionan funciones para ´areas espe-cializadas tales como estad´ıstica, optimizaci´on, an´alisis de se˜nales y aprendizaje au-tom´atico.
2.2.
Requisitos e Instalaci´
on de Matlab
Visitando la p´agina de Mathworks empresa desarrolladora de Matlab cuya sede central est´a situada en Natick, Massachusetts, Estados Unidos. Nos ofrece la siguiente informa-ci´on acerca de los requisitos del sistema y el ordenador para la correcta instalainforma-ci´on de la version 2012b.
Si nuestro ordenador cumple los requisitos antes mecionados pasaremos a la instalaci´on de Matlab.
1. Ingresamos a la ubicaci´on de nuestro instalador y ejecutamos el archivo setup.exe o simplemente setup.
3. Acepte las condiciones seleccionando Yes y luego presione Next.
4. En este paso nos pide que ingresemos la clave del producto. Por ello seleccionare-mos I have the File Installation Key for my license
5. Ubicamos la primera clave que aparezca en nuestro instalador y la copiamos.
7. Seleccionamos Typical y luego presionamos Next.
9. Presionamos Install.
11. Una vez todo este correcto presionamos Next.
13. Seleccionamos la opcion Activate manually without the Internet y presion-amos Next.
14. Seleccionamos la opcion Provide the path to the license file y presionamos Browse....
15. Ubicamos la licencia en la carpeta crack de nuestro instalador y elegimos lic standalone y presionamos Select.
2.3.
Inicio con Matlab
Iniciaremos Matlab dando doble clic en el Icono de Matlab. Una vez alli nos aparecera una ventana divida en tres partes: Ventana del Directorio Actual (Current Folder), Ventana de Historia de Comandos (Command History) y la Ventana de Comandos (Command Window); es en ´esta ultima sobre la que empezaremos a digitar nuestras ordenes.
2.4.
Operaciones con n´
umeros reales
OPERACI ´ON EXPRESI ´ON Suma y resta >>1+2 >> 1241-870 Multiplicaci´on >>25.64*6 Divici´on >> 20/4 Potenciaci´on >> 2.5^6M´aximo com´un divisor >> gcd(124,48) M´ınimo com´un m´ultiplo >> lcm(20,5) Resto de una divisi´on entera >>rem(7,3)
2.5.
Operaciones con n´
umeros complejos
OPERACI ´ON EXPRESI ´ONSuma y resta >> (13+4*i)+2-i >> 2-3*i-(7+2*i) Multiplicaci´on >> (5+i)*(7+1.64*i) Dividido por >> (1-5*i)/(2*i) Divide a >> i\(3-9*i) Potenciaci´on >> (4+6*i)^2 >> (4+6*i)^i
2.6.
Operaci´
on simb´
olica con n´
umeros
OPERACI ´ON EXPRESI ´ONFactorizaci´on >> factor(2012)
Suma simb´olica >> sym(3+4*i)+5.34-2*i Resta simb´olica >> sym(340/56)-5/2 Multiplicaci´on simb´olica >> sym(1+2*i)*1/5 Divisi´on simb´olica >> sym(3647)/56 Potenciaci´on simb´olica >> sym(i)^2
Observaci´on 2.6.1. .
El comando sym convierte variables num´ericas en simb´olicas.
Hay que tener mucha precauci´on a la hora de mezclar n´umeros o variables num´eri-cas con simb´olinum´eri-cas. La mezcla no suele funcionar muy bien.
2.7.
Variables num´
ericas
DATOS DE UN CILINDROaltura=3
radio=1/2 Se puede operar con las variables. Por volumen=altura*pi*radio^2 defecto, pi es el numero π
area=(altura+radio)*2*pi*radio Se puede hacer varias operaciones a la c=altura/radio vez e incluso asignar valores a nuevas d=radio^(1/2) variables
radio=1, volumen
Cuando se reasigna un valor a una variable que ya existe, no se recalculan las variables definidas a partir de ella a no ser que se vuelva a calcular de nuevo su nuevo valor.
2.8.
Variables simb´
olicas
a=1234, b=sym(237) sym Convierte variables num´ericas en simbolicas bb=numeric(b) numeric realiza la operaci´on inversa a sym d=a+b
2.9.
Operaciones con infinitos
1/0 Infrepresenta el concepto tradicionalmenterepresentado por ∞ Inf+Inf
Inf-Inf NaN significa Not a Number Inf/Inf
0^Inf 3^Inf 1^Inf
2.10.
Visualizaci´
on de resultados
El punto y coma (;) al final de la orden hace que no se visualice el resultado. >> Altura=1/sqrt(3); sqrt realiza la ra´ız cuadrada
>> Altura S´olo se muestra una aproximaci´on con 4 cifras decimales >> format long, Altura Ahora se pueden ver hasta 15 cifras decimales
>> format short e, Altura Formato exponencial corto >> format long e, Altura Formato exponencial largo
>> vpa(pi,20) Muestra el n´umero pi con 19 cifras decimales Observaci´on 2.10.1. Matlab distingue entre may´usculas y minusculas Altura, altura, ALTuRa son tres variables distintas
2.11.
Tipo de dato
A continuaci´on se presenta un organigrama de los diferentes tipos de datos con los cuales trabaja MATLAB.
2.11.1.
Datos num´
ericos
N´umeros enteros
Tipo de Dato Rango de valores Funci´on de conversi´on Entero con signo de 8 bits -2^7 a 2^7-1 int8
Entero con signo de 16 bits -2^15 a 2^15-1 int16 Entero con signo de 32 bits -2^31 a 2^31-1 int32 Entero con signo de 64 bits -2^63 a 2^31-1 int64 Entero sin signo de 8 bits 0 a 2^8-1 int8 Entero sin signo de 16 bits 0 a 2^16-1 int16 Entero sin signo de 32 bits 0 a 2^32-1 int32 Entero sin signo de 64 bits 0 a 2^32-1 int64 Ejemplo 2.11.1. >> x=int16(32767)
x= 32767
luego podemos verificar el tipo de dato de x mediante: >> whos x
Name size bytes class Attributes x 1x1 2 int16
o sino mediante
>> tipo x= class(x) tipox =
int 16
si desea verificar que x es un tipo de dato entero se utiliza la funci´on isinteger. >> isinteger (x)
ans = 1
Para convertir otro tipo de dato , como una cadena, a entero, puede utilizar las funciones de conversi´on.
>> str= ’SEMINARIO’
Luego aplicamos la funci´on de conversi´ona entero int8 que convierte cada uno de los elementos de str a entero con signo de 8 bits, es decir, obtenemos su respectivo c´odigo ASCII.
>> int8(str)
ans = 83 69 77 73 78 65 82 73 79 N´umeros decimales
Matlab representa n´umeros decimales en formato simple y doble precisi´on. Por defecto, es de doble precisi´on, pero se puede convertir cualquier n´umero a simple con una unci´on de conversi´on.
a) Doble precisi´on.
Valores m´aximos y m´ınimos de doble precisi´on
Las funciones realmax y realmin retornan los valores m´aximos y m´ınimos que pueden representarse con el tipo double.
>> realmax ans= 1.7977e+308 >> -realmax ans= -1.7977e+308 >> realmin ans= 2.2251e-308 >> -realmin ans= -2.2251e-308
Creaci´on de datos de doble precisi´on
Como el tipo num´erico por defecto de Matlab es doble precisi´on, entonces s´olo se requiere una simple sentencia de comandos:
>> x= 18.04 ; >> whos x
Name stize Bytes Class Attributes x 1x1 8 double
para verificar que un tipo de dato es decimal (o punto flotante) se hace uso de la funci´on isfloat.
>> isfloat(x) ans =
1
Conversi´on a doble precisi´on
Se pueden convertir otros datos num´ericos, caracteres o cadenas, y datos l´ogicos a doble precisi´on usando la funci´on Matlab double.
>> y=int64(-961258) ; %crea un entero de 64 bits >> x=double(y) % convierte a doubl´e
x= -961258 >> whos x
Name Size Bytes Class Attributes
b) Simple precisi´on
Valores m´aximos y m´ınimos de doble precisi´on
Las funciones realmax y realmin cuando se llaman con el argumento ’single’ retor-nan los valores m’aximos y m´ınimos que pueden representarse con el tipo single. >> realmax(’single’) ans= 3.4028e+038 >> -realmax(’single’) ans= -3.4028e+038 >> realmin(’single’) ans= 1.1755e-038 >> -realmin(’single’) ans= -1.755e-038
Los n´umeros m´as grandes que realmax(’single’) o menores que realmin(’single’) se les asigna valores de infinito positivo (inf) y negativo (-inf) respectivamente.
Creaci´on de datos de simple precisi´on
Como el tipo de dato num´erico por defecto de Matlab es doble precisi´on, entonces se requiere una funci´on de conversi´on single para crear un n´umero de simple pre-cisi´on.
>> x= single(13.04); % crea un tipo de dato decimal single >> whos x
Name size Bytes Class Attributes x 1x1 4 single
>> isfloat(x) ans= 1
Conversi´on a simple precisi´on
Se pueden convertir otros datos num´ericos, caracteres o cadenas, y datos l´ogicos a doble precisi´on usando la funci´on Matlab single.
>> y=int64(-270819080303); %crea un entero de 64 bits >> x=single(y) %convertir a single
x= -2.7082e+011 >> whos x
Name size Bytes Class Attributes
x 1x1 4 single
N´umeros complejos
Los n´umeros complejos consisten de 2 partes separadas: una parte real y otra parte imaginaria. La base imaginaria es la ra´ız cuadrada de -1. Este es representado en MAT-LAB por cualquiera de las 2 letras i o j.
Creaci´on de N´umeros Complejos
Existen 2 formas para la creaci´on de un n´umero complejo:
La primera es asignar a una variable un valor complejo de la forma a + bi. >> x= 3+2i
x= 3.00000+ 2.0000i
La segunda es utilizando la funci´on complex. Se comninan 2 entradas, la primera es real y la segunda imaginaria. >> x=[10 20; 6 12] x= 10 20 6 12 >> y= [13 7; 2 8]
y= 13 7 2 8 >> z=complex(x,y) z= 10.0000+ 13.0000i 20.0000+ 7.0000i 6.0000 + 2.0000i 12.000 + 8.0000i
Para obtener la parte real e imaginaria utilizando la funci´on real e imag, respectivamente: >> zr=real(z) zr= 10 20 6 12 >> zi= imag(z) zi= 13 7 2 8 Valores especiales
Matlab usa los valores especiales inf, -inf y NaN para representar valores que son infini-tamente positivos, negtaivos y aquellos que no son un n´umero respectivamente.
Casos en que se retoma el valor infinito >> x=1/0
warning: Divide by zero x= Inf
>> x=log(0)
warning : log of zero. x= -Inf
x=Inf
>> x=exp(1000) x= Inf
Casos en que se retoma el valor NaN
MATLAB representa valores que no son n´umeros relaes ni complejos con un valor es-pecial NaN (Not a Number). Expresiones como 0/0 y Inf/Inf dan como resultado NaN, por ejemplo
pi N´umero π = 3,01415926 exp(1) 0 a 2^16-1
Inf 0 a 2^32-1 NaN 0 a 2^32-1
Comandos que identifican el tipo de dato num´erico
Para identificar el tipo de dato de una variable x se puede usar cualquiera de los sigu-ientes comandos:
COMANDO OPERACI ´ON
whos x visualiza el tipo de dato x
isnumeric(x) Determina si x es un tipo de dato num´erico isa(x,’integer’) Determina si x es del tipo num´erico especificado isa(x,’uint 64’) Determina si x es del tipo num´erico especificado isa(x,’float’) Determina si x es del tipo num´erico especificado isa(x,’double’) Determinar si x es del tipo num´erico especificado isa(x,’single’) Determinar si x es del tipo num´erico especificado isreal(x) Determina si x es n´umero real o complejo
isnan(x) Determina si x no es un n´umero (NAN) isinf(x) Determina si x es infinito
isfinite(x) Determina si x es finito Formato de valores num´ericas
A continuaci´on se presenta los diferentes formatos que usa MATLAB en la visualizaci´on de sus variables.
TIPO RESULTADO
short Escala el formato a 5 digitos.
short e Escala el formato a 5 digitos. A˜nade la e. short g El m´as conveniente de los short.
long Escala el formato a 5 digitos.
long e Escala el formato a 15 digitos. A˜nade la e. long g El mas conveniente de los long.
rat En forma de fracc´ıon.
hex Hexadecimal (representaci´on en base 16) bank Establece dos cifras decimales.
compact Suprime el exceso de l´ıneas.
loose A˜nade mas l´ıneas para que la salida sea mas legible.
La funci´on format cambia la visualizaci´on de los valores num´ericos mostrados en la ventana de comandos.
Esta configuraci´on s´olo afectan la forma en la que los n´umeros son visualizados, no como MATLAB los calcula.
Format, por si s´olo, cambia al formato por defecto, que es short. Format tipo, cambia al formato especificado por tipo.
La funci´on get(0,’format’) verifica el formato actual. >> x=[17/6 25.786543e-3]; >> format short >> x x = 2.8333 0.0258 >> format short e >> x x = 2.8333e+000 2.5787e-002 >> format short g >> x x = 2.8333 0.025787
>> format long >> x x = 2.833333333333334 0.025786543000000 >> format long e >> x x = 2.833333333333334e+000 2.578654300000000e-002 >> format long g >> x x = 2.83333333333333 0.025786543 >> format bank >> x x = 2.83 0.03 >> format rat >> x x = 17/6 259/10044 >> format compact >> x x = 17/6 259/10044 >> format loose >> x x = 17/6 259/10044
2.11.2.
Cadena de Caracter
En MATLAB, cadena se refiere a un arreglo de caracteres UNICODE. La cadena es un vector, donde cada elemento de este vector es un car´acter.
Creaci´on de una cadena de caracteres (Arreglo de caracteres de 1 dimensi´on) Se especifica el dato car´acter ubicado a los caracteres dentro de un par de comillas simples.
>> curso=’seminario de aplicada ’ curso =
seminario de aplicada >> whos curso
Name Size Bytes Class Attributes curso 1x22 44 char
como se puede apreciar cada caracter usa 2 bytes en su almacenamiento interno. las funciones class e ischar muestran la identidad de curso como un arreglo de carac-terres. >> class(curso) ans = char >> ischar(curso) ans = 1
La funci´on de concatenaci´on atrcat o el operador de concatenaci´on MATLAB[], per-miten unir 2 o mas caracteres generando un nuevo arreglo de caracteres.
>> curco= ’seminario de aplicada’; >> universidad=’UNPRG’;
>> strcat(universidad,’,’,curso) ans =
UNPRG,seminario de aplicada
Para concatenar cadenas verticalmente use strvcat.
Creaci´on de arreglos de caracteres de 2 dimensiones
Cuando creamos arreglo de caracteres bidimensionales, debemos estar seguros que cada fila tenga la misma longitud.
La siguiente matriz tiene 3 cadenas todas de 10 caracteres cada una. >> provincias=[’1Chiclayo1’;’Lambayeque’;’1Fere~nafe1’] provincias =
1Chiclayo1 Lambayeque 1Fere~nafe1
cuando creamos arreglos de caracteres desde cadenas de diferentes tama˜nos, se debe rellenar las cadenas m´as cortas con espacios en blanco para forzar a que filas sean de la misma longitud.
>> provincias=[’Chiclayo ’;’Lambayeque’;’Fere~nafe ’] provincias =
Chiclayo Lambayeque Fere~nafe
Una manera simple para crear cadenas de arreglos es usando la funci´on char. Char automaticamente rellena todas las cadenas a la longitud de la cadena de entrada mas larga.
>> provincias=char(’Chiclayo’;’Lambayeque’;’Fere~nafe’) provincias =
Chiclayo Lambayeque Fere~nafe
La funci´on deblank permite extraer una o m´as cadenas de un arreglo. >> pronvicia_mas_comercial=deblank(provincias(1,:))
pronvicia_mas_comercial =
Chiclayo
La funci´on deblank tambien permite remover los espacios en blanco. >> A{1,1}=’seminario ’; >> A{1,2}=’aplicada ’; >> A=deblank(A) A = ’seminario’ ’aplicada’ Comparaci´on de cadenas
Se puede compara cadenas utilizando funciones u operadores. a) Comparaci´on con funciones
FUNCI ´ON DESCRIPCI ´ON
strcmp Determina si 2 cadenas son id´enticas. Reconoce may´usculas y min´usculas. strncmp Determina si los primeros n caracteres de 2 cadenas
son identicos. Reconoce may´usc. y min´usc.
strcmpi Determina si 2 cadenas son id´enticas. No diferencia entre may´usculas y min´usculas.
strncmpi Dermina si los primeros n caracteres de 2 cadenas son id´enticos. No diferencia entre may´usculas y min´usculas.
Las siguientes cadenas str1 y str2 no son id´enticas, por lo que su comparaci´on devuelve el valor l´ogico 0 (falso)
>> str1=’hola’; >> str2=’holla’;
>> C=strcmp(str1,str2) C= 0
Los primeros tres caracteres de str1 y str2 son id´enticos( valor l´ogico 1= verdad). >> C=strncmp(str1,str2,1) C= 1 >> C=strncmp(str1,str2,2) C= 1 >> C=strncmp(str1,str2,3) C= 1 >> C=strncmp(str1,str2,4) C= 0
b) Comparaci´on utilizando operadores
Se puede utilizar los operadores relacionales de MATLAB en arreglos de caracteres, siempre que los arreglos que se est´an comparando tengan iguales dimensiones, o uno sea escalar.
Todos los operadores relacionales ( >,>=,<,<=,==,~=) comparan los valores de sus respectivos caracteres.
>> A=’Manuel’; >> B=’Miguel’; >> A==B
ans= 1 0 0 1 1 1
Comandos que identifican a un car´acter isletter determina si un car´acter es una letra.
>> curso=’seminario MM635’; >> A=isletter(curso)
A= 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
isspace, determina si un car´acter escun espacio en blanco (blanco, tab o nueva linea)
Comparaci´on que busca y reemplazan caracteres strrep permite cambiar los caracteres de una cadena. >> fecha=’miercoles 27/07/1821’;
>>correccionfecha=strrep(fecha,’27/07/1821’,’28/07/1821’) correccionfecha= miercoles 28/07/1821
Findstr devuelve la posici´on inicial de una subcadena contenida a lo largo de la cadena.
>> posicion=findstr(’28’,correccionfecha) posicion = 11
strmatch busca a trav´es de las filas de un arreglo de cadenas para encontrar las cadenas que empiecen con la serie de caracteres dada. Esta funci´on retorna los ´ındices de la filas que empiecen con estos caracteres.
Evaluaci´on de cadenas: Funci´on eval
eval: Eval´ua una cadena que contiene una expresi´on MATLAB, sentencia o llamada a funci´on. Su sintaxis es : eval(’string’).
>> x=[1:5];
>> y=eval(’(x+2)./x’) y =
3 2 5/3 3/2 7/5
>> z=eval(cadena1) z =
1 0.0000 -1 -0.0000 1
>> whos x y cadena1
Name Size Bytes Class Attributes cadena1 1x13 26 char
x 1x5 40 double
y 1x5 40 double
2.11.3.
Conversi´
on de valores num´
ericos a cadenas y viceversa,
y entre diferentes bases
COMANDO OPERACI ´ON
chard Convierte un entero positivo a su equivalente car´acter ( c´odigo UNICODE). Trunca cualquier parte fraccional int2str Convierte un entero positivo o negativo a un tipo car´acter. num2str Convierte un tipo num´erico a un tipo car´acter de precisi´on y
formato espec´ıfico
mat2str Convierte un tipo num´erico a un tipo car´acter de una
determinada precisi´on, retornando una cadena MATLAB que puede ser evaluada
dec2hex Convierte un entero positivo a un tipo car´acter de base hexadecimal
dec2bin Convierte un entero positivo a un tipo car´acter de base binaria
dec2base Convierte un entero positivo aa un tipo car´acter de cualquier base 2 a 36.
Conversi´on de cadenas a valores numericos COMANDO OPERACI ´ON
uintN Convierte un car´acter a un c´odigo entero que representa el car´acter str2num Convierte un tipo car´acter a un tipo num´erico
str2double Similar a strnum, pero ofrece una mayor calidad o trabaja con arreglos celdas de cadenas.
hex2num Convierte un tipo num´erico a un tipo car´acter de precisi´on espec´ıfica, retornando una cadena que MATLAB pueda evaluar.
hex2dec Convierte un tipo caracter de base hexadecimal a un entero positivo. bin2dec Convierte un entero positivo a un tipo car´acter de base binaria. base2dec Convierte un entero positivo a un tipo car´acter de cualquier base
desde 2 hasta 36.
2.12.
An´
alisis de error
Cualquier problema num´erico se resuelve a tr´avez de un algoritmo que nos proporciona unos resultados a partir de unos datos iniciales. Es decir, se trata de realizar un proceso del tipo: Datos ⇒ Algoritmo ⇒ Resultados
En nuestro mundo matem´atico permitimos la existencia de n´umeros con una canti-dad infinita de cifras. En este mundo define a √3 como el ´unico n´umero positivo tal que al multiplicarse por el mismo produce el entero 3. Sin embargo, en el mundo de las computadoras, cada n´umero representable tiene s´olo un n´umero finito de cifras significa que s´olo los n´umeros racionales se pueden representar con exactitud. Puesto que √3 no es racional, se da una representacion aproximada, una cuyo cuadrado no ser´a 3, pero si lo bastante cercano a 3 como para ser aceptable.
Existen dos causa principales de errores en los c´alculos n´umericos. La primera es el error de truncamiento y la segunda es el error de redondeo. El error de truncamiento se debe a las aproximaciones utilizadas en la f´ormula matem´atica.
Los errores de redondeo surgen al usar una calculadora o computadora para c´alculos con n´umeros reales, pues la aritm´etica de la m´aquina s´olo utiliza n´umeros con una cantidad
finita de cifras, de modo que los c´alculos se realizan ´unicamente con representaciones aproximadas de los n´umeros verdaderos.
2.12.1.
Punto flotante
Un punto flotante es un n´umero que es expresado mediante un exponente y una mantisa. Por ejemplo el n´umero 10.75 puede ser expresado como.
mantisa exponente 10,75× 100
1,075× 101
En general, un n´umero en punto flotante puede ser expresado como ±d0.d1d2d3. . . dk×
bexpo donde : d
0.d1d2d3. . . dk = k
P
i=1
diβ−i, di ∈ N, 0 ≤ di < β, se conoce como la
mantisa. (La precisi´on depende de k y de β)
¿ Qu´e se necesita para representar un n´umero en punto flotante?
El signo del n´umero, el signo del exponente, digitos para el exponente , digitos para la amntisa.
Dado que un n´umero en punto flotante puede expresarse de distintas formas que son equivalentes, es necesario establecer una unica representaci´on. Es por ello que se trabaja con n´umeros normalizados. Decimos que un n´umero esta normalizado si el digito a la izquierda del punto o coma esta entre 0 y la base. En particular, decimos que un n´umero binario esta normalizado si el digito a la izquierda del punto es igual a 1.
1,00 × 10−1 normalizado 0,001 × 102 no normalizado
Existen varios tipos de errores, enunciaremos cuatro de ellas.
2.12.2.
Tipos de errores
El uso de digitos binarios tiende a encubrir las dificultades de c´alculo que aprarecen al usar una colecci´on finita de n´umeros de m´aquina para representar a todos los n´umeros reales. Para examinar estos problemas, supondremos , para mayor claridad, que los n´umeros de m´aquina se representan en la forma de punto flotante decimal normalizada
para cada i = 1, 2, . . . , k. Los n´umeros de esta forma se llaman n´umeros de m´aquina decimales con k d´ıgitos.
Cualquier n´umero positivo real dentro del intervalo num´erico de la m´aquina se puede normalizar como y = 0.d1d2. . . dkdk+1dk+2. . . × 10n
La forma de punto flotante de y, que denotamos f l(y), se obtiene terminando la mantisa de y en k cifras decimales. Hay dos formas de realizar esto.
M´etodo 1: llamado truncamiento, consiste simplemente en cortar los digitos dk+1dk+2. . .
para obtener: f l(y) = 0.d1d2. . . dk× 10n.
Tambien corresponden a procedimientos infinitos (desarrollados en Series, etc.) como en el caso del t´ermino del residuo del teorema de Taylor.
M´etodo 2: llamado redondeo, suma S × 10n−(k+1) a y y luego trunca el resultado
para obtener un n´umero de la forma f l(y) = 0.δ1δ2. . . δk× 10n.
Si dk+1 ≤ S, sumamos 1 a dk para obtener f l(y); esto es , redondeamos hacia arriba, si
dk+1 < S, Simplemente truncamos todo excepto los primeros k digitos; as´ı, redondeamos
hacia abajo.
Observacion: Los errores de redondeo son debidos a redondeos en los c´alculos porque est´an hechos con un n´umero finito de cifras significativas.
En muchas ocasiones el metodo de redondeo son poco significativos y no tienen ninguna importancia Sin embargo, en algunos problemas pueden llegar a destruir por completo el significado de un resultado.
Ejemplo 2.12.1. El n´umero pi (π) tiene un desarrollo decimal infinito de la forma π = 3,14159265 . . .. Escrito en forma decimal normalizada, se tiene: π = 0,314159265 . . .×101
M´etodo 1: La forma de punto flotante de cinco digitos de n utilizando truncamiento es:f l(π) = 0,31415 · 101 = 3,1415
M´etodo 2: Dado que el sexto digito de la expansi´on decimal de π es 9, la forma de π con redondeo a cinco digitos es:
f l(π) = (0,31415 + 0,00001) · 101 = 3,1416 d
k+1≤ 5
En la siguiente definici´on se describen dos m´etodos para medir errores de aproximaci´on. Definici´on 2.12.1. (Errores absoluto y relativo) Supongamos que el valor exacto de un dato es p y disponemos de un valor aproximado p∗.
Se denomina error absoluto de p∗ a la distancia que lo separa del valor exacto p,
es decir |p − p∗|.
Se denomina error relativo de p∗ al cociente entre el error absoluto y el objeto
evaluado, es decir, |p−pp∗|. En el caso p = 0 s´olo se utiliza el error absoluto.
Consideremos los errores absolutos y relativos al representar p por p∗ en el ejemplo
siguiente.
Ejemplo 2.12.2. a. Si p = 0,3000 × 101 y p∗ = 0,3100 × 101, el error absoluto es 0.1
y el error relativo es 0,333¯3 × 10−1
b. Si p = 0,3000 × 10−3 y p∗ = 0,3100 × 10−3, el error absoluto es 0,1 × 10−4 y el
error relativo es 0,333¯3 × 10−1.
c. Si p = 0,3000 × 104 y p∗ = 0,3100 × 104, el error absoluto es 0,1 × 103 y el error
relativo es de nuevo 0,333¯3 × 10−1
Este ejemplo se muestra el mismo error relativo, para una gran variedad de errores absolutos. Como una medida de la precisi´on, el error absoluto puede llevar a confusiones, en tanto que el error relativo es m´as significativo, pues toma en cuenta el tama˜no del valor.
La siguiente definicion utiliza el error relativo como una medida de las cifras significa-tivas de precisi´on para una aproximaci´on.
Definici´on 2.12.2. El n´umero p∗aproxima a p con t cifras significativas si t es el mayor
entero no negativo para el cual
|p − p∗| |p| < 5 × 10 −t Ejemplo 2.12.3. 1.p = 3,141592, p∗ = 3,14 |p − p∗| |p| ≈ 0,000507 < 10−2 2 Luego p∗ aproxima a p con 3 cifras significativas
2. p = 106, p∗ = 999996,
|p − p∗|
|p| ≈ 0,000004 < 10−5
2 Luego p∗ aproxima a p con 6 cifras significativas
Definici´on 2.12.3. Si t es el mayor entero para el cual |p − p∗| < 10−t
2 se dice que p ∗
aproxima a p con t decimales
De regreso a la representaci´on de los n´umeros en la m´aquina, vemos que f l(y) como punto flotante para el n´umero y tiene el error relativo |y−f l(y)y |.
Si se empleam K cifras decimales y el truncamiento para la representaci´on en la m´aquina de:
y = 0.d1d2. . . dkdk+1. . . × 10n
entonces |y−f l(y)y | = |
0.d1d2...dkdk+1...×10n−0.d1d2...dk×10n 0.d1d2...×10n | = | 0.dk+1dk+2...×10n−1 0.d1d2...×10n | = | 0.dk+1dk+2... 0.d1d2... |× 10−k
Como d1 6= 0, el valor m´ınimo del denominador es 0.1. El numerador est´a acotado
su-periormente por 1. entonces: |y−f l(y)y | ≤
1 0,1 · 10
−k = 10−k+1 (Cota de error relativo por truncamiento)
De manera similar, una Cota para el error relativo cuando se usa aritme´etica con re-dondeo a K d´ıgitos es 0,5 × 10−k+1
La perdida de precisi´on debida al error de redondeo se puede evitar a menudo mediante la reformulaci´on del problema, como se muestra en el siguiente ejemplo.
Ejemplo 2.12.4. La f´ormula cuadr´atica establece que las ra´ıces de ax2+ bx + c = 0,
cuando a 6= 0, son x1 = −b + √ b2− 4ac 2a y x2 = −b −p√b2− 4ac 2a
Con aritmetica de redondeo a cuatro cifras, considere esta f´ormula aplicada a la ecuaci´on x2+ 62,10x + 1 = 0, cuyas ra´ıces son aproximadamente
x1 = −0,01610723 y x2 = −62,08390. tenemos:
f l(x1) = −62,10 + 62,06
2,000 =
−0,04000
2,000 = −0,02000. una mala aproximaci´on a x1 = −0,01611, con el error relativo grande
| − 0,01611 + 0,02000|
−0,01611 = 2,4 × 10
−1.
Por otro lado, el c´alculo de x2 es: f l(x2) = −62,10−62,062,000 = −124,22,000 = −62,10
Para obtener una aproximaci´on m´as precisa con redondeo a cuatro cifras para x1, se
cambia la forma de la f´ormula cuadr´atica mediante la racionalizaci´on del numerador. x1 = −b + √ b2− 4ac 2a ( −b −√b2 − 4ac −b −√b2 − 4ac) = b2− (b2− 4ac) 2a(−b −√b2 − 4ac),
lo que se simplifica como una f´ormula cuadr´atica alternativa x1 = −2c
b +√b2 − 4ac
Al usarlo tenemos: f l(x1) = 62,10+62,06−2,000 = −2,000124,2 = −0,01610, con el peque˜no error
relativo 6,2 × 10−4.
2.13.
Matrices y vectores
2.13.1.
Introducci´
on y operaciones de matices num´
ericas
Comenzamos limpiando nuestra ´area de trabajo con : clear, clc, echo, off.
A = [1 2 3; 4 0 3; 9 3 2] A = 1 2 3 4 0 3 9 3 2 es una matriz 3 × 3
Podemos reemplazar un n´umero cualquiera por un elemento aij de la matriz como:
A(2, 1) = −3 Ahora tenemos A = 1 2 3 −3 0 3 9 3 2
b=[0.34 1+2 2^(-5)] b = (0,34, 3, 1/32) es un vector C=[i 2+1 1/3; Otra matriz 3 × 3
4*5 1+i 1;2^(1/2) 9 1]
d=1:0.5:3 d = (1; 1,5; 2; 2,5; 3), construimos el vector d a partir de 1 hasta 3 incrementando 0.5 size(d), size(A) Calcula el orden de las matrices d y A.
e=1:3 Cuando no hay incremento se entiende que es 1 ee=1:-0.5:-4 El incremento puede ser negativo.
A.’ Matriz traspuesta
C’ Matriz traspuesta conjugada
A+C, A-C, A*C Matriz suma, diferencia y producto de A y C
A+2, A-3+i Matriz obtenida de A sumando a cada elemento 2 y -3 + i A*b.’ Producto de A por el traspuesto de b
A*i Multiplicamos por i cada elemento de A
A.*C Multiplicamos elemento a elemento las matrices A y C
A^2 A*A
C.^(A-6) Matriz que resulta de elevar cada coeficiente de C al correspondiente coeficiente de A − 6
2.^A Matriz cuyo coeficiente es 2 elevado al correspondiente coeficiente de A
inv(A) Matriz inversa de A
X=A\C X es la soluci´on del sistema de ecuaciones A · X = C Si A es invertible ’coincide’ con inv(A)*C
Y=A/C Y es la soluci´on del sistemaY · C = A. En realidad, Matlab defineA/C=(A.’\C.’)’
A./C, A.\C Matriz que resulta de dividir cada coeficiente de A (resp. de C) por el correspondiente de C (resp. de A)
2.13.2.
Submatrices num´
ericas
h=[2,1], k=[2,3] Dos vectores
A(h,k) Submatriz obtenida deAqued´andonos con las filas dadas por h y las columnas dadas por k
A(2,1:2) Vector que tiene las dos primeras componentes de la segunda fila deA
A(2,:), C(:,1) Segunda fila de A y primera columna de C [A;b] A˜nadiendo la filaba la matriz A
[A,b.’] A˜nadiendo la columnabt a la matrizA
2.13.3.
Introducci´
on y operaciones de matrices simb´
olicas
A=sym(’[1,3;t,s]’) A = 1 3 t s
es una matriz simb´olica b=sym(’[1 2]’) Definici´on de un vector simb´olico c=[1 3;4/5 7/8], C=sym(c) Definici´on de otra matriz simb´olica
D=’[1,2;e,f]’ Nota: D es una cadena de caracteres y no una matriz simb´olica
A+C, A*C Suma y producto de A y C A*C^(-1) Divisi´on de A y C
C^3 C3
A(1,2) Obteniendo el elemento a12 de la matriz A
A(1,2)=18 Haciendo que a12 valga 18
2.13.4.
Funciones matriciales
FUNCI ´ON DESCRIPCI ´ON
eye(n) Matriz identidad n × n zeros(m,n) Matriz cero de orden m × n ones(m,n) Matriz de unos
diag(x) Si x es un vector, el resultado es una
matriz con el vector x como diagonal principal Si x es una matriz cuadrada, el resultado es el vector diagonal de la matriz x
triu(A) Parte triangular superior de la matriz A tril(A) Parte triangular inferior de la matriz A hilb(m,n) Matriz de Hilbert de orden m × n magic(m,n) Matriz m´agica de orden m × n rand(m,n) Matriz m × n aleatoria
vander(x) Matriz de Vandermonde construida a partir de x sym(A) Convierte una matriz num´erica en simb´olica numeric(A) Convierte una matriz simb´olica en num´erica det(A) Determinante de la matriz A
determ(A) Determinante simb´olico inv(A) Inversa de la matriz A inverse(A) Inversa simb´olica
rank(A) Rango de A. Es tambi´en una orden simb´olica size(A) Orden o tama˜no de la matriz A