Sunteți pe pagina 1din 31

todos Nume

ricos
Cuaderno de Me
Profesor: Paul Medina
Autor: Bruno Leppe

FORMULAS

Manual de LATEX
1.

F
ormulas

Se van a presentar distintas formas para escribir una formula o ecuacion, lo que se conoce como el modo matem
atico
de LATEX.

1.1.

En la misma lnea

Al escribir:
$a^2+b^2=c^2$ As
se escribe el teorema de Pit
agoras.
Se obtiene:
a2 + b2 = c2 As se escribe el teorema de Pitagoras.

1.2.

Centrado

Al escribir la f
ormula entre \[.....\]

x2 + 2dx

Una integral

1.3.

Utilizando un ambiente

Al escribir la f
ormula con este ambiente \begin{equation}\label{e1}

c2 = a2 + b2

(1)

El teorema de Pitagoras
La ecuaci
on se centra y se numera, tambien se incluyo una etiqueta e1, esto se puede usar o no para nombrar a las
ecuaciones.
1.3.1.

etiquetas y llamado

Al escribir el siguiente c
odigo
\begin{equation}\label{e2}
\int_{0}^{\pi}{\frac{\sqrt{x^2+2x}}{\sqrt[3]{x^3-1}}}dx
\end{equation}
ecuaci\on de la energ\ia de Einstein
\begin{equation}\label{e3}
E=mc^2
\end{equation}
Se obtiene lo siguiente

Z
0

x2 + 2x

dx
3
x3 1

TABLAS Y MATRICES

(2)

ecuaci
on de la energa de Einstein
E = mc2

(3)

El comando \ label{Texto} nos permite asignar a una ecuacion una etiqueta o referencia, de tal manera de que
si volvemos a escribir el mismo c
odigo entre parentesis, obtendremos el n
umero de la ecuacion, como se observa en el
ejemplo anterior.
Las expresiones algebr
aicas (1),(2) y (3)

2.
2.1.

Listas
Entorno enumarate

1. perro
a) doberman
b) d
almata
c) san bernardo
2. gato
3. vaca

2.2.

Entorno itemize
hola
chao
perro

2.3.

Entorno description

presidente presidente
secretario secretario
vocal vocal

3.
3.1.

Tablas y matrices
Tablas

\begin{tabular}{lccccc}
Hora&Lunes&Martes&Miercoles&Jueves&Viernes\\
7:15-9:15 & a & a & a & a& V \\
9:30-11:30 & b & b & b & J & s \\
12:00-14:00 & c & metodos & c & metodos & V \\
\end{tabular}

Hora
7:15-9:15
9:30-11:30
12:00-14:00

Lunes
a
b
c

Martes
a
b
metodos

Miercoles
a
b
c

Jueves
a
J
metodos

Viernes
V
s
V

Miercoles
a
b
c

Jueves
a
J
metodos

Viernes
V
s
V

PAQUETES

Otro ejemplo de tabla usando el entorno tabular


\begin{tabular}{l|c|c|c|c|c}
Hora&Lunes&Martes&Miercoles&Jueves&Viernes\\
\hline
7:15-9:15 & a & a & a & a& V \\
9:30-11:30 & b & b & b & J & s \\
12:00-14:00 & c & metodos & c & metodos & V \\
\end{tabular}
Hora
7:15-9:15
9:30-11:30
12:00-14:00

3.2.

Lunes
a
b
c

Martes
a
b
metodos

Arreglos

