Baixe o app para aproveitar ainda mais
Prévia do material em texto
Resolvendo sistemas lineares compatíveis. Definindo o problema. Vamos resolver um problema na forma Ax = b, com A ( (m(n, n > m, posto(A) = m. Como caracterizar as soluções de Ax = b? Achando uma solução particular, x0. Achando uma base para N(A), Z ( (n((n-m). Escrevendo as soluções na forma x = x0 + Zv, onde v ( ((n-m) é um vetor qualquer. Um exemplo: A=[1 2 3 4; 2 4 -1 1] A = 1 2 3 4 2 4 -1 1 b=[2;-3] b = 2 -3 Usando a decomposição LU com permutações de linhas e de colunas. Podemos decompor A na forma: PAQ = LU, onde L ( (m(m é triangular inferior unitária, U ( (m(n é trapezoidal superior, P ( (m(m é uma matriz de permutação de linhas e Q ( (n(n é uma matriz de permutação de colunas. Neste caso, se Ax = b, então PAQQTx = Pb. Podemos definir z = QTx, obtendo LUz = Pb. Dividimos, agora, a matriz U na forma U = [U1 U2], onde U1 ( (m(m é triangular superior e U2 ( (m((n-m). Dividimos, também, o vetor z em , onde z1 ( (m e z2 ( ((n-m). Obtemos assim, o sistema . Escolhendo z2 = 0, obtemos z1 resolvendo o sistema LU1z1 = Pb. Finalmente, calculamos x0 fazendo . Para nosso exemplo, temos: [L,U,P,Q]=lu(sparse(A)); L=full(L) L = 1 0 2 1 U=full(U) U = 1 4 3 2 0 -7 -7 0 P=full(P) P = 1 0 0 1 Q=full(Q) Q = 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 U1=U(:,1:2) U1 = 1 4 0 -7 U2=U(:,3:4) U2 = 3 2 -7 0 y=L\(P*b) y = 2 -7 z1=U1\y z1 = -2 1 z2=zeros(2,1) z2 = 0 0 z=[z1;z2] z = -2 1 0 0 x=Q*z x = -2 0 0 1 norm(A*x-b) ans = 0 O vetor x que obtivemos é a solução de Ax = b que tem o maior número de elementos nulos. Agora, vamos encontrar uma base Z para N(A). Para tanto, devemos observar que AZ = 0. Assim, PAQQTZ = 0, ou seja, LUQTZ = 0. Lembrando que U = [U1 U2] e escrevendo , onde W1 ( (m((n-m) e W2 ( ((n-m)((n-m), obtemos Para que esse sistema seja satisfeito, tomamos e W2 = In-m. Assim, . Observe, entretanto que esta base não é ortonormal. Para nosso exemplo, temos: Z=Q*[-inv(U1)*U2;eye(2)] Z = 1 -2 0 1 1 0 -1 0 A*Z ans = 0 0 0 0 Usando a decomposição QR com permutações de colunas. Podemos decompor A na forma: AP = QR, onde Q ( (m(m é ortogonal, R ( (m(n é trapezoidal superior e P ( (n(n é uma matriz de permutação de colunas. Neste caso, se Ax = b, então APPTx = b. Podemos definir z = PTx, obtendo QRz = b. Dividimos, agora, a matriz R na forma R = [R1 R2], onde R1 ( (m(m é triangular superior e R2 ( (m((n-m). Dividimos, também, o vetor z em , onde z1 ( (m e z2 ( ((n-m). Obtemos assim, o sistema . Escolhendo z2 = 0, obtemos z1 resolvendo R1z1 = QTb. Finalmente, calculamos x0 fazendo . Para nosso exemplo, temos: [Q,R,P]=qr(A) Q = -0.44721 -0.89443 -0.89443 0.44721 R = -4.4721 -0.44721 -2.2361 -2.6833 0 -3.1305 2.2204e-016 -3.1305 P = 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 R1=R(:,1:2) R1 = -4.4721 -0.44721 0 -3.1305 R2=R(:,3:4) R2 = -2.2361 -2.6833 2.2204e-016 -3.1305 z1=R1\(Q'*b) z1 = -0.5 1 z2=zeros(2,1) z2 = 0 0 z=[z1;z2] z = -0.5 1 0 0 x=P*z x = 0 -0.5 1 0 norm(A*x-b) ans = 8.8818e-016 Mais uma vez, o vetor x que obtivemos é a solução de Ax = b que tem o maior número de elementos nulos. Como no caso da decomposição LU, uma base (não ortonormal) de N(A) é dada por . Para nosso exemplo, temos: Z=P*[-inv(R1)*R2;eye(2)] Z = 1 0 -0.5 -0.5 7.093e-017 -1 0 1 A*Z ans = 2.1279e-016 8.8818e-016 -7.093e-017 3.3307e-016 Usando a decomposição QR de AT. Podemos decompor AT na forma: AT = QR, onde Q ( (n(n é ortogonal e R ( (n(m é triangular superior. Neste caso, se Ax = b, então RTQTx = b. Podemos definir z = QTx, obtendo RTz = b. Dividimos, agora, a matriz R na forma , onde R1 ( (m(m é triangular superior. Dividimos, também, o vetor z em , onde z1 ( (m e z2 ( ((n-m). Obtemos assim, o sistema . Escolhendo z2 = 0, obtemos z1 resolvendo . Finalmente, calculamos x0 fazendo . Como Q é ortogonal, . Assim, como z1 é a única solução de , a norma de z e, conseqüentemente, de x0 será mínima se z2 = 0. Dizemos, então, que é a solução de norma mínima de Ax = b. Para nosso exemplo, temos: [Q,R]=qr(A') Q = -0.18257 -0.38534 -0.53949 -0.72604 -0.36515 -0.77067 0.50733 0.12388 -0.54772 0.49543 0.47517 -0.47829 -0.7303 0.1101 -0.47517 0.47829 R = -5.4772 -2.0083 0 -4.2387 0 0 0 0 R1=R(1:2,:) R1 = -5.4772 -2.0083 0 -4.2387 z1=(R1')\b z1 = -0.36515 0.88077 z2=zeros(2,1) z2 = 0 0 z=[z1;z2] z = -0.36515 0.88077 0 0 x=Q*z x = -0.27273 -0.54545 0.63636 0.36364 norm(A*x-b) ans = 8.8818e-016 Uma base ortonormal de N(A) pode ser obtida fazendo-se Q = [Q1 Q2], onde Q1 ( (n(m e Q2 ( (n((n-m). Neste caso, Z = Q2. Para nosso exemplo, temos: Z2=Q(:,3:4) Z = -0.53949 -0.72604 0.50733 0.12388 0.47517 -0.47829 -0.47517 0.47829 A*Z ans = -4.4409e-016 6.6613e-016 -1.6653e-016 4.996e-016 Usando a SVD de A. Podemos decompor A na forma: A = USVT, onde U ( (m(m é ortogonal, V ( (n(n é ortogonal e S ( (m(n é diagonal (com sii > 0, i=1,...,m, pois posto(A) = m). Neste caso, se Ax = b, então USVTx = b. Podemos definir z = VTx, obtendo Sz = UTb. Dividimos, agora, a matriz S na forma S = [S1 0], onde S1 ( (m(m é diagonal. Dividimos, também, o vetor z em , onde z1 ( (m e z2 ( ((n-m). Obtemos assim, o sistema . Escolhendo z2 = 0, obtemos z1 resolvendo . Finalmente, calculamos x0 fazendo . Como no caso da decomposição QR de AT, V é ortogonal e . Assim, é solução de norma mínima de Ax = b. Para nosso exemplo, temos: [U,S,V]=svd(A) U = -0.81907 -0.5737 -0.5737 0.81907 S = 6.1404 0 0 0 0 3.7809 0 0 V = -0.32025 0.28153 -0.53949 -0.72604 -0.6405 0.56306 0.50733 0.12388 -0.30674 -0.67184 0.47517 -0.47829 -0.62699 -0.39031 -0.47517 0.47829 S1=S(:,1:2) S1= 6.1404 0 0 3.7809 z1=S1\(U'*b) z1 = 0.01351 -0.95337 z2=zeros(2,1) z2 = 0 0 z=[z1;z2] z = 0.01351 -0.95337 0 0 x=V*z x = -0.27273 -0.54545 0.63636 0.36364 norm(A*x-b) ans = 1.7342e-015 Uma base ortonormal de N(A) pode ser obtida fazendo-se V = [V1 V2], onde V1 ( (n(m e V2 ( (n((n-m). Neste caso, Z = V2. Para nosso exemplo, temos: Z=V(:,3:4) Z = -0.53949 -0.72604 0.50733 0.12388 0.47517 -0.47829 -0.47517 0.47829 A*Z ans = -4.4409e-016 6.6613e-016 -1.6653e-016 4.996e-016 _1145207331.unknown _1145209204.unknown _1145212262.unknown _1145213331.unknown _1145213407.unknown _1145213469.unknown _1145213385.unknown _1145212676.unknown _1145212201.unknown _1145212225.unknown _1145209499.unknown _1145208221.unknown _1145208729.unknown _1145208858.unknown _1145208298.unknown _1145207934.unknown _1145207973.unknown _1145207467.unknown _1145207047.unknown
Compartilhar