2x2 Projection matrix of rank 1

4 visualizzazioni (ultimi 30 giorni)
john
john il 23 Nov 2022
Modificato: john il 27 Nov 2022
  2 Commenti
Rik
Rik il 24 Nov 2022
I recovered the removed content from the Google cache (something which anyone can do). Editing away your question is very rude. Someone spent time reading your question, understanding your issue, figuring out the solution, and writing an answer. Now you repay that kindness by ensuring that the next person with a similar question can't benefit from this answer.
john
john il 27 Nov 2022
Modificato: john il 27 Nov 2022
oops

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 23 Nov 2022
Modificato: Matt J il 23 Nov 2022
a=[1; 2]; n=[3; 4]; x=[5; 6];
r1p(a,n,a)
ans = 2×1
0.1789 0.3578
r1p(a,n,n)
ans = 2×1
1.0e-15 * -0.1986 -0.3972
r1p(a,n,x)
ans = 2×1
-0.1789 -0.3578
function p = r1p(a,n,x)
% computes the action of P, the 2x2 projection matrix of rank 1 having
% a - the sole basis vector for the column space of P
% n - the sole basis vector for the null space of P
a = normalize(a(:),'n');
b = normalize(null(n(:)'),'n');
p = dot(x,b)*a;
end
  4 Commenti
john
john il 23 Nov 2022
Thank you so much for continuing to help me out. However, this now works for a=[1; 0.01]; n=[0.01; 1]; x=[1; 0]; (just have to negate it), but does not return the correct answer for a=[1; 2]; n=[3; 4]; x=[5; 6];
Matt J
Matt J il 23 Nov 2022
Again, you do not provide what you think is the correct answer, or an explanation of why that answer is correct..

Accedi per commentare.

Più risposte (1)

Moiez Qamar
Moiez Qamar il 24 Nov 2022
%should work for:
a=[1; 0.01]
a = 2×1
1.0000 0.0100
n=[0.01; 1]
n = 2×1
0.0100 1.0000
x=[1; 0]
x = 2×1
1 0
p=r1p(a,n,x)
P = 2×2
1.0001 -0.0100 0.0100 -0.0001
p = 2×1
1.0001 0.0100
p = 2×1
1.0001 0.0100
%and for:
a=[1; 0];
n=[0; 1];
x=[1; 0];
p = r1p(a,n,x);
P = 2×2
1 0 0 0
p = 2×1
1 0
function p = r1p(a,n,x)
% computes the action of P, the 2x2 projection matrix of rank 1 having
% a - the sole basis vector for the column space of P
% n - the sole basis vector for the null space of P
xi=[0 -1; 1 0]*n;
chi=xi/(xi'*a);
P=a*chi'
p=P*x
end
  1 Commento
Matt J
Matt J il 24 Nov 2022
P=a*chi'
outer products are not efficient. That's why the exercise asks for you to compute p without computing P.

Accedi per commentare.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by