100_working code for conjugate gradient iterative algo for finding solution of Ax=b

%%100_working code for conjugate gradient iterative algo for finding
%%solution of Ax=b, where A is symmetric Positive definite
%%written by vikram bhayyA on 18-6-26 ~13:19-13:59
%%general
clc
clear all
A=input('enter a Symmetric Positive Definite matrix:');
%A=[4,1,1;1,3,-1;1,-1,3]; %has to be symmetric Positve definite
[m,n]=size(A);
n
b=input('enter the output vector of size n,1:');
%b=[6,3 3]';
%x0=zeros(n,1);
x0=[1 -1 0]';
%x0=[0 0 0]' ; % initial guess
%initialize
r0=b-A*x0; %residual
if norm(r0)<0.1
display('solution of Ax=b is:')
x0
else
p0=r0; %search direction
k=1;
while(k)
alpha0=(r0'*r0)/(p0'*A*p0); %step size
x1=x0+alpha0*p0; %update x1
r1=r0-alpha0*(A*p0); % update r1
if norm(r1)<0.01
k=0;
else
k=k+1;
end
beta0=(r1'*r1)/(r0'*r0); %improvement factor
p1=r1+beta0*p0;% new search direction
p0=p1;
r0=r1;
x0=x1;
end
display('solution of Ax=b is:')
x1
end
What is seen in Command window upon execution is:
enter a Symmetric Positive Definite matrix:[1 0 0;0 2 0; 0 0 4]

n =

     3

enter the output vector of size n,1:[1 4 12]'

Solution of Ax=b is: 
x1 =

     1
     2
     3

కామెంట్‌లు

ఈ బ్లాగ్ నుండి ప్రసిద్ధ పోస్ట్‌లు

Spicmacay convention implementation suggestions

ధన్యవాదములు.. కాస్త తెలుగు కూడా ఉపయోగించమ్మా.. Re: Assignment 1