Está en la página 1de 37

ANÁLISIS NUMÉRICO

PARA INGENIEROS
CIVILES CI 708
2023-01
TEMARIO

UNIDAD 1 UNIDAD 2 UNIDAD 3


INTRODUCCIÓ SISTEMA DE AUTOVALORE
N A MATLAB ECUACIONES SY
LINEALES AUTOVECTOR
ES
TEMARIO

UNIDAD 4 UNIDAD 5 UNIDAD 6 UNIDAD 7

RAICES DE APROXIMACIÓN INTEGRACIÓN ECUACIONES


ECUACIONES NO DE FUNCIONES NUMÉRICA DIFERENCIALE
LINEALES. S
CONTENIDO

1. INTRODUCCIÓN

2. MÉTODO DE ELIMINACIÓN DE GAUSS

3. CÁLCULO DE LA MATRIZ INVERSA

4. DESCOMPOSICIÓN LU DE A

5. MÉTODO DE JACOBI Y GAUSS SEIDEL

6. COMANDOS MISCELÁNEOS Y APLICACIONES CON MATLAB.


INTRODUCCIÓN

Eiffel tuvo que desarrollar un sistema


de miles de ecuaciones lineales …..

… a mano
TIPOS DE SISTEMAS DE ECUACIONES

1. Sistema compatible determinado:

2. Sistema incompatible:

3. Sistema compatible indeterminado


MÉTODO DE ELIMINACIÓN DE GAUSS

Efectuar operaciones elementales (intercambio, multiplicación y


operaciones entre filas o columnas), para eliminar progresivamente
variables en un sistema de ecuaciones, hasta lograr una ecuación con una
incógnita. Luego, se procede a sustituir regresivamente.
MÉTODO DE ELIMINACIÓN DE GAUSS

Forma de expresar el sistema de ecuaciones lineales mediante la


matriz ampliada [A b].
ecuaciones matriciales.

]
MÉTODO DE ELIMINACIÓN DE GAUSS

clear;clc;

A = [6 -2 2 4; 12 -8 6 10; 3 -13 9 3; -6 4 1 -18 ];


b = [16; 26; -19;-34 ];
Ab=[A b]
rref(Ab)
CÁLCULO DE LA MATRIZ INVERSA

Sea una matriz A de “n x n”, su matriz inversa está denotada


por de “n x n”, que cumple:

Donde es la matriz identidad de “n x n”.


Toda matriz A que tiene inversa, posee un determinante
distinto de cero.
𝑨∗ 𝒙=𝒃
𝑨− 𝟏 ∗ 𝑨∗ 𝒙= 𝑨 −𝟏 ∗ 𝒃
𝑰 ∗ 𝒙= 𝑨 −𝟏 ∗ 𝒃
−𝟏
𝒙= 𝑨 ∗ 𝒃
CÁLCULO DE LA MATRIZ INVERSA

Verificamos el
determinante

Obtenemos la Inversa
de la Matriz y verificamos
CÁLCULO DE LA MATRIZ INVERSA

Ejemplo (utilizando la matriz identidad)


EJEMPLO 01

Se ha contratado a una empresa para las puertas, las ventanas y la


pintura de un edificio de viviendas. Si se conoce las cantidades
instaladas por cada semana, y la valorización realizada en soles, se
pide calcular el monto total recibido por el subcontratista de
Puertas al final de la tercera semana.

Puertas Ventanas Pintura Valorización


 

(UND) (UND) (m2) (S/.)

Semana 1 9 19 50 50,000.00

Semana 2 15 25 40 75,000.00

Semana 3 8 5 7 30,000.00
SOLUCIÓN EJEMPLO 01
%x1: Variable de costo por puerta.
%x2: Variable de costo por ventana.
%x3: Variable de costo por m2 de pintura.

clear;clc;

A=[ 9 19 50;15 25 40 ; 8 5 7];


b=[50000 ; 75000 ; 30000];

if det(A)~=0
x=inv(A)*b
else
disp('La matriz A no tiene inversa');
end
x = 3.0021
1.1820
0.0105

MT=(A(1)+A(2)+A(3))*x(1);
MT=96.0669
EJEMPLO 02

Un ingeniero civil que trabaja en la construcción requiere 7000,


7790 y 4710 m3 de arena, grava fina, y grava gruesa,
respectivamente, para cierto proyecto de construcción. Si existen
tres canteras de las que puede obtenerse dichos materiales, y
donde la composición de cada Cantera es de:
  Arena (%) Grava Fina (%) Grava Gruesa (%)

Cantera 1 45 18 17

Cantera 2 10 50 20

Cantera 3 30 30 70

Determinar el número de metros cúbicos que deben extraerse en


