You are on page 1of 20

JIENDRA SINGH

P15PS009
CHOLESKY DECOMPOSITION
clear all;
clc;
m = input('Enter number of rows: ');
n = input('Enter number of columns: ');
for i = 1:m
for j = 1:n
s = ['Enter element in row ' num2str(i) ', col ' num2str(j) ': '];
a(i,j) = input(s);
end
end
for i =1:n
if a(i,i) > 0
L(i,i) = sqrt(a(i,i));
for j=(1+i):n
L(j,i) = a(j,i)./L(i,i);
k(j,i) = L(j,i);
end
for g = (i+1): n
for h = (i+1): n
c(g,h) = a(g,h);
end
end
a = c - k*k.';
k=0;
c=0;
s=0;
else
s = 1;
break;
end
end
if s == 0
U=L.';
A=L*U;
disp('the LOWER triangular matrix is:');
L
disp('the UPPER triangular matrix is:');
U
disp('the ORIGANAL matrix is:');
A
else
disp('ERROR');
disp('ERROR: MATRIX IS NOT POSITIV DEFINE');
end

OUTPUT:
Enter number of rows: 3
Enter number of columns: 3
Enter element in row 1, col
Enter element in row 1, col
Enter element in row 1, col
Enter element in row 2, col
Enter element in row 2, col
Enter element in row 2, col
Enter element in row 3, col
Enter element in row 3, col
Enter element in row 3, col
the LOWER triangular matrix

1: 25
2: 15
3: -5
1: 15
2: 18
3: 0
1: -5
2: 0
3: 11
is:

L =
5
3
-1

0
3
1

0
0
3

the UPPER triangular matrix is:


U =
5
0
0

3
3
0

-1
1
3

the ORIGANAL matrix is:


A =
25
15
-5

15
18
0

-5
0
11

JITENDRA SINGH
P15PS009
QR DECOMPOSITION
clear all;
clc;
a = input('enter the matrix:');
disp(a);
[m,n] = size(a);
for j = 1:n;
if j == 1
v(:,j) = a(:,j);
Q(:,j) = v(:,j)/norm(v(:,j));
end
if j > 1
s = 0;
for k = 1:(j-1)
s = (dot(a(:,j),v(:,k))/dot(v(:,k),v(:,k)))*(v(:,k)) + s;
sum = s;
end
v(:,j) = a(:,j) - sum;
Q(:,j) = v(:,j)/norm(v(:,j));
end
end
R = Q'*a;
D=Q*R;
disp('THE Q MATRIX:');
Q
disp('THE R(UPPER TRI.) MATRIX:');
R
disp('THE ORIGINAL MATRIX:');
D

OUTPUT:
enter the matrix:[1 1 4; 1 4 2; 1 4 2;1 1 0]
1

THE Q MATRIX:

Q=

0.5000 -0.5000

0.7071

0.5000 0.5000

0.5000 0.5000

0.5000 -0.5000

-0.7071

THE R(UPPER TRI.) MATRIX:

R=

2.0000 5.0000

4.0000

3.0000

2.8284

THE ORIGINAL MATRIX:

D=

1.0000 1.0000 4.0000


1.0000 4.0000 2.0000
1.0000 4.0000 2.0000
1.0000 1.0000 0.0000

JITENDRA SINGH
P15PS009
P-V CURVE
clear all;
clc;
i = sqrt(-1);
Zt = input('enter the value of Zt');
disp('the value of Zt:');
disp(Zt);
Zl = input('enter the value of Zl');
disp('the value of Zl:');
disp(Zl);
k = 1:1:1500;
% calculation for unity power factor load
Vs(k) = 1 +i*0;
Zl_u(k)= real(Zl);
Zl_u(k)= 0.1*k.*Zl_u(k);
I_u(k) = Vs(k)./(Zt+Zl_u(k));
Vr_u(k) = I_u(k).*Zl_u(k);
P_u(k) = real(Vr_u(k).*conj(I_u(k)));
V_u = abs(Vr_u);
Zl_lg(k)= Zl;
Zl_lg(k)= 0.1*k.*Zl_lg(k);
I_lg(k) = Vs(k)./(Zt+Zl_lg(k));
Vr_lg(k) = I_lg(k).*Zl_lg(k);
P_lg(k) = real(Vr_lg(k).*conj(I_lg(k)));
V_lg = abs(Vr_lg);
% calculation for leading power factor load
Zl_ld(k)= conj(Zl);
Zl_ld(k)= 0.01*k.*Zl_ld(k);
I_ld(k) = Vs(k)./(Zt+Zl_ld(k));
Vr_ld(k) = I_ld(k).*Zl_ld(k);
P_ld(k) = real(Vr_ld(k).*conj(I_ld(k)));
V_ld = abs(Vr_ld);
xlabel('Receiving end power(Pr)');
ylabel('Receiving end voltage(Vr)');
hold on;
plot(P_u,V_u,'b');
plot(P_lg,V_lg,'r');
plot(P_ld,V_ld,'g');

