Documente Academic
Documente Profesional
Documente Cultură
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
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
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
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
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
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
1
|y yb|
=
= 0,000004
|y|
1000000
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!
+ 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 +
h4
4!
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
+
h3
h5
h5
h6
h7
+
+
+ O(h4 ) + O(h4 )O(h6 )
3
24 24 48 144
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
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
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
10.2.
M
etodo de Newthon Raphsom
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!
f 0 (x0 )(x x0 )
1!
f 0 (x0 )(x x0 )
1!
10
x = x0
METODO
ITERATIVOS
14
f (x0 )
f 0 (x0 )
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
xn+1 = xn
11
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 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
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
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
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:
k1
X
lks usj
(k + 1 j n)
lis usk
(k + 1 i n)
s=1
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
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
(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
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.
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
con
k=0
LN,k (x) =
EN (x) =
N
j=0,j6=k (x xj )
N
j=0,j6=k (xk xj )
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
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
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 [xk1 , xk ] f [xk2 , xk 1]
,
xk f xk1
15.3.
f [xk ] f [xk 1]
,
xk f xk1
..
.
..
.
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
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
27
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
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
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
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:
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
29
16
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
31