Sejam dois vetores linearmente independentes $\overrightarrow{u}$ e $\overrightarrow{v}$. Estes dois vetores formam um plano no $ \mathbf{R}^2 $. Este plano contém todos o conjunto de todos os vetores que podem resultar da combinação linear de
$ \overrightarrow{u} $ e $ \overrightarrow{v} $. Em termos matemáticos, o plano é chamado de espaço vetorial (span)
dos vetores $\overrightarrow{u}$ e $\overrightarrow{v}$. Ou seja, um vetor $\overrightarrow{y}$ pertencerá à tal espaço vetorial se puder ser escrito como:
em que $ x_1, x_2 $ são escalares. Podemos dar um nome a tal espaço vetorial, por exemplo, $ \mathbb{U} $. Em termos matemáticos:
$$ x_1 \cdot \overrightarrow{u} + x_2 \cdot \overrightarrow{v} \in \mathbb{U}, \ \forall \ x_1,x_2 \in \ \mathbf{R}, \\ \ \mathbb{U} = span \{ \overrightarrow{u}, \overrightarrow{v} \} $$Vejamos um exemplo.
Considere os vetores $\overrightarrow{u}$ e $\overrightarrow{v}$ a seguir:
$$ \overrightarrow{u} = \begin{pmatrix}0.849\cr 0.685\cr 0.878\cr \end{pmatrix}, \ \overrightarrow{v} = {\begin{pmatrix}0.068\cr 0.56\cr 0.662\cr \end{pmatrix}} $$Represente o espaço vetorial formado pelos vetores $\overrightarrow{u}$ e $\overrightarrow{v}$:
Solução
O código de Scilab que gera o plano está apresentado a seguir:
f = get("current_figure");
f.figure_position = [-8,-8];
f.figure_size = [1936,1056];
// Função que plota os vetores,
// p(2 ou 3) - numérico, vetor com os pontos finais do vetor a ser plotado
// nome - texto com o nome do vetor
// cor - inteiro, indicando a cor do vetor
// p0(2 ou 3) - numérico, vetor com os pontos iniciais do vetor; se não informado, assume que o ponto inicial é a origem
function plotaseta(p,nome,cor,p0)
if length(p)==3 then
if p0<>[] then
xarrows([p0(1),p(1)],[p0(2),p(2)],[p0(3),p(3)],1,cor)
else
xarrows([0,p(1)],[0,p(2)],[0,p(3)],1,cor)
end
elseif length(p)==2 then
if p0<>[] then
xarrows([p0(1),p(1)],[p0(2),p(2)],1,cor)
else
xarrows([0,p(1)],[0,p(2)],1,cor)
end
end
e=gce();
e.thickness=.5;e.arrow_size=2;
xstring(1,1,'$\ '+nome+ '$')
e = gce()
e.data=[p'];e.font_size=5
e.font_foreground=cor
endfunction
// Vetores que formam a base
u = [0.849 ; 0.685; 0.878]
v = [0.068; 0.56; 0.662]
// Limites do plano representado
xmin = -2.5; xmax =2.5;
ymin = -2.5; ymax = 2.5
// Gera os limites da grade
xy = [xmin xmin xmax xmax xmin
ymin ymax ymax ymin ymin]
// Número de pontos da grade
npts = 22
dx = (ymax-ymin)/(npts-1)
dy = (xmax-xmin)/(npts-1)
for i=1:npts
aux = (ymin+dx*(i-1))
gradey = [xmin xmax; aux aux]
gradey3d = [u v]*gradey
param3d(gradey3d(1,:),gradey3d(2,:),gradey3d(3,:))
e=gce();
e.thickness=.25;e.foreground=7;
aux = (ymin+dy*(i-1))
gradex = [aux aux;ymin ymax]
gradex3d = [u v]*gradex
param3d(gradex3d(1,:),gradex3d(2,:),gradex3d(3,:))
e=gce();
e.thickness=.25;e.foreground=7;
end
// Plota a grade
uvw = [u v]*xy
param3d(uvw(1,:),uvw(2,:),uvw(3,:))
// Plota o eixo canônico
cor = 1
plotaseta([1 0 0]',"e_{1}",cor,[])
plotaseta([0 1 0]',"e_{2}",cor,[])
plotaseta([0 0 1]',"e_{3}",cor,[])
// Plota os vetores u,v
cor = 9
plotaseta(u,'\overrightarrow{u}',cor,[])
plotaseta(v,'\overrightarrow{v}',cor,[])
a= gca()
a.box="off"
a.axes_visible = ["off","off","off"]
a.data_bounds = [-1, -1, -1; 1,1,1]*1
a.x_label.visible="off"
a.y_label.visible="off"
a.z_label.visible="off"
O espaço vetorial formado pelos vetores $\overrightarrow{u}$ e $\overrightarrow{v}$ está apresentado a seguir.
__ Fim do Exemplo
Agora que entendemos o que é $ \mathcal{U} $, podemos explorar algumas características.
Vamos definir o que é dimensão de um espaço vetorial:
$$ \rm{A \ dimensão \ de \ um \ espaço \ vetorial \ \mathcal{U} \ é \ igual \ ao \ número \ de \ vetores \ LI \ que \\ compõem \ uma \ base \ para \ \mathcal{U} } $$Vimos que no exemplo apresentado, $ \mathcal{U} $ é formado a partir de $\overrightarrow{u}$ e $\overrightarrow{v}$, sendo 2 vetores linearmente indepenentes, resultando em um plano $\mathbf{R}^2$. Dizemos então que a dimensão de $\mathcal{U} $ é 2, pois é formado por 2 vetores LI.
$$ \rm{se} \ \mathcal{U} = \mathbf{R}^m ,\ \rm{então} \ dim \left( \mathcal{U} \right) = m, \ \rm{neste \ exemplo, \ m = 2} $$No exemplo visto, os vetores $\overrightarrow{u}$ e $\overrightarrow{v}$ são ditos base do espaço vetorial $ \mathcal{U} $. A base de $ \mathcal{U} $ deve composta por vetores linearmente independentes. A base de $ \mathcal{U} $ não é única; e quaisquer n vetores LI do espaço vetorial $ \mathcal{U} $ poderiam ser base deste espaço.
$$ \rm{Uma \ base \ de } \ \mathcal{U} \ \rm{ pode \ ser \ composta \ por \ quaisquer \ m \ vetores \ LI \ de} \ \mathcal{U} \, \rm{onde} \ dim \left(\mathcal{U} \right) = m $$Como a base de um espaço vetorial não é única, é muitas vezes conveniente escolher uma base ortogonal para este espaço. No scilab, o comando orth retorna o espaço vetorial ortogonal de uma matriz cujos vetores colunas formam a base do espaço vetorial analisado.
Considere os vetores $\overrightarrow{u}$ e $\overrightarrow{v}$ a seguir:
$$ \overrightarrow{u} = \begin{pmatrix}0.849\cr 0.685\cr 0.878\cr \end{pmatrix}, \ \overrightarrow{v} = {\begin{pmatrix}0.068\cr 0.56\cr 0.662\cr \end{pmatrix}} $$a-) Determine uma base ortogonal para o espaço vetorial formado pelos vetores $\overrightarrow{u}$ e $\overrightarrow{v}$:
b-) Mostre que o vetor $ \overrightarrow{y} = 0,5 \cdot \overrightarrow{u} + 0,6 \cdot \overrightarrow{v} $ pode ser escrito em termos da base ortogonal obtida.
Solução
a-) No Scilab, a solução fica:
u = [0.849 ; 0.685; 0.878]
v = [0.068; 0.56; 0.662]
B = orth([u,v])
disp(B)
-0.4831459 0.873633
-0.5469377 -0.3526665
-0.6836879 -0.3352489
A matriz $ \mathbf{B} $ terá em suas colunas a base ortogonal, ou seja:
$$ \mathbf{B} = \begin{pmatrix}-0.4831459&0.873633\cr -0.5469377&-0.3526665\cr -0.6836879&-0.3352489\cr \end{pmatrix} = \begin{pmatrix} | & | \\ \overrightarrow{b_1^c} & \overrightarrow{b_2^c} \\ | & | \end{pmatrix} $$A solução resulta nos vetores da base $ \overrightarrow{b_1} $ e $ \overrightarrow{b_2} $ (eles não são os únicos possíveis, ok?):
$$ \overrightarrow{b_1} = {\begin{pmatrix}-0.4831459\cr -0.5469377\cr -0.6836879\cr \end{pmatrix}} $$$$ \overrightarrow{b_2} = {\begin{pmatrix}0.873633\cr -0.3526665\cr -0.3352489\cr \end{pmatrix}} $$Ou seja, o espaço vetorial $ \mathbb{U} $ pode ser escrito em termos da base $ \overrightarrow{b_1} $ , $ \overrightarrow{b_2} $, ou $ \overrightarrow{u} $, $ \overrightarrow{v} $, ou quaisquer dois vetores LI do plano $ \mathbb{U} $ define.
$ \mathbb{U} = span \left( \overrightarrow{b_1}, \overrightarrow{b_2} \right) = span \left( \overrightarrow{u}, \overrightarrow{v} \right) $
A vantagem de $ \overrightarrow{b_1}, \overrightarrow{b_2} $ é que esta base é ortogonal, já que o produto interno entre tais vetores é nulo:
$$ \overrightarrow{b_1}^T \cdot \overrightarrow{b_2} = \sum_{i=1}^3{\overrightarrow{b_{1,i}} \cdot \overrightarrow{b_{2,i}} } = -0.4831459 \cdot 0.873633 + \left(-0.5469377 \right) \cdot \left(-0.3526665 \right) + \left( -0.6836879 \right) \cdot \left( -0.3352489 \right) = 0 $$Observe que o mesmo plano é definido pelos vetores $ \overrightarrow{b_1}, \overrightarrow{b_2} $ e $ \overrightarrow{u}, \overrightarrow{v} $, conforme figura a seguir. No entanto, os vetores $ \overrightarrow{b_1}, \overrightarrow{b_2} $ apresentam como vantagens serem ortogonais entre si.
b-) Vamos primeiro obter o vetor $ \overrightarrow{y} $:
$$ \overrightarrow{y} = 0.5 \cdot \overrightarrow{u} + 0.6 \cdot \overrightarrow{v} = 0.5 \cdot {\begin{pmatrix} 0.849\cr 0.685 \cr -0.878\cr \end{pmatrix}} + 0.6 \cdot \begin{pmatrix}0.068\cr 0.56\cr 0.662\cr \end{pmatrix} = \begin{pmatrix}0.4653\cr 0.6785\cr 0.8362\cr \end{pmatrix} $$
Agora, queremos escrever o vetor $ \overrightarrow{y} $ em termos dos vetores $ \overrightarrow{b_1} $ e $ \overrightarrow{b_2} $:
$$ x_1 \cdot \overrightarrow{b_1} + x_2 \cdot \overrightarrow{b_2} = \overrightarrow{y} $$$$ {\begin{pmatrix}-0.4831459\cr -0.5469377\cr -0.6836879\cr \end{pmatrix}} \cdot x_1 + {\begin{pmatrix}0.873633\cr -0.3526665\cr -0.3352489\cr \end{pmatrix}} \cdot x_2 = \begin{pmatrix}0.4653\cr 0.6785\cr 0.8362\cr \end{pmatrix} $$O que pode ser escrito na forma de um sistema linear como:
$$ \begin{pmatrix}-0.4831459&0.873633\cr -0.5469377&-0.3526665\cr -0.6836879&-0.3352489\cr \end{pmatrix} \cdot \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix}0.4653\cr 0.6785\cr 0.8362\cr \end{pmatrix} $$Que pode ser resolvido para se encontrar $ x_1,x_2$. Usando o Scilab para solução, com o comando linsolve
, temos:
u = [0.849 ; 0.685; 0.878]
v = [0.068; 0.56; 0.662]
B = orth([u,v])
y = .5*u+.6*v
x = linsolve(B,-y)
O que retorna o resultado de $ x_1, x_2 $ de:
$$ \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix}-1.1676049\cr -0.1131179\cr \end{pmatrix} $$Ou seja, o mesmo vetor $\overrightarrow{y}$ pode ser escrito em termos de $ \overrightarrow{b_1}, \overrightarrow{b_2} $ ou de $\overrightarrow{u}, \overrightarrow{v}$. Encontrar os multiplicadores da base vetorial que geram o vetor $\overrightarrow{y}$ consiste na solução do sistema linear.
___Fim do Exemplo
Considere o espaço vetorial $ \mathcal{U} =\mathbb{R}^m $ de dimensão $ m $, subespaço de um espaço vetorial $ \mathbb{R}^n $. O espaço nulo, também chamado de kernel ou núcleo de $ \mathcal{U} $ corresponde ao espaço vetorial ortogonal à $ \mathcal{U} $ que completa o $ \mathbb{R}^n $. As dimensões dos espaços vetorial e do espaço nulo somam a dimensão do espaço completo $ \mathbb{R}^n $, ou seja:
$$ \underbrace{\rm{dim} \left( \mathcal{U} \right)}_{m} + \rm{dim} \ kernel \left( \mathcal{U} \right) = \underbrace{ \rm{dim} \mathbb{R}^n }_{n} $$$$ \rm{dim} \ kernel \left( \mathcal{U} \right) = n - m $$Por exemplo, considere $ \mathcal{U} $ como o espaço formado pelos vetores $\overrightarrow{u}$ e $\overrightarrow{v}$, designado por $\mathcal{U}$. O espaço vetorial $\mathcal{U}$ define um espaço $ \mathbb{R}^2 $, que é subespaço de um espaço vetorial $ \mathbb{R}^3 $. O conjunto de todos os vetores perpendiculares a $\mathcal{U}$ é definido como espaço nulo
de $\mathcal{U}$ corresponde ao kernel
de $\mathcal{U}$. A dimensão do núcleo ou kernel de $\mathcal{U}$ é portanto:
Dois vetores são ortogonais entre si se seu produto interno é nulo $ \left< *, * \right>=0 $. Com isto, se um vetor $\overrightarrow{w}$ for ortogonal à $\overrightarrow{u}$ e $\overrightarrow{v}$, então, ele pertence ao espaço nulo de $\mathcal{U}$. Ou seja, considere um vetor $\overrightarrow{w}$ tal que:
$$ \left< \overrightarrow{w} , \overrightarrow{u} \right> =0 $$$$ \left< \overrightarrow{w}, \overrightarrow{v} \right> =0 $$$$ \rm{então} \ \overrightarrow{w} \in kernel \left( \mathcal{U} \right) $$Se os vetores forem escritos como vetores coluna
, então o produto interno pode ser escrito na forma:
No scilab, as decomposições qr e svd permitem obter base do espaço nulo de uma matriz cujos vetores colunas formam a base do espaço vetorial analisado.
Considere os vetores $ \overrightarrow{u} , \overrightarrow{v} $, sendo $ \mathbb{U} = span \left( \overrightarrow{u}, \overrightarrow{v} \right) $ a seguir:
$$ \overrightarrow{u} = \begin{pmatrix}0.849\cr 0.685\cr 0.878\cr \end{pmatrix}, \ \overrightarrow{v} = {\begin{pmatrix}0.068\cr 0.56\cr 0.662\cr \end{pmatrix}} $$Determine uma base para o espaço nulo de $\mathbb{U}$ :
Solução Como os vetores $ \overrightarrow{u},\overrightarrow{v} $ são ambos vetores com 3 elementos, o espaço vetorial total é o $ \mathbf{R}^3 $. Vimos que $ \overrightarrow{u},\overrightarrow{v} $ expandem um $ \mathbf{R}^2 $ dentro do $ \mathbf{R}^3 $. O espaço-nulo de $ \mathbb{U} $ tem portanto, dimensão igual a 1. O vetor perpendicular ao espaço vetorial $\mathbb{U}$ pode ser obtido pelo produto vetorial entre os vetores $ \overrightarrow{u}, \overrightarrow{v} $ (o produto vetorial vale apenas para o $ \mathbf{R}^3 $).
$$ \overrightarrow{w} = \overrightarrow{u} \times \overrightarrow{v} $$$$ \overrightarrow{w} =\begin{pmatrix}-0.03821\cr -0.502334\cr 0.42886\cr \end{pmatrix} $$Plotando o vetor:
Nota: Embora tenhamos ilustrado para o mundo 3D, que é até onde enxergamos, os conceitos de espaço vetorial e espaço nulo se aplicam a dimensões quaisquer. Outras operações matemáticas não se aplicam, como por exemplo, o produto vetorial (que só se aplica para a 3° e 7° dimensão). Para generalizar a obtenção dos espaços vetoriais e espaços nulos, é conveniente tratarmos de decomposições como a decomposição QR e a decomposição SVD.
__ Fim do Exemplo
A decomposição SVD decompõe uma matriz $\mathbf{A}$ de $ n \times m $ em uma matriz ortogonal quadrada $\mathbf{U}$ de $ n \times n $, uma matriz diagonal $\mathbf{\Sigma}$ de $ n \times m $ e uma matriz ortogonal quadrada $\mathbf{V}$ de $ m \times m $, ou seja:
$$ \underbrace{\mathbf{A}}_{n \times m} = \underbrace{\mathbf{U}}_{n \times n} \cdot \underbrace{\mathbf{\Sigma}}_{n \times m} \cdot \underbrace{\mathbf{V}^T}_{m \times m} $$A matriz $ \mathbf{A} $ possui posto $ p $. As matrizes podem ser entendidas como, em que $ \alpha $ representa o espaço vetorial e $ \beta $ representa o espaço nulo:
$$ \mathbf{U} = \left( \begin{matrix} \underbrace{ \mathbf{U_{\alpha}}}_{n \times p} & | & \underbrace{ \mathbf{U_{\beta} } }_{n \times n-p} \end{matrix} \right) $$$$ \mathbf{\Sigma} = \left( \begin{matrix} \underbrace{ \mathbf{\Sigma_{\alpha}}}_{p \times p} & \underbrace{ \mathbf{0 }}_{p \times m-p } \\ \underbrace{ \mathbf{0 }}_{n-p \times p } & \underbrace{ \mathbf{0 }}_{n-p \times m-p } \end{matrix} \right) $$$$ \mathbf{V} = \left( \begin{matrix} \underbrace{ \mathbf{V_{\alpha}}}_{m \times p} & | & \underbrace{ \mathbf{V_{\beta} } }_{m \times m-p} \end{matrix} \right) $$A matriz $ \mathbf{U_{\alpha}} $ contém o espaço vetorial coluna
da matriz $ \mathbf{A} $; a matriz $ \mathbf{U_{\beta}} $ contém o espaço nulo coluna
da matriz $ \mathbf{A} $.
A matriz $ \mathbf{\Sigma_{\alpha}} $ contém os valores singulares
associados a decomposição da matriz $ \mathbf{A} $.
A matriz $ \mathbf{V_{\alpha}} $ contém o espaço vetorial linha
da matriz $ \mathbf{A} $; a matriz $ \mathbf{V_{\beta}} $ contém o espaço nulo linha
da matriz $ \mathbf{A} $.
A matriz original pode ser recomposta apenas pela sua parte vetorial, ou seja:
$$ \mathbf{A} = \mathbf{U_{\alpha}} \cdot \mathbf{S_{\alpha}} \cdot \mathbf{V_{\alpha}}^T $$Vejamos alguns exemplos.
Analise a seguinte matriz:
$$ \mathbf{A} = {\begin{pmatrix}0.01&0.21&0.045&0.69&0.09&0.13\cr 0.18&0.57&0.168&0.76&0.95&0.96\cr 0.49&0.26&0.199&0.35&0.22&0.65\cr 0.007&0.147&0.0315&0.483&0.063&0.091\cr 0.94&0.91&0.464&0.54&0.81&0.52\cr \end{pmatrix}} $$Solução
Uma primeira observação da matriz diz respeito às suas dimensões: 5 linhas e 6 colunas. Há 6 vetores coluna para descrever um espaço que é no máximo $\mathbf{R}^5$, e 5 vetores linha para descrever um espaço que é no máximo $\mathbf{R}^6$. Esta primeira análise sugere haver uma "sobra de colunas" e um "déficit de linhas". Contudo, sabemos que:
$$ \rm{nº \ de \ colunas \ LI \ da \ matriz} \ \mathbf{A} = \rm{nº \ de \ linhas \ LI \ da \ matriz} \ \mathbf{A} = \rm{posto \ da \ matriz} \ \mathbf{A} $$Nesta primeira:
O código a seguir em Scilab contém a decomposição para análise do sistema.
A = [0.01 0.21 0.045 0.69 0.09 0.13
0.18 0.57 0.168 0.76 0.95 0.96
0.49 0.26 0.199 0.35 0.22 0.65
0.007 0.147 0.0315 0.483 0.063 0.091
0.94 0.91 0.464 0.54 0.81 0.52 ]
// tolerância (valores abaixo serão considerados nulos)
tol = 1e-10
// Dimensão de A
[n,m] = size(A)
// Decomposição svd
[U,S,V,rk] = svd(A)
// Zera valores próximos a nulo
U(abs(U)<tol)=0
S(abs(S)<tol)=0
V(abs(V)<tol)=0
// Retorna os espaços vetorial e nulo coluna
U_alpha = U(:,1:rk)
U_beta = U(:,rk+1:n)
// Retorna os valores singulares
S_alpha = S(1:rk,1:rk)
// Retorna os espaços vetorial e nulo linha
V_alpha = V(:,1:rk)
V_beta = V(:,rk+1:m)
O primeiro resultado analisado é o posto da matriz, que no código acima é a variável rk
, resultante da decomposição SVD. Para este exemplo, o posto = 4, o que significa que há apenas 4 linhas e 4 colunas LI na matriz $\mathbf{A}$. Isto significa que a matriz expande apenas um $\mathbf{R}^4 $, tanto no espaço linha quanto no espaço coluna. Apesar de haver 6 colunas, duas delas são LD das demais; e apesar de haver 5 linhas, 1 dela é LD das demais.
Os resultados da matrizes levam a:
$$ \mathbf{U} = \left( \begin{matrix} \underbrace{ \begin{matrix}-0.2021069&-0.4949065&-0.6180863&0.0577113\cr -0.6200225&-0.4826188&0.5658379&-0.2499573\cr -0.3477132&0.1044036&0.1164198&0.9244684\cr -0.1414748&-0.3464346&-0.4326604&0.0403979\cr -0.658639&0.6254835&-0.3115256&-0.2791361 \end{matrix}}_{ \mathbf{U_{\alpha}} } & \underbrace{ \begin{matrix}0.5734623\cr 0\cr 0\cr -0.8192319\cr 0 \end{matrix} }_{\mathbf{U_{\beta}} } \end{matrix} \right) $$$$ \mathbf{\Sigma} = \begin{pmatrix}2.5635181&0&0&0&0&0\cr 0&0.8013566&0&0&0&0\cr 0&0&0.5629679&0&0&0\cr 0&0&0&0.397247&0&0\cr 0&0&0&0&0&0\cr \end{pmatrix} $$$$ \mathbf{V} = \left( \begin{matrix} \underbrace{ \begin{matrix}-0.3526855&0.6799305&-0.254272&0.3687107\cr -0.4316018&0.2076303&-0.2204223&-0.3475666\cr -0.192126&0.2455052&-0.1203661&0.0410999\cr -0.4510863&-0.6255659&-0.5913207&0.106221\cr -0.4782952&0.0059344&0.4048851&-0.6354673\cr -0.4692284&-0.2072282&0.5988986&0.571366\cr \end{matrix}}_{ \mathbf{V_{\alpha}} } & \underbrace{ \begin{matrix}-0.0865022&-0.4530155\cr 0.6882822&0.3570555\cr -0.5921326&0.7321316\cr -0.1576336&-0.1392732\cr -0.3380192&-0.2986485\cr 0.1704662&0.1506112\cr \end{matrix} }_{\mathbf{V_{\beta}} } \end{matrix} \right) $$A matriz original pode ser recomposta apenas pela sua parte vetorial. De fato:
$$ \mathbf{A} = \mathbf{U_{\alpha}} \cdot \mathbf{S_{\alpha}} \cdot \mathbf{V_{\alpha}}^T $$$$ \mathbf{A} = \begin{pmatrix}-0.2021069&-0.4949065&-0.6180863&0.0577113\cr -0.6200225&-0.4826188&0.5658379&-0.2499573\cr -0.3477132&0.1044036&0.1164198&0.9244684\cr -0.1414748&-0.3464346&-0.4326604&0.0403979\cr -0.658639&0.6254835&-0.3115256&-0.2791361 \end{pmatrix} \cdot \begin{pmatrix}2.5635181&0&0&0\cr 0&0.8013566&0&0\cr 0&0&0.5629679&0\cr 0&0&0&0.397247\cr \end{pmatrix} \cdot \begin{pmatrix}-0.3526855&0.6799305&-0.254272&0.3687107\cr -0.4316018&0.2076303&-0.2204223&-0.3475666\cr -0.192126&0.2455052&-0.1203661&0.0410999\cr -0.4510863&-0.6255659&-0.5913207&0.106221\cr -0.4782952&0.0059344&0.4048851&-0.6354673\cr -0.4692284&-0.2072282&0.5988986&0.571366\cr \end{pmatrix}^T $$Vejamos a aplicação desta decomposição na análise do sistema linear
Seja um sistema linear conforme representado abaixo:
$$ \mathbf{A} \cdot \overrightarrow{x} = \overrightarrow{y} $$Ou em sua forma aberta matricialmente:
$$ \left( \begin{matrix} a_{1,1} & a_{1,2} & ... & a_{1,m} \\ a_{2,1} & a_{2,2} & ... & a_{2,m} \\ ... & ... & ... & ... \\ a_{n,1} & a_{n,2} & ... & a_{n,m} \end{matrix} \right) \cdot \left( \begin{matrix} x_1 \\ x_2 \\ ... \\ x_m \end{matrix} \right) = \left( \begin{matrix} y_1 \\ y_2 \\ ... \\ y_n \end{matrix} \right) $$Onde o vetor $ \overrightarrow{y} $ pertence aos reais de dimensão $ n $, e o vetor $ \overrightarrow{x} $ pertence aos reais de dimensão $ m $. Cada vetor coluna da matriz $ \mathbf{A} $ pertence aos reais de dimensão $ n $, e cada vetor linha da matriz $ \mathbf{A} $ pertence aos reais de dimensão $ m $.
$$ \overrightarrow{y} \in \mathcal{R}^n $$$$ \overrightarrow{a}^C_j \in \mathcal{R}^n \ , \ \forall \ j =1..m $$$$ \overrightarrow{x} \in \mathcal{R}^m $$$$ \overrightarrow{a}^L_i \in \mathcal{R}^m \ , \ \forall \ i =1..n $$Contudo, não necessariamente o vetor $ \overrightarrow{y} $ pode assumir qualquer vetor no espaço $ \mathcal{R}^n $, pois isto depende do posto da matriz
$ \mathbf{A} $. Para entender, podemos re-escrever o sistema linear como:
Ou seja:
$$ \overrightarrow{a}_1^C \cdot x_1 + \overrightarrow{a}_2^C \cdot x_2 + ... + \overrightarrow{a}_m^C \cdot x_m = \overrightarrow{y} $$Logo, da expressão acima, fica evidente que o vetor $ \overrightarrow{y} $ é combinação linear dos vetores coluna da matriz $ \mathbf{A} $. Ou seja, $ \overrightarrow{y} $ pertence ao espaço vetorial
dos vetores coluna da matriz $ \mathbf{A} $:
Se os vetores coluna apresentarem alguma dependência linear e a dimensão do espaço vetorial $ \mathcal{U} $ será menor que $ m $, e sempre igual ao posto da matriz $ \mathbf{A} $. Ou seja, se o posto da matriz $ \mathbf{A} $ for igual a $ p $, $ \overrightarrow{y} $ estará restrito a um espaço vetorial $ \mathcal{R}^p $.
Na transformação linear $ \mathbf{A} \cdot \overrightarrow{x} = \overrightarrow{y} $, podemos entender que:
Em termos matemáticos, pode-se escrever:
$$ T_\mathbf{A} : \ \ \overrightarrow{x} \rightarrow \overrightarrow{y} $$$$ T_\mathbf{A} : \ \ \mathcal{R}^m \rightarrow \mathcal{R}^n $$Contudo, $ \mathcal{R}^n $ é apenas o contradomínio da transformação. A imagem da transformação, onde $ \overrightarrow{y} $ verdadeiramente estará contido pode ser "menor" do que $ \mathcal{R}^n $, e é obrigatoriamente igual a $ \mathcal{R}^p $, em que $ p $ é o posto da matriz $ \mathbf{A} $.
$$ Im \left( T_\mathbf{A} \right) = \mathcal{R}^p, \ p = \rm{posto \ da \ matriz } $$Mas e o espaço vetorial definido pelos vetores linhas da matriz $ \mathbf{A} $? Bem, um teorema do cálculo estabelece que:
$$ \rm{nº \ de \ colunas \ LI \ da \ matriz} \ \mathbf{A} = \rm{nº \ de \ linhas \ LI \ da \ matriz} \ \mathbf{A} = \rm{posto \ da \ matriz} \ \mathbf{A} = p $$Ou seja, a dimensão do espaço vetorial coluna é a mesma dimensão do espaço vetorial linha. Vamos definir:
espaço vetorial coluna
da matriz $ \mathbf{A} $ como $ \mathcal{U} $espaço vetorial linha
da matriz $ \mathbf{A} $ como $ \mathcal{V} $Então:
$$ dim \left( \mathcal{U} \right) = dim \left( \mathcal{V} \right) = p $$Ou seja, ambos $ \mathcal{U} $, $ \mathcal{V} $ definem um $ \mathcal{R}^p $, não necessariamente o mesmo. Sabemos que são espaços de mesma dimensão são isomórficos; então os espaços vetoriais $ \mathcal{U} $, $ \mathcal{V} $ são isomórficos entre si. Isto signfica que um vetor $ \overrightarrow{x} $ que pertença a $ \mathcal{V} $ terá uma equivalência biunívoca com um vetor $ \overrightarrow{y} $ que pertença a $ \mathcal{U} $.
Para visualizar melhor, é conveniente observar bases ortogonais para os espaços linha e coluna, conforme segue.
Espaço vetorial coluna (pela decomposição svd)
Considere por exemplo, que escrevermos:
$$ \overrightarrow{y} = \mathbf{A} \cdot \overrightarrow{x} $$Tomando a decomposição e sua parte vetorial, temos:
$$ \overrightarrow{y} = \mathbf{U_{\alpha}} \cdot \mathbf{S_{\alpha}} \cdot \mathbf{V_{\alpha}}^T \cdot \overrightarrow{x} $$$$ \overrightarrow{y} = \mathbf{U_{\alpha}} \cdot \mathbf{S_{\alpha}} \cdot \underbrace{ \left( \mathbf{V_{\alpha}}^T \cdot \overrightarrow{x} \right) }_{\overrightarrow{z}} $$$$ \overrightarrow{y} = \mathbf{U_{\alpha}}\cdot \cdot \mathbf{S_{\alpha}} \cdot \overrightarrow{z} $$$$ \overrightarrow{y} = \begin{pmatrix} | & | & | & | \\ \overrightarrow{u_{\alpha,1}} & \overrightarrow{u_{\alpha,2}} & \overrightarrow{u_{\alpha,3}} & \overrightarrow{u_{\alpha,4}} \\ | & | & | & | \end{pmatrix} \cdot \begin{pmatrix} \sigma_1 & 0 & 0 & 0 \cr 0 & \sigma_2 & 0 & 0 \cr 0 & 0 & \sigma_3 & 0 \cr 0 & 0 & 0 & \sigma_4 \end{pmatrix} \cdot \begin{pmatrix} z_1 \\ z_2 \\z_3 \\z_4 \end{pmatrix} $$$$ \overrightarrow{y} = z_1 \cdot \sigma_1 \cdot \begin{pmatrix} | \\ \overrightarrow{u_{\alpha,1}} \\ | \end{pmatrix} + z_2 \cdot \sigma_2 \cdot \begin{pmatrix} | \\ \overrightarrow{u_{\alpha,2}} \\ | \end{pmatrix} + z_3 \cdot \sigma_3 \cdot \begin{pmatrix} | \\ \overrightarrow{u_{\alpha,3}} \\ | \end{pmatrix} + z_4 \cdot \sigma_4 \cdot \begin{pmatrix} | \\ \overrightarrow{u_{\alpha,4}} \\ | \end{pmatrix} $$Ou seja, o vetor $ \overrightarrow{y} $ pertence ao espaço vetorial dos vetores coluna de $ \mathbf{U_{\alpha}} $. Tudo bem, nada de novo, havíamos dito que a matriz $ \mathbf{U_{\alpha}} $ gera, em seus vetores coluna, o mesmo espaço vetorial gerado pelos vetores coluna da matriz $ \mathbf{A} $.
Os $ \sigma$ 's são ordenados tipicamente do maior para o menor: $ \sigma_1 > \sigma_2 > \sigma_3 > \sigma_4 $. Os $ \overrightarrow{u_{\alpha}} $'s são unitários. Assim, a direção que tipicamente mais "impacta" o vetor $ \overrightarrow{y} $ tende a ser a direção 1, seguida da direção 2, direção 3 e por fim a direção 4. Se o $ \sigma $ associado a uma direção for muito pequeno comparado aos demais, pode-se pensar que desprezar esta direção gera pouco impacto no vetor $\overrightarrow{y} $. De fato, isto fundamenta uma análise de grande importância na estatística: a análise dos componentes principais. Veremos a aplicação desta análise mais à frente na disciplina; por hora vamos nos contentar em entender que as direções $ \overrightarrow{u_{\alpha,}}'s $ representam as direções ortogonais que contém a informação do espaço vetorial coluna da matriz $ \mathbf{A} $.
Espaço vetorial linha (pela decomposição svd)
Na verdade, podemos observar isto pela decomposição em valores e vetores singulares da matriz $ \mathbf{A} $, considerando que vamos recuperar os $ \overrightarrow{x} $ que estão associados a transformação linear. Vamos designar por $ \overrightarrow{x}_{\alpha} $, porque como será mostrado, está associado ao espaço vetorial $ \mathcal{V} $. Então
$$ \mathbf{A} \cdot \overrightarrow{x}_{\alpha} = \overrightarrow{y} $$$$ \mathbf{U_{\alpha}} \cdot \mathbf{\Sigma_{\alpha}} \cdot \mathbf{V_{\alpha}}^T \cdot \overrightarrow{x}_{\alpha} = \overrightarrow{y} $$$$ \overrightarrow{x}_{\alpha} = \mathbf{V_{\alpha}} \cdot \mathbf{\Sigma_{\alpha}}^{-1} \cdot \mathbf{U_{\alpha}}^T \cdot \overrightarrow{y} $$Chamando $ \overrightarrow{z} = \mathbf{U_{\alpha}}^T \cdot \overrightarrow{y} $, temos:
$$ \overrightarrow{x}_{\alpha} = \mathbf{V_{\alpha}} \cdot \mathbf{\Sigma_{\alpha}}^{-1} \overrightarrow{z} $$$$ \overrightarrow{x}_{\alpha} = \frac{z_1}{\sigma_1} \cdot \overrightarrow{v_1}_{\alpha} \cdot \frac{z_2}{\sigma_2} \cdot \overrightarrow{v_2}_{\alpha} + ... $$Note que, se queremos obter $ \overrightarrow{x}_{\alpha} $ a partir de $ \overrightarrow{y} $, então pela equação acima, $ \overrightarrow{x}_{\alpha} \in span \left( \overrightarrow{v_1}_{\alpha}, \overrightarrow{v_2}_{\alpha}, ... \right) $, ou seja, $ \overrightarrow{x} \in \mathcal{V} $.
Entendendo as infinitas soluções
Vimos que qualquer vetor $ \overrightarrow{x}_{\alpha} $ pertencendo ao espaço vetorial linha da matriz $ \mathbf{A} $ tem uma relação biunívoca com um vetor $ \overrightarrow{y} $ que obrigatoriamente está no espaço vetorial coluna da matriz $ \mathbf{A} $. Contudo, algo realmente interessante surge quando observamos o espaço nulo linha da matriz $\mathbf{A} $, isto é, $ kernel \left( \mathcal{V} \right) $. Note que vetores que pertencem ao espaço nulo linha
são ortogonais aos vetores linha da matriz $ \mathbf{A} $. Com isto, seja $ \overrightarrow{x}_{\beta} \in kernel \left( \mathcal{V} \right) $. Então:
Ou seja:
$$ \mathbf{A} \cdot \overrightarrow{x}_{\beta} = \overrightarrow{0}, \ \ \rm{se} \ \ \overrightarrow{x}_{\beta} \in \ kernel \left( \mathcal{V} \right) $$Com isto, considere um problema com infinitas soluções, e com a solução $ \overrightarrow{x}_{\alpha} $ $$ \mathbf{A} \cdot \overrightarrow{x}_{\alpha} = \overrightarrow{y} $$
Tomando a relação anterior, para $ \overrightarrow{x}_{\beta} \in \ kernel \left( \mathcal{V} \right) $, temos:
$$ \mathbf{A} \cdot \overrightarrow{x}_{\alpha} = \overrightarrow{y} $$$$ \mathbf{A} \cdot \overrightarrow{x}_{\beta} = \overrightarrow{0} $$Que somando leva a:
$$ \mathbf{A} \cdot \left( \overrightarrow{x}_{\alpha} + \overrightarrow{x}_{\beta} \right) = \overrightarrow{y} $$Ou seja, $ \overrightarrow{x}_{\alpha} + \overrightarrow{x}_{\beta} $ também é solução do problema.
Podemos então entender qualquer solução particular $ \overrightarrow{x^*} $ em sua componente no espaço vetorial de $ \mathbf{V_{\alpha}} $ e no espaço nulo $ \mathbf{V_{\beta}} $.
Quando decompomos $ \mathbf{A} $ na decomposição svd, temos:
$$ \mathbf{A} \cdot \overrightarrow{x} = \overrightarrow{y} $$$$ \mathbf{U_{\alpha}} \cdot \mathbf{S_{\alpha}} \cdot \mathbf{V_{\alpha}}^T \cdot \overrightarrow{x} = \overrightarrow{y} $$Ao multiplicar por $ \mathbf{U_{\alpha}}^T $, temos:
$$ \mathbf{U_{\alpha}}^T \cdot \mathbf{U_{\alpha}} \cdot \mathbf{S_{\alpha}} \cdot \mathbf{V_{\alpha}}^T \cdot \overrightarrow{x} = \mathbf{U_{\alpha}}^T \cdot \overrightarrow{y} $$Ao multiplicar por $ \mathbf{S_{\alpha}}^{-1} $, temos:
$$ \mathbf{V_{\alpha}}^T \cdot \overrightarrow{x} = \mathbf{S_{\alpha}}^{-1} \cdot\mathbf{U_{\alpha}}^T \cdot \overrightarrow{y} $$Por fim, ao multiplicar por $ \mathbf{V_{\alpha}} $, teremos obrigatoriamente o resultado projetado sobre o plano do espaço vetorial $ \mathcal{V} $.
$$ \underbrace{ \mathbf{V_{\alpha}} \cdot \mathbf{V_{\alpha}}^T \cdot \overrightarrow{x} }_{x_{\alpha}} = \mathbf{V_{\alpha}} \cdot \mathbf{S_{\alpha}}^{-1} \cdot\mathbf{U_{\alpha}}^T \cdot \overrightarrow{y} $$O $ x_{\alpha} $ é a "parte fixa" da solução do problema. Podemos somar ao $ x_{\alpha} $ qualquer valor dentro do espaço nulo, que a solução permanece válida. Logo, a solução geral do problema linear fica:
$$ x = x_{\alpha} + \lambda_1 \cdot \overrightarrow{v}_1 + \lambda_2 \cdot \overrightarrow{v}_2 $$, em que $ \overrightarrow{v}_1,\overrightarrow{v}_2 \in \ kernel \ \mathcal{V} $
Claramente, ao tomar um vetor no espaço nulo, sendo este ortogonal ao espaço vetorial $ \mathcal{V} $, estaremos apenas aumentando sua normal. Logo, o vetor solução de menor norma possível é o $ x_{\alpha} $.