How to find projection matrix
48 views (last 30 days)
Show older comments
The attached image is a literature to help find the projection, not the question. I've the written most of the code. Just need someone to help find the projection - p. Nothing else.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/592320/image.png)
Please write the code to find the projection matrix (mentioned in the code as P)
i = floor(0.5*M);
j = floor(0.5*N);
k = (N+1)*(i-1) + j;
A(k, k-(N+1)) = 0;
A(k, k-1) = 0;
A(k, k) = 1.0;
A(k, k+1) = 0;
A(k, k+(N+1)) = 0;
cond(A)
f(j, i) = 1.0;
f = reshape(f, [(N+1)*(M+1),1]);
p =
r = f*p;
u = A\r;
0 Comments
Answers (1)
Nipun
on 15 May 2024
Hi Dhinesh,
I understand that you are trying to solve a linear equation system to find a projection matrix P and then use it to project some vector f onto the range of A. However, the code snippet you've provided is incomplete, particularly the line where you intend to define P. Without the specific context of what P is supposed to represent (e.g., an orthogonal projection matrix, a particular solution to a given problem, etc.), I'll make an educated guess based on common practices in linear algebra and numerical methods.
Assuming A is your system matrix and f is a vector or function you want to project, the projection matrix P in the context of solving a linear system Ax = b is typically not explicitly formed. Instead, you solve the system directly, as P might represent the action of projecting b onto the column space of A.
However, if we interpret your need for P as finding a way to project f onto the solution space of A, and considering the rest of your code, it looks like you're setting up a boundary condition in a numerical grid (possibly for a PDE solver or similar). The missing part seems to be how to compute p and then use it to get r which is then used to solve for u.
Given the lack of detail on P, I'll assume you're looking for a way to solve for u given A and f, and I'll provide a generic way to approach this:
% Assuming A is already defined and set up according to your snippet
M = size(A, 1); % Assuming A is square for simplicity
N = size(A, 2);
% Assuming f is defined as per your code, but let's initialize it properly
f = zeros(N+1, M+1); % Adjust dimensions as necessary
% Your existing setup code
i = floor(0.5*M);
j = floor(0.5*N);
k = (N+1)*(i-1) + j;
A(k, k-(N+1)) = 0;
A(k, k-1) = 0;
A(k, k) = 1.0;
A(k, k+1) = 0;
A(k, k+(N+1)) = 0;
% Check condition number
disp(cond(A));
% Set a single point in f and reshape
f(j, i) = 1.0;
f = reshape(f, [(N+1)*(M+1), 1]);
% Solve the system
u = A\f; % This is effectively solving A*u = f
% Assuming you wanted to find 'p' such that 'r = f*p', but since it's not
% clear what 'p' is, we directly solve for 'u' as the projection of 'f' onto
% the range of 'A'. If 'p' is meant to be a projection matrix or a specific
% vector, please provide additional details.
Hope this helps.
Regards,
Nipun
0 Comments
See Also
Categories
Find more on Project File Management in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!