Matlab - Codigo de Descomposicion LU con pivoteo parcial

 
Vista:
sin imagen de perfil

Codigo de Descomposicion LU con pivoteo parcial

Publicado por Jose (2 intervenciones) el 30/11/2017 02:02:16
Podrían ayudarme a entender este codigo que voy a adjuntar por favor. Es para un deber y tengo que saber que hace cada línea. De antemano gracias. Adjunto el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
clear all
clc
 
A=input('ingrese la matriz A: ')
B=input('ingrese la matriz B: ')
 
[n,n]=size(A);
X=zeros(n,1);
D=zeros(n,1);
C=zeros(1,n);
Cp=zeros(1,n);
L=eye(n);
P=eye(n);
U=zeros(n,n);
U=A;
 
for q=1:n-1
 
    [y,j]=max(abs(U(q:n,q)))
    C=U(q,:)
    U(q,:)=U(j+q-1,:)
    U(j+q-1,:)=C
 
    Cp=P(q,:);
    P(q,:)=P(j+q-1,:);
    P(j+q-1,:)=Cp;
 
    if A(q,q)==0
    'A es singular'
    break
    end
 
    %Calculo del multiplicador,
 
    for k=q+1:n
    m=U(k,q)/U(q,q)
    L(k,q) = m
    U(k,q:n)=U(k,q:n)-m*U(q,q:n)
    end
end
h=L(2,1);
L(2,1)=L(3,1);
L(3,1)=h;
 
L
%comprobacion
 
PA=P*A
LU=L*U
PB=P*B
 
D(1)=PB(1)/L(1,1);
for k=2:n
   D(k)=(PB(k)-L(k,1:k-1)*D(1:k-1))/L(k,k);
end
 
 
X(n)=D(n)/U(n,n);
 
for k=n-1:-1:1
    X(k)=(D(k)-U(k,k+1:n)*X(k+1:n))/U(k,k)
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-3
Responder
sin imagen de perfil

Codigo de Descomposicion LU con pivoteo parcial

Publicado por Jose (2 intervenciones) el 30/11/2017 19:02:03
Necesito ayuda por favor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar