MATLAB para H-´
Algebra Linear II
Melissa Weber Mendon¸ca1
1Universidade Federal de Santa Catarina
2011.2
Lembrando...
A = 1 3 3 9 2 6 5 15 , b = A1 1 = 4 12 8 20 >> x = inv(A’*A)*A’*b >> x = pinv(A)*bEqua¸c˜
oes normais - exemplo
>> c1 = [1 2 4 8]’; >> c2 = [3 6 9 12]’; >> c3 = c1-4*c2 + .0000001*(rand(4,1) - .5*[1 1 1 1]’); >> A = [c1 c2 c3]; >> b = 2*c1-7*c2+.0001*(rand(4,1) - .5*[1 1 1 1]’); >> x = pinv(A)*b; >> erro = norm(A*x-b)Equa¸c˜
oes normais - exemplo
>> c1 = [1 2 4 8]’; >> c2 = [3 6 9 12]’; >> c3 = c1-4*c2 + .0000001*(rand(4,1) - .5*[1 1 1 1]’); >> A = [c1 c2 c3]; >> b = 2*c1-7*c2+.0001*(rand(4,1) - .5*[1 1 1 1]’); >> x = pinv(A)*b; >> erro = norm(A*x-b) >> x = inv(A’*A)*A’*b; >> erro2 = norm(A*x-b)Fatora¸c˜
ao QR
Sabemos que, se pudermos fatorar A em A = QR a resolu¸c˜ao do sistema se resume a
Rx = QTb No MATLAB, podemos fatorar A com o comando
>> [Q,R] = qr(A)
Exemplo
A = 1 4 2 8 1 4 3 2 Exemplo
A = 1 4 2 8 1 4 3 12 Gram-Schmidt
Para efetuarmos o processo de Gram-Schmidt em um conjunto de vetores, basta aplicarmos a decomposi¸c˜ao QR no MATLAB `a matriz formada pelos vetores (nas colunas):
Exemplo: A = 1 1 2 0 0 1 1 0 0
Gr´
afico simples
Para fazer um gr´afico simples (no plano) no MATLAB, usamos os seguintes comandos:
>> x = a:delta:b
>> plot(x,f(x))
Gr´
afico simples
Para fazer um gr´afico simples (no plano) no MATLAB, usamos os seguintes comandos:
>> x = -1:delta:1
>> plot(x,f(x))
Gr´
afico simples
Para fazer um gr´afico simples (no plano) no MATLAB, usamos os seguintes comandos:
>> x = -1:0.1:1
>> plot(x,f(x))
Gr´
afico simples
Para fazer um gr´afico simples (no plano) no MATLAB, usamos os seguintes comandos:
>> x = -1:0.1:1
>> plot(x,x.^2)
Exemplo
Fazer o gr´afico de uma reta passando por 2 pontos: p = (1, 2), q = (−1, −1)
Exemplo
Fazer o gr´afico de uma reta passando por 2 pontos: p = (1, 2), q = (−1, −1)
>> x = [1,-1]
Exemplo
Fazer o gr´afico de uma reta passando por 2 pontos: p = (1, 2), q = (−1, −1)
>> x = [1,-1]
>> y = [2,-1]
Exemplo
Fazer o gr´afico de uma reta passando por 2 pontos: p = (1, 2), q = (−1, −1)
>> x = [1,-1]
>> y = [2,-1]
>> plot(x,y)
Exemplo
Fazer o gr´afico de uma reta passando por 2 pontos: p = (1, 2), q = (−1, −1)
>> x = [1,-1]
>> y = [2,-1]
>> plot(x,y)
>> hold on
Exemplo
Fazer o gr´afico de uma reta passando por 2 pontos: p = (1, 2), q = (−1, −1) >> x = [1,-1] >> y = [2,-1] >> plot(x,y) >> hold on >> plot(x,y,’r*’)
Melhor reta
Encontrar a reta que interpola as seguintes medi¸c˜oes:
0.0 1.1 0.5 1.6 1.1 2.4 1.7 3.8 2.1 4.3 2.5 4.7 2.9 4.8 3.3 5.5 3.7 6.1 4.2 6.3 4.9 7.1 5.3 7.1 6.0 8.2 6.7 6.9 7.0 5.3
Melhor reta: resolu¸c˜
ao
>> A = [ones(length(x),1) x]
>> D = inv(A’*A)*A’*y
>> plot(t,D(2)*t+D(1))
Melhor par´
abola? E c´
ubica???
>> A = ???
>> D = inv(A’*A)*A’*y
>> plot(t,D(2)*t+D(1))
Melhor par´
abola? E c´
ubica???
>> A = [ones(length(x),1) x x.^2]
>> D = inv(A’*A)*A’*y
>> plot(t,??)
Melhor par´
abola? E c´
ubica???
>> A = [ones(length(x),1) x x.^2]
>> D = inv(A’*A)*A’*y
>> plot(t,D(3)*t.^2+D(2)*t+D(1))
Proje¸c˜
ao
Se quisermos ver a proje¸c˜ao de um vetor em outro no MATLAB, podemos efetuar os seguintes comandos:
>> u = [1;1];
>> v = [1/2;2];
>> plot([0 u(1)],[0 u(2)],’b’)
>> axis([0 2 0 2])
>> hold on;
>> plot([0 v(1)],[0 v(2)],’b’)
Proje¸c˜
ao
Se quisermos ver a proje¸c˜ao de um vetor em outro no MATLAB, podemos efetuar os seguintes comandos:
>> u = [1;1];
>> v = [1/2;2];
>> plot([0 u(1)],[0 u(2)],’b’)
>> axis([0 2 0 2])
>> hold on;
>> plot([0 v(1)],[0 v(2)],’b’)
>> p = ((v*v’)/(v’*v))*u;
Proje¸c˜
ao
Se quisermos ver a proje¸c˜ao de um vetor em outro no MATLAB, podemos efetuar os seguintes comandos:
>> u = [1;1];
>> v = [1/2;2];
>> plot([0 u(1)],[0 u(2)],’b’)
>> axis([0 2 0 2])
>> hold on;
>> plot([0 v(1)],[0 v(2)],’b’)
>> p = ((v*v’)/(v’*v))*u;
>> plot([0 p(1)],[0 p(2)],’m’,’linewidth’,2)
Proje¸c˜
ao
Se quisermos ver a proje¸c˜ao de um vetor em outro no MATLAB, podemos efetuar os seguintes comandos:
>> u = [1;1];
>> v = [1/2;2];
>> plot([0 u(1)],[0 u(2)],’b’)
>> axis([0 2 0 2]) >> hold on; >> plot([0 v(1)],[0 v(2)],’b’) >> p = ((v*v’)/(v’*v))*u; >> plot([0 p(1)],[0 p(2)],’m’,’linewidth’,2) >> plot([u(1) p(1)],[u(2) p(2)],’g’)
Autovalores
Para calcular o conjunto de autovalores de uma matriz quadrada no MATLAB, usamos o comando
>> eig(A)
>> [V,D] = eig(A) % A*V=V*D
Exemplo
A = eye(10, 10)
Exemplo
A = rand (10, 10)
Exemplo
B = A0∗ A
Exemplo
A = [1/2 1/2; 1/2 1/2]
Exemplo
A = [0 1; 0 0]
Exemplo
A = [4 3; 1 2]