Borrar filtros
Borrar filtros

How to find projection matrix

48 visualizaciones (últimos 30 días)
Dhinesh Nagarajan
Dhinesh Nagarajan el 22 de Abr. de 2021
Respondida: Nipun el 15 de Mayo de 2024
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.
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;

Respuestas (1)

Nipun
Nipun el 15 de Mayo de 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

Categorías

Más información sobre Project File Management en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by