Para crear arreglos y matrices se pueden usar los entornos array, matrix, bmatrix, pmatrix, etc. Por ejemplo
el c
odigo
\[ \left(\begin{array}{ccc}
3&7&8\\
11&5&-1\\
1&0&8
\end{array}\right)\]
\[f(x)=\left\{
\begin{array}{lcc}
x^2+1 & \mbox{si} &x\geq 1\\
x & \mbox{si} &0<x<1\\
e^x & \mbox{si} & x\leq 0
\end{array}
\right.\]
Da como resultado

3 7 8
11 5 1
1 0 8
2
x1
x + 1 si
x
si 0 < x < 1
f (x) =
x
e
si
x0

4.

paquetes

Para configurar y utilizar el idioma espa


nol se utiliza lo siguiente [spanish]{babel} y [utf8]{inputenc}.
Para la inclusion de gr
aficos a partir de archivos es graphix, el formato natural de LATEX es .eps
La imagen ha sido rotada un
angulo de 25 grados con respecto al eje y.

PAQUETES

Figura 1: figura 1

4.1.

Posicionamiento de figuras

La posici
on en la que la figura aparece en el texto esta determinada por el argumento opcional que puede ser una
(o m
as de una) de las siguientes letras h, t, b, p.
h: Sit
ua la figura donde aparece el entorno.
t: Sit
ua la figura en la parte superior de la p
agina.
b: Sit
ua la figura en la parte inferior de la p
agina.
p: Sit
ua la figura en una p
agina separada.

OPERADORES BASICOS
QUE USA MATLAB

Manual de Matlab
MATLAB es el nombre abreviado de MATri x LABoratory . MATLAB es un programa para realizar c
alculos
numericos con vectores y matrices. Como caso particular puede tambien trabajar con n
umeros escalares tanto reales
como complejos, con cadenas de caracteres y con otras estructuras de informacion mas complejas. Una de las capacidades
m
as atrac-tivas es la de realizar una amplia variedad de graficos en dos y tres dimensiones. MATLAB tiene tambien
un lenguaje de programaci
on propio.
Uno de sus puntos fuertes es el hecho de que el lenguaje de Matlab permite construir nuestras propias herramientas
reusables. Podemos f
acilmente crear nuestras propias funciones y programas especiales ( conocidos como archivos-M )
en c
odigo.

5.

Operadores b
asicos que usa Matlab

5.1.

Aritm
eticos:
Suma (+)
Resta()
Multiplicaci
on
Divisi
on (/)
Potencia (^)

5.2.

L
ogicos y Relacionales:
(<) menor que, (<=) menor o igual, (==) igual, (>) mayor que, (>=) mayor o igual

Para asignar un valor a una variable se escribe el nombre de la variable, el smbolo =, y el valor de la misma, o bien el
nombre de otra variable previamente ya definida.
Ejemplo:
>> a=100;
>> b=2;
>> c=a
c =
100
Podemos realizar operaciones entre variables, del ejemplo anterior vamos a multiplicar a y b.

MATRICES

>> d=a*b
d =
200

6.

Vectores
Los vectores se introducen entre corchetes, y sus elementos estan separados por espacios o comas.

Ejemplo:
>>v=[77 69 11 88]
v =
77 69 11 88
Los elementos de los vectores se referencian usando ndices entre parentesis. Los ndices en MatLab empiezan en 1.
Ejemplo: Para el elemento 2 del vector v
>>v(2)
ans =
69
Se pueden referenciar varios elementos a la vez usando el operador (:).
Ejemplo:
>>v(2:3)
ans =
69 11

7.

Matrices
Al momento de ingresar un matriz se lo hace ingresando el los valores de la matriz separadas por

un espacio o para separar filas se usa (;), as por ejemplo, se pueden introducir:
>> A=[ 1 0 2; 2 2 0; 0 0 1]

A =

TEORIA
DEL ERROR

Teoremas fundamentales de metodos numericos


8.

Teorema de taylor
Supongamos que f C n+1 [a, b] y sea x0 [a, b]. Entonces, para cada x (a, b) existe un n
umero c = c(x) que

est
a entre x0 y x y verifica que

f (x) = Pn (x) + Rn (x)


donde

Pn (x) =

n
X
f (n) (x0 )
k=0

(x x0 )k ;

Rn (x) =

f n+1 (c)
(x x0 )n+1
(n + 1)

Es decir, si se cumple lo anterior decimos que a la funcion la podemos separar o representar en un polinomio Pn (x)
y un error Rn (x). Donde x0 es el punto alrededor del cual estamos aproximando la funcion y vendra a ser una especie
de centro y n es el n
umero de iteraciones que se quiere realizar.
Un ejemplo de un c
odigo desarrollado en Matlab para las series de Taylor es el siguiente:
function [ p ] = taylor( f,n,x0)
syms x
p=0;
for i=0:n
fx=inline(diff(sym(f),i));
c=fx(x0);
p=p+c*(x-x0)^i/factorial(i);
end
end

9.

Te
oria del error

9.1.

Exactitud y Precisi
on

Los errores asociados son los c


alculos y medidas se pueden caracterizar observando su exactitud y precisi
on.
La exactitud se refiere a que tan cercano el valor calculado o medido con el valor verdadero.
La precisi
on se refiere a que tan cercano est
a un valor individual medido o calculado con respecto a los otros.

TEORIA
DEL ERROR

Definici
on 1.1Supongamos que pb es una aproximacion a p. El error absoluto de la aproximacion es Ep = |p pb|
y el error relativo es Rp = |p pb|/|p|, supuesto que p 6= 0.
El error absoluto no es m
as que la distancia entre el valor exacto y el valor aproximado, mientras que el error relativo
mide el error entendido comom una porci
on del valor medio.
Ejemplo: Vamos a encontrar el error absoluto y el error relativo en los siguientes casos. Sean x=3.141592 y x
b = 3,14
entonces el error absoluto es
Ex = |x x
b| = |3,141592 13,14| = 0,001592
y el error relativo es
Rx =

|x x
b|
0,001592
=
= 0,00507
|x|
3,141592

Sean y = 1000000 e yb = 999996, entonces el error absoluto es


Ey = |y yb| = |1000000 999996| = 4
y el error relativo es
Ry =

1
|y yb|
=
= 0,000004
|y|
1000000

Sean z = 0,000012 y zb = 0,000009, entonces el error absoluto es


Ez = |z zb| = |0,000012 0,000009| = 0,000003
y el error relativo es
Rz =

0,000003
|z zb|
=
= 0,25
|z|
0,000012

Definici
on 1.2 Diremos que un m
umero pb es una aproximacion a p con d cifras decimales significativas si d es el mayor
n
umero natural que:
|p pb|
10d
<
|p|
2
Ejemplo: Vamos a determinar el n
umero de cifras significativas de cada una de las aproximaciones del ejemplo 1.1.
(a)Si y = 3,141592 y x
b = 3,14,entonces |x x
b|/|x| = 0,000507 < 103 /2. Por tanto, yb es una aproximaci
on a y con
dos cifras significativas.
(a)Si y = 1000000 e yb = 999996,entonces |y yb|/|y| = 0,000004 < 105 /2. Por tanto, yb es una aproximaci
on a y con
dos cifras significativas.
(a)Si z = 0,000012 y zb = 0,000009,entonces |z zb|/|z| = 0,25 < 100 /2. Por tanto, zb es una aproximaci
on a z con
dos cifras significativas.

9.2.

TEORIA
DEL ERROR

10

Orden de aproximaci
on O(hn )

Teorema 1.16 (Teorema de taylor). Supongamos que f C n+1 [a, b] . Si x0 y x = x0 + h esta en [a, b], entonces

f (x0 + h) =

n
X
f (k) (x0 )
k=0

k!

+ O(hn+1 ).

El siguiente ejemplo sirva para ilustrar los teoremas anteriores. Los calculos usan las siguientes dos proipiedades de la
suma
(i) O(hp ) + O(hp ) = O(hp )
(ii) O(hp ) + O(hq ) = O(hr ) siendo r = min[a, b], y la propiedad de la multiplicacion
(iii) O(hp )O(hq ) = O(hs ), siendo s = p + q.
Ejemplo:
Consideremos los desarrollos de taylor
eh = 1 + h +

h3
h4
h2
+
+
+ O(h5 ) y
2
6
24

cos(h) = 1

h2
h4
h6
+

+ O(h8 )
2!
4!
6!

Se trata de determinar el orden de aproximacion para su suma y su producto.


Para la suma tenemos
h3
h4
h2
h4
h6
h2
+
+
+ O(h5 ) + 1
+

+ O(h8 )
2
6
24
2!
4!
6!
h3
h4
eh + cos(h) = 2 + h +
+ O(h4 ) +
+ O(h6 )
3!
4!

eh + cos(h) = 1 + h +

Puesto que O(h4 ) +

h4
4!

= O(h4 ) y O(h4 ) + O(h6 ) = O(h4 ), esto se reduce a

eh + cos(h) = 2 + h +

h3
h4
+ O(h4 ) +
3!
4!

y el orden de aproximaci
on es O(h4 )
El producto se trata de manera parecida



h3
h4
h2
h4
h6
h2
5
8
h
+
+
+ O(h )
1
+

+ O(h )
e cos(h) = 1 + h +
2
6
24
2!
4!
6!



h2
h3
h4
h2
h4
h6
h
e cos(h) = 1 + h +
+
+
1
+

+
2
6
24
2!
4!
6!




h2
h3
h4
h2
h4
h6
1+h+
+
+
O(h6 ) + 1
+

O(h4 ) + O(h4 )O(h6 )


2
6
24
2!
4!
6!
eh cos(h) = 1 + h

h3
h5
h5
h6
h7

+
+
+ O(h4 ) + O(h4 )O(h6 )
3
24 24 48 144

Puesto que O(h4 )O(h6 ) = O(h10 ) y

h5
h5
h6
h7

+
+
+ O(h4 ) + O(h4 )O(h6 ) = O(h10 ),
24 24 48 144

10

METODO
ITERATIVOS

11

la relaci
on anterior se puede simplificarse como

eh cos(h) = 1 + h

h3
+ O(h4 )
3

de manera que el orden de aproximac


on es O(h4 )

9.3.

Propagaci
on de error

Vamos a investigar ahora como pueden propagarse los errores de una cadena de operaciones sucesivas. Condiseremos la suma de dos numeros p y q (que son valores exactos) con valores aproximados pb y qb cuyos erores son Ep y Eq ,
respectivamente. A partir de p = pb + Ep y de q = qb + Eq , la suma es

p + q = (b
p + Ep ) + qb + Eq = (b
p + qb) + (Ep + Eq
Por tanto, el error en una suma es la suma de los errores de los sumandos. La propagacion del error en una multiplicacion
es mas complicada. El producto es:
pq = (b
p + Ep )(b
p + Eq ) = pbqb + pbEq + qbEp + Ep Eq
Por tanto, si pb y qb son mayores que 1 en valor absoluto que, los terminos pbEq y qbEp indican que hay posibilidad de que
los errores originales Ep y Eq sean magnificados. Si analizamos los errores relativos, tendremos una percepcion mas
clara de la situacion. Redondeando los terminos de obtendremos
pq pbqb = pbEq + qbEp + Ep Eq
Supongamos que p 6= 0 y que q 6= 0; entonces podemos dividir (18) entre pq para obtener el error relativo del producto
pq:
Rpq =

pbEq
qbEp
Ep Eq
pq pbqb pbEq + qbEp + Ep Eq
=
=
+
+
pq
pq
pq
pq
pq

Es m
as, supongamos que pb y qb son buenas aproximaciones de p y q; entonces pb/p 1, qb/q 1 y Rp Rq = (Ep /p)(Eq /q)
0 (Rp y Rq son los errores relativos de las aproximaciones pbqb). Sustituyendo estas proximaciones obtenemos
una relaci
on m
as simple:
Rpq =

10.
10.1.

pq pbqb Eq
Ep

+
+ 0 = Rq + Rp .
pq
q
p

M
etodo Iterativos
Metodo de la Bisecci
on

Si f es una funci
on continua sobre el intervalo [a, b]ysif (a)f (b) < 0, entonces f debe tener un cero en(a,b).
Dado que f (a)f (b) < 0, la funci
on cambia de signo en el intervalo [a,b] y por lo tanto tiene por lo menos un cero en el
intervalo. (Vease la figura 5.1)
El metodo de la bisecci
on debe cumplir los siguientes paramatros:

10

METODO
ITERATIVOS

12

f (x) continua en [a, b]


f (a) f (b) tienen signos opuestos f (a).f (b) < 0
el error de tolerancia es mayor que cero (tol > 0)
Esta es una consecuencia del teorema del valor intermedio para funciones continuas, que establece que si f es continua
en [a,b] y si k es un n
umero entre f(a) y f(b) , entonces existe por lo menos un c (a,b) tal que f(c)=k.(para el caso
en que f (a)f (b) < 0 se escoge k=0, luego f(c)=0, c (a,b)). El metodo de biseccion consiste en dividir el intervalo en 2
subintervalos de igual magnitud, reteniendo el subintervalo en donde f cambia de signo, para conservar al menos una
raz o cero, y repetir el proceso varias veces.
Por ejemplo, suponga que f tiene un cero en el intervalo [a,b]. Primero se calcula el punto medio del intervalo c =

a+b
2

; despues se averigua s f (a)f (c) < 0. Si lo es, entonces f tiene un cero en [a,c].

Fig 3. Interpretaci
on geom
etrica del m
etodo de la Bisecci
on

Si f (a)f (c) > 0, entonces f (c)f (b) < 0 y en este caso se renombra a c como a.
En ambos casos se ha generado un nuevo intervalo que contiene un cero de f, y el proceso puede repetirse.
Ejemplo:
La funci
on f(x) = xsenx 1 tiene un cero en el intervalo [0,2], porque f(0) = -1 y f(2)=0.818595.
Si se denota con entonces c1 = 1. Ahora f(c1) = f(1) = -0.158529, luego la funcion tiene un cero en el intervalo [c1, b1]
= [1,2] ; se renombra a2=c1 y b2=b1 .
El nuevo punto medio es y f (c2) = f (1,5) = 0,496242, el cero esta en el intervalo [a2, c2] y se renombra como [a3, b3].
C
odigo en matlab para el metodo de la biseccion.
function[x]=Bisecc(f,a,b,error)
f=inline(f);
m=(b+a)/2;
if(f(a)*f(b)>0)

10

METODO
ITERATIVOS

13

disp(Escoga otro intervalo mas grande);


else
while(abs(f(m))>error)
m=(b+a)/2;
if(f(a)*f(m))<0
b=m;
else
a=m;
end
end
end
x=m
fprintf(\n La aproximacion de la raiz es: %3.10f \n\n,m)

10.2.

M
etodo de Newthon Raphsom

Este metodo parte de una aproximaci


on inicial x0 y obtiene una aproximacion mejor, xn+1 1, dada por la f
ormula:
xn+1 = x0

f (x0 )
f 0 (x0 )

Fig 4.Interpretaci
on geom
etrica del m
etodo de Newton.

La expresi
on anterior puede derivarse a partir de un desarrollo en serie de Taylor.
f (x) = f (x0 )(x x0 ) +

f 0 (x0 )(x x0 )
+ O(h2 )
1!

es razonable ignorar el termino O(h2):


f (x) = f (x0 )(x x0 ) +
0 = f (x) = f (x0 )(x x0 ) +

f 0 (x0 )(x x0 )
1!

por lo que obtenemos la siguiente expresi


on para:

f 0 (x0 )(x x0 )
1!

f (x0 ) = f 0 (x0 )(x) f 0 (x0 )(x0 )

10

x = x0

METODO
ITERATIVOS

14

f (x0 )
f 0 (x0 )

Para parar detener el metodo y as encontrar la raiz


|xn xn+1 | <

donde

= error

|f (xn )| <
C
odigo en Matlab del metodo de Newton
function [ x ] = newton( f,x0,e )
fx=inline(f);
f1x=inline(diff(sym(f),1));
x=x0-fx(x0)/f1x(x0);
while(abs(fx(x))>e)
x=x0-fx(x0)/f1x(x0);
x0=x;
end

end

10.3.

M
etodo de la Secante

El metodo de la secante parte de dos puntos (y no solo uno como el metodo de Newton) y estima la tangente (es
decir, la pendiente de la recta) por una aproximacion de acuerdo con la expresion:

Fig 5.Interpretaci
on geom
etrica del m
etodo de la secante.

f (x) = m =

f (x2 ) f (x1 )
x2 x1

f 0 (xn ) =

f (xn ) f (xn1 )
xn xn1

Sustituyendo esta expresi


on en la ecuaci
on la ecuacion del metodo de Newton, obtenemos la expresion del metodo de
la secante que nos proporciona el siguiente punto de iteracion:

xn+1 = xn

f (xn )(xn xn1 )


f (xn ) f (xn1 )

11

DE SISTEMAS DE ECUACIONES LINEALES 15


RESOLUCION

C
odigo en Matlab para el metodo de la secante
function [ x ] = secante( fx,x0,x1,e )
f=inline(fx);
x=x1-(x1-x0)*(f(x1))/(f(x1)-f(x0));
while abs(f(x))>e
x=x1-(x1-x0)*(f(x1))/(f(x1)-f(x0));
x0=x1;
x1=x;
end

11.

Resoluci
on de sistemas de ecuaciones lineales

11.1.

M
etodo de Gaus

El metodo de Gauss es uno de los m


as utilizados para resolver sistemas lineales, sin embargo puede llegar a tener
limitaciones cuando las matrices est
an mal condicionadas.
Dado un sistema Ax = b, donde A es una matriz nxn no singular, el siguiente algoritmo determina el vector soluci
on x.
El algoritmo trabaja con la matriz ampliada [A|b], la cual se notara como Ab y cuyos elementos seran notados como aij .

El c
odigo en Matlab consta de dos funciones
reduccion2
gauss
El programa reduccion2 es el siguiente:
function [ B ] = reduccion2( A )
[m n]=size(A);
for j=m:-1:2
for i=j-1:-1:1
A(i,:)=A(i,:)-(A(i,j)/A(j,j))*A(j,:);
end
end

B=A;
end

11

DE SISTEMAS DE ECUACIONES LINEALES 16


RESOLUCION

El programa gauss es el siguiente


function [ x ] = gauss( A,b )
[m n]=size(A);
c=0;
for i=1:m
if A(i,i)==0
c=c+1;
end
end
if c==m
B=A(1,:);
A(1,:)=A(2,:);
A(2,:)=B;
end
a=0;
A(:,n+1)=b;
n=n+1;
A=reduccion2(A);
x(m)=A(m,n)/A(m,m);
for i=m-1:-1:1
for j=i:m-1
a=a+A(i,j+1)*x(j+1);
end
x(i)=(A(i,n)-a)/A(i,i);
a=0;
end
A
end

11.2.

M
etodo de Gauss-Jordan

El metodo de Gauss-Jordan es un metodo extendido de Gauss, la matriz se reduce no solo en una matriz triangular
superior, tambien en una triangular inferior, quedando solo la diagonal de la matriz. El codigo en Matlab se compone
de tres programas

11

DE SISTEMAS DE ECUACIONES LINEALES 17


RESOLUCION

tsup
tinf
gaussjordan
tsup:
function [ B ] = tsup( A )
[m n]=size(A);
for j=1:m-1
for i=j+1:m
if A(j,j)==0
B=A(j,:);
A(j,:)=A(j+1,:);
A(j+1,:)=B;
end
A(i,:)=A(i,:)-(A(i,j)/A(j,j))*A(j,:);
end
end
B=A;
end
tinf:
function [ B ] = tinf( A )
[m n]=size(A);
for j=m:-1:2
for i=j-1:-1:1
if A(j,j)==0
B=A(j,:);
A(j,:)=A(j-1,:);
A(j-1,:)=B;
end
A(i,:)=A(i,:)-(A(i,j)/A(j,j))*A(j,:);
end
end

12

LU
FACTORIZACION

18

B=A;
end
gaussjordan:
function [ x ] = gaussjordan( A,b )
clc
[m n]=size(A);
A(:,n+1)=b;
A=tinf(tsup(A));
for i=1:m
A(i,:)=A(i,:)/A(i,i);
x(i)=A(i,n+1);
end
A
end

12.

Factorizaci
on LU

Es una forma de factorizaci


on de una matriz como el producto de una matriz triangular inferior y una superior.

A = LU
Para matrices de orden

a
11

a21

A= .
.
.

an1

nxn
a12

a13

...

a22

a23

...

an2

an3

...

a1n

a2n
l21
= .
.
.

ann
ln1

...

...

ln2

ln3

...

0
u
11

0
0
.
.
.

1
0

u12

u13

...

u22

u23

...

...

u1n

u2n

unn

Para deducir un algoritmo que nos permita la factorizacion LU de A partiremos de la formula para la multiplicaci
on
de matrices:
aij =

n
X

lis usj

s=1

en donde nos hemos valido del hecho de que lis = 0 para s > i y usj = 0 para s > j. En este proceso, cada paso
determina una nueva fila de U y una nueva columna de L. En el paso k, podemos suponer que ya se calcularon las filas
1, 2, . . . , k 1 de U, al igual que las columnas 1, 2, . . . , k 1 de L. Haciendo i=j=k en la ecuacion obtenemos:
akk = lkk ukk

k1
X
s=1

lks usk

12

LU
FACTORIZACION

19

Si especificamos un valor para lkk (o para ukk ), a partir de esta ecuacion es posible determinar un valor para el otro
termino. Conocidas ukk y lkk y a partir de la nueva ecuacion podemos escribir las expresiones para la k-esima fila (i=k)
y para la k-esima columna (j=k), respectivamente:

akj = lkk ukj +

k1
X

lks usj

(k + 1 j n)

lis usk

(k + 1 i n)

s=1

aik = lik ukk +

k1
X
s=1

60

A=
30

20

30
20
15

20
60

15
0

0
12

30
5
5

20
60

5
0

0
16/3

30
5
0

20
60

5
U =0

0
1/3

Para hallar la matriz L se usa el elemento de la diagonal a11 y a22 para una matriz de 3x3
30 60 = 1/2,
entonces

20 60 = 1/3,

55=1

1
0
0

L = 1/2 1 0

1/3 1 1

C
odigo en matlab de la factorizaci
on LU
function [L U P ] = fLU( A )
[m n]=size(A);
P=eye(m);%inicializa la matriz de permutacion
L=eye(m);%inicializa la matriz triangular inferior
cont=1;a=1;v1=1;%contadores
for j=1:m-1
C=A;%matriz auxiliar
for i=j+1:m
if A(j,j)==0%busca los 0s de la matriz A para cambiar las filas
B=A(j,:);
A(j,:)=A(j+1,:);
A(j+1,:)=B;
P=A/C;%matriz de Permutacion
end
v(a)=A(i,j)/A(j,j);%vector de los numeros de la matriz L

30
5
0

20

1/3

13

QR
FACTORIZACION

20

A(i,:)=A(i,:)-(A(i,j)/A(j,j))*A(j,:);
a=a+1;%contador
end
end
for i=2:m%bucle para formar la matriz L
for j=1:cont
L(i,j)=v(v1);%asignacion de los numeros a la matriz L
v1=v1+1;%contador de los numeros de la matriz
end
cont=cont+1;%contador del bucle
end
U=A;%la matriz U triangular superior
end

13.

Factorizaci
on QR

La descomposici
on o factorizaci
on QR es la descomposicion de una matriz como producto de una matriz ortogonal
y una triangular superior.
A=QR
Para hallar la matriz Q se deben ortonormalizar los vectores columna de la matriz.

13.1.

Proceso de Gram-Schmidt

El metodo de Gram-Schmit es un algoritmo para obtener, a partir de una base, otra que genere el mismo espacio y
adem
as sea ortogonal.
a1 , a2 , a3 , . . . , an
q1 =

a1
,
ka1 k

son vectores

w2 = a2 (a2 q1 ) q1 q2 =

w2
kw2 k

wn = an (an q1 ) q1 (an q2 ) q2 (an qn 1) qn 1 qn =

wn
kwn k

Los vectores q1 , q2 , q3 , . . . , qn son ortogonales. La matriz Q se forma con los vectores ortonormalizados de los vectores
columna de A. La matriz R = QT A.
Ejemplo:

12

A=
6

51
167
24

68

41

13

Tenemos los vectores columna de la matriz A


a1 = (12, 6, 4), a2 = (51, 167, 24), a3 = (4, 68, 41)
Utilizando el proceso de Gram-Schmidt tenemos
q1 =

(12, 6, 4)
6 3 2
a1
=
=( , ,
)
ka1 k
14
7 7 7
69 158 6
,
, )
175 175 35
58 6 33
q3 = (
,
,
)
175 175 35
q2 = (

Por lo tanto

58/175

158/175
6/175

6/35
33/35

14
21
14

R = Q A R = 0 165 70

0
0
35

6/7

Q=
3/7

2/7

69/175

C
odigo de la factorizaci
on QR en Matlab
function [ q r ] = facQR( A )
[m n]=size(A);
wn=0;
q1=(A(:,1))/norm(A(:,1));
q(:,1)=q1;
for i=2:m
wn=A(:,i);
for j=2:i
wn=wn-(dot(A(:,i),q(:,j-1)))*q(:,j-1);
end
q(:,i)=(wn/norm(wn));
end
r=q*A;
end

QR
FACTORIZACION

21

15

14.

INTERPOLACION

22

Valores y Vectores Propios

En todo lo que sigue A es una matriz cuadrada.

Propiedades b
asicas
Definici
on:
El escalar es valor propio de A si existe v 6= 0 tal que Av =v.
El vector v es vector propio de A asociado a si Av = v .
Teorema:(m
etodo para calcular valores y vectores propios para matrices concretas)
El escalar es valor propio de A si y s
olo si det(AI) = 0
El vector v es vector propio de A asociado si (AI)v = 0

15.

Interpolaci
on

En numerosos fen
omenos de la naturaleza observamos una cierta regularidad en la forma de producirse, esto nos
permite sacar conclusiones de la marcha de un fenomeno en situaciones que no hemos medido directamente. La interpolaci
on consiste en hallar un dato dentro de un intervalo en el que conocemos los valores en los extremos.

Fig. 1 Ejemplo de una curva interpolada

Metodos de interpolaci
on de curvas. Es usual que los ingenieros trabajen con datos extrados de mediciones, relevamientos,ensayos de laboratorio, etc., los cuales no siempre entregan el valor necesitado para el problemaque se est
a tratando
de resolver. Un ejemplo tpico de interpolaci
on sencilla utilizado por cualquier profesional de la ingeniera es la interpolaci
on lineal en una tabla de datos (por ejemplo, de estadsticas) para obtener un valor entre dos puntos dados.
Un segundo ejemplo de interpolaci
on m
as avanzado es la utilizacion de polinomios interpolantes en la resoluci
on de
estructuras cuando se utilizan programas de an
alisis estructural que aplican el metodo de los elementos finitos. All es
de fundamental importancia entender los tipos de polinomios que se pueden usar y los datos necesarios para poder
obtener estos polinomios.

15

INTERPOLACION

23

Marco te
orico Dados n+1 puntos en el plano3 , el polinomio interpolador es el u
nico polinomio de grado menor
o igual a n que pasa por dichos puntos. Son varios los metodos que se pueden utilizar para construir un polinomio de
interpolaci
on:

15.1.

M
etodo de Lagrange

Teorema(Polinomio interpolador de Lagrange). Supongamos que f C N +1 [a, b] y que x0 , x1 , ..., xN [a, b] son
N+1 nodos de interpolaci
on. Si x [a, b], entonces:
f (x) = PN (x) + EN x
PN (x) =

N
X

donde

f (xk )LN,k (x),

con

k=0

LN,k (x) =
EN (x) =

N
j=0,j6=k (x xj )
N
j=0,j6=k (xk xj )

(x x0 )(x x1 )....(x xN )f N +1 (c)


(N + 1)!

para alg
un valor c = c(x) del intervalo [a, b]
Ejemplo de polinomio interpolador de Lagrange
Determinar un polinomio que los interpole.
x

0,6

0,825

1,2

0,3623

Resoluci
on:

P2 (x) =

N
X

f (xk )L2,k (x)

k=0

P2 (x) = f (x0 )L2,0 (x) + f (x1 )L2,1 (x) + f (x2 )L2,2 (x)
P2 (x) = 1xL2,0 (x) + 0, 8253L2,1 (x) + 0, 3623xL2,2 (x)
P2 (x) = 1x

(x 0,6)(x 1, 2)
(x 0)(x 1, 2)
(x 0)(x 0, 6)
+ 0, 8253
+ 0, 3623x
(x 0, 6)(0 1, 2)
(0, 6 0)(0, 6 1, 2)
(1, 2 0)(1, 2 0, 6)

P2 (x) = 1x

(x 0,6)(x 1, 2)
(x 0)(x 1, 2)
(x 0)(x 0, 6)
+ 0, 8253
+ 0, 3623x
0, 72
0, 36
0, 72

P2 (x) = 1, 38(x 0, 6)(x 1, 2) 2, 29(x 0)(x 1, 2) + 0, 5(x 0)(x 0, 6)


P2 (x) = 1, 38(x2 1, 8x + 0, 72) 2, 29(x2 1, 2x) + 0, 5(x2 0, 6x)

15

15.2.

INTERPOLACION

24

Interpolaci
on de Newton

La interpolaci
on de Newton, a diferencia de la de Lagrange, permite calcular polinomios de un grado elevado n >3
con mayor facilidad, tanto de manera analtica como numerica (computacional). Esto en la practica es de gran utilidad,
pues dependiendo de la distribuci
on (dispersi
on) de los datos que se pretenda interpolar (buscar un polinomio que pasa
por todos ellos o lo m
as cerca posible), el polinomio interpolador debera ser mas elevado.
Teorema(Polinomio interpolador de Newton). Supongamos que x0 , x1 , ..., xN son N+1 n
umeros distintos en [a, b].
Entonces, existe un u
nico polinimio PN(x) de grado menor o igual a N tal que:

f (x) = PN (x) + EN (x)


donde el polinomio interpolador PN (x) tiene la forma:
PN (x) = ax + a1 (x x0 ) + .... + an (x x0 )(x x1 )(x x2 )....(x xN 1 )
siendo ak = f [x0 , x1 , ....., xN ] y
EN (x) =

(x x0 )(x x1 )....(x xN )f N +1 (c)


(N + 1)!

con c [a, b] Obseraci


on:Al termino f [x0 ], x1 , ....xN se le conoce como las diferencias divididasn de f(x)
Definici
on 2(Diferencias Divididas). Las diferencias divididasde una funcion f (x) se definen como:
f [xk ] = f (xk ),
f [xk1 , xk ] =
f [xk2 , xk1 , xk ] =
f [xk3 , xk2 , xk1 , xk ] =

f [xk1 , xk ] f [xk2 , xk 1]
,
xk f xk1

f [xk2 , xk1 , xk ] f [xk3 , xk2 , xk 1]


,
xk f xk3
..
.

f [xkj , xkj+1 , ..., xk ] =

15.3.

f [xk ] f [xk 1]
,
xk f xk1

..
.

..
.

f [xkj+1 , ..., xk ] f [xkj , ....xk1 ]


xk xkj

Interpolaci
on Spline

La construcci
on de polinomios de interpolacion de grado alto aunque justificable teoricamente plantea muchos
problemas. Por un lado, la forma de la funci
on polinomica de grado alto a menudo no responde al fenomeno debido
al gran n
umero de extremos e inflexiones. Por otro lado, su calculo es muy complicado, lo que limita su utilidad en
an
alisis numerico. Es a menudo m
as conveniente dividir el intervalo de interes en subintervalos mas peque
nos y usar en
cada subintervalo polinomios de grado relativamente bajo, tratando de que la funcion a trozos definida de este modo
tenga un aspecto final adecuado al fen
omeno que estamos representando.

15

INTERPOLACION

25

La idea central es que en vez de usar un solo polinomio para interpolar los datos, podemos usar segmentos de polinomios
y unirlos adecuadamente para formar nuestra interpolacion. Podemos decir, que una funcion spline esta formada por
varios polinomios, cada uno definido en un intervalo y que se unen entre si bajo ciertas condiciones de continuidad.
Cabe mencionar que entre todas, las splines c
ubicas han resultado ser las mas adecuadas.
Por lo tanto, una funci
on spline o un spline ser
a un polinomio a trozos de grado definido y con ciertas propiedades de
regularidad (derivabilidad).
Definici
on(Spline). Sea = a = x0 < x1 < ... < xn = b una particion del intervalo [a, b], de tal forma que:
s : [a, b] <
Algoritmo para hallar la interpolaci
on spline
function [a,b,c,d]=spline3(X)

%Pasos b
asicos del algoritmo obtenidos del libro An
alisis Num
erico de
%Richard Burden, 2a. Edici
on, Grupo Editorial Iberoam
erica.

n=length(X(1,:));

for i=1:n;
a(i)=X(2,i);
end

for i=1:n-1;
h(i)=X(1,i+1)-X(1,i);
end

for i=2:n-1;
alfa(i)=3/h(i)*(a(i+1)-a(i))-3/h(i-1)*(a(i)-a(i-1));
end

l(1)=1;
mu(1)=0;
z(1)=0;

for i=2:n-1;

16

EN VALORES SINGULARES SVD


DESCOMPOSICION

26

l(i)=2*(X(1,i+1)-X(1,i-1))-h(i-1)*mu(i-1);
mu(i)=h(i)/l(i);
z(i)=(alfa(i)-h(i-1)*z(i-1))/l(i);
end

l(n)=1;
z(n)=0;
c(n)=0;

for i=n-1:-1:1;
c(i)=z(i)-mu(i)*c(i+1);
b(i)=(a(i+1)-a(i))/h(i)-h(i)*(c(i+1)+2*c(i))/3;
d(i)=(c(i+1)-c(i))/(3*h(i));
end

for i=1:n-1;
x=X(1,i):0.1:X(1,i+1);
y=a(i)+b(i)*(x-X(1,i))+c(i)*(x-X(1,i)).^2+d(i)*(x-X(1,i)).^3;
hold on;
plot(x,y,b);
end

for i=1:n;
hold on;
plot (X(1,i),X(2,i),*,MarkerEdgeColor,r,LineWidth,1);
title(Interpolaci
on por "splines" de orden 3.);
end

16.

Descomposici
on en valores singulares SVD

Una matriz simetrica A puede ser factorizada como A = P DP T ; donde P es una matriz ortogonal y D es una
matriz diagonal que contiene los valores propios de A. Si A no es simetrica, una factorizacion de este tipo no es posible,
pero todava es posible factorizar una matriz cuadrada A como A = P DP 1 ; donde D adquiere una forma lo m
as
simple posible y P es una matriz invertible(Que tiene inversa).

16

EN VALORES SINGULARES SVD


DESCOMPOSICION

27

Los valores singulares no son m


as que las races cuadradas de los valores propios de la matriz A.
Para nuesto caso S es una matriz diagonal formada por los valores propios de la matriz A ordenados de mayor a menor
y llamaremos a una matriz S 0 a la matriz formada por los valores singulares de la matriz A, de la misma manera que
S, ordenados de mayor a menor.

Llamaremos V a la matriz formada por los vectores propios(normalizados) de la matriz A.

Finalmente llamaremos U a la matriz formada por los vectores calculados con la siguiente formula:
1
ui = .A.vi
i
Con esto hemos formado nuestra factorizaci
on svd, y la formula con las matrices descritas anteriormente es la siguiente:
A = U S0 V T
Sin embargo n
otese que en varios de los casos las valores propios de una matriz no seran siempre positivos, por lo que
no podremos calcular sus valores singulares y por lo tanto no podremos utilizar la factorizacion svd.para evitar esto
lo que se hace es multiplicar a la matriz traspuesta de A (AT ) por la matriz original(A), as esta nueva matriz tiene
la propiedad de que sus valores propios ser
an siempre positivos y por lo tanto existiran sus valores singulares. Cabe
mencionar que un valor propio si puede ser cero, y en el caso de aplicar la formula para la matriz U, la columna formada
por este valor singular junto con su vector propio normalizado se elimina.

Pasos:
Ahora enumeramos los pasos para la factorizacion svd:

1. A.
2. AT A
3. Valores y vectores propios.
4. Normalizar los vectores priopios.
5. Construir S.
6. Construir S 0 .
7. Construir V
8. Construir U .

16

EN VALORES SINGULARES SVD


DESCOMPOSICION

28

9. A = U S 0 V T .
Ahora si deseamos resolver un sistema de ecuaciones, calcularemos la matriz pseudoinversa. Es decir aplicaremos la
f
ormula:
A1 = V S 0
Donde el u
nico cambio que se har
a es la matriz S 0

UT

que no significa la matriz inversa de S 0 sino que corresponde a


1
1
los elementos de la diagonal principal elevados a la -1, es decir s0 ij = 0 .
sij
Esto lo hacemos ya que lo que buscamos el resolver el sistema: Ax = b, donde la solucion del sistema viene dado por
la siguiente formula:

x = A1 b
Sistemas mal condicionados

Existen matrices mal condicionadas, es decir que en caso de querer resolver un sistema con alguna matriz mal
condicionada, un peque
no cambio en la entrada del sistema, producira un gran cambio en la salida; sin embargo lo m
as
optimo es que peque

nos grandes en la entrada generen peque


nos cambios en la salida.

Para condicionar de manera correcta una matriz, si aplicamos la factorizacion svd , en la matriz S 0 los valores
singulares van a ser cada vez m
as peque
nos, tanto que en muchos de los casos se aproximaran a cero. Para condicionar
de manera correcta esta matriz lo que hacemos es definir un de manera que si el valor singular es menor que delta se
har
a autom
aticamente igual 0. Con esto hemos reducido el condicionamiento de la matriz A.
El condicionamiento de la matriz A se define como:

cond(A) = ||A|| ||A1 ||


Luego con nuestra nueva matriz S 0 calculamos la matriz pseudoinversa y con esta nueva matriz al momento de
resolver el sistema peque
nos cambios en la entrada nos generaran peque
nos cambios en la salida.

function [ a,S ] = valpro( A )


[m n]=size(A);
if m~=n
A=A*A;
end
[m n]=size(A);

16

S=eye(m);
syms x;
B=A-x*eye(m);
y=determinante(B);
a=(double(solve(y)));
a=real(sort(a,descend));
for i=1:m
if min(a)<0
S(i,i)=a(i);
else
S(i,i)=sqrt(a(i));
end
end
for i=1:m
if S(i,i)==0
S(i,:)=[];
end
end
Funci
on vecpro, para hallar los vectores propios:
function [ x ] = vecpro( A,a )
[m n]=size(A);
if m~=n
A=A*A;
end
[m n]=size(A);
B=eye(m);
s=0;
e=0.1;
C=A-(a-e)*B;
C=inv(C);
for i=1:m
x(i,1)=i;
end

EN VALORES SINGULARES SVD


DESCOMPOSICION

29

16

EN VALORES SINGULARES SVD


DESCOMPOSICION

30

for i=1:100
x=C*x;
c=max(x);
x=x/c;
end
for i=1:m
s=s+x(i)^2;
end
x=x/sqrt(s);
end
Funci
on vavepro, combina las funciones valpro y vecpro para formar las matrices S y V y genera los valores propios:
function [ a S V ] = vavepro( A )
[a S]=valpro(A);
[m n]=size(a);
for i=1:n
V(:,i)=vecpro(A,a(i));
end
Funci
on svd2:
function [ U S V ] = svd2( A )
[m n]=size(A);
[a S V]=vavepro(A);
if m<=n
for i=1:m
if min(a)<0
U(:,i)=(1/a(i))*A*V(:,i);
else
if a(i)==0
continue;
else
U(:,i)=(1/sqrt(a(i)))*A*V(:,i);
end
end

16

end
else
for i=1:n
if min(a)<0
U(:,i)=(1/a(i))*A*V(:,i);
else
if a(i)==0
continue;
else
U(:,i)=(1/sqrt(a(i)))*A*V(:,i);
end
end
end

EN VALORES SINGULARES SVD


DESCOMPOSICION

31

S-ar putea să vă placă și