OUTPUT:
enter the value of Zt 1+2*i
the value of Zt:
1.0000 + 2.0000i

enter the value of Zl 1+2*i


the value of Zl:
1.0000 + 2.0000i
GRAPH:

JITENDRA SINGH
P15PS009
DOLITTLE DECOMPOSITION
clear all;
clc;
m = input('Enter number of rows: ');
n = input('Enter number of columns: ');
for i = 1:m
for j = 1:n
s = ['Enter element in row ' num2str(i) ', col ' num2str(j) ': '];
a(i,j) = input(s);
end
end
for i = 1:n
for j=1:n
if i == j
L(i,j) = 1;
end
if i == 1
U(i,j) = a(i,j);
end

%for lower matrix


if
i > j
if j > 1
s=0;
for k = 1:(j-1)
s = L(i,k)*U(k,j)+s;
sum = s;
end
end
if j == 1
sum = 0;
end
L(i,j) = (a(i,j) - sum)./U(j,j) ;
end
%for upper matrix
if
i <= j
if i > 1
v=0;
for k = 1:(i-1)
v = L(i,k)*U(k,j)+v;
vm = v;
end
end

if i == 1
vm = 0;
end
U(i,j) = (a(i,j) - vm);
end
end
end
a
disp('THE LOWER TRIANGULAR MATRIX');
L
disp('THE UPPER TRIANGULAR MATRIX');
U
disp('THE ORIGINAL MATRIX');
C=L*U

OUTPUT:
Enter number of rows: 3
Enter number of columns: 3
Enter element in row 1, col 1: 4
Enter element in row 1, col 2: 9
Enter element in row 1, col 3: 5
Enter element in row 2, col 1: 7
Enter element in row 2, col 2: 8
Enter element in row 2, col 3: 6
Enter element in row 3, col 1: 2
Enter element in row 3, col 2: 5
Enter element in row 3, col 3: 1

a=

THE LOWER TRIANGULAR MATRIX

L=

1.0000

1.7500

1.0000

0.5000

-0.0645

1.0000

THE UPPER TRIANGULAR MATRIX

U=

4.0000

9.0000

5.0000

-7.7500

-2.7500

-1.6774

THE ORIGINAL MATRIX

C=

JIENDRA SINGH
P15PS009

TIE SET ANALYSIS

clear all;
clc;
k = sqrt(-1);
Bf = input('Enter the Fundamental tie-set matrix:');
disp('The Fundamental tie-set matrix:');
disp(Bf);
Vs = input('Enter the Branch Voltage vector:');
disp('The Branch Voltage vector:');
disp(Vs);
Js = input('Enter the Branch Current vector:');
disp('The Branch Current vector:');
disp(Js);
Zb = input('Enter the Impedance matrix:');
disp('The Impedance matrix:');
disp(Zb);
Zl = Bf*Zb*Bf.';
Ve = Bf*Vs - Bf*Zb*Js;
Il = (inv(Zl))*Ve;
disp('The Loop current vector: ');
disp(Il);

OUTPUT:
Enter the Fundamental tie-set matrix:[1 0 0 -1 0 -1;0 1 0 -1 -1 0;0 0 1 0 1 -1]
The Fundamental tie-set matrix:
1 0 0 -1 0 -1
0 1 0 -1 -1 0
0 0 1 0 1 -1
Enter
the
Branch
k*sind(45));0;0;50]
The Branch Voltage vector:
1.0e+002 *

Voltage