cada cantera a fin de satisfacer las necesidades del ingeniero.
SOLUCIÓN EJEMPLO 02

clear;clc;

%x1: cantera 1.
%x2: cantera 2.
%x3: cantera 3.

A =[0.45 0.10 0.30;0.18 0.50 0.30;0.17 0.20 0.70];


b = [7000; 7790; 4710];

if det(A)~=0
x=inv(A)*b;
else
disp('La matriz A no tiene inversa')
end

fprintf('raíz x1: %7.7f\n',x(1));


fprintf('raíz x2: %7.7f\n',x(2));
fprintf('raíz x3: %7.7f\n',x(3));

raíz x1: 12806.0941828


raíz x2: 10619.1135734
raíz x3: 584.4875346
DESCOMPOSICIÓN LU DE A SIN PIVOTEO
Forma de expresar a la matriz mediante su descomposición o
factorización LU (producto de dos matrices), donde L es una matriz
triangular inferior con unos en su diagonal principal y U es una matriz
triangular superior. cuacnes matriciales.
𝐴=𝑳∗ 𝑼

𝑼 ∗ 𝒙=𝒚 La funcion lu de
Matlab es con
𝑳∗ 𝒚 =𝒃 pivoteo
1. Hallar la factorización LU de A. [L U P]=lu(A);
2. Resolver mediante sustitución progresiva Ly = b. Resolver Ly=Pb;
3. Resolver mediante sustitución regresiva Ux= y. Resolver Ux=y;
DESCOMPOSICIÓN LU SIN Y CON PIVOTEO
Si se realiza LU sin pivoteo (en este caso se debe hacer el
código Matlab ya que la función lu de Matlab es con pivoteo).
A = LU
Ax=b
LUx = b 
Ux=y
Ly=b
Si se realiza LU con pivoteo (en este caso se puede usar la
función lu de Matlab)
PA = LU
Ax=b
PAx = Pb
LUx = Pb 
Ux=y
Ly=Pb
(Observa que en el caso sin pivoteo se resuelven Ly=b y Ux=y y en el caso con
pivoteo se resuelven Ly=Pb y Ux=y).  matriciales.
CÓDIGO MATLAB DE LA DESCOMPOSICIÓN LU DE A SIN PIVOTEO
function[L,U]=LU(A,b)
% Este código Matlab calcula la factorización LU de A
% sin pivoteo.
% Datos de entrada:
% A : matriz asociada al sistema
% b : vector independiente del sistema
% Salida:
% L : matriz triangular inferior con unos en la % diagonal principal
% U : matriz triangular superior.
[m n] = size(A);
% Proceso de Factorización LU
U = A;
L = eye(n);
for k = 1:n-1
pivo = U(k,k)
L(k+1:n,k) = U(k+1:n,k)/pivo; % Se calculan los multiplicadores debajo de A(k,k)
for i = k+1:n
U(i,k+1:n) = U(i,k+1:n) - L(i,k)*U(k,k+1:n);
end
end
U = triu(U); % Toma la parte triangular superior de U
CÓDIGO MATLAB DE LA SUSTITUCIÓN PROGRESIVA Y REGRESIVA
function[x] = sustipro(L,b)
% Este código resuelve el sistema triangular inferior Lx=y,
donde la matriz
% % L es una matriz triangular inferior.
[m,n]=size(L);
x=zeros(n,1);
for k=1:n
x(k)=(b(k) - L(k,1:k-1)*x(1:k-1))/L(k,k);
end

function [x]=sustireg(U,b)
% Esta función resuelve el sistema triangular superior Ux=b
donde U es una
% matriz triangular superior.
[m,n]=size(U);
x=zeros(n,1);
for k=n:-1:1
x(k)=(b(k)-U(k,k+1:n)*x(k+1:n))/U(k,k);
end
DESCOMPOSICIÓN LU
EJEMPLO:
Ejemplo: 1).- = 0.333, 0.3333, 0
= 0.2, 0
= 0.625

2).- 3).-

4).- 5).-
SOLUCIÓN 01

clear;clc;
A=[3 -1 -1 0; -1 2 0 0; -1 0 2 -1; 0 0 -1 1];
B=[1 ;1; 1; 1];

[L U]=lu(A);
Resolver Ly=b;
Resolver Ux=y;

R=A(1)*X(1)+A(2)*X(2)+A(3)*X(3)
X = 2.3333
1.6667
4.3333
5.3333
MÉTODOS ITERATIVOS

Los métodos iterativos son apropiados para resolver sistemas de


ecuaciones lineales que tienen un gran número de ecuaciones con
un alto porcentaje de elementos cero.

 
MÉTODOS ITERATIVOS

