compattazione di matrice a banda e jacobi
This commit is contained in:
43
functions/compact_band_quadratic_matrix.m
Normal file
43
functions/compact_band_quadratic_matrix.m
Normal file
@@ -0,0 +1,43 @@
|
||||
%conversione matrice quadrata a banda in versione compatta
|
||||
|
||||
function [A] = compact_band_quadratic_matrix (U,left,right)
|
||||
|
||||
dim = size(U);
|
||||
dimy= dim(2);
|
||||
A = zeros(left + right + 1,dimy);
|
||||
|
||||
%upper
|
||||
x=1;Ax=right;
|
||||
for y=2:(right + 1)
|
||||
|
||||
Uy=y;
|
||||
for Ux=x:(dimy - (y - 1))
|
||||
|
||||
A(Ax,Uy) = U(Ux,Uy);
|
||||
|
||||
Uy=Uy+1;
|
||||
end
|
||||
|
||||
|
||||
Ax=Ax-1;
|
||||
end
|
||||
|
||||
%lower
|
||||
y=1;Ax=right + 2 ;
|
||||
for x = 2:(left +1)
|
||||
|
||||
Ux=x;
|
||||
for Uy=y: (dimy - (x- 1))
|
||||
A(Ax,Uy)=U(Ux,Uy);
|
||||
|
||||
Ux=Ux+1;
|
||||
end
|
||||
|
||||
Ax=Ax+1;
|
||||
end
|
||||
|
||||
%diagonal
|
||||
for x=1:dimy
|
||||
A(right+1,x) = U(x,x);
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user