vector:[100;50*(cosd(30)+k*sind(30));100*(cosd(45)-

1.0000
0.4330 + 0.2500i
0.7071 - 0.7071i
0
0
0.5000
Enter the Branch Current vector:[0;0;0;0;0;10+5*(cosd(45)+k*sind(45))]
The Branch Current vector:
0
0
0
0
0
13.5355 + 3.5355i
Enter the Impedance matrix:[1+k 0 0 0 0 0; 0 3+k*3 0 0 0 0; 0 0 5 0 0 0; 0 0 0 2-k*2 0 0; 0 0 0 0
k*5 0; 0 0 0 0 0 4]
The Impedance matrix:
1.0000 + 1.0000i
0
0
0
0
0
0
3.0000 + 3.0000i
0
0
0
0
0
0
5.0000
0
0
0
0
0
0
2.0000 - 2.0000i
0
0
0
0
0
0
0 + 5.0000i
0
0
0
0
0
0
4.0000
The Loop current vector:
12.6060 + 9.8710i
5.5072 - 1.1740i
-0.6594 - 7.2466i

JIENDRA SINGH
P15PS009
CROUT DECOMPOSITION
clear all;
clc;
m = input('Enter number of rows: ');
n = input('Enter number of columns: ');
for i = 1:m
for j = 1:n
s = ['Enter element in row ' num2str(i) ', col ' num2str(j) ': '];
a(i,j) = input(s);
end
end
for i = 1:n
for j=1:n
if i == j
U(i,j) = 1;
end
if j == 1
L(i,j) = a(i,j);
end
%for upper matrix
if
i < j
if i > 1
v=0;
for k = 1:(i-1)
v = L(i,k)*U(k,j)+v;
vm = v;
end
end
if i == 1
vm = 0;
end
U(i,j) = (a(i,j) - vm)./L(i,i);
end
%for lower matrix
if
i >= j
if j > 1
s=0;
for k = 1:(j-1)
s = L(i,k)*U(k,j)+s;
sum = s;
end
end
if j == 1
sum = 0;
end
L(i,j) = (a(i,j) - sum) ;
end
end
end
a

disp('THE LOWER TRIANGULAR MATRIX');


L
disp('THE UPPER TRIANGULAR MATRIX');
U
disp('THE ORIGINAL MATRIX');
C=L*U

OUTPUT:

Enter number of rows: 3


Enter number of columns: 3
Enter element in row 1, col 1: 45
Enter element in row 1, col 2: 12
Enter element in row 1, col 3: 36
Enter element in row 2, col 1: 9
Enter element in row 2, col 2: 2
Enter element in row 2, col 3: 1
Enter element in row 3, col 1: 7
Enter element in row 3, col 2: 8
Enter element in row 3, col 3: 5

a=

45

12

36

THE LOWER TRIANGULAR MATRIX


L=

45.0000

9.0000

-0.4000

7.0000

6.1333

0
0
-95.6667

THE UPPER TRIANGULAR MATRIX

U=

1.0000 0.2667 0.8000


0

1.0000 15.5000

1.0000

THE ORIGINAL MATRIX

C=

45.0000 12.0000 36.0000


9.0000 2.0000

1.0000

7.0000 8.0000

5.0000

JIENDRA SINGH
P15PS009
Ybus FORMATION CODE
clear all;
clc;
display('----------Ybus formation code--------');
nbranch=input('enter the number of branches in system = ');
display('enter line data');
for n=1:1:nbranch
fb=input('enter from bus = ');
tb=input('enter to bus = ');
r=input('enter value of resistance = ');
x=input('enter value of reactance = ');
z=r+i*x;
y=1./z;
Ldata(n,:)=[fb tb r x y];
end
fb=Ldata(:,1);
tb=Ldata(:,2);
r=Ldata(:,3);
x=Ldata(:,4);
y=Ldata(:,5);
nbus=max(max(fb),max(tb));
Y=zeros(nbus,nbus);
b=input('enter the total no. of nodes at which ground reactor is linked = ');
for k=1:b
bs=input('enter the node at which ground reactor is linked = ');
x0=input('enter value of ground reactor = ');
if x0~=0
y0=1./(i*x0);
else
y0=0;
end
a(bs) = y0;
end
% off diagonal element
for k=1:nbranch
if fb(k) ~= tb(k)
Y(fb(k),tb(k))=-y(k);
Y(tb(k),fb(k))=Y(fb(k),tb(k));
end
end
% diagonal element
for m=0:nbus
for n=1:nbranch
if fb(n)==m
Y(m,m)=Y(m,m)+y(n);
elseif tb(n)==m
Y(m,m)=Y(m,m)+y(n);
end
end
end
for k=1:nbus
Y(k,k)=Y(k,k)+a(k);
end
Y_BUS = Y

OUTPUT:
----------Ybus formation code-------enter the number of branches in system = 5
enter line data
enter from bus = 1
enter to bus = 2
enter value of resistance = 0
enter value of reactance = 0.125
enter from bus = 1
enter to bus = 3
enter value of resistance = 0
enter value of reactance = 0.25
enter from bus = 1
enter to bus = 4
enter value of resistance = 0
enter value of reactance = 0.4
enter from bus = 2
enter to bus = 3
enter value of resistance = 0
enter value of reactance = 0.25
enter from bus = 2
enter to bus = 4
enter value of resistance = 0
enter value of reactance = 0.2
enter the total no. of nodes at which ground reactor is linked = 2
enter the node at which ground reactor is linked = 3

enter value of ground reactor = 1.25


enter the node at which ground reactor is linked = 4
enter value of ground reactor = 1.25

Y_BUS =

0.0000 -14.5000i

0.0000 + 8.0000i

0.0000 + 4.0000i

0.0000 + 2.5000i

0.0000 + 8.0000i

0.0000 -17.0000i

0.0000 + 4.0000i

0.0000 + 5.0000i

0.0000 + 4.0000i

0.0000 + 4.0000i

0.0000 - 8.8000i

0.0000 + 0.0000i

0.0000 + 2.5000i

0.0000 + 5.0000i

0.0000 + 0.0000i

0.0000 - 8.3000i

You might also like