Professional Documents
Culture Documents
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
3
3
0
-1
1
3
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
R=
2.0000 5.0000
4.0000
3.0000
2.8284
D=
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
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
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=
L=
1.0000
1.7500
1.0000
0.5000
-0.0645
1.0000
U=
4.0000
9.0000
5.0000
-7.7500
-2.7500
-1.6774
C=
JIENDRA SINGH
P15PS009
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
OUTPUT:
a=
45
12
36
45.0000
9.0000
-0.4000
7.0000
6.1333
0
0
-95.6667
U=
1.0000 15.5000
1.0000
C=
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
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