trying to find main diagonal of a matrix for cholesky method
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Gabriel
am 3 Sep. 2023
Kommentiert: Dyuman Joshi
am 3 Sep. 2023
my goal is to find the main diagonal of a matrix G, through the cholesky method. For this I'm using a summation, however there is no success follow the code so far and the sum of interest.
clear;
clc;
%cholesky
n= input ("dimension of system:"); %dimension of system for the matrix
A= input("enter matrix A "); %initial matrix A for the cholesky method
disp (A);
i=1;
j=1;
for i=j
if i==1
g(1,1)=sqrt (A(1,1));
fprintf ("first element: \n"); %first element of the diagonal g(1,1)
disp (g(1,1))
end
%diagonal
k=1;
for i=2:n
for i=i-1
g(i,i)= g(i,i) + sqrt(A(i,i) - g(i,k)^2); % summation for the remaining diagonals dependent on the dimension of the system
end
end
end
disp(g(i,i))
the sum of interest below:

the entries are respectively:
3 -> dimension of system
[ 1 1 0; 1 2 -1; 0 -1 3] -> matrix A
the error is: 

0 Kommentare
Akzeptierte Antwort
Dyuman Joshi
am 3 Sep. 2023
%Random data
n = 5; %input ("dimensão do sistema:"); %dimension of system for the matrix
A = magic(5); %input("entre com a matriz "); %initial matrix A for the cholesky method
disp(A);
%Pre-allocate g array
g = zeros(n);
for i=1:n
if i==1
g(i,i) = sqrt(A(i,i));
fprintf("primeiro elemento: %f\n", g(1,1)); %first element of the diagonal g(1,1)
else
k=1:i-1;
%summation for the remaining diagonals dependent on the dimension of the system
g(i,i) = sqrt(A(i,i) - sum(g(i,k).^2));
end
end
disp(g)
2 Kommentare
Dyuman Joshi
am 3 Sep. 2023
FYI, You can make a function and test for any inputs -
n = 3;
A = [1 1 0; 1 2 -1; 0 -1 3];
disp(A);
g = choleskymethod(A,n)
function g = choleskymethod(A,n)
%Pre-allocate g array
g = zeros(n);
for i=1:n
if i==1
g(i,i) = sqrt(A(i,i));
fprintf("primeiro elemento: %f\n", g(1,1)); %first element of the diagonal g(1,1)
else
k=1:i-1;
%summation for the remaining diagonals dependent on the dimension of the system
g(i,i) = sqrt(A(i,i) - sum(g(i,k).^2));
end
end
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Operating on Diagonal Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!