Académique Documents
Professionnel Documents
Culture Documents
Fundamentos
de la
1/117
2/117
ndice
Aritmtica en un ordenador
Evaluacin de errores
Normas
Vectoriales
Matriciales
3/117
Introduccin
3x 2 C 5x
1;
4/117
Supongamos que toda la informacin y los datos que se necesitan para hacer
esta operacin estn adecuadamente guardados en el ordenador.
Cules deberan ser?
5/117
1
2
D2
1 4
2
C3
1 3
2
3
1 2
2
C 5 21
1 D 45 .
Es evidente que si esto hay que hacerlo muchas veces, el ahorro en tiempo de
esta segunda forma de proceder puede ser muy significativo, no?
6/117
1 C x 5 3x C 3x 2 C 2x 3
2
1Cx 5Cx
3 C 3x C 2x
1Cx 5Cx
3 C x 3 C 2x
1Cx 5Cx
1
2
3Cx 3Cx2
1
2
2; ms 3 D 4
1
2
4; ms
3D
. 1/; ms 5 D
1
2
92 ; ms
9
2
1 D 45 :
7/117
8/117
Con ellos, las cosas muy sencillas, sobre todo las que se repiten
indefinidamente, hay que hacerlas de forma ptima: ingeniera.
c1 C .x
r1/ c2 C .x
r2/ c3 C .x
r3/ c4 C .x
r4/.c5/
;
donde r1, r2, r3 y r4 son los que se conocen como puntos de base.
function y=Horner(d,c,x,b)
% Con regla de Horner se evala el polinomio de grado d,
%
definido en el vector c, en el punto x (puede ser vector).
%
Entrada: c(d+1), coeficientes del polinomio: c1, c2,...;
%
x, punto (vector) en el que se evala el polinomio;
%
b, puntos base, si es el caso.
%
Salida: y, valor del polinomio en x
%
if nargin<4, b=zeros(d,1); end
y=c(d+1);
for i=d:-1:1
y = y.*(x-b(i))+c(i);
end
end
9/117
10/117
function y=Horner(d,c,x,b)
% Con regla de Horner se evala el polinomio de grado d,
%
definido en el vector c, en el punto x (puede ser vector).
%
Entrada: c(d+1), coeficientes del polinomio: c1, c2,...;
%
x, punto (vector) en el que se evala el polinomio;
%
b, puntos base, si es el caso.
%
Salida: y, valor del polinomio en x
%
if nargin<4, b=zeros(d,1); end
y=c(d+1);
for i=d:-1:1
y = y.*(x-b(i))+c(i);
end
end
11/117
History
(300 2BC)
Al-Khwarizmi
Un Euclid
algoritmo
es un conjunto
ordenado(783-850)
y finito de operaciones y reglas que
permite hallar la solucin de un problema, o realizar una actividad relativamente
compleja.
lgebra
Al-Khwarizmi (783-850)
'H:LNLSHGLDODHQFLFORSHGLDOLEUH
12/117
13/117
De origen indo-arbigo entre los siglos IV y VI, transmitido a Europa gracias a la Escuela de Kerala, India.
14/117
D 0; d1d2 dp e
donde: es la base de numeracin, 0 di 1; i D 1; : : : ; p ;
p el nmero de dgitos significativos, o longitud de mantisa (precisin);
e el exponente, L (underflow) e U (overflow).
15/117
Mquina
Precisin
Simple
IEEE st. 754-1985 normali. Doble
Extendida
Simple
Doble
IBM mainframe
Extendida
Simple
Cray (superordenador)
Doble
Calculadoras HP
2
2
2
16
16
16
2
2
10
p
24
53
64
6
14
28
48
96
12
L
U
126
127
1022 1023
16381 16384
64
63
64
63
64
63
8192 8191
16383 16384
499
499
16/117
Normalizacin
17/117
1/ p 1.U
L C 1/ C 1
18/117
3;5
2;5
1;5
0;5
0;5
1;5
2;5
D 0;510:
3;5
Desnormalizacin
19/117
Desnormalizacin
3;5
1;5
0;5
0;5
1;5
2;5
3;5
En de
el sistema
de juguete
anterior,elel vaco
vaco central
se podra
rellenar con
En el sistema
juguete
anterior,
central
se podra
rellenar con
elementos cuya mantisa no empieza por 1. Se podran aadir 3 ms a cada lado
elementos cuya
mantisa no empieza por 1.
del cero, siendo el ms pequeo positivo representable el
.0;01/2 2
2;5
D .0;125/10.
Se podran aadir
3 ms a cada lado del cero, siendo el ms pequeo positivo
La desnormalizacin ampla el rango de nmeros representables, aunque la
representable el .0;01/2 2 1 D .0;125/10.
19/133
10
20/117
b2b1b0;b 1b 2
C b 22
:
21/117
Para convertir cualquier nmero del sistema decimal al binario habra que hacer
lo siguiente:
Parte entera Se divide por 2 sucesivamente y se guardan los restos, 0 1,
de cada divisin.
Esos restos se ordenan desde el primero al ltimo y se disponen de derecha a
izquierda. El conjunto de dgitos obtenido es la representacin en binario.
Por ejemplo, con 53;7 hacemos
53 2 D 26 r
26 2 D 13 r
13 2 D 6 r
62D 3r
32D 1r
12D 0r
1
0
1
0
1
1:
22/117
23/117
x D 0000;1011:
24/117
Restando
24
1 x D 10112 D 1110:
z D 000;101:
25/117
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
10000
10001
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
26/117
Por ejemplo,
>> format hex
>> 1
ans =
3ff0000000000000
>> 9.4
ans =
4022cccccccccccd
>> 1/0
ans =
7ff0000000000000
>> 0/0
ans =
fff8000000000000
27/117
52 51
Exponente
2047 D 211
Mantisa
1023/
28/117
Si Exp D 0, M D 0 y S D 0, el valor es 0.
1022
29/117
20 ,
su
0 01111111111 0000000000000000000000000000000000000000000000000000
una vez se aade 1023 al exponente. Entonces 0011111111112 D 3FF16.
nmero ms pequeo mayor que uno del sistema de numeracin de esa mquina. Si es el
52
IEEE estndar de precisin doble, maq
:
K D2
30/117
Volviendo a lo anterior,
31/117
32/117
>> eps1=epsilon
eps1 =
2.220446049250313e-016
>> eps
% El de Matlab
eps =
2.220446049250313e-016
33/117
23 22
Exponente
Valores tpicos
Mantisa
Exp
Valor
11111111
00000100000000000000000
NaN
11111111
00100010001001010101010
NaN
11111111
00000000000000000000000
10000001
10100000000000000000000
10000000
00000000000000000000000
00000001
00000000000000000000000
00000000
10000000000000000000000
00000000
00000000000000000000001
00000000
00000000000000000000000
1
C1 2129 127 1;101 D 6; 5
C1 2128 127 1;0 D 2
C1 21 127 1;0 D 2 126
C1 2 126 0;1 D 2 127
C1 2 126 2 23 D 2 149
00000000
00000000000000000000000
10000001
10100000000000000000000
11111111
00000000000000000000000
-0
1 2129
1
127
1;101 D
6; 5
Precisin doble
53 bits
11 bits
64
1023
-1022
21023 10308
2 1022 10 308
21 53 10 16
M D0
M 0 desnormalizados
0 < Exp < 255 0 < Exp < 2047 Exp D 255.s/ 2047.d/
potencias de 2
1
nmeros ordinarios
NaN
34/117
35/117
D2
D .1
fmi ndesnor: D 2
1022
D 2;225073858507201 10
53
1022 52
308
324
36/117
37/117
38/117
39/117
Truncando, el nmero
40/117
Excepcin: Si los bits que siguen al 52 son 10000 : : : (a medio camino entre el
valor superior e inferior) se redondea de tal manera que el 52 sea siempre 0.
51
23 D 0;4 2
48
41/117
En resumen
f l.9;4/ D 9;4 C 2
D 9;4 C 1
49
0;4 2
49
0;8 2
D 9;4 C 0;2 2
49
48
49
. Slo por
x j.
42/117
jx
x j
.
jxj
x j 1
maq
K :
jxj
2
43/117
ndice
Aritmtica en un ordenador
Evaluacin de errores
Normas
Vectoriales
Matriciales
44/117
Aritmtica en un ordenador
1023
1023
1023
1023
0;011
1;110
10;001 ) 10;001 21026 1023
D 1;0001 21027 1023 D 100012 D 1710
45/117
46/117
47/117
f l.a2b/j 1
maq
K :
ja2bj
2
48/117
C 1/
f lf l.10
1 D 0:
C f l.1
1/ D 10 3;
resultado exacto.
49/117
f l.x/ D 1 si 1 < x 1 C M .
>> a = 0.0;
for i = 1:10
a = a + 0.1;
end
a == 1
ans =
0
50/117
>> sin(pi)
ans =
1.2246e-016
>>
51/117
Recordemos el nmero 9; 4:
52/117
1
3
eyD
Resultado
xy
y x
xy
yx
0,10476 101
0,38095 100
0,23809 100
0,21428 101
0,190 10
0,238 10
0,524 10
0,571 10
4
5
5
4
0,182 10
0,625 10
0,220 10
0,267 10
4
5
4
4
5
7
53/117
Resultado
y u
0,30000 10 4 0,34714 10 4
.y u/ w 0,27000 101 0,31243 101
.y u/ v 0,29629 101 0,34285 101
uv
0,98765 105 0,98766 105
0,471 10 5
0,424
0,465
0,161 101
0,136
0,136
0,136
0,163 10
54/117
55/117
56/117
Como sabemos, para llevar a cabo sumas y multiplicaciones, los nmeros son
primeramente convertidos a un formato de exponente comn. Si el
desplazamiento que ello conlleva en uno de los dos supera los dgitos
significativos que la mquina permite, se puede perder toda la informacin de
ese nmero, o introducir nueva errnea en el resultado final.
>> format long
>> a=0.483525656234498
a =
0.483525656234498
>> b=0.483525534699123
b =
0.483525534699123
>> a-b
ans =
1.215353749861592e-007
57/117
58/117
c D 0;0000000001:
>> vpa(1-cos(0.000012),10)
ans =
.1e-9
>> vpa(1-cos(0.000012),30)
ans =
.71999999999136000000e-10
59/117
c
x2
10 10
D
1;44 10
10
D 0;6944 : : :
60/117
2 sen2.x=2/,
Example:
two en
expressions
Representacin
el entorno for
de 0the
desame function:
sin2 x 2
1 x/
cos2 x
1 sen.x=2/
.1 cos
y , g.x/ g(x)
D =
:
f .x/ fD(x) = 2
2
2
x
x
x
2
x=2
1.001
f
g
0.999
0.01
0.01
62/117
63/117
5;5
1
e 5;5
1
D 0;0040865:
1 C 5;5 C 15;125 C
64/117
65/117
10
se listan a continuacin.
>> expSeriesPlot(-10,5e-12)
Aproximacin en serie de exp(-10.000000)
k
1
2
3
.
.
47
48
49
50
51
52
53
trmino k
-1.000e+001
-1.000e+001
5.000e+001
suma
1.000e+000
-9.000e+000
4.100e+001
1.817e-012
-3.867e-013
8.055e-014
-1.644e-014
3.288e-015
-6.447e-016
1.240e-016
4.540e-005
4.540e-005
4.540e-005
4.540e-005
4.540e-005
4.540e-005
4.540e-005
1.803e-013
2.063e-013
1.258e-013
1.422e-013
1.389e-013
1.396e-013
1.394e-013
1.394e-013
66/117
10
10
10
10
Error absoluto
10
10
10
10
10
12
10
14
10
10
20
30
Numero de terminos
40
50
60
67/117
68/117
69/117
Si a D 1, b D
y
x2 D 0;000010000000001:
70/117
4/ D 1010:
c
:
ax1
71/117
72/117
Aproximacin de la derivada
f 0.x/ D lKm
f .x/
f .x C h/
h
f .x/
73/117
f 0.x/ D .f .x C h/
Esta expresin nos dice que el error de la aproximacin por diferencias finitas,
resultado del truncamiento de esa frmula a partir del tercer trmino, estar
acotado pues por M h=2, donde M acota jf 00.t /j en un t cerca de x.
Suponiendo por otro lado que el error interno del clculo de la funcin es , el
error de redondeo interno de evaluar la derivada por la frmula de diferencias
finitas estar acotado por 2= h.
6
74/117
Haciendo la derivada de esta suma con respecto a h igual a cero, se obtiene que
la misma se minimiza cuando
p
h 2 =M :
75/117
10
10
10
10
total error
6
10
error
10
10
10
12
10
14
truncation error
10
rounding error
16
10
18
10
16
10
14
10
12
10
10
10
10
step size
10
10
10
10
76/117
f .x C h/
f .x
2h
h/
77/117
Como es sabido
1
X
kD1
2
D
D 1;64493406684822640606569166266 : : :
6
78/117
El truncamiento que llevara a cabo este algoritmo hara que el resultado slo se
aproximase al exacto en cuatro dgitos, cuando lo esperable, de acuerdo con el
sistema de numeracin de la mquina, seran 6 dgitos mnimo. Qu pasa?
Como ya hemos visto, la precisin sencilla utiliza una mantisa de 24 bits por lo
que 4096 2, frente a s 1;6, se sale de la ventana de valores que admite la
palabra de ordenador que ha de representar el resultado. Igual ocurrira con los
trminos sucesivos.
79/117
80/117
81/117
Polinomio de Wilkinson
1/.x
2/ .x
20/:
82/117
Si se expande
w.x/Dx 20 210x 19 C 20615x 18 1256850x 17 C 53327946x 16 1672280820x 15 C
C40171771630x 14 756111184500x 13 C 11310276995381x 12
135585182899530x 11 C 1307535010540395x 10 10142299865511450x 9 C
C63030812099294896x 8 311333643161390640x 7 C
C1206647803780373360x 6 3599979517947607200x 5 C
C8037811822645051776x 4 12870931245150988800x 3 C
C13803759753640704000x 2 8752948036761600000xC
C2432902008176640000:
>> n = 20;
>> syms x
>> P20 = prod(x-(1:n))
P20 =
(x - 1)*(x - 2)*(x - 3)*(x - 4)*(x - 5)*(x - 6)*(x - 7)*(x - 8)*(x - 9)*(x - 10)*(x - 11)*
(x - 12)*(x - 13)*(x - 14)*(x - 15)*(x - 16)*(x - 17)*(x - 18)*(x - 19)*(x - 20)
>> P = expand(P20)
P =
x^20 - 210*x^19 + 20615*x^18 - 1256850*x^17 + 53327946*x^16 - 1672280820*x^15 +
40171771630*x^14 - 756111184500*x^13 + 11310276995381*x^12 - 135585182899530*x^11 +
1307535010540395*x^10 - 10142299865511450*x^9 + 63030812099294896*x^8 311333643161390640*x^7 + 1206647803780373360*x^6 - 3599979517947607200*x^5 +
8037811822645051776*x^4 - 12870931245150988800*x^3 + 13803759753640704000*x^2 8752948036761600000*x + 2432902008176640000
83/117
Veamos qu pasa.
function y=wilkpoly(x)
% Evalua en x el polinomio de Wilkinson
y=x^(20)-210*x^(19)+20615*x^(18)-1256850*x^(17)...
+53327946*x^(16)-1672280820*x^(15)+40171771630*x^(14)...
-756111184500*x^(13)+11310276995381*x^(12)...
-135585182899530*x^(11)+1307535010540395*x^(10);
y=y-10142299865511450*x^9+63030812099294896*x^8;
y=y-311333643161390640*x^7+1206647803780373360*x^6;
y=y-3599979517947607200*x^5+8037811822645051776*x^4;
y=y-12870931245150988800*x^3+ 13803759753640704000*x^2;
y=y-8752948036761600000*x+2432902008176640000;
end
>> fzero(@wilkpoly,16)
ans =
16.014680305804578
%
%
>> Z = sort(solve(P))
Z =
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
Sorprendente?
84/117
ndice
Aritmtica en un ordenador
Evaluacin de errores
Normas
Vectoriales
Matriciales
85/117
86/117
yi D
aij xj :
j D1
87/117
88/117
89/117
90/117
function y = MatVecC(A,x)
[m n] = size(A);
y = zeros(m,1);
for j=1:n
y = y + A(:,j)*x(j);
end
end
91/117
92/117
function y=VecMatF(x,A)
[m n] = size(A);
y = zeros(1,n);
for j=1:m
y = y+x(j)*A(j,:);
end
end
function y=VecMatC(x,A)
[m n] = size(A);
y = zeros(1,n);
for j=1:n
y(j) = y(j)+x*A(:,j);
end
end
93/117
cij D
aik bkj ;
kD1
(i)
a(i)
94/117
i
j
j
cij
r
a'(i )
function C = MatMatInt(A,B)
[m r] = size(A);
[r n] = size(B);
C = zeros(m,n);
for j=1:n
for i=1:m
C(i,j) = A(i,:)*B(:,j);
end
end
end
b( j )
cij
AB = C
c(j) = Ab(j)
95/117
c(j) and
column
Ahora
bien,bcada
columna
j devectors.
la matriz C es el resultado de multiplicar la
(j) are
matriz A por el vector columna j -simo de B.
i
j
=
r
A
function C = MatMatVec(A,B)
[m r] = size(A);
[r n] = size(B);
C = zeros(m,n);
for j=1:n
C(:,j) = A*B(:,j);
end
end
b( j )
c( j )
TheMatlab:
column view of the matrixmatrix product AB = C is
En
96/117
Segn esto,
3
3
2
u1
u1 v1 u1 v2 u1 vn
6 u2 7
6 u v u v u2 vn 7
7 v1 v2 vn D 6 2: 1 2: 2 :
7
uvT D 6
:
4 :: 5
4 ::
::
: : ::: 5 :
um
um v1 um v2 um vn
2
r
i
C D AB D
En Matlab:
function C = MatMatExte(A,B)
[m r] = size(A);
[r n] = size(B);
C = zeros(m,n);
for k=1:r
C = C + A(:,k)*B(k,:);
end
end
97/117
98/117
99/117
C11 D P 1 C P 4
C12 D P 3 C P 5
C21 D P 2 C P 4
C22 D P 1 C P 3
P5 C P7
P 2 C P 6:
y luego
100/117
1/ sumas.
101/117
El orden de las matrices de menor tamao al que se puede aplicar esta idea es
nmi n D 16, pues con bloques ms reducidos el nmero de operaciones que se
realiza es mayor que el ordinario.
102/117
103/117
104/117
ndice
Aritmtica en un ordenador
Evaluacin de errores
Normas
Vectoriales
Matriciales
105/117
Normas
Vectoriales
x 0 H) kxk > 0;
2 K y v 2 E;
vk kuk
kvk:
1=
vk kuk
kvk:
kxk1 D
kxk2 D
n
X
i D1
jxi j
p
jx1 j2 C C jxn j2
107/117
n
X
i D1
jxi j
kxk1 D mK
ax
jx j
q 1i n i
kxk2 D
jx1j2 C C jxnj2
(norma eucldea en R n)
Cumplen, cualquiera que sea x 2 Kn, que kxk1 kxk2 kxk1 nkxk1.
x11 D
=
kxk
x22 D
=
kxk
2
i
2
i=1
|xijx
| ij
iD1
D1
q
2 2
|x11|j22+C|xjx
2 | 2=
jx
j
q
DxT xx T x
D1
x1
max
kxk
D1i2
mKax|xjx
=
i| i j D 1
1i2
xpp D
= jx
|x11|j
kxk
D1
a
1/p
p 1=p
+C|xjx
p
< p)
< 1/
2 | 2 j , (1 ;.1
pp
28/63
108/117
109/117
kf k1 D mKax jf .t /j :
t20;1
110/117
xT y
D
;
kxkkyk
1 1:
Vectores alineados:
Vectores opuestos:
x T y > 0;
ngulo obtuso:
x T y < 0;
D =2;
x T y D kxkkyk;
xT y D
kxkkyk;
D 0.
D 0;
D ;
D1
< =2;
> 0.
> =2;
< 0.
D
1.
Normas matriciales
111/117
Existen normas sobre el espacio R mn que no son normas matriciales pues no
cumplen la propiedad 4. As, si se define
kAk D mKax jaij j ;
1i;j n
h i
se satisfacen 1), 2) y 3); sin embargo, tomando A D B D 11 11 , es fcil ver
que kABk D
2 2
D 2 > kAk kBk D 1, por lo que no se cumple 4).
22
112/117
Definicin Una norma matricial k k sobre R mn se dice consistente con una
norma vectorial k k0 sobre R n cuando para cada matriz A y cada vector x se cumple que
kAxk0 kAk kxk0 :
Se demuestra que para toda norma matricial es posible construir una norma
vectorial consistente. Recprocamente, a toda norma vectorial sobre R n se le
puede asociar una norma matricial consistente.
113/117
kAxk
:
sup
kxk
0x 2Rn
sup
0x 2Rn
x T A T Ax
xT x
1=2 q
D max .A T A/ D max .A/
114/117
1j n
kAk1 D mKax
1i m
m
X
iD1
n
X
j D1
jaij j (columnas) y
jaij j (filas) :
115/117
Se define como
kAk2F
1i;j n
aij2 D traza A H A ;
Pn
i D1 ai i .
[1, 0]T
norma11
norma
[1, 0]T
A2 2,9208
norma22
norma
A = 3
norma1
norma
1
0
en s mismo; e 2 D
0
39/63
en
2
2
116/117
117/117