Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido
1. R=chol(A) CON PIVOTAJE.....................................................................................................4
2. B=lugauss(A) (factorización cholesky SIN PIVOTAJE)...........................................................4
3. B=A\b...................................................................................................................................5
4. Forward y backsubs.............................................................................................................6
5. Factorización PA=LU............................................................................................................7
6. A=Q*R..................................................................................................................................8
7. Autovalores y radio espectral..............................................................................................9
8. Matriz de Jacobi...................................................................................................................9
9. Matriz de Gauss-Seidel......................................................................................................10
10. Matriz de relajación.......................................................................................................11
11. Discos de Gerschgorin....................................................................................................12
12. Método QR PARA VALORES PROPIOS...........................................................................12
13. Método eigqrshift y eigqr..............................................................................................14
14. Metodo de givenshessqr...............................................................................................15
15. Método de potencias.....................................................................................................16
16. Método de potencias inverso........................................................................................19
17. Construcción de la pseudoinversa..................................................................................20
18. Comprobación de que A es igual a la suma de matrices de rango 1...............................22
19. Cálculo de la pseudoinversa mediante factorizaion QR de una matriz n*m...................23
MÉTODO 1: Función pinv.......................................................................................................24
MÉTODO 2: Producto inversa A’*A por A.............................................................................24
Método 3: Factorización QR..................................................................................................24
20. Compresión de imágenes...............................................................................................25
21. Factor de compresión.....................................................................................................27
22. El error relativo en la norma 2:.......................................................................................27
23. Ecuaciones no lineales....................................................................................................27
1.Método Newton(newton):.................................................................................................27
2. Método de newton con gráficas (fzero):...........................................................................28
3.Función newtonsys.............................................................................................................30
*Evolución de las iteraciones:............................................................................................32
24. Resolver sistema de ecuaciones....................................................................................33
25. Sistemas de ecuaciones (tres ecuaciones no lineales con tres incógnitas)...................33
26. Cálculo de raíces de polinomios. La matriz compañera................................................36
Polinomios con raíces reales.................................................................................................36
Type roots..........................................................................................................................36
Poly....................................................................................................................................36
Fzero..................................................................................................................................36
Polinomios con raíces imaginarias........................................................................................37
Compan..............................................................................................................................37
Transpose...........................................................................................................................37
Errores de redondeo entre matriz compañera y la matriz del texto de Trefethen-Bau...38
27. Interpolación polinómica...............................................................................................38
Interpolación de Lagrange baricéntrica:...............................................................................38
Comprobación del polinomio interpolatorio de Lagrange obtenido..................................39
Gráfica del polinomio de interpolación:.............................................................................40
Ajuste polinómico (con coeficientes del polinomio interpolante)......................................40
Ajuste polinómico (sin coeficientes del polinomio interpolante).......................................41
Interpolación de Lagrange baricéntrica................................................................................41
Gráfica del polinomio con fórmula baricéntrica.................................................................45
Evaluación del polinomio de interpolación en los puntos de Chebyshev............................45
Gráfica de interpolación en puntos de Chebyshev.............................................................46
Interpolación de Hermite:.....................................................................................................46
Gráfica del polinomio de Hermite......................................................................................47
28. Auste polinómico por mínimos cuadrados....................................................................48
Resolviendo las ecuaciones normales................................................................................48
Backlash.............................................................................................................................49
Factorización A = QR...........................................................................................................50
Pseudoinversa....................................................................................................................51
Polyfit.................................................................................................................................53
29. Problemas de regresión con dos variables independientes.........................................54
30. Aproximar la derivada segunda en un punto c.............................................................58
31. La regla de Simpson compuesta....................................................................................59
FUNCIONES................................................................................................................................65
EJEMPLOS
A=
2. B=lugauss(A) (factorización cholesky SIN
1 2 -2 PIVOTAJE)
2 7 5 >> A=[4 -2 0; -2 3 -2; 0 -2 6]
-2 5 35 A=
0 0 2.0000 B=
-0.5000 0 0
0 -1.0000 0
>> L=L+eye(3)
L=
1.0000 0 0
-0.5000 1.0000 0
0 -1.0000 1.0000
v(i)=sqrt(U(i,i));
end
>> DS=diag(v)
DS =
2.0000 0 0
3. B=A\b
0 1.4142 0
>>%Introducimos la matriz A
0 0 2.0000
>> A = [4,-2,0; -,3,-2; 0,-2,6]
>> %Finalmente obtenemos la R=DS*L'
A=
>> R=DS*L'
4 -2 0
R=
-2 3 -2
2.0000 -1.0000 0
0 -2 6
0 1.4142 -1.4142
>>%Introducimos la matriz b
0 0 2.0000
>> b = [-4,8,-2]'
>> %Comprobación con chol(A)
b=
>> J=chol(A)
-4
J=
8
2.0000 -1.0000 0
-2
0 1.4142 -1.4142
>>%Calculamos la solución del sistema dividiendo
0 0 2.0000 A entre b o dicho de otra forma calculamos la
inversa de A y la multiplicamos por la matriz b
>>B=A\b
B=
1.0000
4.0000
1.0000
>> %Como sabemos que U=sqrt(D)+L' sacamos la
matriz DS=sqrt(D
v(i) = sqrt(U(i,i));
end
>> DS=diag(v)
DS =
2.0000 0 0
0 1.4142 0
4. Forward y backsubs
>> A =[1,2,3; 2,5,8; 3,9,16] 0 0 2.0000
A= >> %Finalmente obtenemos la R=DS*L'
123 >> R=DS*L'
258 R=
3 9 16 2.0000 -1.0000 0
>>%Calculamos R usando la factorización LU 0 1.4142 -1.4142
sin pivotaje:
0 0 2.0000
>> B=lugauss(A)
>>
B=
>> y=forward(R',b)
4.0000 -2.0000 0
y=
-0.5000 2.0000 -2.0000
-2.0000
0 -1.0000 4.0000
4.2426
>> %Como hemos obtenido la B=U+L separo las
2.0000
dos matrices
>>
>> L=tril(B,-1)+eye(3)
>> 6/sqrt(2)
L=
ans =
1.0000 0 0
4.2426
-0.5000 1.0000 0
>>
0 -1.0000 1.0000
>> x=backsubs(R,y)
>> U=triu(B)
x=
U=
1.0000
4 -2 0
4.0000
0 2 -2
1.0000
004
U=
0 -0.7500 -1.2500
0 0 -0.6667
P=
0 0 1
1 0 0
0 1 0
>>L*U
ans =
8 7 9
2 1 1
4 3 3
5. Factorización PA=LU
>>% Introducimos la matriz A >> P*A
A= 8 7 9
2 1 1 2 1 1
4 3 3 4 3 3
L= -0.5000
1.0000 0 0 -0.6667
R=
-3 -2 -1
0 -1 0
0 0 -1
>> Q*R
ans =
>> Q'*Q
ans =
A= >>%Resolvemos el sistema
1 0 1 >> y = Q'*b
-2 -1 0 y=
2 2 1 -12.0000
b= >> x = R\y
4 x=
-6 2.0000
10 2.0000
>> [Q,R]=qr(A)
>> %La suma de los autovalores es la traza de la
matriz
>> trace(A)
ans =
20
>> eig(A)
ans =
2.2679
3.0000
4.0000
5.0000
5.7321
>> autovalor=max(abs(eig(A)))
autovalor =
5.7321
>> radioespectral=max(abs(eig(A)))
radioespectral =
5.7321
7. Autovalores y radio espectral
>> %Cálculo de autovalores de una matriz para ver
si es definida positiva
-1 4 -1 0 0 >> v=diag(A)
0 -1 4 -1 0 v=
0 0 -1 4 -1 4
0 0 0 -1 4 4
4 -0.0000
4 0.2500
4 0.433
4 0 0 0 0
0 4 0 0 0
0 0 4 0 0
0 0 0 4 0
0 0 0 0 4
>> TJ=SJ-A
TJ =
0 1 0 0 0
1 0 1 0 0
0 1 0 1 0
0 0 1 0 1
0 0 0 1 0
>> BJ=inv(SJ)*TJ
BJ =
0 0.2500 0 0 0
0.2500 0 0.2500 0 0
0 0.2500 0 0.2500 0
0 0 0.2500 0 0.2500
0 0 0 0.2500 0
>> eig(BJ)
-0.2500
>> %Comenzamos formando una matriz autovalores =
compuesta por los elementos de la matriz A
0
que se encuentren por encima de la diagonal
0.1875
>> SG=tril(A)
0.0625
SG =
-0.0000
4 0 0 0 0
0.0000
-1 4 0 0 0
>> %como tiene un autovalor cero no
0 -1 4 0 0
sabemos si es definida positivia
0 0 -1 4 0
>> radioespectral=max(abs(eig(BG)))
0 0 0 -1 4
radioespectral =
>> %A continuación formaremos una nueva
0.1875
matriz de la resta de la ultima matriz menos la
A
>> TG = SG-A
TG =
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
0 0 0 0 0
>> BG=inv(SG)*TG
BG =
0 0.2500 0 0 0
0 0.0625 0.2500 0 0
>> autovalores=eig(BG)
0 0 0 0 -0.1972
>> BR=inv(SR)*TR
10. Matriz de relajación
>> %Construcción de matriz de relajación BR BR =
ans = 1.0e+02 *
ans = 1 4 9 -9 6
343.0000 -7 5 -7 -1 7
ans = H=
13.0354 R=
-20.0000 Qm =
1.0000e-10 ans =
nmax = -0.1776
100 0.0888
>> x0=[1,0,0]' 0
v1 = 1.0000
0 0 0 >> [lambda2,x2,iter]=eigpower(Bh,1.e-
15,nmax,x0)
2.1292 -0.7417 -1.4833
lambda2 =
3.0000 -0.0000 -3.0000
-3.0000
>> Bh = B(2:3,2:3)
x2 =
Bh =
0.5490
-0.7417 -1.4833
0.8358
-0.0000 -3.0000
iter =
>> eig(Bh)
40
ans =
>> %A partir de este vector propio de Bh
-0.7417
podemos calcular u2, el
-3.0000
>> %correspondiente vector propio de A
>> %
>> w2=[0,x2(1),x2(2)]'
>> %Aplicamos el método de potencias a la
w2 =
matriz Bh
0
>> [lambda2,x2,iter]=eigpower(Bh,1.e-
15,nmax,x0) 0.5490
>> V(:,2) 1 0 0
-0.7442 x0 =
0.2481 1
0.6202 0
>> norm(u2,2) 0
-0.7442 >> mu = -5
0.2481 mu =
0.6202 -5
-0.5243 x=
-0.6021 0.6021
iter =
11
>> nmax=50
nmax =
50
mu = %Inversa de Moore-Penrose
>> x0=[1,0,0]' A=
x0 = 1 0
1 0 1
0 1 1
>> [lambda,x,iter]=invshift(A,mu,1.e- U=
15,nmax,x0) -0.4082 0.7071 -0.5774
lambda =
-0.4082 -0.7071 -0.5774 >> pinv(A)
0 1.0000
0 0 MÉTODO 2 ( n = r )
-0.7071 0.7071 A=
-0.7071 -0.7071 1 0
%la función svd nos da los valores singulares >> % que requiere calcular la inversa de A’*A:
en orden decreciente
>> rank(A)
>> %Se tiene que cumplir la igualdad:
ans =
A=U*S*V'
2
>> %Construcción de la pseudoinversa de A o
inversa de Moore-Penrose >> size(A)
>> %Ap=v*Sp*u' ans =
>> %Donde Sp tiene por elementos 3 2
diagonales no nulos los inversos de
>> %n=rango
>> %los valores singulares
>> M=inv(A'*A)
>> Sp=[1/S(1,1),0,0; 0,1/S(2,2),0]
M=
Sp =
0.6667 -0.3333
0.5774 0 0
-0.3333 0.6667
0 1.0000 0
>> M*A'
>> Ap=V*Sp*U'
ans =
Ap =
0.6667 -0.3333 0.3333
0.6667 -0.3333 0.3333
-0.3333 0.6667 0.3333
-0.3333 0.6667 0.3333
>> Ap
>> %La función pinv (pseudo-inv) nos
proporciona la pseudoinversa: Ap =
0.6667 -0.3333 0.3333 0 1.0000
>> (M*A')-Ap V=
sigma2 =
-0.4082
18. Comprobación de que A es igual a la
suma de matrices de rango 1 -0.4082
>> %Compresión de imágenes
-0.8165
>> A=[1,0; 0,1; 1,1]
>> u2=U(:,2)
A=
u2 =
1 0
0.7071
0 1
-0.7071
1 1
-0.0000
>> [U,S,V] = svd(A)
>> v1=V(:,1)
U=
v1 =
-0.4082 0.7071 -0.5774
-0.7071
-0.4082 -0.7071 -0.5774
-0.7071
-0.8165 -0.0000 0.5774
>> v2=V(:,2)
S=
v2 =
1.7321 0
0.7071 x=
-0.7071 1 2 3 4 5 6 7 8 9 10 11
12
>> %Hemos metido cada columna en un
vector >> V=vander(x);
ans = V=
>> sigma2*u2*v2' 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
ans = 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.5000 -0.5000 0.0036 0.0006 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
-0.5000 0.5000 0.0198 0.0028 0.0004 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000
>> sigma2*u2*v2' 1.0000 0.1000 0.0100 0.0010 0.0001 0.0000 0.0000 0.0000 0.0000
0.5000 -0.5000
Columns 10 through 12
-0.5000 0.5000 0.0000 0.0000 0.0000
0 -0.3331 >>
0.0000 0.0000 0.0000 0.1890 -0.6892 0.6462 0.3102 -0.4657 -0.4131 0.2549 0.4986 -0.1109
0.0000 0.0000 0.0000 -0.0173 0.0665 -0.0671 -0.0282 0.0508 0.0410 -0.0304 -0.0530 0.0149
1 2 4 8 16 32 64 128
MÉTODO 2: Producto inversa A’*A por A
>> %construyo pseudoinversa invirtiendo la
1 3 9 27 81 243 729 2187
matriz A'*A, nos proporciona una expresión
1 4 16 64 256 1024 4096 16384
explícita
1 5 25 125 625 3125 15625 78125
>> size(R)
ans =
20. Compresión de imágenes
8 8 >>%Leemos la imagen
4.1040 -12.5412 9.2993 5.9744 -5.8825 -6.4924 2.6484 6.9200 -0.8414 >> X1=X(:,:,1);
-1.1722 3.9828 -3.3820 -1.8708 2.2903 2.2563 -1.1362 -2.5476 0.4290
>> size(X1)
0.1890 -0.6892 0.6462 0.3102 -0.4657 -0.4131 0.2549 0.4986 -0.1109
>> max(max(X1))
Columns 10 through 12
ans =
-4.4848 3.1515 -0.6667
uint8
>> size(A)
ans =
683 1024
>> max(max(A))
ans =
1.4280e+10
>> sqrt(tr)
ans =
1.1950e+05
>> imagesc(A)
>> sigma=svd(A);
>> colormap(gray)
>> norm(A,2) 2513 1881
>> fc180 =
ans =
180*(2513+1881+1)/(2513*1881)
1.0999e+05 fc180 =
0.167359396211471
>> sigma(1)
>> sigma(rank(A))
ans =
6.9977
-1.7321 zero =
res = -1.4142
4.4409e-16 res =
-4.4409e-16 >> fplot(@(x) 0, [-2,2])
In
matlab.graphics.function.FunctionLine.set.Func
tion_I
In
matlab.graphics.function.FunctionLine.set.Func
tion
In matlab.graphics.function.FunctionLine
Infplot>@(f)singleFplot(cax,
{f},limits,extraOpts,args) (line 200)
F1 =
@(x,y)x^2+y^2-1
F2 =
10 >> x0=[1,1]'
>> x0=[-1,-1]' x0 =
x0 = 1
-1 1
-1 >> [x,res,niter] =
newtonsys(@Ffun,@Jfun,x0,1.e-
>> [x,res,niter] =
15,100)
newtonsys(@Ffun,@Jfun,x0,1.e-
15,100) The method converged at iteration 10
with residual 0.000000e+00
The method converged at iteration 10
with residual 0.000000e+00 The method converged at iteration 0
with residual
x= 0.476094633757720
0.4761 -0.879396119396223
-0.8794 x=
res = 0.476095822533811
0 -0.879393408989750
niter = x=
10 0.476095822537555
1 6 1.22893 0.687184 x0 =
0.694 1 -1
2 7 1.22893 1 -1
0.694 1
>> [x,fval]=fsolve(@Ffun,x0,options)
3 10 1.00835 0.25
0.0987 0.25 Norm of First-order Trust-region
5 16 0.906499 0.25 0 3 5 8
0.324 0.25 1
7 22 0.000480315 2 7 1.22893 1
0.125407 0.0639 1.56 0.694 1
6 19 0.0371533 0.625 x0 =
0.286 0.625
0.7500
7 22 0.000480315
0.5000
0.125407 0.0639 1.56
-0.5000
8 25 2.89699e-08
0.00795493 0.000478 1.56 >> [x,res,niter] =
newtonsys(@Ffun3d,@Jfun3d,x0,1.e-
9 28 8.02739e-17 6.11466e-
15,100)
05 2.55e-08 1.56
The method converged at iteration 7
Equation solved.
with residual 0.000000e+00
fsolve completed because the vector of
The method converged at iteration 0
function values is near zero
with residual 1.110223e-16
as measured by the value of the
x=
function tolerance, and
1.0000
the problem appears regular as
measured by the gradient. -0.0000
<stopping criteria details> -1.0000
x= res =
-0.4761 0
0.8794 niter =
fval = 7
1.0e-08 * >> %Pedimos los valores de x, res y el
número de iteraciones:
0.3740
>> x
0.8142
x=
25. Sistemas
de 1.0000
ecuaciones
-0.0000
(tres
ecuaciones -1.0000
no lineales
con tres >> res
incógnitas)
res =
>> %Primero metemos las ecuaciones
como funciones en script 0
0 4 2.44141 5
2.44 1 3
1 8 1.28892 1 >> [x,fval]=fsolve(@Ffun3d,x0,options)
3.21 1
Norm of First-order Trust-region
2 12 0.00945865
0.299689 0.222 1 Iteration Func-count f(x) step
optimality radius
3 16 1.1936e-06
0.0322447 0.00242 1 0 4 1685
404 1
4 20 3.53621e-14
0.000431187 4e-07 1 1 8 815.033 1
238 1
2 12 60.5998 2.5
Equation solved. 38.5 2.5
3 13 60.5998 4.18265
fsolve completed because the vector of 38.5 6.25
function values is near zero 4 17 8.74355 1.04566
as measured by the value of the 7.93 1.05
function tolerance, and 5 18 8.74355 2.29181
7.93 2.61
6 22 2.2009 0.572953 >> %El método de Newton para esa
2.24 0.573 misma estimación inicial x0:
Equation solved. 11
-0.0000 x0 =
-2
fval = 1
1.0e-10 * >>
res =
>> p = poly(r)
2.065087526346997e-17
p=
niter =
1.0000 -6.0000 11.0000 -6.0000
7
Fzero
>> Utilice la función fzero para encontrar las
raíces de las ecuaciones no lineales.
- Ahora sí: tenemos la solución (-1,1,0). Mientras que la función roots sólo
funciona con polinomios, la
función fzero se aplica más ampliamente a
26. Cálculo de raíces de polinomios. La
los distintos tipos de ecuaciones.
matriz compañera.
1 0 0 0 0
c=
0 1 0 0 0
1 -6 11 -6
0 0 1 0 0
>> r=roots(c)
0 0 0 1 0
>>%Se demuestra que, aunque todo el >> A1 = compan(p)
polinomio este multiplicado por un n
A1 =
número la matriz compañera es la misma
15 -85 225 -274 120
>> q=2*p
1 0 0 0 0
q=
0 1 0 0 0
2 -30 170 -450 548 -240
0 0 1 0 0
>> Aq = compan(q)
0 0 0 1 0
Aq =
>> A2 = transpose(A1)
15 -85 225 -274 120
A2 =
1 0 0 0 0
15 1 0 0 0
0 1 0 0 0
-85 0 1 0 0
0 0 1 0 0
225 0 0 1 0
0 0 0 1 0
-274 0 0 0 1
>>%Sacamos los valores propios de la
matriz 120 0 0 0 0
>> eig(Ap) >> A3 = flipud(A2)
ans = A3 =
5.0000 120 0 0 0 0
4.0000 -274 0 0 0 1
3.0000 225 0 0 1 0
2.0000 -85 0 1 0 0
1.0000 15 1 0 0 0
>>%Sacamos las raíces del polinomio q
>> C = fliplr(A3)
>> roots(q)
ans =
5.0000
C=
4.0000
0 0 0 0 120
3.0000
2.0000 1 0 0 0 -274
1.0000 0 1 0 0 225
Transpose 0 0 1 0 -85
Devuelve la transposición no conjugada de
A, es decir, intercambia el índice de fila y 0 0 0 1 15
columna de cada elemento en cuatro
(matriz del libro Trefethen-Bau.)
pasos.
Errores de redondeo entre matriz 27. Interpolación polinómica.
compañera y la matriz del texto de Interpolación de Lagrange
Trefethen-Bau baricéntrica:
>>%sacamos los valores propios de ambas >> %Meto los nodos en dos vectores
matrices para comparara los errores
>> x =[0;1;2;3]
>> vpm = eig(A1)
vpm =
x=
5.0000
0
4.0000
1
3.0000
2
2.0000
3
1.0000
>> x=x'
>> vpt = eig(C)
x=
vpt =
0 1 2 3
1.0000
>> y=[-5;-6;-1;16]
2.0000
y=
3.0000
-5
4.0000
-6
5.0000
-1
>>%Calculamos la norma de 2 de cada
vector formado por los valores propios 16
sacados anteriormente y redondeados, >> y=y'
ordenados según eig
y=
>> vpe1=[5,4,3,2,1]';
-5 -6 -1 16
>> norm(vpe1-vpm,2)/norm(vpe1,2)
>> %Construyo la matriz de Vandermonde
ans = para x
3.9484e-14 >> V = vander(x)
>> vpe2=[1,2,3,4,5]'; V=
>> norm(vpe2-vpt,2)/norm(vpe2,2) 0 0 0 1
ans = 1 1 1 1
6.9197e-14 8 4 2 1
27 9 3 1
A= -0.000000000000001
1 0 0 0 -2.000000000000000
1 1 1 1 -5.000000000000000
1 2 4 8 >> p=p'
1 3 9 27 p=
s= -5
-2.000000000000000 ans =
-0.000000000000001 -6.000000000000001
ans =
-1.000000000000002
>> polyval(p,3)
ans =
>>
Gráfica del polinomio de interpolación:
>> % da MATLAB (aunque los números no
sean exactamente los mismos, debido al
>> x1=linspace(0,3); procedimiento
>> %Esta función nos da cien puntos >> %que MATLAB use para resolver el
igualmente espaciados, de 0 a 3. sistema…):
u=
2.500000000000000
>> polyval(q,u)
ans =
5.624999999999998
v=
Ajuste polinómico (con coeficientes del
polinomio interpolante) 5.625000000000000
>> q = polyfit(x,y,3) >> polyval(p,2.5)
q= ans =
1.000000000000000 - 5.624999999999998
0.000000000000002 -1.999999999999993
-5.000000000000005 >> %El valor en el punto x = 4:
>> polyval(q,4)
ans =
50.999999999999993 0.900000000000000
v4 = 1.000000000000000
51 1.050000000000000
>> 1.100000000000000
1.150000000000000
data = 1.500000000000000
1 16 1.550000000000000
2 18 1.600000000000000
3 21 1.650000000000000
4 17 1.700000000000000
5 15 1.750000000000000
6 12 1.800000000000000
1.850000000000000
ux = 2.250000000000000
0.750000000000000
2.300000000000000
0.800000000000000
2.350000000000000
0.850000000000000
2.400000000000000
2.450000000000000 4.000000000000000
2.500000000000000 4.050000000000000
2.550000000000000 4.100000000000000
2.600000000000000 4.150000000000000
2.650000000000000 4.199999999999999
2.700000000000000 4.250000000000000
2.750000000000000 4.300000000000000
2.800000000000000 4.350000000000000
2.850000000000000 4.400000000000000
2.900000000000000 4.450000000000000
2.950000000000000 4.500000000000000
3.000000000000000 4.550000000000000
3.050000000000000 4.600000000000000
3.100000000000000 4.650000000000000
3.150000000000000 4.700000000000000
3.200000000000000 4.750000000000000
3.250000000000000 4.800000000000000
3.300000000000000 4.850000000000000
3.350000000000000 4.900000000000000
3.400000000000000 4.950000000000000
3.450000000000000 5.000000000000000
3.500000000000000 5.050000000000000
3.550000000000000 5.100000000000000
3.600000000000000 5.150000000000000
3.650000000000000 5.200000000000000
3.700000000000000 5.250000000000000
3.750000000000000 5.300000000000000
3.800000000000000 5.350000000000000
3.850000000000000 5.400000000000000
3.900000000000000 5.450000000000000
3.950000000000000 5.500000000000000
5.550000000000000 14.624256000000001
5.600000000000000 14.511840820312500
5.650000000000000 14.474350250000002
5.700000000000000 14.503692960937498
5.750000000000000 14.592191999999999
5.800000000000000 14.732575726562503
5.850000000000000 14.917968749999998
5.900000000000000 15.141882867187501
5.950000000000000 15.398207999999999
6.000000000000000 15.681203132812497
6.050000000000000 15.985487250000002
6.100000000000000 16.306030273437500
6.150000000000000 16.638144000000004
6.200000000000000 16.977473039062495
6.250000000000000 17.319985750000004
p= 19.531860351562504
20.559448242187496 19.790562750000007
19.335743999999995 20.029237492187502
18.279928507812500 20.246592000000000
17.379773249999996 20.441557757812497
16.623545648437499 20.613281249999996
16.000000000000000 20.761114898437498
15.498368414062501 20.884608000000000
15.108351749999999 20.983497664062494
14.820110554687503 21.057699749999998
21.107299804687500 15.836487750000000
21.132544000000003 15.684889054687501
21.133830070312502 15.547391999999999
21.111698250000003 15.424459320312501
21.066822210937499 15.316406250000000
21.000000000000000 15.223391460937499
20.912144976562502 15.145407999999998
20.804276750000000 15.082274226562502
20.677512117187494 15.033624750000001
20.533056000000006 14.998901367187500
20.372192382812500 14.977343999999999
20.196275249999999 14.967981632812497
20.006719523437500 14.969623250000000
19.804992000000002 14.980848773437497
19.592602289062498 15.000000000000000
19.371093750000000 15.025171539062500
19.142034429687499 15.054201750000001
18.907008000000001 15.084663679687500
18.667604695312498 15.113856000000002
18.425412250000001 15.138793945312500
18.182006835937500 15.156200250000001
17.938943999999996 15.162496085937500
17.697749601562499 15.153791999999999
17.459910749999999 15.125878851562501
17.226866742187500 15.074218750000000
17.000000000000000 14.993935992187499
16.780627007812505 14.879808000000002
16.569989250000003 14.726256257812500
16.369244148437499 14.527337250000000
16.179456000000005 14.276733398437500
16.001586914062500 13.967744000000001
13.593276164062502
13.145835749999996
12.617518304687499
12.000000000000000
11.284528570312503
10.461914250000007
Evaluación del polinomio de
9.522520710937496
interpolación en los puntos de
8.456255999999996 Chebyshev
>> n=1000
7.252563476562498
n=
Gráfica del polinomio con fórmula
baricéntrica 1000
>>%Primero hay que aclarar que la x son el
>> %meto la funcion a interpolar
numero de datos y que la y son los datos
>> fun = inline('abs(x) + 0.5*x -x.^2')
>> x=data(:,1)
fun =
x=
Inline function:
1
fun(x) = abs(x) + 0.5*x -x.^2
2
>> %calculo de los pesos o puntos de
3
Chebyshev
4
>> x = cos(pi*(0:n)'/n);
5
>> %calculo los valores de los pesos de
6 Chebyshev
12 >>xx = linspace(-1,1,5000)';
>> denom=zeros(size(xx));
>> %he restado a cada elemento del vector >> %x0=0 p'(0)=a1
xx el xj
>> %x1=1 p'(1)=a1+2a2+3a3+4a4+5a5
>> ff = numer./denom;
>> %Formo una matriz con las ecuaciones
Gráfica de interpolación en puntos de de la siguiente forma:
Chebyshev
>>A=[p(x0);p'(x0);p(x1);p'(x1)...
>> plot(x,f,'.',xx,ff,'-')
>> A = [1,0,0, 0, 0, 0; 0, 1, 0, 0, 0, 0; 1, 1, 1,
1, 1, 1; 0, 1, 2, 3, 4, 5; 1, 2, 4, 8, 16, 32; 1, 3,
9, 27,81, 243]
A=
1 0 0 0 0 0
0 1 0 0 0 0
1 1 1 1 1 1
0 1 2 3 4 5
1 2 4 8 16 32
1 3 9 27 81 243
Interpolación de Hermite:
>> %Primero evaluo un polinomio estándar
>> %Meto los datos dados en un vector de
del orden
la misma forma que hemos metido las filas
>> %número de datos proporcionados-1, de la matriz
en los diferentes puntos que me dan
>> b=[2,-9,-4,4,44,2]'
>> %p(x)=a5(x-x0)^5+a4(x-x0)^4+...+a0(x-
b=
x0)^0
2
>> %datos:
-9
>> %p(0) = 2, p’(0) = -9, p(1) = -4, p’(1) = 4,
p(2) = 44, p(3) = 2. -4
c=
2.0000
-9.0000
18.0000
-45.5000
39.0000
-8.5000
>> 1 2 4 8 16 32 64
>> u=-0.1:0.05:3.1; A=
>> v=polyval(p,u); 1 -2 4 -8
>> %represento 1 -1 1 -1
1 0 0 0
1 1 1 1
1 2 4 8
1 3 9 27 0.0167
>>
b= >> V2
25.0000 V2 =
1.0000 1 -2 4 -8 16 -32 64
1.2000 1 -1 1 -1 1 -1 1
0.9000 1 0 0 0 0 0 0
7.5000 1 1 1 1 1 1 1
26.0000 1 2 4 8 16 32 64
1.0000 1.1643
1.2000 -2.6214
0.9000 -0.0286
7.5000 3.0429
26.0000 -0.2071
>> xm = A\b
-0.0142
xm =
-0.0004
-1.8429
-0.0714
0.0226
-0.1066
2.9107
0.0167
Factorización A = QR.
>> V2
Vector proyección de b sobre columnas
V2 =
de A
>> p = A*xm 1 -3 9 -27 81 -243 729
p= 1 -2 4 -8 16 -32 64
23.8357 1 -1 1 -1 1 -1 1
9.6214 1 0 0 0 0 0 0
1.0286 1 1 1 1 1 1 1
-1.8429 1 2 4 8 16 32 64
1.1071 1 3 9 27 81 243 729
9.9786 >> %nos quedamos con las cuatro primeras
columnas
24.8714
1 -2 4 -8 0 0 9.1652 -0.0000
1 -1 1 -1 0 0 0 14.6969
1 0 0 0 >> size(Q)
1 1 1 1 ans =
1 2 4 8 7 4
1 3 9 27 >> size(R)
>> ans =
b= >> d = Q'*b
25.0000 d=
7.0000 -25.9284
1.0000 0.7370
1.2000 26.6771
0.9000 0.2449
26.0000 xqr =
Q= 2.9107
2.9107 ans =
0.0167 0.0000
0.0000
-0.0000
1.0000
1.0000 0.0238 -0.0952 0.0476 0.2857
0.4524 0.3810 -0.0952
1.0000
0.0952 -0.1667 -0.0952 0.1429
1.0000
0.3810 0.4524 0.1905
>> p = A*xm
-0.0476 0.0952 0.0238 -0.0952 -
p= 0.0952 0.1905 0.9286
b=
25.0000
7.0000
1.0000
1.2000
0.9000
7.5000
26.0000
>> plot(x,y,'o',s,v5,'-')
>> %MATLAB ordena los coeficientes de los
polinomios comenzando por el coeficiente
del término de mayor grado
>> cp = fliplr(pol)
cp =
>> s = linspace(-3,3);
>> plot(x,y,'o',s,v6,'-')
>> C
>> C=A(:,1:2)
C=
1 1
1 4
1 9
1 16
(Caso de interpolación) 1 25
>> Ap = pinv(A)
Ap =
29. Problemas de regresión con dos
variables independientes
>> %primero formo la matriz A=t 0.1736 0.1415 0.0881 0.0132 -
>> A=[1,1,3; 1,4,6; 1,9,11; 1,16,18; 1,25,27] 0.0831
2 b=
0
16.0000
>> %La solución óptima (la que tiene
173.0000
norma euclídea mínima) se obtiene
205.0000
>> %como el producto de la pseudoinversa
de A por b:
ans = xp =
16 1.0988
-1.1028 3.2160
1.0947 3.1599
-0.4472 -0.1034 x=
-0.4472 0.2585 1 2 3 4 5
R= xp =
0 19.3391 -1.1028
P3 = >> y = [3,3,11/3,9/2,27/5]
fun =
@(x)exp(x)
>> ve = 1
ve =
>> %derivo
fs1 =
30. Aproximar la derivada segunda en 1.0862
un punto c.
>> %Metemos la función >> err1 = ve - fs1
fun = -0.0862
ç>> ve = integral(fun,0,1)
0
ve = sol3 =
0.3413 0.3413
h= h=
1 0.1250
ints = ints =
0 0
sol = sol4 =
0.3415 0.3413
0.9739 2
>> AT = A'; J=
0.2693
>> %ahora introduciomos las b en la
0.2955
triangular superior a la diagonal
0.2955
>> for i=1:9
0.2693
J(i,i+1) = sqrt(i^2/(4*i^2 - 1));
0.2191
end
0.1495
>> j
0.0667
ans =
>> %aplico las condiciones:
0.0000 + 1.0000i
>> %suma de los pesos igual a 2
>> J
>> sum(c)
J= end
0 0.5774 0 0 0 0 J=
0 0
0 0.5774 0 0 0 0
0 0 0.5164 0 0 0 0 0 0 0
0 0
0 0 0.5164 0 0 0
0 0 0 0.5071 0 0 0 0 0 0
0 0
0 0 0 0.5071 0 0
0 0 0 0 0.5040 0 0 0 0 0
0 0
0 0 0 0 0.5040 0
0 0 0 0 0 0.5025 0 0 0 0
0 0
0 0 0 0 0 0.5025
0 0 0 0 0 0 0 0 0 0
0.5017 0
0 0 0 0 0 0
0 0 0 0 0 0 0.5017 0 0 0
0 0.5013
0 0 0 0 0 0
0 0 0 0 0 0 0 0.5013 0 0
0 0
0 0 0 0 0 0
0 0 0 0 0 0 0 0 0.5010 0
0 0
0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0.5008
0 0
0 0 0 0 0 0
Columns 9 through 10 0 0 0 0
0 0 end
0 0 >> J
0 0 J=
0 0 0 0.5774 0 0 0 0
0 0 0 0
0.5010 0
0.5774 0 0.5164 0 0 0
0 0.5008
0 0 0 0
0 0
0 0.5164 0 0.5071 0 0
>> for i=1:9 0 0 0 0
0 0 0 0 0 0 w=
0 0 0.5008 0 0.0667 0.1495 0.2191 0.2693
>> %los valores propios de J son los nodos 0.2955 0.2955 0.0667 0.1495 0.2191
que necesitamos 0.2693
ans = ans =
-0.4334
-0.1489 Chebyshev
Hermite
0.1489
0.9739
0.8651
0.6794
0.4334
>> [V,D]=eig(J);
>> b0=2
FUNCIONES
D = diag(v)
D = diag(v,k)
L = tril(A)
L = tril(A,k)
U = triu(A)
U = triu(A,k)
I = eye(n)
I = eye(n,m)
format short
eig(A)
max(abs(eig(A)))
Flipud(A)
flipr(A)
Polyval
Polyfit
Polyinterp
Barylag
Syms