Documentos de Académico
Documentos de Profesional
Documentos de Cultura
⋮
𝑎𝑖𝑖 = 𝑙𝑖1 2 + 𝑙𝑖2 2 + ⋯ + 𝑙𝑖𝑖 2 → 𝑙𝑖𝑖 = √𝑎𝑖𝑖 − 𝑙𝑖1 2 − 𝑙𝑖2 2 ⋯
𝑖−1
𝑎(𝑗,𝑖) − ∑𝑖−1
𝑘=1 𝑙(𝑖,𝑘) ∗ 𝑙(𝑗,𝑘)
𝑙(𝑗,𝑖) = ; 𝑗 = 𝑖 + 1: 𝑛 ; 𝑖 = 2: 𝑛
𝑙(𝑖,𝑖)
Además, se puede puede verificar que la solución del sistema:
Ax=B
Reducido para encontrar la solución de los dos sistemas equivalentes:
STC = B y Sx = C
Los elementos de C son determinados por las formulas:
𝑏𝑖 −∑𝑖−1
𝑘=1 𝐿𝑖 𝐶𝑘
; Ci = 𝐿𝑖𝑖
Conociendo a C encontramos a x:
Propiedades:
Sirve para saber si una matriz simétrica es definida positiva.
Es estable.
Algoritmo:
D.E: La Matriz
D.S: La Matriz Triangular Inferior y la Superior
La factorización y el vector solución
P1: Para N = 1: n
P2: Para i = 1: N-1
𝒊−𝟏
𝑏𝑖 −∑𝑖−1
𝑘=1 𝐿𝑖 𝐶𝑘
Ci =
𝐿𝑖𝑖
Mostrar “c” (Factorización)
P6: x=C
𝐶𝑛 𝐶𝑖 −∑𝑛
𝑙=𝑖+1 𝐿𝑖𝑙 𝑥𝑙
xn = y xi =
𝐿𝑛𝑛 𝐿𝑖𝑖
P7: FIN
Programación:
disp('Moises Barrios Cespedes');
disp('Física Computacional II');
matriz=input('Ingresar la matriz aumentada del sistema de
ecuaciones:');
tam=size(matriz);
n=tam(1);
for i=1:n
b(i)=matriz(i,n+1);
for j=1:n
A(i,j)=matriz(i,j);
end
end
b1=b';
%ALGORITMO DE CHOLESKY
for k=1:n
for i=1:k-1
sum=0;
for j=1:i-1
sum=sum+A(i,j)*A(k,j);
end
A(k,i)=(A(k,i)-sum)/A(i,i);
end
sum=0;
for j=1:k-1
sum=sum+A(k,j)*A(k,j);
end
A(k,k)=sqrt(A(k,k)-sum);
end
for i=1:n-1
for j=1:n
if j>i
A(i,j)=0;
end
end
end
L=A;
U=L';
c=b1;
c(1)=b1(1)/L(1,1);
for i=2:n
S=0;
for j=1:n-1
if i~=j && i>j
S=S+L(i,j)*c(j);
end
c(i)=(b1(i)-S)/L(i,i);
end
x=c;
x(n)=c(n)/U(n,n);
for i=n-1:-1:1
Z=0;
for j=n:-1:2
if i~=j && i<j
Z=Z+U(i,j)*x(j);
end
end
x(i)=(c(i)-Z)/U(i,i);
end
end
disp('Muestra la Matriz Triangular Inferior de Cholesky');
L
disp('Muestra la Matriz Triangular Superior de Cholesky');
U
disp('Muestra la Factorizacion de Cholesky');
Matriz_A=L*U
disp('El vector solución del sistema');
x
Ejemplo:
Respuesta:
METODO DE JACOBI: método iterativo con
matrices
La primera técnica iterativa se conoce como el Método de Jacobi,
también conocido como “método de desplazamiento simultaneo”.
Este método hace dos suposiciones:
1) El siguiente sistema dado, tiene una única solución:
Algoritmo:
D.E: La matriz A /La matriz B /# de iteraciones (N).
D.S: Los valores de la aproximación.
P.1: Obtener el # de filas y columnas de A.
P.2: Crear un vector S de ceros en función del # de filas y columnas
de A.
Hacer: S(i,i) = A(i,i)
P.3: Hacer: T= S-A
P.4: Crear un vector x de zeros en función del # de filas y columnas
de B.
P.5: Crear otro vector xnuevo en función del # de filas y columnas de
B.
P.6: Para: it=1:N
Para: i=1: #Columnas de B.
Hacer: xnuevo(i) = B(i)
P.7: Para: j=1: #Filas de B.
Hacer: xnuevo(i) = xnuevo(i) + T(i,j)*x(j)
xnuevo(i) = xnuevo(i)/S(i,i)
P.8: Hacer un cambio de variable:
X = xnuevo
P.9: Mostrar x1,x2 y x3.
P.10: Fin
Programación:
clc
disp('Fisica Computacional II');
disp('Moises Barrios Cespedes');
A= input('Ingrese la Matriz A:');
B= input('Ingrese la Matriz B:');
N= input('Número de Iteraciones:');
s=size(A);
rows=s(1);
cols=s(2);
S=zeros(size(A));
for i=1:cols;
S(i,i)=A(i,i);
end
T=S-A;
x=zeros(size(B));
xnew=zeros(size(B));
for it=1:N
for i=1:cols
xnew(i)=B(i);
for j=1:rows
xnew(i)=xnew(i)+T(i,j)*x(j);
end
xnew(i)=xnew(i)/S(i,i);
end
x=xnew;
end
disp('**********************************************');
disp('SOLUCION DEL SISTEMA DE ECUACIONES LINEALES');
fprintf(' iteraciones final número %i\n Solución:',it);
fprintf('\n x1=%2.5f\n',x(1));
fprintf('\n x2=%2.5f\n',x(2));
fprintf('\n x3=%2.5f\n',x(3));
Ejemplo:
Resuelva el siguiente sistema de ecuaciones usando el Método de
Jacobi.
ALUMNOS:
MOISES BARRIOS CESPEDES
Curso:
FISICA COMPUTACIONAL II
Docente:
SOTERO SOLIS JAIME
2017