SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
1.- INTRODUCCIÓN.-
En matemáticas, la factorización o descomposición de Cholesky toma su nombre
del matemático André-Louis Cholesky, quien encontró que una matriz simétrica
definida positiva puede ser descompuesta como el producto de una matriz
triangular inferior y la traspuesta de la matriz triangular inferior. La matriz triangular
inferior es el triángulo de Cholesky de la matriz original positiva definida. El
resultado de Cholesky ha sido extendido a matrices con entradas complejas. Es
una manera de resolver sistemas de ecuaciones matriciales y se deriva de la
factorización LU con una pequeña variación.
Cualquier matriz cuadrada A con pivotes no nulos puede ser escrita como el
producto de una matriz triangular inferior L y una matriz triangular superior U; esto
recibe el nombre de factorización LU. Sin embargo, si A es simétrica y definida
positiva, se pueden escoger los factores tales que U es la transpuesta de L, y esto
se llama la descomposición o factorización de Cholesky. Tanto la descomposición
LU como la descomposición de Cholesky son usadas para resolver sistemas de
ecuaciones lineales. Cuando es aplicable, la descomposición de Cholesky es dos
veces más eficiente que la descomposición LU.
Tenemos la matriz de coeficientes de un sistema de ecuaciones, la llamamos A,
comprobamos que esta matriz sea simétrica, porque de lo contrario no es
factorizable por Cholesky. Cuando A es simétrica podemos tratar de factorizarla en
la forma A = L*L(t), L(t) quiere decir la matriz L traspuesta, cuando la tenemos
factorizada ya podemos resolver el sistema de ecuaciones.
Una condición necesaria y suficiente para que una matriz A admita factorización
de Cholesky es que sea simétrica y definida positiva.
2.- DEFINICIÓN.-
En general, si A es Ermitaña y definida positiva, entonces A puede ser
descompuesta como
donde L es una matriz triangular inferior con entradas diagonales estrictamente
positivas y L* representa la conjugada traspuesta de L. Esta es la descomposición
de Cholesky.
La descomposición de Cholesky es única: dada una matriz Ermitaña positiva
definida A, hay una única matriz triangular inferior L con entradas diagonales
estrictamente positivas tales que A = LL*. El recíproco se tiene trivialmente: si A se
puede escribir como LL* para alguna matriz invertible L, triangular inferior o no,
entonces A es Ermitaña y definida positiva.
El requisito de que L tenga entradas diagonales estrictamente positivas puede
extenderse para el caso de la descomposición en el caso de ser semidefinida
positiva. La proposición se lee ahora: una matriz cuadrada A tiene una
descomposición de Cholesky si y sólo si A es Ermitaña y semidefinida positiva.
Las factorizaciones de Cholesky para matrices semidefinidas positivas no son
únicas en general.
En el caso especial que A es una matriz positiva definida simétrica con entradas
reales, L se puede asumir también con entradas reales. Una Matriz D diagonal con
entradas positivas en la diagonal (valores propios de A), es factorizable como
, donde es matriz cuya diagonal consiste en la raíz cuadrada
de cada elemento de D, que tomamos como positivos. Así:
La factorización puede ser calculada directamente a través de las siguientes
fórmulas (en este caso realizamos la factorizacón superior ):
para los elementos de la diagonal principal, y:
para el resto de los elementos. Donde son los
elementos de la matriz U.
3.- APLICACIÓN.-
La descomposición de Cholesky se usa principalmente para hallar la solución
numérica de ecuaciones lineales Ax = b. Si A es simétrica y positiva definida,
entonces se puede solucionar Ax = b calculando primero la descomposición de
Cholesky A = LLT, luego resolviendo Ly = b para y, y finalmente resolviendo LTx =
y pa.
4.- Mínimos cuadrados lineales
Sistemas de la forma Ax = b con A simétrica y definida positiva aparecen a
menudo en la práctica. Por ejemplo, las ecuaciones normales en problemas de
mínimos cuadrados lineales son problemas de esta forma. Podría ocurrir que la
matriz A proviene de un funcional de energía el cual debe ser positivo bajo
consideraciones físicas; esto ocurre frecuentemente en la solución numérica de
ecuaciones diferenciales parciales.
5.- JUSTIFICACIÓN.-
2).- EJEMPLO.
a) Obtenga la descomposición de Cholesky , imponiendo restricciones apropiadas
sobre a de modo que exista la descomposición anterior.
b) Resuelva el sistema dado.
Solución:
a) Para que podamos calcular la descomposición de Cholesky es necesario que A sea simétrica y
definida positiva.
Se ve claramente que A es simétrica.
Para que A sea definida positiva debemos tener:
es decir,
Calculemos la
matriz L.
b) Resolvamos el sistema dado.
Primero se resuelve el sistema triangular inferior
En segundo lugar se resuelve el sistema triangular superior
DESARROLLO
A.- DIAGRAMACIÓN.-
B.- CODIFICACIÓN.-
unit UFCholesky;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, UCMatriz;
type
Matriz=array[1..20,1..20]of Integer;
Matriz2=array[1..20,1..20]of Real;
Vector=array[1..20]of real;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
X:CMatriz;{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
MA:Matriz;
MB:Matriz2;
MC:Matriz2;
i,j,k,l,a,b,m,p,y:Integer;
V:Vector;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
X:=CMatriz.Crear(1,1);
repeat
l:=strtoint(InputBox('Cholesky', '¿Cuantas incognitas tiene?','1'));
if (l<0) or (l>20) then
ShowMessage('Solo numeros enteros menores a 20');
until (l>0) and (l<20);
k:=l+1;
i:=1;
X.Redimensionar(l,k);
While i<=l do
begin
j:=1;
While j<=k do
begin
MA[i,j]:=strtoint(inputbox('Cargando la matriz','Escriba el elemento
'+ inttostr(i)+' , '+ inttostr(j),'0'));
j:=j+1;
end;
i:=i+1;
end;
for i:=1 to l do
begin
for j:=1 to k do
X.Poner(i,j,MA[i,j]);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
o:integer;
begin
i:=1;
j:=1;
While i<=l do
begin
MB[i,j]:=MA[i,j];
i:=i+1;
end;
i:=1;
While i<=l do
begin
MC[i,i]:=1;
i:=i+1;
end;
i:=1;
j:=2;
While j<=(k+1) do
begin
MC[i,j]:=((1/(MB[1,1]))*(MA[i,j]));
j:=j+1;
end;
a:=2;
b:=2;
While b<=k do
begin
i:=a;
j:=b;
While i<=l do
begin
MB[i,j]:=(MA[i,j]);
m:=1;
While m<j do
begin
MB[i,j]:=MB[i,j]-((MB[i,m])*(MC[m,j]));
m:=m+1;
end;
i:=i+1;
end;
i:=j;
j:=j+1;
While j<=k do
begin
m:=1;
MC[i,j]:=MA[i,j];
While m<i do
begin
MC[i,j]:=MC[i,j]-((MB[i,m])*(MC[m,j]));
m:=m+1;
end;
MC[i,j]:=((1/(MB[i,i]))*((MC[i,j])));
j:=j+1;
end;
b:=b+1;
end;
b:=(b-1);
i:=(b-1);
While i>0 do
begin
V[i]:=MC[i,b];
m:=(i+1);
While m<b do
begin
V[i]:=V[i]-(MC[i,m]*V[m]);
m:=m+1;
end;
i:=i-1;
end;
p:=500; y:=100;
for o:=1 to l do
begin
Canvas.TextOut(p,y,'x'+ inttostr(o)+' es igual a:'+ floattostr( V[o]));
y:=y+20;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
X.Dibujar(100,100,canvas);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;
end.
unit UCMatriz;
interface
uses
SysUtils, Dialogs, Graphics;
Const
max=100;
type
CEMMatriz=Class(Exception);
CMatriz=Class
private
M:Array [1..max, 1..max] of integer;
nf:integer;
nc:integer;
public
Constructor Crear(Df,dc:integer);
Function Elemento(f,c:integer):integer;
Function DimensionFila:integer;
Function DimensionColumna:integer;
Procedure Redimensionar(df,dc:integer);
Procedure Poner(f,c, que:integer);
Procedure Mostrar;
Procedure Dibujar(x,y:integer; C:TCanvas);
end;
CEMMatrizC = Class (Exception);
CMatrizC =Class
private
M:Array [1..max, 1..max] of String;
nf:integer;
nc:integer;
public
Constructor Crear(Df,dc:integer);
Function Elemento(f,c:integer):String;
Function DimensionFila:integer;
Function DimensionColumna:integer;
Procedure Redimensionar(df,dc:integer);
Procedure Poner(f,c:integer; que:String);
Procedure Mostrar;
Procedure Dibujar(x,y:integer; C:TCanvas);
end;
implementation
{ CMatriz }
constructor CMatriz.Crear(df,dc: integer);
begin
if (df>0) and (df<=max) then
nf:=df
else
Raise CEMMatriz.Create('CMatriz.Crear: Error fuera de RANGO...');
if (dc>0) and (dc<=max) then
nc:=dc
else
Raise CEMMatriz.Create('CMatriz.Crear: Error fuera de RANGO...');
end;
function CMatriz.DimensionFila: integer;
begin
Result:=nf;
end;
function CMatriz.DimensionColumna: integer;
begin
Result:=nc;
end;
function CMatriz.Elemento(f,c: integer): integer;
begin
if (f>0) and (f<=nf) and (c>0) and (c<=nc) then
Result:=M[f,c]
else
Raise CEMMatriz.Create('CMatriz.Elemento: Error fuera de RANGO...');
end;
procedure CMatriz.Poner(f,c, que: integer);
begin
if (f>0) and (f<=nf) and (c>0) and (c<=nc) then
M[f,c]:=que
else
Raise CEMMatriz.Create('CMatriz,Poner: Error fuera de RANGO...');
end;
procedure CMatriz.Redimensionar(df,dc: integer);
begin
if (df>0) and (df<=max) then
nf:=df
else
Raise CEMMatriz.Create('CMatriz.Redimensionar: Error fuera de RANGO...');
if (dc>0) and (dc<=max) then
nc:=dc
else
Raise CEMMatriz.Create('CMatriz.Redimensionar: Error fuera de RANGO...');
end;
procedure CMatriz.Mostrar;
var i,j:integer;
begin
i:=1;
while i<= nc do
begin
j:=1;
while j<= nf do
begin
if j< nf then
begin
if M[i,j]<=9 then
write (M[i,j],' ')
else
write (M[i,j],' ');
end
else
begin
writeln (M[i,j]);
writeln;
end;
j:=j+1;
end;
i:=i+1;
end;
end;
procedure CMatriz.Dibujar(x,y:integer; C:TCanvas);
var
aux,i,j:integer;
begin
aux:=x;
for i:=1 to nf do
begin
for j:=1 to nc do
begin
C.MoveTo(x,y);
C.Rectangle(x,y,x+35,y+35);
C.TextOut(x+5,y+5,inttostr(M[i,j]));
X:=x+34;
end;
x:=aux;
y:=y+34;
end;
end;
{ CMatrizC }
constructor CMatrizC.Crear(Df, dc: integer);
begin
if (df>0) and (df<=max) then
nf:=df
else
Raise CEMMatrizC.Create('CMatrizC.Crear: Error fuera de RANGO...');
if (dc>0) and (dc<=max) then
nc:=dc
else
Raise CEMMatrizC.Create('CMatrizC.Crear: Error fuera de RANGO...');
end;
procedure CMatrizC.Dibujar(x, y: integer; C: TCanvas);
var
aux,i,j:integer;
begin
aux:=x;
for i:=1 to nf do
begin
for j:=1 to nc do
begin
C.MoveTo(x,y);
C.Rectangle(x,y,x+35,y+35);
C.TextOut(x+5,y+5,M[i,j]);
X:=x+34;
end;
x:=aux;
y:=y+34;
end;
end;
function CMatrizC.DimensionColumna: integer;
begin
Result:=nc;
end;
function CMatrizC.DimensionFila: integer;
begin
Result:=nf;
end;
function CMatrizC.Elemento(f, c: integer): String;
begin
if (f>0) and (f<=nf) and (c>0) and (c<=nc) then
Result:=M[f,c]
else
Raise CEMMatrizC.Create('CMatrizC.Elemento: Error fuera de RANGO...');
end;
procedure CMatrizC.Mostrar;
var i,j:integer;
begin
i:=1;
while i<= nc do
begin
j:=1;
while j<= nf do
begin
if j< nf then
begin
write (M[i,j],' ');
end
else
begin
writeln (M[i,j]);
writeln;
end;
j:=j+1;
end;
i:=i+1;
end;
end;
procedure CMatrizC.Poner(f, c: integer; que: String);
begin
if (f>0) and (f<=nf) and (c>0) and (c<=nc) then
M[f,c]:=que
else
Raise CEMMatrizC.Create('CMatrizC.Poner: Error fuera de RANGO...');
end;
procedure CMatrizC.Redimensionar(df, dc: integer);
begin
if (df>0) and (df<=max) then
nf:=df
else
Raise CEMMatrizC.Create('CMatrizC.Redimensionar: Error fuera de RANGO...');
if (dc>0) and (dc<=max) then
nc:=dc
else
Raise CEMMatrizC.Create('CMatrizC.Redimensionar: Error fuera de RANGO...');
end;
end.
MANUAL DEL PROGRAMA
1.- Damos doble clic para abrir el programa.
2.- Damos un clic en botón dimensionar.
3.- Luego ponemos un número para que dimensione la matriz.
4.- Ahora llenamos la matriz con los números que queramos adicionar.
5.- Le damos un clic en cargar matriz para hallar los resultados de la A’ y B’.
6.- Y por último le damos un clic en el botón resolver por el Método de Cholesky y no va a
mostrar los
resultados de la matriz
7.- Y para salir del programa le damos en la X
CONCLUSIÓN.-
 Con este método se puede demostrar que se pueden resolver matrices de
orden nxn, es decir matrices cuadradas o simétricas, siempre y cuando
sean positivas, caso contrario es imposible usar este método, ya que en la
resolución se debe usar la matriz original multiplicado por la matriz
transpuesta de A

Contenu connexe

Tendances

Trabajo ecuaciones
Trabajo ecuacionesTrabajo ecuaciones
Trabajo ecuaciones
Miguel Doria
 
MéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto FijoMéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto Fijo
lisset neyra
 
Rotacional de un campo vectorial
Rotacional de un campo vectorialRotacional de un campo vectorial
Rotacional de un campo vectorial
Emma
 
G2.3 calculo de volumen de revolucion, metodo de arandelas2.docx
G2.3   calculo de volumen de revolucion, metodo de arandelas2.docxG2.3   calculo de volumen de revolucion, metodo de arandelas2.docx
G2.3 calculo de volumen de revolucion, metodo de arandelas2.docx
Jesse Lem
 
Aplicacion de las ecuaciones diferenciales de orden superior
Aplicacion de las ecuaciones diferenciales de orden superiorAplicacion de las ecuaciones diferenciales de orden superior
Aplicacion de las ecuaciones diferenciales de orden superior
Isai Esparza Agustin
 
Ed homogeneas y reducibles a homogéneas 2012 uncp
Ed homogeneas y reducibles a homogéneas  2012 uncpEd homogeneas y reducibles a homogéneas  2012 uncp
Ed homogeneas y reducibles a homogéneas 2012 uncp
Antony Melgar Salinas
 
Solucionario ecuaciones diferenciales
Solucionario ecuaciones diferencialesSolucionario ecuaciones diferenciales
Solucionario ecuaciones diferenciales
Daniel Mg
 
Semana 1. introduccion a las ecuaciones diferenciales
Semana 1. introduccion a las ecuaciones diferencialesSemana 1. introduccion a las ecuaciones diferenciales
Semana 1. introduccion a las ecuaciones diferenciales
nidia maldonado
 
Aplicaciones de calculo de integrales dobles y triples
Aplicaciones de calculo de integrales dobles y triplesAplicaciones de calculo de integrales dobles y triples
Aplicaciones de calculo de integrales dobles y triples
walterabel03
 

Tendances (20)

Diferenciación numérica Metodos Numericos
Diferenciación numérica Metodos NumericosDiferenciación numérica Metodos Numericos
Diferenciación numérica Metodos Numericos
 
Integrales de superficie
Integrales de superficieIntegrales de superficie
Integrales de superficie
 
RAÍCES DE ECUACIONES NO LINEALES
RAÍCES DE ECUACIONES NO LINEALESRAÍCES DE ECUACIONES NO LINEALES
RAÍCES DE ECUACIONES NO LINEALES
 
Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano Independencia Lineal y Wronskiano
Independencia Lineal y Wronskiano
 
Trabajo ecuaciones
Trabajo ecuacionesTrabajo ecuaciones
Trabajo ecuaciones
 
Ejercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneasEjercicios resueltos edo homogéneas
Ejercicios resueltos edo homogéneas
 
MéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto FijoMéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto Fijo
 
Rotacional de un campo vectorial
Rotacional de un campo vectorialRotacional de un campo vectorial
Rotacional de un campo vectorial
 
G2.3 calculo de volumen de revolucion, metodo de arandelas2.docx
G2.3   calculo de volumen de revolucion, metodo de arandelas2.docxG2.3   calculo de volumen de revolucion, metodo de arandelas2.docx
G2.3 calculo de volumen de revolucion, metodo de arandelas2.docx
 
Problemas sobre vaciado de tanques
Problemas sobre vaciado de tanquesProblemas sobre vaciado de tanques
Problemas sobre vaciado de tanques
 
Aplicacion de las ecuaciones diferenciales de orden superior
Aplicacion de las ecuaciones diferenciales de orden superiorAplicacion de las ecuaciones diferenciales de orden superior
Aplicacion de las ecuaciones diferenciales de orden superior
 
265131074 derivadas-parciales (1)
265131074 derivadas-parciales (1)265131074 derivadas-parciales (1)
265131074 derivadas-parciales (1)
 
Ed homogeneas y reducibles a homogéneas 2012 uncp
Ed homogeneas y reducibles a homogéneas  2012 uncpEd homogeneas y reducibles a homogéneas  2012 uncp
Ed homogeneas y reducibles a homogéneas 2012 uncp
 
Solucionario ecuaciones diferenciales
Solucionario ecuaciones diferencialesSolucionario ecuaciones diferenciales
Solucionario ecuaciones diferenciales
 
Aplicaciones de ecuaciones diferenciales en ingeniería civil
Aplicaciones de ecuaciones diferenciales en ingeniería civil Aplicaciones de ecuaciones diferenciales en ingeniería civil
Aplicaciones de ecuaciones diferenciales en ingeniería civil
 
ejercicios-resueltos-integrales-dobles-y-triples-2011
ejercicios-resueltos-integrales-dobles-y-triples-2011ejercicios-resueltos-integrales-dobles-y-triples-2011
ejercicios-resueltos-integrales-dobles-y-triples-2011
 
VECTOR TANGENTE NORMAL Y BINORMAL
VECTOR TANGENTE NORMAL Y BINORMALVECTOR TANGENTE NORMAL Y BINORMAL
VECTOR TANGENTE NORMAL Y BINORMAL
 
Ejercicios resueltos edo separables
Ejercicios resueltos edo separablesEjercicios resueltos edo separables
Ejercicios resueltos edo separables
 
Semana 1. introduccion a las ecuaciones diferenciales
Semana 1. introduccion a las ecuaciones diferencialesSemana 1. introduccion a las ecuaciones diferenciales
Semana 1. introduccion a las ecuaciones diferenciales
 
Aplicaciones de calculo de integrales dobles y triples
Aplicaciones de calculo de integrales dobles y triplesAplicaciones de calculo de integrales dobles y triples
Aplicaciones de calculo de integrales dobles y triples
 

Similaire à Metodo de cholesky

Sistemas ecuaciones saul u
Sistemas ecuaciones saul uSistemas ecuaciones saul u
Sistemas ecuaciones saul u
ASIGNACIONUFT
 
Sistemas ecuaciones roger o
Sistemas ecuaciones roger oSistemas ecuaciones roger o
Sistemas ecuaciones roger o
ASIGNACIONUFT
 
Ecuaciones lineales
Ecuaciones linealesEcuaciones lineales
Ecuaciones lineales
azuajesimon
 

Similaire à Metodo de cholesky (20)

Sistemas ecuaciones saul u
Sistemas ecuaciones saul uSistemas ecuaciones saul u
Sistemas ecuaciones saul u
 
Métodos de eliminación numerica
Métodos de eliminación numericaMétodos de eliminación numerica
Métodos de eliminación numerica
 
Sistemas ecuaciones roger o
Sistemas ecuaciones roger oSistemas ecuaciones roger o
Sistemas ecuaciones roger o
 
Ecuaciones lineales
Ecuaciones linealesEcuaciones lineales
Ecuaciones lineales
 
Analisis Numerico
Analisis NumericoAnalisis Numerico
Analisis Numerico
 
Algebra lineal 1. sistemas de ecuaciones lineales
Algebra lineal 1. sistemas de ecuaciones linealesAlgebra lineal 1. sistemas de ecuaciones lineales
Algebra lineal 1. sistemas de ecuaciones lineales
 
Jesus Rivas análisis numérico
Jesus Rivas análisis numérico  Jesus Rivas análisis numérico
Jesus Rivas análisis numérico
 
Algebra d boole
Algebra d booleAlgebra d boole
Algebra d boole
 
numeos reales y fuciones
numeos reales y fucionesnumeos reales y fuciones
numeos reales y fuciones
 
rectas y planos-21-B- 09-11-21.ppt
rectas y planos-21-B- 09-11-21.pptrectas y planos-21-B- 09-11-21.ppt
rectas y planos-21-B- 09-11-21.ppt
 
Metoodos numericos
Metoodos numericosMetoodos numericos
Metoodos numericos
 
Resumen
ResumenResumen
Resumen
 
Maematicas resumen 2
Maematicas resumen 2Maematicas resumen 2
Maematicas resumen 2
 
Semana 11 intervalos
Semana 11 intervalos Semana 11 intervalos
Semana 11 intervalos
 
Solución de sistemas de ecuaciones lineaes
Solución de sistemas de ecuaciones lineaesSolución de sistemas de ecuaciones lineaes
Solución de sistemas de ecuaciones lineaes
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
El abc de la conjetura
El abc de la conjeturaEl abc de la conjetura
El abc de la conjetura
 
Solución de sistemas de ecuaciones lineales.
Solución de sistemas de ecuaciones lineales. Solución de sistemas de ecuaciones lineales.
Solución de sistemas de ecuaciones lineales.
 
1.5 ecuaciones
1.5 ecuaciones1.5 ecuaciones
1.5 ecuaciones
 
Resumen victoria dominguez - Analisis numerico
Resumen victoria dominguez - Analisis numericoResumen victoria dominguez - Analisis numerico
Resumen victoria dominguez - Analisis numerico
 

Dernier

SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
EdwinC23
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 

Dernier (20)

SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.pptELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
ELASTICIDAD PRECIO DE LA DEMaaanANDA.ppt
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdf
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
Minería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptosMinería convencional: datos importantes y conceptos
Minería convencional: datos importantes y conceptos
 
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
Introduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.pptIntroduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.ppt
 
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
 
Matrices Matemáticos universitario pptx
Matrices  Matemáticos universitario pptxMatrices  Matemáticos universitario pptx
Matrices Matemáticos universitario pptx
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 

Metodo de cholesky

  • 1. 1.- INTRODUCCIÓN.- En matemáticas, la factorización o descomposición de Cholesky toma su nombre del matemático André-Louis Cholesky, quien encontró que una matriz simétrica definida positiva puede ser descompuesta como el producto de una matriz triangular inferior y la traspuesta de la matriz triangular inferior. La matriz triangular inferior es el triángulo de Cholesky de la matriz original positiva definida. El resultado de Cholesky ha sido extendido a matrices con entradas complejas. Es una manera de resolver sistemas de ecuaciones matriciales y se deriva de la factorización LU con una pequeña variación. Cualquier matriz cuadrada A con pivotes no nulos puede ser escrita como el producto de una matriz triangular inferior L y una matriz triangular superior U; esto recibe el nombre de factorización LU. Sin embargo, si A es simétrica y definida positiva, se pueden escoger los factores tales que U es la transpuesta de L, y esto se llama la descomposición o factorización de Cholesky. Tanto la descomposición LU como la descomposición de Cholesky son usadas para resolver sistemas de ecuaciones lineales. Cuando es aplicable, la descomposición de Cholesky es dos veces más eficiente que la descomposición LU. Tenemos la matriz de coeficientes de un sistema de ecuaciones, la llamamos A, comprobamos que esta matriz sea simétrica, porque de lo contrario no es factorizable por Cholesky. Cuando A es simétrica podemos tratar de factorizarla en la forma A = L*L(t), L(t) quiere decir la matriz L traspuesta, cuando la tenemos factorizada ya podemos resolver el sistema de ecuaciones. Una condición necesaria y suficiente para que una matriz A admita factorización de Cholesky es que sea simétrica y definida positiva.
  • 2. 2.- DEFINICIÓN.- En general, si A es Ermitaña y definida positiva, entonces A puede ser descompuesta como donde L es una matriz triangular inferior con entradas diagonales estrictamente positivas y L* representa la conjugada traspuesta de L. Esta es la descomposición de Cholesky. La descomposición de Cholesky es única: dada una matriz Ermitaña positiva definida A, hay una única matriz triangular inferior L con entradas diagonales estrictamente positivas tales que A = LL*. El recíproco se tiene trivialmente: si A se puede escribir como LL* para alguna matriz invertible L, triangular inferior o no, entonces A es Ermitaña y definida positiva. El requisito de que L tenga entradas diagonales estrictamente positivas puede extenderse para el caso de la descomposición en el caso de ser semidefinida positiva. La proposición se lee ahora: una matriz cuadrada A tiene una descomposición de Cholesky si y sólo si A es Ermitaña y semidefinida positiva. Las factorizaciones de Cholesky para matrices semidefinidas positivas no son únicas en general. En el caso especial que A es una matriz positiva definida simétrica con entradas reales, L se puede asumir también con entradas reales. Una Matriz D diagonal con entradas positivas en la diagonal (valores propios de A), es factorizable como , donde es matriz cuya diagonal consiste en la raíz cuadrada de cada elemento de D, que tomamos como positivos. Así:
  • 3. La factorización puede ser calculada directamente a través de las siguientes fórmulas (en este caso realizamos la factorizacón superior ): para los elementos de la diagonal principal, y: para el resto de los elementos. Donde son los elementos de la matriz U. 3.- APLICACIÓN.- La descomposición de Cholesky se usa principalmente para hallar la solución numérica de ecuaciones lineales Ax = b. Si A es simétrica y positiva definida, entonces se puede solucionar Ax = b calculando primero la descomposición de Cholesky A = LLT, luego resolviendo Ly = b para y, y finalmente resolviendo LTx = y pa. 4.- Mínimos cuadrados lineales Sistemas de la forma Ax = b con A simétrica y definida positiva aparecen a menudo en la práctica. Por ejemplo, las ecuaciones normales en problemas de mínimos cuadrados lineales son problemas de esta forma. Podría ocurrir que la matriz A proviene de un funcional de energía el cual debe ser positivo bajo consideraciones físicas; esto ocurre frecuentemente en la solución numérica de ecuaciones diferenciales parciales.
  • 5.
  • 6.
  • 7.
  • 9. a) Obtenga la descomposición de Cholesky , imponiendo restricciones apropiadas sobre a de modo que exista la descomposición anterior. b) Resuelva el sistema dado. Solución: a) Para que podamos calcular la descomposición de Cholesky es necesario que A sea simétrica y definida positiva. Se ve claramente que A es simétrica. Para que A sea definida positiva debemos tener: es decir, Calculemos la matriz L.
  • 10. b) Resolvamos el sistema dado. Primero se resuelve el sistema triangular inferior En segundo lugar se resuelve el sistema triangular superior
  • 13.
  • 14. B.- CODIFICACIÓN.- unit UFCholesky; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, UCMatriz; type Matriz=array[1..20,1..20]of Integer; Matriz2=array[1..20,1..20]of Real; Vector=array[1..20]of real; TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private X:CMatriz;{ Private declarations } public { Public declarations } end; var Form1: TForm1; MA:Matriz; MB:Matriz2; MC:Matriz2; i,j,k,l,a,b,m,p,y:Integer; V:Vector; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin X:=CMatriz.Crear(1,1); repeat l:=strtoint(InputBox('Cholesky', '¿Cuantas incognitas tiene?','1')); if (l<0) or (l>20) then ShowMessage('Solo numeros enteros menores a 20');
  • 15. until (l>0) and (l<20); k:=l+1; i:=1; X.Redimensionar(l,k); While i<=l do begin j:=1; While j<=k do begin MA[i,j]:=strtoint(inputbox('Cargando la matriz','Escriba el elemento '+ inttostr(i)+' , '+ inttostr(j),'0')); j:=j+1; end; i:=i+1; end; for i:=1 to l do begin for j:=1 to k do X.Poner(i,j,MA[i,j]); end; end; procedure TForm1.Button1Click(Sender: TObject); var o:integer; begin i:=1; j:=1; While i<=l do begin MB[i,j]:=MA[i,j]; i:=i+1; end; i:=1; While i<=l do begin MC[i,i]:=1; i:=i+1; end; i:=1; j:=2; While j<=(k+1) do begin MC[i,j]:=((1/(MB[1,1]))*(MA[i,j])); j:=j+1;
  • 16. end; a:=2; b:=2; While b<=k do begin i:=a; j:=b; While i<=l do begin MB[i,j]:=(MA[i,j]); m:=1; While m<j do begin MB[i,j]:=MB[i,j]-((MB[i,m])*(MC[m,j])); m:=m+1; end; i:=i+1; end; i:=j; j:=j+1; While j<=k do begin m:=1; MC[i,j]:=MA[i,j]; While m<i do begin MC[i,j]:=MC[i,j]-((MB[i,m])*(MC[m,j])); m:=m+1; end; MC[i,j]:=((1/(MB[i,i]))*((MC[i,j]))); j:=j+1; end; b:=b+1; end; b:=(b-1); i:=(b-1); While i>0 do begin V[i]:=MC[i,b]; m:=(i+1); While m<b do begin V[i]:=V[i]-(MC[i,m]*V[m]); m:=m+1;
  • 17. end; i:=i-1; end; p:=500; y:=100; for o:=1 to l do begin Canvas.TextOut(p,y,'x'+ inttostr(o)+' es igual a:'+ floattostr( V[o])); y:=y+20; end; end; procedure TForm1.Button2Click(Sender: TObject); begin X.Dibujar(100,100,canvas); end; procedure TForm1.Button3Click(Sender: TObject); begin Close; end; end. unit UCMatriz; interface uses SysUtils, Dialogs, Graphics; Const max=100; type CEMMatriz=Class(Exception); CMatriz=Class private M:Array [1..max, 1..max] of integer; nf:integer; nc:integer; public Constructor Crear(Df,dc:integer); Function Elemento(f,c:integer):integer; Function DimensionFila:integer; Function DimensionColumna:integer; Procedure Redimensionar(df,dc:integer); Procedure Poner(f,c, que:integer);
  • 18. Procedure Mostrar; Procedure Dibujar(x,y:integer; C:TCanvas); end; CEMMatrizC = Class (Exception); CMatrizC =Class private M:Array [1..max, 1..max] of String; nf:integer; nc:integer; public Constructor Crear(Df,dc:integer); Function Elemento(f,c:integer):String; Function DimensionFila:integer; Function DimensionColumna:integer; Procedure Redimensionar(df,dc:integer); Procedure Poner(f,c:integer; que:String); Procedure Mostrar; Procedure Dibujar(x,y:integer; C:TCanvas); end; implementation { CMatriz } constructor CMatriz.Crear(df,dc: integer); begin if (df>0) and (df<=max) then nf:=df else Raise CEMMatriz.Create('CMatriz.Crear: Error fuera de RANGO...'); if (dc>0) and (dc<=max) then nc:=dc else Raise CEMMatriz.Create('CMatriz.Crear: Error fuera de RANGO...'); end; function CMatriz.DimensionFila: integer; begin Result:=nf; end; function CMatriz.DimensionColumna: integer; begin Result:=nc; end;
  • 19. function CMatriz.Elemento(f,c: integer): integer; begin if (f>0) and (f<=nf) and (c>0) and (c<=nc) then Result:=M[f,c] else Raise CEMMatriz.Create('CMatriz.Elemento: Error fuera de RANGO...'); end; procedure CMatriz.Poner(f,c, que: integer); begin if (f>0) and (f<=nf) and (c>0) and (c<=nc) then M[f,c]:=que else Raise CEMMatriz.Create('CMatriz,Poner: Error fuera de RANGO...'); end; procedure CMatriz.Redimensionar(df,dc: integer); begin if (df>0) and (df<=max) then nf:=df else Raise CEMMatriz.Create('CMatriz.Redimensionar: Error fuera de RANGO...'); if (dc>0) and (dc<=max) then nc:=dc else Raise CEMMatriz.Create('CMatriz.Redimensionar: Error fuera de RANGO...'); end; procedure CMatriz.Mostrar; var i,j:integer; begin i:=1; while i<= nc do begin j:=1; while j<= nf do begin if j< nf then begin if M[i,j]<=9 then write (M[i,j],' ') else write (M[i,j],' '); end else begin
  • 20. writeln (M[i,j]); writeln; end; j:=j+1; end; i:=i+1; end; end; procedure CMatriz.Dibujar(x,y:integer; C:TCanvas); var aux,i,j:integer; begin aux:=x; for i:=1 to nf do begin for j:=1 to nc do begin C.MoveTo(x,y); C.Rectangle(x,y,x+35,y+35); C.TextOut(x+5,y+5,inttostr(M[i,j])); X:=x+34; end; x:=aux; y:=y+34; end; end; { CMatrizC } constructor CMatrizC.Crear(Df, dc: integer); begin if (df>0) and (df<=max) then nf:=df else Raise CEMMatrizC.Create('CMatrizC.Crear: Error fuera de RANGO...'); if (dc>0) and (dc<=max) then nc:=dc else Raise CEMMatrizC.Create('CMatrizC.Crear: Error fuera de RANGO...'); end; procedure CMatrizC.Dibujar(x, y: integer; C: TCanvas); var aux,i,j:integer; begin
  • 21. aux:=x; for i:=1 to nf do begin for j:=1 to nc do begin C.MoveTo(x,y); C.Rectangle(x,y,x+35,y+35); C.TextOut(x+5,y+5,M[i,j]); X:=x+34; end; x:=aux; y:=y+34; end; end; function CMatrizC.DimensionColumna: integer; begin Result:=nc; end; function CMatrizC.DimensionFila: integer; begin Result:=nf; end; function CMatrizC.Elemento(f, c: integer): String; begin if (f>0) and (f<=nf) and (c>0) and (c<=nc) then Result:=M[f,c] else Raise CEMMatrizC.Create('CMatrizC.Elemento: Error fuera de RANGO...'); end; procedure CMatrizC.Mostrar; var i,j:integer; begin i:=1; while i<= nc do begin j:=1; while j<= nf do begin if j< nf then begin write (M[i,j],' '); end else
  • 22. begin writeln (M[i,j]); writeln; end; j:=j+1; end; i:=i+1; end; end; procedure CMatrizC.Poner(f, c: integer; que: String); begin if (f>0) and (f<=nf) and (c>0) and (c<=nc) then M[f,c]:=que else Raise CEMMatrizC.Create('CMatrizC.Poner: Error fuera de RANGO...'); end; procedure CMatrizC.Redimensionar(df, dc: integer); begin if (df>0) and (df<=max) then nf:=df else Raise CEMMatrizC.Create('CMatrizC.Redimensionar: Error fuera de RANGO...'); if (dc>0) and (dc<=max) then nc:=dc else Raise CEMMatrizC.Create('CMatrizC.Redimensionar: Error fuera de RANGO...'); end; end.
  • 23. MANUAL DEL PROGRAMA 1.- Damos doble clic para abrir el programa. 2.- Damos un clic en botón dimensionar.
  • 24. 3.- Luego ponemos un número para que dimensione la matriz. 4.- Ahora llenamos la matriz con los números que queramos adicionar. 5.- Le damos un clic en cargar matriz para hallar los resultados de la A’ y B’.
  • 25. 6.- Y por último le damos un clic en el botón resolver por el Método de Cholesky y no va a mostrar los resultados de la matriz 7.- Y para salir del programa le damos en la X
  • 26. CONCLUSIÓN.-  Con este método se puede demostrar que se pueden resolver matrices de orden nxn, es decir matrices cuadradas o simétricas, siempre y cuando sean positivas, caso contrario es imposible usar este método, ya que en la resolución se debe usar la matriz original multiplicado por la matriz transpuesta de A