Método de solución

El sistema Ax = b se escribe de la forma

x = Bx + c
donde B es una matriz fija de nxn y c un vector.
La sucesión de vectores se genera calculando
x(k+1) = B x(k) + c, k = 0,1,2, …
con x(0) iterado inicial dado.
MÉTODO DE JACOBI

Escribimos la matriz del sistema como

 a11 a12  a1m 


a a  a 
A   21 22 2m 

   
 
an1 an 2  anm 
a11 0  0   0 0  0 0 a12  a1m 
0 a  0  a 0  0  0 0  a 
 22    21  2m 

          
     
0 0  anm  an1 an 2  0 0 0  0 

A= D+L+U
MÉTODO DE JACOBI
MÉTODO DE JACOBI
Ejemplo:
MÉTODO DE JACOBI
CÓDIGO MATLAB DEL MÉTODO DE JACOBI
function [x,Er,iter,Bj,cj] = jacobi(A,b,nmax,x0,tol)
% Entrada: A,b -- matriz asociada al sistema y lado derecho
% nmax -- número máximo de iteraciones
% x0 -- vector inicial
% tol -- tolerancia dada para la convergencia
% Salida: x -- solución aproximada
% Er -- estimado del error relativo
% iter -- número de iteraciones realizadas
% Bj,cj -- matriz y vector de Jacobi
D = diag(diag(A));
L = tril(A,-1);
U = triu(A,1);
Bj = -inv(D)*(L+U);
cj = inv(D)*b;
iter = 1;
Er = 100;
%Iteraciones
while Er>tol & iter<nmax
x = Bj*x0 + cj;
Er = norm((x-x0)/x,2);
if Er < tol
return
end
x0 = x;
iter = iter + 1;
end
if Er > tol
disp('No converge con las iteraciones dadas')
end
MÉTODO GAUSS-SEIDEL
Observe que en el método de Jacobi, cuando calculamos
( k 1)
las componentes del vector x , sólo se usan las
(k )
componentes del vector xi , sin embargo, note que para
( k 1)
x
calcular i , nosotros podríamos haber usado x1 hasta
( k 1)

xi(k11) , porque ellas ya han sido calculadas. Por lo


tanto una modificación natural del método de Jacobi es:
En el paso k+1 se utilizan las xi( k 1) ya calculadas.

Escribimos la matriz del sistema como:

 a11 a12  a1m 


a a22  a2 m 
A 21 
   
a 
 n1 an 2  anm 
a11 0  0   0 0  0 0 a12  a1m 
0 a  0  a21 0  0 0 0  a2 m 
 22   
          
0 0  a  a a  0  0 0  0 
 nm   n1 n2   
MÉTODO GAUSS-SEIDEL

A= D+L+U
MÉTODO GAUSS-SEIDEL
Ejemplo:
MÉTODO GAUSS-SEIDEL
CÓDIGO MATLAB PARA EL MÉTODO GAUSS-SEIDEL
function [x,Er,iter,Bgs,cgs] = gs(A,b,nmax,x0,tol)
% Entrada: A,b -- matriz asociada al sistema y lado derecho
% nmax -- número máximo de iteraciones
% x0 -- vector inicial
% tol -- tolerancia dada para la convergencia
% Salida: x -- solución aproximada
% Er -- estimado del error relativo
% iter -- número de iteraciones realizadas
% Bgs,cgs -- matriz y vector de Gauss-Seidel
D = diag(diag(A));
L = tril(A,-1);
U = triu(A,1);
Bgs = -inv(D+L)*U;
cgs = inv(D+L)*b;
iter = 1;
Er = 100;
%Iteraciones
while Er>tol & iter<nmax
x = Bgs*x0 + cgs;
Er = norm((x-x0)/x,2);
if Er < tol
return
end
x0 = x;
iter = iter + 1;
end
if Er > tol
disp('No converge con las iteraciones dadas')
end
EJEMPLO 01

Resolver el siguiente sistema de ecuaciones:

3x + 2 y + z = 1
5x + 13 y + 4z = 2
x + y - 3z = 1

Despejando las variables:

x = (1/3)(1 – 2y – z)
y = (1/13)(2 – 5x – 4z)
x = (-1/3)(1 – x – y)
CONVERGENCIA DE LOS MÉTODOS DE JACOBI y GAUSS SEIDEL

Si la matriz A es estrictamente diagonal dominante,


entonces los métodos de Jacobi y Gauss-Seidel
convergen.

Ejemplos:
ACTIVIDAD DE APRENDIZAJE TA-02

https://ayudasingenieria.com/files/METODOS_NUMERICOS/chapra.pdf
Capitulo 12- pag-280

También podría gustarte