summaryrefslogtreecommitdiff
path: root/104
diff options
context:
space:
mode:
Diffstat (limited to '104')
-rwxr-xr-x104/CH2/EX2.1/2_1.sce4
-rwxr-xr-x104/CH2/EX2.10/2_10.sce4
-rwxr-xr-x104/CH2/EX2.12/2_12.sce4
-rwxr-xr-x104/CH2/EX2.13/2_13.sce5
-rwxr-xr-x104/CH2/EX2.14/2_14.sce18
-rwxr-xr-x104/CH2/EX2.15/2_15.sce5
-rwxr-xr-x104/CH2/EX2.16/2_16.sce15
-rwxr-xr-x104/CH2/EX2.17/2_17.sce17
-rwxr-xr-x104/CH2/EX2.18/2_18.sce9
-rwxr-xr-x104/CH2/EX2.19/2_19.sce9
-rwxr-xr-x104/CH2/EX2.2/2_2.sci4
-rwxr-xr-x104/CH2/EX2.20/2_20.sce13
-rwxr-xr-x104/CH2/EX2.21/2_21.sce6
-rwxr-xr-x104/CH2/EX2.22/2_22.sce5
-rwxr-xr-x104/CH2/EX2.23/2_23.sce8
-rwxr-xr-x104/CH2/EX2.25/2_25.sce6
-rwxr-xr-x104/CH2/EX2.3/2_3.sci9
-rwxr-xr-x104/CH2/EX2.4/2_4.sce7
-rwxr-xr-x104/CH2/EX2.5/2_5.sci7
-rwxr-xr-x104/CH2/EX2.7/2_7.sce11
-rwxr-xr-x104/CH2/EX2.8/2_8.sce14
-rwxr-xr-x104/CH2/EX2.9/2_9.sce12
-rwxr-xr-x104/CH3/EX3.1/3_1.sce11
-rwxr-xr-x104/CH3/EX3.10/3_10.sce29
-rwxr-xr-x104/CH3/EX3.11/3_11.sce38
-rwxr-xr-x104/CH3/EX3.3/3_3.sce8
-rwxr-xr-x104/CH3/EX3.4/3_4.sce22
-rwxr-xr-x104/CH3/EX3.5/3_5.sce29
-rwxr-xr-x104/CH3/EX3.6/3_6.sce26
-rwxr-xr-x104/CH3/EX3.7/3_7.sce21
-rwxr-xr-x104/CH3/EX3.9/3_9.sce11
-rwxr-xr-x104/CH4/EX4.1/4_1.sce17
-rwxr-xr-x104/CH4/EX4.2/4_2.sce28
-rwxr-xr-x104/CH4/EX4.3/4_3.sce13
-rwxr-xr-x104/CH4/EX4.4/4_4.sce12
-rwxr-xr-x104/CH4/EX4.5/4_5.sce19
-rwxr-xr-x104/CH4/EX4.9/4_9.sce16
-rwxr-xr-x104/CH5/EX5.1/5_1.sce22
-rwxr-xr-x104/CH5/EX5.12/5_12.sce22
-rwxr-xr-x104/CH5/EX5.13/5_13.sce24
-rwxr-xr-x104/CH5/EX5.14/5_14.sce6
-rwxr-xr-x104/CH5/EX5.18/5_18.sce9
-rwxr-xr-x104/CH5/EX5.19/5_19.sce9
-rwxr-xr-x104/CH5/EX5.20/5_20.sce9
-rwxr-xr-x104/CH5/EX5.21/5_21.sce10
-rwxr-xr-x104/CH5/EX5.7/5_7.sce5
-rwxr-xr-x104/CH5/EX5.8/5_8.sce9
-rwxr-xr-x104/CH5/EX5.9/5_9.sce4
-rwxr-xr-x104/CH6/EX6.1/6_1.sce17
-rwxr-xr-x104/CH6/EX6.10/6_10.sce19
-rwxr-xr-x104/CH6/EX6.2/6_2.sce18
-rwxr-xr-x104/CH6/EX6.3/6_3.sce18
-rwxr-xr-x104/CH6/EX6.4/6_4.sce9
-rwxr-xr-x104/CH6/EX6.5/6_5.sce18
-rwxr-xr-x104/CH6/EX6.6/6_6.sce28
-rwxr-xr-x104/CH6/EX6.7/6_7.sce21
-rwxr-xr-x104/CH6/EX6.8/6_8.sce14
-rwxr-xr-x104/CH6/EX6.9/6_9.sce19
-rwxr-xr-x104/CH7/EX7.1/7_1.sce8
-rwxr-xr-x104/CH7/EX7.2/7_2.sce43
-rwxr-xr-x104/CH7/EX7.3/7_3.sce58
-rwxr-xr-x104/CH7/EX7.4/7_4.sce50
-rwxr-xr-x104/CH7/EX7.5/7_5.sce50
-rwxr-xr-x104/CH7/EX7.6/7_6.sce50
-rwxr-xr-x104/CH8/EX8.1/8_1.jpegbin0 -> 47539 bytes
-rwxr-xr-x104/CH8/EX8.1/8_1.sce6
-rwxr-xr-x104/CH8/EX8.10/8_10.jpegbin0 -> 33078 bytes
-rwxr-xr-x104/CH8/EX8.10/8_10.sce12
-rwxr-xr-x104/CH8/EX8.11/8_11.jpegbin0 -> 24420 bytes
-rwxr-xr-x104/CH8/EX8.11/8_11.sce16
-rwxr-xr-x104/CH8/EX8.12/8_12.jpegbin0 -> 25547 bytes
-rwxr-xr-x104/CH8/EX8.12/8_12.sce15
-rwxr-xr-x104/CH8/EX8.13/8_13.jpegbin0 -> 35339 bytes
-rwxr-xr-x104/CH8/EX8.13/8_13.sce16
-rwxr-xr-x104/CH8/EX8.14/8_14.jpegbin0 -> 25298 bytes
-rwxr-xr-x104/CH8/EX8.14/8_14.sce15
-rwxr-xr-x104/CH8/EX8.15/8_15.sce13
-rwxr-xr-x104/CH8/EX8.15/8_15a.jpegbin0 -> 23102 bytes
-rwxr-xr-x104/CH8/EX8.15/8_15b.jpegbin0 -> 25837 bytes
-rwxr-xr-x104/CH8/EX8.16/8_16.jpegbin0 -> 25547 bytes
-rwxr-xr-x104/CH8/EX8.16/8_16.sce11
-rwxr-xr-x104/CH8/EX8.17/8_17.sce19
-rwxr-xr-x104/CH8/EX8.18/8_18.sce7
-rwxr-xr-x104/CH8/EX8.18/8_18a.jpegbin0 -> 23102 bytes
-rwxr-xr-x104/CH8/EX8.18/8_18b.jpegbin0 -> 26682 bytes
-rwxr-xr-x104/CH8/EX8.19/8_19.sce7
-rwxr-xr-x104/CH8/EX8.19/8_19a.jpegbin0 -> 23102 bytes
-rwxr-xr-x104/CH8/EX8.19/8_19b.jpegbin0 -> 24558 bytes
-rwxr-xr-x104/CH8/EX8.2/8_2.jpegbin0 -> 44373 bytes
-rwxr-xr-x104/CH8/EX8.2/8_2.sce5
-rwxr-xr-x104/CH8/EX8.20/8_20.sce13
-rwxr-xr-x104/CH8/EX8.20/8_20a.jpegbin0 -> 24580 bytes
-rwxr-xr-x104/CH8/EX8.20/8_20b.jpegbin0 -> 24236 bytes
-rwxr-xr-x104/CH8/EX8.21/8_21.sce11
-rwxr-xr-x104/CH8/EX8.21/8_21a.jpegbin0 -> 25229 bytes
-rwxr-xr-x104/CH8/EX8.21/8_21b.jpegbin0 -> 25300 bytes
-rwxr-xr-x104/CH8/EX8.3/8_3.jpegbin0 -> 24498 bytes
-rwxr-xr-x104/CH8/EX8.3/8_3.sce6
-rwxr-xr-x104/CH8/EX8.4/8_4.jpegbin0 -> 28666 bytes
-rwxr-xr-x104/CH8/EX8.4/8_4.sce6
-rwxr-xr-x104/CH8/EX8.5/8_5.jpegbin0 -> 24893 bytes
-rwxr-xr-x104/CH8/EX8.5/8_5.sce24
-rwxr-xr-x104/CH8/EX8.8/8_8.jpegbin0 -> 33078 bytes
-rwxr-xr-x104/CH8/EX8.8/8_8.sce7
-rwxr-xr-x104/CH8/EX8.9/8_9.sce6
-rwxr-xr-x104/CH9/EX9.1/9_1.jpegbin0 -> 46279 bytes
-rwxr-xr-x104/CH9/EX9.1/9_1.sce7
-rwxr-xr-x104/CH9/EX9.10/9_10.jpegbin0 -> 46940 bytes
-rwxr-xr-x104/CH9/EX9.10/9_10.sce15
-rwxr-xr-x104/CH9/EX9.14/9_14.jpegbin0 -> 40516 bytes
-rwxr-xr-x104/CH9/EX9.14/9_14.sce9
-rwxr-xr-x104/CH9/EX9.15/9_15.jpegbin0 -> 63685 bytes
-rwxr-xr-x104/CH9/EX9.15/9_15.sce14
-rwxr-xr-x104/CH9/EX9.17/9_17.jpegbin0 -> 65132 bytes
-rwxr-xr-x104/CH9/EX9.17/9_17.sce14
-rwxr-xr-x104/CH9/EX9.2/9_2.jpegbin0 -> 41917 bytes
-rwxr-xr-x104/CH9/EX9.2/9_2.sce8
-rwxr-xr-x104/CH9/EX9.3/9_3.jpegbin0 -> 46939 bytes
-rwxr-xr-x104/CH9/EX9.3/9_3.sce12
-rwxr-xr-x104/CH9/EX9.4/9_4.jpegbin0 -> 46279 bytes
-rwxr-xr-x104/CH9/EX9.4/9_4.sce11
-rwxr-xr-x104/CH9/EX9.5/9_5.jpegbin0 -> 41247 bytes
-rwxr-xr-x104/CH9/EX9.5/9_5.sce11
-rwxr-xr-x104/CH9/EX9.6/9_6.jpegbin0 -> 47336 bytes
-rwxr-xr-x104/CH9/EX9.6/9_6.sce12
-rwxr-xr-x104/CH9/EX9.7/9_7.jpegbin0 -> 43631 bytes
-rwxr-xr-x104/CH9/EX9.7/9_7.sce11
-rwxr-xr-x104/CH9/EX9.8/9_8.sce9
-rwxr-xr-x104/CH9/EX9.8/9_8a.jpegbin0 -> 48791 bytes
-rwxr-xr-x104/CH9/EX9.8/9_8b.jpegbin0 -> 55563 bytes
-rwxr-xr-x104/CH9/EX9.9/9_9.sce9
-rwxr-xr-x104/CH9/EX9.9/9_9a.jpegbin0 -> 44726 bytes
-rwxr-xr-x104/CH9/EX9.9/9_9b.jpegbin0 -> 43777 bytes
133 files changed, 1418 insertions, 0 deletions
diff --git a/104/CH2/EX2.1/2_1.sce b/104/CH2/EX2.1/2_1.sce
new file mode 100755
index 000000000..731295016
--- /dev/null
+++ b/104/CH2/EX2.1/2_1.sce
@@ -0,0 +1,4 @@
+//laplace transform of unit function
+syms t s
+y=laplace('1',t,s)
+disp(y,"F(s)=") \ No newline at end of file
diff --git a/104/CH2/EX2.10/2_10.sce b/104/CH2/EX2.10/2_10.sce
new file mode 100755
index 000000000..5b4194a66
--- /dev/null
+++ b/104/CH2/EX2.10/2_10.sce
@@ -0,0 +1,4 @@
+//determinant of the matrix
+A=[1 2;3 4]
+d=det(A)
+disp(d) \ No newline at end of file
diff --git a/104/CH2/EX2.12/2_12.sce b/104/CH2/EX2.12/2_12.sce
new file mode 100755
index 000000000..34b4ad49e
--- /dev/null
+++ b/104/CH2/EX2.12/2_12.sce
@@ -0,0 +1,4 @@
+//transpose of a matrix
+A=[3 2 1;0 -1 5]
+t=A'
+disp(t) \ No newline at end of file
diff --git a/104/CH2/EX2.13/2_13.sce b/104/CH2/EX2.13/2_13.sce
new file mode 100755
index 000000000..1fd3d6ab3
--- /dev/null
+++ b/104/CH2/EX2.13/2_13.sce
@@ -0,0 +1,5 @@
+//adjoint of a matrix
+A=[1 2;3 4]
+i=inv(A)
+a=i.*det(A)
+disp(a) \ No newline at end of file
diff --git a/104/CH2/EX2.14/2_14.sce b/104/CH2/EX2.14/2_14.sce
new file mode 100755
index 000000000..0b7693255
--- /dev/null
+++ b/104/CH2/EX2.14/2_14.sce
@@ -0,0 +1,18 @@
+//equality of matrices
+A=[1 2;3 4]
+B=[1 2;3 4]
+x=1;
+for i=1:2
+ for j=1:2
+ if A(i,j)~=B(i,j) then
+ x=0
+ end
+ end
+end
+if x==1 then
+ disp("matrices are equal")
+else
+ disp("matrices are not equal")
+end
+
+ \ No newline at end of file
diff --git a/104/CH2/EX2.15/2_15.sce b/104/CH2/EX2.15/2_15.sce
new file mode 100755
index 000000000..eb0bcd531
--- /dev/null
+++ b/104/CH2/EX2.15/2_15.sce
@@ -0,0 +1,5 @@
+//addition of matrices
+A=[3 2;-1 4;0 -1]
+B=[0 3;-1 2;1 0]
+s=A+B
+disp(s) \ No newline at end of file
diff --git a/104/CH2/EX2.16/2_16.sce b/104/CH2/EX2.16/2_16.sce
new file mode 100755
index 000000000..e9cc75a50
--- /dev/null
+++ b/104/CH2/EX2.16/2_16.sce
@@ -0,0 +1,15 @@
+//conformablility for multiplication of matrices
+A=[1 2 3;4 5 6]
+B=[1 2 3]
+C=size(A)
+D=size(B)
+if C(1,2)==D(1,1) then
+ disp("matrices are conformable for multiplication AB")
+else
+ disp("matrices are not conformable for multiplication AB")
+end
+if D(1,2)==C(1,1) then
+ disp("matrices are conformable for multiplication BA")
+else
+ disp("matrices are not conformable for multiplication BA")
+end
diff --git a/104/CH2/EX2.17/2_17.sce b/104/CH2/EX2.17/2_17.sce
new file mode 100755
index 000000000..581de2719
--- /dev/null
+++ b/104/CH2/EX2.17/2_17.sce
@@ -0,0 +1,17 @@
+//multiplication of matrices
+A=[3 -1;0 1;2 0]
+B=[1 0 -1;2 1 0]
+C=size(A)
+D=size(B)
+if C(1,2)==D(1,1) then
+ AB=A*B
+ disp(AB,"AB=")
+else
+ disp("matrices are not conformable for multiplication AB")
+end
+if D(1,2)==C(1,1) then
+ BA=B*A
+ disp(BA,"BA=")
+else
+ disp("matrices are not conformable for multiplication BA")
+end
diff --git a/104/CH2/EX2.18/2_18.sce b/104/CH2/EX2.18/2_18.sce
new file mode 100755
index 000000000..46dccf01b
--- /dev/null
+++ b/104/CH2/EX2.18/2_18.sce
@@ -0,0 +1,9 @@
+//inverse of 2 X 2 matrix
+A=[1 2;3 4]
+d=det(A)
+if det(A)~=0 then
+ i=inv(A)
+ disp(i,"A^-1=")
+else
+ disp("inverse of a singular matrix doesnt exist")
+end \ No newline at end of file
diff --git a/104/CH2/EX2.19/2_19.sce b/104/CH2/EX2.19/2_19.sce
new file mode 100755
index 000000000..8688ff81e
--- /dev/null
+++ b/104/CH2/EX2.19/2_19.sce
@@ -0,0 +1,9 @@
+//inverse of a 3 X 3 matrix
+A=[1 2 3;4 5 6;7 8 9]
+d=det(A)
+if det(A)~=0 then
+ i=inv(A)
+ disp(i,"A^-1=")
+else
+ disp("inverse of a singular matrix doesnt exist")
+end \ No newline at end of file
diff --git a/104/CH2/EX2.2/2_2.sci b/104/CH2/EX2.2/2_2.sci
new file mode 100755
index 000000000..431e3dd8c
--- /dev/null
+++ b/104/CH2/EX2.2/2_2.sci
@@ -0,0 +1,4 @@
+//laplace transform of exponential function
+ syms t s;
+ y=laplace('%e^(-1*t)',t,s);
+ disp(y,"ans=")
diff --git a/104/CH2/EX2.20/2_20.sce b/104/CH2/EX2.20/2_20.sce
new file mode 100755
index 000000000..19237ce2c
--- /dev/null
+++ b/104/CH2/EX2.20/2_20.sce
@@ -0,0 +1,13 @@
+//rank of a matrix
+A=[0 1;0 1]
+[E,Q,Z ,stair ,rk1]=ereduc(A,1.d-15)
+disp(rk1,"rank of A=")
+B=[0 5 1 4;3 0 3 2]
+[E,Q,Z ,stair ,rk2]=ereduc(B,1.d-15)
+disp(rk2,"rank of B=")
+C=[3 9 2;1 3 0;2 6 1]
+[E,Q,Z ,stair ,rk3]=ereduc(C,1.d-15)
+disp(rk3,"rank of C=")
+D=[3 0 0;1 2 0;0 0 1]
+[E,Q,Z ,stair ,rk4]=ereduc(D,1.d-15)
+disp(rk4,"rank of D=") \ No newline at end of file
diff --git a/104/CH2/EX2.21/2_21.sce b/104/CH2/EX2.21/2_21.sce
new file mode 100755
index 000000000..32165c157
--- /dev/null
+++ b/104/CH2/EX2.21/2_21.sce
@@ -0,0 +1,6 @@
+//z transform
+syms n z;
+a=1;
+x =%e^-(a*n);
+X = symsum(x*(z^(-n)),n,0,%inf)
+disp(X,"ans=") \ No newline at end of file
diff --git a/104/CH2/EX2.22/2_22.sce b/104/CH2/EX2.22/2_22.sce
new file mode 100755
index 000000000..c6c8177c1
--- /dev/null
+++ b/104/CH2/EX2.22/2_22.sce
@@ -0,0 +1,5 @@
+//z transform
+syms n z;
+x =1;
+X = symsum(x*(z^(-n)),n,0,%inf)
+disp(X,"ans=") \ No newline at end of file
diff --git a/104/CH2/EX2.23/2_23.sce b/104/CH2/EX2.23/2_23.sce
new file mode 100755
index 000000000..744e49876
--- /dev/null
+++ b/104/CH2/EX2.23/2_23.sce
@@ -0,0 +1,8 @@
+//z transform
+//t=k*T
+syms k z;
+a=1;
+T=1;
+x =%e^-(a*k*T);
+X = symsum(x*(z^(-k)),k,0,%inf)
+disp(X,"ans=") \ No newline at end of file
diff --git a/104/CH2/EX2.25/2_25.sce b/104/CH2/EX2.25/2_25.sce
new file mode 100755
index 000000000..34c172423
--- /dev/null
+++ b/104/CH2/EX2.25/2_25.sce
@@ -0,0 +1,6 @@
+//final value thereom
+z=%z
+sys=syslin('c',0.792*z^2/((z-1)*(z^2-0.416*z+0.208)))
+syms z
+l=limit(sys*(1-z^-1),z,1)
+disp(l,"limit as k approaches infinity=") \ No newline at end of file
diff --git a/104/CH2/EX2.3/2_3.sci b/104/CH2/EX2.3/2_3.sci
new file mode 100755
index 000000000..fb8e908d3
--- /dev/null
+++ b/104/CH2/EX2.3/2_3.sci
@@ -0,0 +1,9 @@
+//final value thereom
+syms s
+d=poly([0 2 1 1],'s','coeff')
+n=poly([5],'s','coeff')
+f=n/d;
+disp(f,"F(s)=")
+x=s*f;
+y=limit(x,s,0); // final value theorem
+disp(y,"f(inf)=")
diff --git a/104/CH2/EX2.4/2_4.sce b/104/CH2/EX2.4/2_4.sce
new file mode 100755
index 000000000..31017be17
--- /dev/null
+++ b/104/CH2/EX2.4/2_4.sce
@@ -0,0 +1,7 @@
+//inverse laplace
+syms s
+F=1/(s^2+1) //w=1
+disp(F,"F(s)=")
+f=ilaplace(F)
+disp(f,"f(t)=")
+printf("since s*F(s) has two poles on imaginary axis of s plane,final value thereom cannot be applied in this case") \ No newline at end of file
diff --git a/104/CH2/EX2.5/2_5.sci b/104/CH2/EX2.5/2_5.sci
new file mode 100755
index 000000000..f103adeaf
--- /dev/null
+++ b/104/CH2/EX2.5/2_5.sci
@@ -0,0 +1,7 @@
+//partial fractions
+n=poly([3 5],'s','coeff')
+d=poly([6 11 6 1],'s','coeff')
+f=n/d;
+disp(f,"F(s)=")
+pf=pfss(f)
+disp(pf) \ No newline at end of file
diff --git a/104/CH2/EX2.7/2_7.sce b/104/CH2/EX2.7/2_7.sce
new file mode 100755
index 000000000..1e9dc1a1b
--- /dev/null
+++ b/104/CH2/EX2.7/2_7.sce
@@ -0,0 +1,11 @@
+//inverse laplace transform
+n=poly([4],'s','coeff')
+d=poly([4 8 1],'s','coeff') //w=2,damping ratio=2
+G=n/d;
+disp(G,"G(s)=")
+pf=pfss(G)
+disp(pf,"G(s)=")
+syms s t
+g1=ilaplace(pf(1),s,t)
+g2=ilaplace(pf(2),s,t)
+disp(g1+g2,"g(t)=")
diff --git a/104/CH2/EX2.8/2_8.sce b/104/CH2/EX2.8/2_8.sce
new file mode 100755
index 000000000..dfcdab466
--- /dev/null
+++ b/104/CH2/EX2.8/2_8.sce
@@ -0,0 +1,14 @@
+//inverse laplace transform
+n=poly([5 -1 -1],'s','coeff')
+d=poly([0 -1 -2],'s','roots')
+Y=n/d;
+disp(Y,"Y(s)=")
+pf=pfss(Y)
+disp(pf,"Y(s)=")
+syms s t
+y1=ilaplace(pf(1),s,t)
+y2=ilaplace(pf(2),s,t)
+y3=ilaplace(pf(3),s,t)
+disp(y1+y2+y3,"g(t)=")
+l=limit(Y*s,s,0)
+disp(l,"limit of y(t) as t tends to infinity=") \ No newline at end of file
diff --git a/104/CH2/EX2.9/2_9.sce b/104/CH2/EX2.9/2_9.sce
new file mode 100755
index 000000000..863da1f08
--- /dev/null
+++ b/104/CH2/EX2.9/2_9.sce
@@ -0,0 +1,12 @@
+//inverse laplace transform
+n=poly([1000],'s','coeff')
+d=poly([0 1000 34.5 1],'s','coeff')
+Y=n/d;
+disp(Y,"Y(s)=")
+pf=pfss(Y)
+disp(pf,"Y(s)=")
+syms s t
+y1=ilaplace(pf(1),s,t)
+y2=ilaplace(pf(2),s,t)
+y3=ilaplace(pf(3),s,t)
+disp(y1+y2+y3,"y(t)=")
diff --git a/104/CH3/EX3.1/3_1.sce b/104/CH3/EX3.1/3_1.sce
new file mode 100755
index 000000000..41057abf6
--- /dev/null
+++ b/104/CH3/EX3.1/3_1.sce
@@ -0,0 +1,11 @@
+//closed loop transfer function matrix
+s=%s
+G=[1/(s+1) -1/s;2 1/(s+2)]
+H=[1 0;0 1]
+GH=G*H
+disp(GH,"G(s)H(s)=")
+I=[1 0;0 1]
+x=I+GH
+y=inv(x)
+M=y*G
+disp(M,"M(s)=") \ No newline at end of file
diff --git a/104/CH3/EX3.10/3_10.sce b/104/CH3/EX3.10/3_10.sce
new file mode 100755
index 000000000..20d533b75
--- /dev/null
+++ b/104/CH3/EX3.10/3_10.sce
@@ -0,0 +1,29 @@
+//applying gain formula to state diagram 3-22
+//r(t),x1(t) and x2(t) are input nodes
+//y(t) is output node
+//superposition principle holds good
+
+syms s r x1 x2
+//r(t) as input node and y(t) as output node
+M1=0
+delta1=1
+delta=1
+a=(M1*delta1)/delta
+y1=a*r
+disp(y1,"y1(t)=")
+
+//x1(t) as input node and y(t) as output node
+M1=1
+delta1=1
+b=(M1*delta1)/delta
+y2=b*x1
+disp(y2,"y2(t)=")
+
+//x2(t) as input node and y(t) as output node
+M1=0
+delta1=1
+c=(M1*delta1)/delta
+y3=c*x2
+disp(y3,"y3(t)=")
+
+disp(y1+y2+y3,"y(t)=")
diff --git a/104/CH3/EX3.11/3_11.sce b/104/CH3/EX3.11/3_11.sce
new file mode 100755
index 000000000..9725c3597
--- /dev/null
+++ b/104/CH3/EX3.11/3_11.sce
@@ -0,0 +1,38 @@
+//applying gain formula to state diagram in figure 3-23(b)
+//r(t),x1(t),x2(t) and x3(t) are input nodes
+//y(t) is output node
+//superposition principle holds good
+
+syms s a0 a1 a2 a3 r x1 x2 x3
+//r(t) as input node and y(t) as output node
+M1=0
+delta1=1
+L11=-a0*a3
+delta=1-(L11)
+a=(M1*delta1)/delta
+y1=a*r
+disp(y1,"y1(t)=")
+
+//x1(t) as input node and y(t) as output node
+M1=1
+delta1=1
+b=(M1*delta1)/delta
+y2=b*x1
+disp(y2,"y2(t)=")
+
+//x2(t) as input node and y(t) as output node
+M1=0
+delta1=1
+c=(M1*delta1)/delta
+y3=c*x2
+disp(y3,"y3(t)=")
+
+//x3(t) as input node and y(t) as output node
+M1=a0
+delta1=1
+d=(M1*delta1)/delta
+y4=d*x3
+disp(y4,"y4(t)=")
+
+disp(y1+y2+y3+y4,"y(t)=")
+
diff --git a/104/CH3/EX3.3/3_3.sce b/104/CH3/EX3.3/3_3.sce
new file mode 100755
index 000000000..ef6ee3e5d
--- /dev/null
+++ b/104/CH3/EX3.3/3_3.sce
@@ -0,0 +1,8 @@
+//mason's gain formula applied to SFG in figure 3-15
+syms G H
+M1=G //as seen from SFG there is only one forward path
+L11=-G*H //only one loop and no non touching loops
+delta=1-L11
+delta1=1
+Y=M1*delta1/delta
+disp(Y,"Y(s)/R(s)=") \ No newline at end of file
diff --git a/104/CH3/EX3.4/3_4.sce b/104/CH3/EX3.4/3_4.sce
new file mode 100755
index 000000000..eba49d595
--- /dev/null
+++ b/104/CH3/EX3.4/3_4.sce
@@ -0,0 +1,22 @@
+//masons gain formula applied to SFG in figure 3-8(d)
+//two forward paths
+syms a12 a23 a24 a25 a32 a34 a43 a44 a45
+M1=a12*a23*a34*a45
+M2=a12*a25
+//four loops
+L11=a23*a32
+L21=a34*a43
+L31=a24*a32*a43
+L41=a44
+//one pair of non touching loops
+L12=a23*a32*a44
+delta=1-(L11+L21+L31+L41)+(L12)
+delta1=1
+delta2=1-(L21+L41)
+x=(M1*delta1+M2*delta2)/delta
+disp(x,"y5/y1=")
+//if y2 is output node
+M1=a12
+delta1=1-(L21+L41)
+y=(M1*delta1)/delta
+disp(y,"y2/y1=") \ No newline at end of file
diff --git a/104/CH3/EX3.5/3_5.sce b/104/CH3/EX3.5/3_5.sce
new file mode 100755
index 000000000..5dfc067ad
--- /dev/null
+++ b/104/CH3/EX3.5/3_5.sce
@@ -0,0 +1,29 @@
+//mason's gain formula applied to SFG in figure 3-16
+//y2 as output node
+syms G1 G2 G3 G4 G5 H1 H2 H3 H4
+M1=1
+L11=-G1*H1
+L21=-G3*H2
+L31=G1*G2*G3*-H3
+L41=-H4
+L12=G1*H1*G3*H2
+L22=G1*H1*H4
+L32=G3*H2*H4
+L42=-G1*G2*G3*H3*H4
+L13=-G1*H1*G3*H2*H4
+delta=1-(L11+L21+L31+L41)+(L12+L22+L32+L42)+L13
+delta1=1-(L21+L41)+(L32)
+x=M1*delta1/delta
+disp(x,"y2/y1=")
+//y4 as output node
+M1=G1*G2
+delta1=1-(L41)
+y=M1*delta1/delta
+disp(y,"y4/y1=")
+//y6 or y7 as output node
+M1=G1*G2*G3*G4
+M2=G1*G5
+delta1=1
+delta2=1-(L21)
+z=(M1*delta1+M2*delta2)/delta
+disp(z,"y6/y1=y7/y1=") \ No newline at end of file
diff --git a/104/CH3/EX3.6/3_6.sce b/104/CH3/EX3.6/3_6.sce
new file mode 100755
index 000000000..21eaff84e
--- /dev/null
+++ b/104/CH3/EX3.6/3_6.sce
@@ -0,0 +1,26 @@
+//mason's gain formula applied to SFG in figure 3-16
+//y2 as output node
+syms G1 G2 G3 G4 G5 H1 H2 H3 H4
+M1=1
+L11=-G1*H1
+L21=-G3*H2
+L31=G1*G2*G3*-H3
+L41=-H4
+L12=G1*H1*G3*H2
+L22=G1*H1*H4
+L32=G3*H2*H4
+L42=-G1*G2*G3*H3*H4
+L13=-G1*H1*G3*H2*H4
+delta=1-(L11+L21+L31+L41)+(L12+L22+L32+L42)+L13
+delta1=1-(L21+L41)+(L32)
+x=M1*delta1/delta
+disp(x,"y2/y1=")
+//y7 as output node
+M1=G1*G2*G3*G4
+M2=G1*G5
+delta1=1
+delta2=1-(L21)
+y=(M1*delta1+M2*delta2)/delta
+disp(y,"y7/y1=")
+z=y/x // (y7/y2)=(y7/y1)/(y2/y1)
+disp(z,"y7/y2=") \ No newline at end of file
diff --git a/104/CH3/EX3.7/3_7.sce b/104/CH3/EX3.7/3_7.sce
new file mode 100755
index 000000000..3a2ab3ee4
--- /dev/null
+++ b/104/CH3/EX3.7/3_7.sce
@@ -0,0 +1,21 @@
+//block diagram is converted to SFG
+//mason's gain formula applied to SFG in figure 3-17
+//E as output node
+syms G1 G2 G3 G4 H1 H2
+M1=1
+L11=-G1*G2*H1
+L21=-G2*G3*H2
+L31=-G1*G2*G3
+L41=-G1*G4
+L51=-G4*H2
+delta=1-(L11+L21+L31+L41+L51)
+delta1=1-(L21+L51+L11)
+x=M1*delta1/delta
+disp(x,"E(s)/R(s)=")
+//Y as output node
+M1=G1*G2*G3
+M2=G1*G4
+delta1=1
+delta2=1
+y=(M1*delta1+M2*delta2)/delta
+disp(y,"Y(s)/R(s)=") \ No newline at end of file
diff --git a/104/CH3/EX3.9/3_9.sce b/104/CH3/EX3.9/3_9.sce
new file mode 100755
index 000000000..c36cc08d4
--- /dev/null
+++ b/104/CH3/EX3.9/3_9.sce
@@ -0,0 +1,11 @@
+//finding transfer function from state diagram by applying gain formula
+//state diagram is shown in fifure 3-21
+syms s
+//initial conditions are sset to zero
+M1=s^-1*s^-1
+L11=-3*s^-1
+L21=-2*s^-1*s^-1
+delta=1-(L11+L21)
+delta1=1
+x=M1*delta1/delta
+disp(x,"Y(s)/R(s)=") \ No newline at end of file
diff --git a/104/CH4/EX4.1/4_1.sce b/104/CH4/EX4.1/4_1.sce
new file mode 100755
index 000000000..1c1c5589d
--- /dev/null
+++ b/104/CH4/EX4.1/4_1.sce
@@ -0,0 +1,17 @@
+//transfer function of the system
+//from state diagram in 4-1(b)
+//initial conditions are taken as zero
+//considering voltage across capacitor as output
+syms R L C
+s=%s
+M1=(1/L)*(s^-1)*(1/C)*(s^-1)
+L11=-(s^-1)*(R/L)
+delta=1-(L11)
+delta1=1
+x=M1*delta1/delta
+disp(x,"Ec(s)/E(s)=")
+//considering current in the circuit as output
+M1=(1/L)*(s^-1)
+delta1=1
+y=M1*delta1/delta
+disp(y,"I(s)/E(s)=") \ No newline at end of file
diff --git a/104/CH4/EX4.2/4_2.sce b/104/CH4/EX4.2/4_2.sce
new file mode 100755
index 000000000..b995d1ea0
--- /dev/null
+++ b/104/CH4/EX4.2/4_2.sce
@@ -0,0 +1,28 @@
+//transfer function of electric network
+//from state diagram in 4-2(b)
+//inital conditions are taken as zero
+//considering i1 as output
+syms R1 R2 L1 L2 C
+s=%s
+M1=(1/L1)*(s^-1)
+L11=-(s^-1)*(R1/L1)
+L21=-(s^-1)*(1/C)*(s^-1)*(1/L1)
+L31=-(s^-1)*(1/L2)*(s^-1)*(1/C)
+L41=-(s^-1)*(R2/L2)
+L12=L11*L31
+L22=L11*L41
+L32=L21*L41
+delta=1-(L11+L21+L31+L41)+(L12+L22+L32)
+delta1=1-(L31+L41)
+x=M1*delta1/delta
+disp(x,"I1(s)/E(s)=")
+//considering i2 as output
+M1=(1/L1)*(s^-1)*(1/C)*(s^-1)*(1/L2)*(s^-1)
+delta1=1
+y=M1*delta1/delta
+disp(y,"I2(s)/E(s)=")
+//considering voltage across capacitor as output
+M1=(1/L1)*(s^-1)*(1/C)*(s^-1)
+delta1=1-L41
+z=M1*delta1/delta
+disp(z,"Ec(s)/E(s)=")
diff --git a/104/CH4/EX4.3/4_3.sce b/104/CH4/EX4.3/4_3.sce
new file mode 100755
index 000000000..d9a37e6ef
--- /dev/null
+++ b/104/CH4/EX4.3/4_3.sce
@@ -0,0 +1,13 @@
+//gear trains
+printf("Given \n inertia(J2)=0.05oz-in.-sec^2 \n frictional torque(T2)=2oz-in. \n N1/N2(r)=1/5")
+J2=0.05;
+disp(J2,"J2=")
+T2=2;
+disp(T2,"T2=")
+r=1/5
+disp(r,"N1/N2=")
+printf("J1=(N1/N2)^2*J2 \n T1=(N1/N2)*T2")
+J1=(r)^2*J2;
+disp(J1,"The reflected inertia on side of N1=")
+T1=(r)*T2
+disp(T1,"The reflected coulumb friction is=") \ No newline at end of file
diff --git a/104/CH4/EX4.4/4_4.sce b/104/CH4/EX4.4/4_4.sce
new file mode 100755
index 000000000..ccc63f44d
--- /dev/null
+++ b/104/CH4/EX4.4/4_4.sce
@@ -0,0 +1,12 @@
+//mass-spring system
+//free body diagram and state diagram are drawn as shown in figure 4-18(b) and 4-18(c)
+//applying gain formula to state diagram
+syms K M B
+s=%s
+M1=(1/M)*(s^-2)
+L11=-(B/M)*(s^-1)
+L21=-(K/M)*(s^-2)
+delta=1-(L11+L21)
+delta1=1
+x=M1*delta1/delta
+disp(x,"Y(s)/F(s)=") \ No newline at end of file
diff --git a/104/CH4/EX4.5/4_5.sce b/104/CH4/EX4.5/4_5.sce
new file mode 100755
index 000000000..62210081f
--- /dev/null
+++ b/104/CH4/EX4.5/4_5.sce
@@ -0,0 +1,19 @@
+//mass-spring system
+//free body diagram and state diagram are drawn as shown in figure 4-19(b) and 4-19(c)
+//applying gain formula to state diagram
+syms K M B
+s=%s
+//considering y1 as output
+M1=(1/M)
+L11=-(B/M)*(s^-1)
+L21=-(K/M)*(s^-2)
+L31=(K/M)*(s^-2)
+delta=1-(L11+L21+L31)
+delta1=1-(L11+L21)
+x=M1*delta1/delta
+disp(x,"Y1(s)/F(s)=")
+//considering y2 as output
+M1=(1/K)*(K/M)*(s^-2)
+delta1=1
+y=M1*delta1/delta
+disp(y,"Y2(s)/F(s)=")
diff --git a/104/CH4/EX4.9/4_9.sce b/104/CH4/EX4.9/4_9.sce
new file mode 100755
index 000000000..23b72d3a4
--- /dev/null
+++ b/104/CH4/EX4.9/4_9.sce
@@ -0,0 +1,16 @@
+//incremental encoder
+//2 sinusoidal signals
+//generates four zero crossings per cycle(zc)
+//printwheel has 96 characters on its pheriphery(ch) and encoder has 480 cycles(cyc)
+zc=4
+ch=96
+cyc=480
+zcpr=cyc*zc //zero crossings per revolution
+disp(zcpr,"zero_crossings_per_revolution=")
+zcpc=zcpr/ch //zreo crossings per character
+disp(zcpc,"zero_crossings_per_character=")
+//500khz clock is used
+//500 pulses/zero crossing
+shaft_speed=500000/500
+x=shaft_speed/zcpr
+disp(x,"ans=") //in rev per sec
diff --git a/104/CH5/EX5.1/5_1.sce b/104/CH5/EX5.1/5_1.sce
new file mode 100755
index 000000000..c1e789448
--- /dev/null
+++ b/104/CH5/EX5.1/5_1.sce
@@ -0,0 +1,22 @@
+//state transition equation
+//as seen from state equation A=[0 1;-2 -3] B=[0;1] E=0;
+A=[0 1;-2 -3]
+B=[0;1]
+s=poly(0,'s');
+[Row Col]=size(A) //Size of a matrix
+m=s*eye(Row,Col)-A //sI-A
+n=det(m) //To Find The Determinant of si-A
+p=inv(m) ; // To Find The Inverse Of sI-A
+U=1/s
+p=p*U
+syms t s;
+disp(p,"phi(s)=") //Resolvent Matrix
+for i=1:Row
+for j=1:Col
+//Taking Inverse Laplace of each element of Matrix phi(s)
+q(i,j)=ilaplace(p(i,j),s,t);
+end;
+end;
+disp(q,"phi(t)=")//State Transition Matrix
+y=q*B; //x(t)=phi(t)*x(0)
+disp(y,"Solution To The given eq.=")
diff --git a/104/CH5/EX5.12/5_12.sce b/104/CH5/EX5.12/5_12.sce
new file mode 100755
index 000000000..66458ac0f
--- /dev/null
+++ b/104/CH5/EX5.12/5_12.sce
@@ -0,0 +1,22 @@
+//OCF form
+s=%s
+A=[1 2 1;0 1 3;1 1 1]
+B=[1;0;1]
+[row,col]=size(A)
+c=s*eye(row,col)-A
+x=det(c)
+r=coeff(x)
+M=[r(1,2) r(1,3) 1;r(1,3) 1 0;1 0 0]
+S=[B A*B A^2*B]
+disp(S,"controllability matrix=")
+if (det(S)==0) then
+ printf("system cannot be transformed into ccf form")
+else
+ printf("system can be transformed into ccf form")
+end
+P=S*M
+disp(P,"P=")
+Accf=inv(P)*A*P
+Bccf=inv(P)*B
+disp(Accf,"Accf=")
+disp(Bccf,"Bccf=") \ No newline at end of file
diff --git a/104/CH5/EX5.13/5_13.sce b/104/CH5/EX5.13/5_13.sce
new file mode 100755
index 000000000..02f1f03b0
--- /dev/null
+++ b/104/CH5/EX5.13/5_13.sce
@@ -0,0 +1,24 @@
+//OCF form
+A=[1 2 1;0 1 3;1 1 1]
+B=[1;0;1]
+C=[1 1 0]
+D=0
+[row,col]=size(A)
+c=s*eye(row,col)-A
+x=det(c)
+r=coeff(x)
+M=[r(1,2) r(1,3) 1;r(1,3) 1 0;1 0 0]
+V=[C;C*A;C*A^2]
+disp(V,"observability matrix=")
+if (det(V)==0) then
+ printf("system cannot be transformed into ocf form")
+else
+ printf("system can be transformed into ocf form")
+end
+Q=inv(M*V)
+disp(Q,"Q=")
+Aocf=inv(Q)*A*Q
+Cocf=C*Q
+B=inv(Q)*B
+disp(Aocf,"Aocf=")
+disp(Cocf,"Cocf=") \ No newline at end of file
diff --git a/104/CH5/EX5.14/5_14.sce b/104/CH5/EX5.14/5_14.sce
new file mode 100755
index 000000000..90d768aa7
--- /dev/null
+++ b/104/CH5/EX5.14/5_14.sce
@@ -0,0 +1,6 @@
+//DCF form
+A=[0 1 0;0 0 1;-6 -11 -6]
+x=spec(A)
+T=[1 1 1;x(1,1) x(2,1) x(3,1);(x(1,1))^2 (x(2,1))^2 (x(3,1))^2]
+Adcf=inv(T)*A*T
+disp(Adcf,"Adcf=") \ No newline at end of file
diff --git a/104/CH5/EX5.18/5_18.sce b/104/CH5/EX5.18/5_18.sce
new file mode 100755
index 000000000..927ccf898
--- /dev/null
+++ b/104/CH5/EX5.18/5_18.sce
@@ -0,0 +1,9 @@
+//system with identical eigen values
+A=[1 0;0 1] //lamda1=1
+B=[2;3] //b11=2 b21=3
+S=[B A*B]
+if det(S)==0 then
+ printf("system is uncontrollable")
+else
+ printf("system is contollable")
+ end \ No newline at end of file
diff --git a/104/CH5/EX5.19/5_19.sce b/104/CH5/EX5.19/5_19.sce
new file mode 100755
index 000000000..2c18ebb8b
--- /dev/null
+++ b/104/CH5/EX5.19/5_19.sce
@@ -0,0 +1,9 @@
+//controllability
+A=[-2 1;0 -1]
+B=[1;0]
+S=[B A*B]
+if det(S)==0 then
+ printf("system is uncontrollable")
+else
+ printf("system is contollable")
+ end \ No newline at end of file
diff --git a/104/CH5/EX5.20/5_20.sce b/104/CH5/EX5.20/5_20.sce
new file mode 100755
index 000000000..179a185bb
--- /dev/null
+++ b/104/CH5/EX5.20/5_20.sce
@@ -0,0 +1,9 @@
+//controllability
+A=[1 2 -1;0 1 0;1 -4 3]
+B=[0;0;1]
+S=[B A*B A^2*B]
+if det(S)==0 then
+ printf("system is uncontrollable")
+else
+ printf("system is contollable")
+ end \ No newline at end of file
diff --git a/104/CH5/EX5.21/5_21.sce b/104/CH5/EX5.21/5_21.sce
new file mode 100755
index 000000000..f109bb2b8
--- /dev/null
+++ b/104/CH5/EX5.21/5_21.sce
@@ -0,0 +1,10 @@
+//observability
+A=[-2 0;0 -1]
+B=[3;1]
+C=[1 0]
+V=[C;C*A]
+if det(V)==0 then
+ printf("system is unobservable")
+else
+ printf("system is observable")
+ end \ No newline at end of file
diff --git a/104/CH5/EX5.7/5_7.sce b/104/CH5/EX5.7/5_7.sce
new file mode 100755
index 000000000..18106c0f1
--- /dev/null
+++ b/104/CH5/EX5.7/5_7.sce
@@ -0,0 +1,5 @@
+//characteristic equation from transfer function
+s=%s
+sys=syslin('c',1/(s^3+5*s^2+s+2))
+c=denom(sys)
+disp(c,"characteristic equation=") \ No newline at end of file
diff --git a/104/CH5/EX5.8/5_8.sce b/104/CH5/EX5.8/5_8.sce
new file mode 100755
index 000000000..9ff9bb379
--- /dev/null
+++ b/104/CH5/EX5.8/5_8.sce
@@ -0,0 +1,9 @@
+//characteristic equation from state equation
+A=[0 1 0;0 0 1;-2 -1 -5]
+B=[0;0;1]
+C=[1 0 0]
+D=[0]
+[Row Col]=size(A)
+Gr=C*inv(s*eye(Row,Col)-A)*B+D
+c=denom(Gr)
+disp(c,"characteristic equation=") \ No newline at end of file
diff --git a/104/CH5/EX5.9/5_9.sce b/104/CH5/EX5.9/5_9.sce
new file mode 100755
index 000000000..369b6ae42
--- /dev/null
+++ b/104/CH5/EX5.9/5_9.sce
@@ -0,0 +1,4 @@
+//eigen values
+A=[0 1 0;0 0 1;-2 -1 -5]
+e=spec(A) //spec gives eigen values of matrix
+disp(e,"eigen values=") \ No newline at end of file
diff --git a/104/CH6/EX6.1/6_1.sce b/104/CH6/EX6.1/6_1.sce
new file mode 100755
index 000000000..5c99543b3
--- /dev/null
+++ b/104/CH6/EX6.1/6_1.sce
@@ -0,0 +1,17 @@
+//stability of open loop systems
+s=%s
+sys1=syslin('c',20/((s+1)*(s+2)*(s+3)))
+disp(sys1,"M(s)=")
+printf("sys1 is stable as there are no ploes or zeroes in RHP")
+sys2=syslin('c',20*(s+1)/((s-1)*(s^2+2*s+2)))
+disp(sys2,"M(s)=")
+printf("sys2 is unstable due to pole at s=1")
+sys3=syslin('c',20*(s-1)/((s+2)*(s^2+4)))
+disp(sys3,"M(s)=")
+printf("sys3 is marginally stable or marginally unstable due to s=j2 and s=-j2")
+sys4=syslin('c',10/((s+10)*(s^2+4)^2))
+disp(sys4,"M(s)=")
+printf("sys4 is unstable due to multiple order pole at s=j2 and s=-j2")
+sys5=syslin('c',10/(s^4+30*s^3+s^2+10*s))
+disp(sys5,"M(s)=")
+printf("sys5 is stable if pole at s=0 is placed intentionally") \ No newline at end of file
diff --git a/104/CH6/EX6.10/6_10.sce b/104/CH6/EX6.10/6_10.sce
new file mode 100755
index 000000000..d0e494540
--- /dev/null
+++ b/104/CH6/EX6.10/6_10.sce
@@ -0,0 +1,19 @@
+//bilinear transformation method
+s=%s
+syms K
+//p=z^3+z^2+z+K
+//substituting z=(1+r)/(1-r) we get
+m=(1-K)*s^3+(1+3*K)*s^2+3*(1-K)*s+3+K
+cof_a_0 = coeffs(m,'s',0);
+cof_a_1 = coeffs(m,'s',1);
+cof_a_2 = coeffs(m,'s',2);
+cof_a_3 = coeffs(m,'s',3);
+
+r=[cof_a_0 cof_a_1 cof_a_2 cof_a_3]
+
+n=length(r);
+routh=[r([4,2]);r([3,1])];
+routh=[routh;-det(routh)/routh(2,1),0];
+t=routh(2:3,1:2); //extracting the square sub block of routh matrix
+routh=[routh;-det(t)/t(2,1),0]
+disp(routh,"rouths tabulation=") \ No newline at end of file
diff --git a/104/CH6/EX6.2/6_2.sce b/104/CH6/EX6.2/6_2.sce
new file mode 100755
index 000000000..c38b2d71e
--- /dev/null
+++ b/104/CH6/EX6.2/6_2.sce
@@ -0,0 +1,18 @@
+//rouths tabulations to determine stability
+s=%s;
+m=s^3-4*s^2+s+6;
+disp(m)
+r=coeff(m)
+n=length(r)
+routh=routh_t(m) //This Function generates the Routh table
+disp(routh,"rouths tabulation=")
+c=0;
+for i=1:n
+if (routh(i,1)<0)
+c=c+1;
+ end
+ end
+ if(c>=1)
+ printf("system is unstable")
+ else printf("system is stable")
+ end
diff --git a/104/CH6/EX6.3/6_3.sce b/104/CH6/EX6.3/6_3.sce
new file mode 100755
index 000000000..b67114f2b
--- /dev/null
+++ b/104/CH6/EX6.3/6_3.sce
@@ -0,0 +1,18 @@
+//rouths tabulations to determine stability
+s=%s;
+m=2*s^4+s^3+3*s^2+5*s+10;
+disp(m)
+r=coeff(m)
+n=length(r)
+routh=routh_t(m) //This Function generates the Routh table
+disp(routh,"rouths tabulation=")
+c=0;
+for i=1:n
+if (routh(i,1)<0)
+c=c+1;
+ end
+ end
+ if(c>=1)
+ printf("system is unstable")
+ else printf("system is stable")
+ end
diff --git a/104/CH6/EX6.4/6_4.sce b/104/CH6/EX6.4/6_4.sce
new file mode 100755
index 000000000..edc0156b7
--- /dev/null
+++ b/104/CH6/EX6.4/6_4.sce
@@ -0,0 +1,9 @@
+//first element in any row of rouths tabulation is zero
+s=%s
+m=s^4+s^3+2*s^2+2*s+3
+r=coeff(m); //Extracts the coefficient of the polynomial
+n=length(r);
+routh=routh_t(m)
+disp(routh,"routh=")
+printf("since there are two sign changes in the rouths tabulation,sys is unstable")
+
diff --git a/104/CH6/EX6.5/6_5.sce b/104/CH6/EX6.5/6_5.sce
new file mode 100755
index 000000000..1ee2e5848
--- /dev/null
+++ b/104/CH6/EX6.5/6_5.sce
@@ -0,0 +1,18 @@
+//elements in one row of rouths tabulations are all zero
+s=%s;
+m=s^5+4*s^4+8*s^3+8*s^2+7*s+4;
+disp(m)
+r=coeff(m)
+n=length(r)
+routh=routh_t(m)
+disp(routh,"rouths tabulations=")
+c=0;
+for i=1:n
+if (routh(i,1)<0)
+c=c+1;
+end
+end
+if(c>=1)
+printf("system is unstable")
+else printf("system is marginally stable")
+end \ No newline at end of file
diff --git a/104/CH6/EX6.6/6_6.sce b/104/CH6/EX6.6/6_6.sce
new file mode 100755
index 000000000..264c1602e
--- /dev/null
+++ b/104/CH6/EX6.6/6_6.sce
@@ -0,0 +1,28 @@
+//determining critical value of K
+s=%s
+syms K
+m=s^3+3408.3*s^2+1204000*s+1.5*10^7*K
+cof_a_0 = coeffs(m,'s',0);
+cof_a_1 = coeffs(m,'s',1);
+cof_a_2 = coeffs(m,'s',2);
+cof_a_3 = coeffs(m,'s',3);
+
+r=[cof_a_0 cof_a_1 cof_a_2 cof_a_3]
+
+n=length(r);
+routh=[r([4,2]);r([3,1])];
+routh=[routh;-det(routh)/routh(2,1),0];
+t=routh(2:3,1:2); //extracting the square sub block of routh matrix
+routh=[routh;-det(t)/t(2,1),0]
+disp(routh,"rouths tabulation=")
+routh(3,1)=0 //For marginaly stable system
+sys=syslin('c',1.5*10^7/(s^3+3408.3*s^2+1204000*s))
+k=kpure(sys)
+disp(k,"K(marginal)=")
+disp('=0',routh(2,1)*(s^2)+1.5*10^7*k,"auxillary equation")
+p=poly([1.5*10^7*k,0,3408.3],'s','coeff')
+s=roots(p)
+disp(s,"Frequency of oscillation(in rad/sec)=")
+
+
+
diff --git a/104/CH6/EX6.7/6_7.sce b/104/CH6/EX6.7/6_7.sce
new file mode 100755
index 000000000..7ccfebc63
--- /dev/null
+++ b/104/CH6/EX6.7/6_7.sce
@@ -0,0 +1,21 @@
+//determining critical value of K
+s=%s
+syms K
+m=s^3+3*K*s^2+(K+2)*s+4
+cof_a_0 = coeffs(m,'s',0);
+cof_a_1 = coeffs(m,'s',1);
+cof_a_2 = coeffs(m,'s',2);
+cof_a_3 = coeffs(m,'s',3);
+
+r=[cof_a_0 cof_a_1 cof_a_2 cof_a_3]
+
+n=length(r);
+routh=[r([4,2]);r([3,1])];
+routh=[routh;-det(routh)/routh(2,1),0];
+t=routh(2:3,1:2); //extracting the square sub block of routh matrix
+routh=[routh;-det(t)/t(2,1),0]
+disp(routh,"rouths tabulation=")
+routh(3,1)=0 //For marginaly stable system
+sys=syslin('c',s*(3*s+1)/(s^3+2*s+4))
+k=kpure(sys)
+disp(k,"K(marginal)=") \ No newline at end of file
diff --git a/104/CH6/EX6.8/6_8.sce b/104/CH6/EX6.8/6_8.sce
new file mode 100755
index 000000000..c6acb5e6a
--- /dev/null
+++ b/104/CH6/EX6.8/6_8.sce
@@ -0,0 +1,14 @@
+//stability of closed loop systems
+z=%z
+sys1=syslin('c',5*z/((z-0.2)*(z-0.8)))
+disp(sys1,"M(z)=")
+printf("sys1 is stable")
+sys2=syslin('c',5*z/((z+1.2)*(z-0.8)))
+disp(sys2,"M(z)=")
+printf("sys2 is unstable due to pole at z=-1.2")
+sys3=syslin('c',5*(z+1)/(z*(z-1)*(z-0.8)))
+disp(sys3,"M(z)=")
+printf("sys3 is marginally stable due to z=1")
+sys4=syslin('c',5*(z+1.2)/(z^2*(z+1)^2*(z+0.1)))
+disp(sys4,"M(z)=")
+printf("sys4 is unstable due to multiple order pole at z=-1") \ No newline at end of file
diff --git a/104/CH6/EX6.9/6_9.sce b/104/CH6/EX6.9/6_9.sce
new file mode 100755
index 000000000..9c57e763a
--- /dev/null
+++ b/104/CH6/EX6.9/6_9.sce
@@ -0,0 +1,19 @@
+//bilinear transformation method
+r=%s
+//p=z^3+5.94*z^2+7.7*z-0.368
+//substituting z=(1+r)/(1-r) we get
+m=3.128*r^3-11.47*r^2+2.344*r+14.27
+x=coeff(m)
+n=length(x)
+routh=routh_t(m)
+disp(routh,"rouths tabulations")
+c=0;
+for i=1:n
+if (routh(i,1)<0) then
+c=c+1
+end
+end
+if (c>=1) then
+printf("system is unstable")
+else printf("system is stable")
+end \ No newline at end of file
diff --git a/104/CH7/EX7.1/7_1.sce b/104/CH7/EX7.1/7_1.sce
new file mode 100755
index 000000000..f16660300
--- /dev/null
+++ b/104/CH7/EX7.1/7_1.sce
@@ -0,0 +1,8 @@
+//type of system
+s=%s
+G1=syslin('c',(1+0.5*s)/(s*(1+s)*(1+2*s)*(1+s+s^2)))
+disp(G1,"G(s)=")
+printf("type 1 as it has one s term in denominator")
+G2=syslin('c',(1+2*s)/s^3)
+disp(G2,"G(s)=")
+printf("type 3 as it has 3 poles at origin") \ No newline at end of file
diff --git a/104/CH7/EX7.2/7_2.sce b/104/CH7/EX7.2/7_2.sce
new file mode 100755
index 000000000..491cd2e24
--- /dev/null
+++ b/104/CH7/EX7.2/7_2.sce
@@ -0,0 +1,43 @@
+//steady state errors from open loop transfer function
+s=%s;
+//type 1 system
+G=syslin('c',(s+3.15)/(s*(s+1.5)*(s+0.5)))//K=1
+disp(G,"G(s)=")
+H=1;
+y=G*H;
+disp(y,"G(s)H(s)=")
+syms s;
+Kv=limit(s*y,s,0); //Kv= velocity error coefficient
+Ess=1/Kv
+//Refering the table 7.1 given in the book ,For type 1 system Kp=%inf,Ess=0 & Ka=0,Ess=%inf
+printf("For type1 system \n step input Kp=inf Ess=0 \n \n parabolic input Ka=0 Ess=inf \n ")
+disp(Kv,"ramp input Kv=")
+disp(Ess,"Ess=")
+//type 2 system
+p=poly([1],'s','coeff');
+q=poly([0 0 12 1],'s','coeff');
+G=p/q;//K=1
+disp(G,"G(s)=")
+H=1;
+y=G*H;
+disp(y,"G(s)H(s)=")
+Ka=limit(s^2*y,s,0); //Ka= parabolic error coefficient
+Ess=1/Ka
+//Refering the table 7.1 given in the book ,For type 2 system Kp=%inf,Ess=0 & Kv=inf,Ess=0
+printf("For type2 system \n step input Kp=inf Ess=0 \n ramp input Kv=inf Ess=0 \n ")
+disp(Ka,"parabolic input Ka=")
+disp(Ess,"Ess=")
+//type 2 system
+p=poly([5 5],'s','coeff');
+q=poly([0 0 60 17 1],'s','coeff');
+G=p/q;//K=1
+disp(G,"G(s)=")
+H=1;
+y=G*H;
+disp(y,"G(s)H(s)=")
+Ka=limit(s^2*y,s,0); //Ka= parabolic error coefficient
+Ess=1/Ka
+//Refering the table 7.1 given in the book ,For type 2 system Kp=%inf,Ess=0 & Kv=inf,Ess=0
+printf("For type2 system \n step input Kp=inf Ess=0 \n ramp input Kv=inf Ess=0 \n ")
+disp(Ka,"parabolic input Ka=")
+disp(Ess,"Ess=")
diff --git a/104/CH7/EX7.3/7_3.sce b/104/CH7/EX7.3/7_3.sce
new file mode 100755
index 000000000..3b0f020e9
--- /dev/null
+++ b/104/CH7/EX7.3/7_3.sce
@@ -0,0 +1,58 @@
+//steady state errors from closed loop transfer functions
+s=%s
+p=poly([3.15 1 0],'s','coeff');//K=1
+q=poly([3.15 1.75 2 1],'s','coeff');
+M=p/q
+disp(M,"M(s)=")
+H=1;
+R=1;
+b=coeff(p)
+a=coeff(q)
+
+//step input
+if (a(1,1)==b(1,1)) then
+ printf("for unit step input Ess=0" )
+else
+ Ess=1/H*(1-(b(1,1)*H/a(1,1)))*R
+ disp(Ess,"for unit step input Ess=")
+end
+
+//ramp input
+c=0
+for i=1:2
+ if(a(1,i)-b(1,i)*H==0) then
+ c=c+1
+ end
+end
+if(c==2)
+ printf("for unit ramp input Ess=0")
+ else if(c==1) then
+ Ess=(a(1,2)-b(1,2)*H)/a(1,1)*H
+ disp(Ess,"for unit ramp input Ess=")
+ else printf("for unit ramp input Ess=inf")
+ end
+ end
+
+//parabolic input
+c=0
+for i=1:3
+ if(a(1,i)-b(1,i)*H==0) then
+ c=c+1
+ end
+end
+if(c==3)
+ printf("for unit parabolic input Ess=0")
+ else if(c==2) then
+ Ess=(a(1,3)-b(1,3)*H)/a(1,1)*H
+ disp(Ess,"for unit parabolic input Ess=")
+ else printf("for unit parabolic input Ess=inf")
+ end
+ end
+
+
+
+
+
+
+
+ \ No newline at end of file
diff --git a/104/CH7/EX7.4/7_4.sce b/104/CH7/EX7.4/7_4.sce
new file mode 100755
index 000000000..a50229140
--- /dev/null
+++ b/104/CH7/EX7.4/7_4.sce
@@ -0,0 +1,50 @@
+//steady state errors from closed loop transfer functions
+s=%s
+p=poly([5 5 0],'s','coeff');
+q=poly([5 5 60 17 1],'s','coeff');
+M=p/q
+disp(M,"M(s)=")
+H=1;
+R=1;
+b=coeff(p)
+a=coeff(q)
+
+//step input
+if (a(1,1)==b(1,1)) then
+ printf("for unit step input Ess=0 \n" )
+else
+ Ess=1/H*(1-(b(1,1)*H/a(1,1)))*R
+ disp(Ess,"for unit step input Ess=")
+end
+
+//ramp input
+c=0
+for i=1:2
+ if(a(1,i)-b(1,i)*H==0) then
+ c=c+1
+ end
+end
+if(c==2)
+ printf("for unit ramp input Ess=0 \n")
+ else if(c==1) then
+ Ess=(a(1,2)-b(1,2)*H)/a(1,1)*H
+ disp(Ess,"for unit ramp input Ess=")
+ else printf("for unit ramp input Ess=inf \n")
+ end
+ end
+
+//parabolic input
+c=0
+for i=1:3
+ if(a(1,i)-b(1,i)*H==0) then
+ c=c+1
+ end
+end
+if(c==3)
+ printf("for unit parabolic input Ess=0 \n")
+ else if(c==2) then
+ Ess=(a(1,3)-b(1,3)*H)/a(1,1)*H
+ disp(Ess,"for unit parabolic input Ess=")
+ else printf("for unit parabolic input Ess=inf \n")
+ end
+ end \ No newline at end of file
diff --git a/104/CH7/EX7.5/7_5.sce b/104/CH7/EX7.5/7_5.sce
new file mode 100755
index 000000000..9bac64b30
--- /dev/null
+++ b/104/CH7/EX7.5/7_5.sce
@@ -0,0 +1,50 @@
+//steady state errors from closed loop transfer functions
+s=%s
+p=poly([5 1 0],'s','coeff');
+q=poly([5 5 60 17 1],'s','coeff');
+M=p/q
+disp(M,"M(s)=")
+H=1;
+R=1;
+b=coeff(p)
+a=coeff(q)
+
+//step input
+if (a(1,1)==b(1,1)) then
+ printf("for unit step input Ess=0 \n" )
+else
+ Ess=1/H*(1-(b(1,1)*H/a(1,1)))*R
+ disp(Ess,"for unit step input Ess=")
+end
+
+//ramp input
+c=0
+for i=1:2
+ if(a(1,i)-b(1,i)*H==0) then
+ c=c+1
+ end
+end
+if(c==2)
+ printf("for unit ramp input Ess=0 \n")
+ else if(c==1) then
+ Ess=(a(1,2)-b(1,2)*H)/a(1,1)*H
+ disp(Ess,"for unit ramp input Ess=")
+ else printf("for unit ramp input Ess=inf \n")
+ end
+ end
+
+//parabolic input
+c=0
+for i=1:3
+ if(a(1,i)-b(1,i)*H==0) then
+ c=c+1
+ end
+end
+if(c==3)
+ printf("for unit parabolic input Ess=0 \n")
+ else if(c==2) then
+ Ess=(a(1,3)-b(1,3)*H)/a(1,1)*H
+ disp(Ess,"for unit parabolic input Ess=")
+ else printf("for unit parabolic input Ess=inf \n")
+ end
+ end \ No newline at end of file
diff --git a/104/CH7/EX7.6/7_6.sce b/104/CH7/EX7.6/7_6.sce
new file mode 100755
index 000000000..35a4e5ff3
--- /dev/null
+++ b/104/CH7/EX7.6/7_6.sce
@@ -0,0 +1,50 @@
+//steady state errors from closed loop transfer functions
+s=%s
+p=poly([5 1 0],'s','coeff');
+q=poly([10 10 60 17 1],'s','coeff');
+M=p/q
+disp(M,"M(s)=")
+H=2;
+R=1;
+b=coeff(p)
+a=coeff(q)
+
+//step input
+if (a(1,1)==b(1,1)) then
+ printf("for step input Ess=0 \n" )
+else
+ Ess=1/H*(1-(b(1,1)*H/a(1,1)))*R
+ disp(Ess,"for step input Ess=")
+end
+
+//ramp input
+c=0
+for i=1:2
+ if(a(1,i)-b(1,i)*H==0) then
+ c=c+1
+ end
+end
+if(c==2)
+ printf("for ramp input Ess=0 \n")
+ else if(c==1) then
+ Ess=(a(1,2)-b(1,2)*H)/a(1,1)*H
+ disp(Ess,"for ramp input Ess=")
+ else printf("for ramp input Ess=inf \n")
+ end
+ end
+
+//parabolic input
+c=0
+for i=1:3
+ if(a(1,i)-b(1,i)*H==0) then
+ c=c+1
+ end
+end
+if(c==3)
+ printf("for parabolic input Ess=0 \n")
+ else if(c==2) then
+ Ess=(a(1,3)-b(1,3)*H)/a(1,1)*H
+ disp(Ess,"for parabolic input Ess=")
+ else printf("for parabolic input Ess=inf \n")
+ end
+ end \ No newline at end of file
diff --git a/104/CH8/EX8.1/8_1.jpeg b/104/CH8/EX8.1/8_1.jpeg
new file mode 100755
index 000000000..70d6f1e26
--- /dev/null
+++ b/104/CH8/EX8.1/8_1.jpeg
Binary files differ
diff --git a/104/CH8/EX8.1/8_1.sce b/104/CH8/EX8.1/8_1.sce
new file mode 100755
index 000000000..90dc6e766
--- /dev/null
+++ b/104/CH8/EX8.1/8_1.sce
@@ -0,0 +1,6 @@
+//poles and zeroes
+s=%s
+sys=syslin('c',(s+1)/(s*(s+2)*(s+3)))
+plzr(sys)
+printf("three points on the root loci at which K=0 and those at which K=inf are shown in fig")
+
diff --git a/104/CH8/EX8.10/8_10.jpeg b/104/CH8/EX8.10/8_10.jpeg
new file mode 100755
index 000000000..736bfafad
--- /dev/null
+++ b/104/CH8/EX8.10/8_10.jpeg
Binary files differ
diff --git a/104/CH8/EX8.10/8_10.sce b/104/CH8/EX8.10/8_10.sce
new file mode 100755
index 000000000..86c3eca4c
--- /dev/null
+++ b/104/CH8/EX8.10/8_10.sce
@@ -0,0 +1,12 @@
+//intersection of root loci with real axis
+s=%s
+sys=syslin('c',1/(s*(s+3)*(s^2+2*s+2)))
+clf
+evans(sys)
+K=kpure(sys)
+disp(K,"value of K where RL crosses jw axis=")
+p=poly([K 6 8 5 1],'s','coeff')
+x=roots(p)
+x1=clean(x(1,1))
+x2=clean(x(2,1))
+disp(x2,x1,"crossover points on jw axis=") \ No newline at end of file
diff --git a/104/CH8/EX8.11/8_11.jpeg b/104/CH8/EX8.11/8_11.jpeg
new file mode 100755
index 000000000..8693ab918
--- /dev/null
+++ b/104/CH8/EX8.11/8_11.jpeg
Binary files differ
diff --git a/104/CH8/EX8.11/8_11.sce b/104/CH8/EX8.11/8_11.sce
new file mode 100755
index 000000000..d10efd0d1
--- /dev/null
+++ b/104/CH8/EX8.11/8_11.sce
@@ -0,0 +1,16 @@
+//breakaway points
+s=%s
+sys=syslin('c',(s+4)/(s*(s+2)))
+evans(sys)
+syms s
+d=derivat(sys)
+n=numer(d)
+a=roots(n) //a=breakaway points
+disp(a,"breakaway points=")
+for i=1:2
+ K=-a(i,1)*(a(i,1)+2)/(a(i,1)+4)
+ disp(a(i,1),"s=")
+ disp(K,"K=")
+end
+printf("if K is positive breakaway point lies on RL or else on CRL")
+
diff --git a/104/CH8/EX8.12/8_12.jpeg b/104/CH8/EX8.12/8_12.jpeg
new file mode 100755
index 000000000..58cb70671
--- /dev/null
+++ b/104/CH8/EX8.12/8_12.jpeg
Binary files differ
diff --git a/104/CH8/EX8.12/8_12.sce b/104/CH8/EX8.12/8_12.sce
new file mode 100755
index 000000000..98a39a6e9
--- /dev/null
+++ b/104/CH8/EX8.12/8_12.sce
@@ -0,0 +1,15 @@
+//breakaway points
+s=%s
+sys=syslin('c',(s+2)/(s^2+2*s+2))
+evans(sys)
+syms s
+d=derivat(sys)
+n=numer(d)
+a=roots(n) //a=breakaway points
+disp(a,"breakaway points=")
+for i=1:2
+ K=-(a(i,1)^2+2*a(i,1)+2)/(a(i,1)+2)
+ disp(a(i,1),"s=")
+ disp(K,"K=")
+end
+printf("if K is positive breakaway point lies on RL or else on CRL") \ No newline at end of file
diff --git a/104/CH8/EX8.13/8_13.jpeg b/104/CH8/EX8.13/8_13.jpeg
new file mode 100755
index 000000000..a98ddaa7a
--- /dev/null
+++ b/104/CH8/EX8.13/8_13.jpeg
Binary files differ
diff --git a/104/CH8/EX8.13/8_13.sce b/104/CH8/EX8.13/8_13.sce
new file mode 100755
index 000000000..d09a64a9b
--- /dev/null
+++ b/104/CH8/EX8.13/8_13.sce
@@ -0,0 +1,16 @@
+//breakaway points
+s=%s
+sys=syslin('c',1/(s*(s+4)*(s^2+4*s+20)))
+evans(sys)
+syms s
+d=derivat(sys)
+n=numer(d)
+a=roots(n) //a=breakaway points
+disp(a,"breakaway points=")
+for i=1:3
+ K=-a(i,1)*(a(i,1)+4)*(a(i,1)^2+4*a(i,1)+20)
+ disp(a(i,1),"s=")
+ disp(K,"K=")
+end
+printf("if K is positive breakaway point lies on RL or else on CRL")
+ \ No newline at end of file
diff --git a/104/CH8/EX8.14/8_14.jpeg b/104/CH8/EX8.14/8_14.jpeg
new file mode 100755
index 000000000..edc7ea941
--- /dev/null
+++ b/104/CH8/EX8.14/8_14.jpeg
Binary files differ
diff --git a/104/CH8/EX8.14/8_14.sce b/104/CH8/EX8.14/8_14.sce
new file mode 100755
index 000000000..93a3f4988
--- /dev/null
+++ b/104/CH8/EX8.14/8_14.sce
@@ -0,0 +1,15 @@
+//breakaway points
+s=%s
+sys=syslin('c',1/(s*(s^2+2*s+2)))
+evans(sys)
+syms s
+d=derivat(sys)
+n=numer(d)
+a=roots(n) //a=breakaway points
+disp(a,"breakaway points=")
+for i=1:2
+ K=-a(i,1)^2+2*a(i,1)+2
+ disp(a(i,1),"s=")
+ disp(K,"K=")
+end
+printf("if K is complex then point is not a break away point") \ No newline at end of file
diff --git a/104/CH8/EX8.15/8_15.sce b/104/CH8/EX8.15/8_15.sce
new file mode 100755
index 000000000..c06d5bca0
--- /dev/null
+++ b/104/CH8/EX8.15/8_15.sce
@@ -0,0 +1,13 @@
+//root sensitivity
+s=%s
+sys1=syslin('c',1/(s*(s+1)))
+evans(sys1)
+
+sys2=syslin('c',(s+2)/(s^2*(s+1)^2))
+evans(sys2)
+
+printf("root densitivity at breakaway points is infinite")
+
+
+
+
diff --git a/104/CH8/EX8.15/8_15a.jpeg b/104/CH8/EX8.15/8_15a.jpeg
new file mode 100755
index 000000000..d1ed70cf0
--- /dev/null
+++ b/104/CH8/EX8.15/8_15a.jpeg
Binary files differ
diff --git a/104/CH8/EX8.15/8_15b.jpeg b/104/CH8/EX8.15/8_15b.jpeg
new file mode 100755
index 000000000..83947720d
--- /dev/null
+++ b/104/CH8/EX8.15/8_15b.jpeg
Binary files differ
diff --git a/104/CH8/EX8.16/8_16.jpeg b/104/CH8/EX8.16/8_16.jpeg
new file mode 100755
index 000000000..58cb70671
--- /dev/null
+++ b/104/CH8/EX8.16/8_16.jpeg
Binary files differ
diff --git a/104/CH8/EX8.16/8_16.sce b/104/CH8/EX8.16/8_16.sce
new file mode 100755
index 000000000..026140ac2
--- /dev/null
+++ b/104/CH8/EX8.16/8_16.sce
@@ -0,0 +1,11 @@
+//calculation of K on root loci
+s=%s
+sys=syslin('c',(s+2)/(s^2+2*s+2))
+evans(sys)
+//value of K at s=0
+printf("K=A*B/C \n A and B are lenths of vectors drawn from poles of sys \n C is lenths of vector drawn from zero of sys")
+A=sqrt((-1)^2+1^2)
+B=sqrt((-1)^2+(-1)^2)
+C=-2
+K=A*B/C
+disp(K,"value of K at s=0 is") \ No newline at end of file
diff --git a/104/CH8/EX8.17/8_17.sce b/104/CH8/EX8.17/8_17.sce
new file mode 100755
index 000000000..7d8a8b209
--- /dev/null
+++ b/104/CH8/EX8.17/8_17.sce
@@ -0,0 +1,19 @@
+//properties of root loci
+s=%s
+sys=syslin('c',(s+3)/(s*(s+5)*(s+6)*(s^2+2*s+2)))
+d=denom(sys)
+n=numer(sys)
+p=roots(d)
+z=roots(n)
+disp(p,"poles of sys=")
+disp(z,"zeroes of sys=")
+n=length(p)
+m=length(z)
+disp(n,"no of poles=")
+disp(m,"no of zeroes=")
+if (n>m) then
+ disp(n,"no of branches of RL=")
+else
+ disp(m,"no of branches of CRL=")
+end
+printf("the root loci are symmetrical with respect to the real axis of the plane")
diff --git a/104/CH8/EX8.18/8_18.sce b/104/CH8/EX8.18/8_18.sce
new file mode 100755
index 000000000..56ba52184
--- /dev/null
+++ b/104/CH8/EX8.18/8_18.sce
@@ -0,0 +1,7 @@
+//effect of addition of poles to sys
+s=%s
+sys=syslin('c',1/(s*(s+1))) //a=1
+evans(sys)
+sys1=syslin('c',1/(s*(s+1)*(s+2))) //b=2
+evans(sys1)
+printf("adding a pole to sys has effect of pushing the root loci towards the RHP") \ No newline at end of file
diff --git a/104/CH8/EX8.18/8_18a.jpeg b/104/CH8/EX8.18/8_18a.jpeg
new file mode 100755
index 000000000..d1ed70cf0
--- /dev/null
+++ b/104/CH8/EX8.18/8_18a.jpeg
Binary files differ
diff --git a/104/CH8/EX8.18/8_18b.jpeg b/104/CH8/EX8.18/8_18b.jpeg
new file mode 100755
index 000000000..3e5b2b1c5
--- /dev/null
+++ b/104/CH8/EX8.18/8_18b.jpeg
Binary files differ
diff --git a/104/CH8/EX8.19/8_19.sce b/104/CH8/EX8.19/8_19.sce
new file mode 100755
index 000000000..628a0ef13
--- /dev/null
+++ b/104/CH8/EX8.19/8_19.sce
@@ -0,0 +1,7 @@
+//effect of addition of zeroes to sys
+s=%s
+sys=syslin('c',1/(s*(s+1))) //a=1
+evans(sys)
+sys1=syslin('c',(s+2)/(s*(s+1))) //b=2
+//evans(sys1)
+printf("adding a LHP zero to sys has effect of moving and bending the root loci towards the LHP") \ No newline at end of file
diff --git a/104/CH8/EX8.19/8_19a.jpeg b/104/CH8/EX8.19/8_19a.jpeg
new file mode 100755
index 000000000..d1ed70cf0
--- /dev/null
+++ b/104/CH8/EX8.19/8_19a.jpeg
Binary files differ
diff --git a/104/CH8/EX8.19/8_19b.jpeg b/104/CH8/EX8.19/8_19b.jpeg
new file mode 100755
index 000000000..7f09ab361
--- /dev/null
+++ b/104/CH8/EX8.19/8_19b.jpeg
Binary files differ
diff --git a/104/CH8/EX8.2/8_2.jpeg b/104/CH8/EX8.2/8_2.jpeg
new file mode 100755
index 000000000..590e299c2
--- /dev/null
+++ b/104/CH8/EX8.2/8_2.jpeg
Binary files differ
diff --git a/104/CH8/EX8.2/8_2.sce b/104/CH8/EX8.2/8_2.sce
new file mode 100755
index 000000000..b408b1c27
--- /dev/null
+++ b/104/CH8/EX8.2/8_2.sce
@@ -0,0 +1,5 @@
+//root locus
+s=%s
+sys=syslin('c',(s+1)/(s*(s+2)*(s+3)))
+evans(sys)
+printf("number of branches of root loci is 3 as equation is of 3rd order") \ No newline at end of file
diff --git a/104/CH8/EX8.20/8_20.sce b/104/CH8/EX8.20/8_20.sce
new file mode 100755
index 000000000..ce764774d
--- /dev/null
+++ b/104/CH8/EX8.20/8_20.sce
@@ -0,0 +1,13 @@
+//effect of moving pole near jw axis
+s=%s
+sys1=syslin('c',(s+1)/(s^2*(s+10))) //a=10 b=1
+evans(sys1)
+sys2=syslin('c',(s+1)/(s^2*(s+9))) //a=9
+evans(sys2)
+sys3=syslin('c',(s+1)/(s^2*(s+8))) //a=8
+evans(sys3)
+sys4=syslin('c',(s+1)/(s^2*(s+3))) //a=3
+evans(sys4)
+sys5=syslin('c',(s+1)/(s^2*(s+1))) //a=1
+evans(sys5)
+printf("as pole is moved towards jw axis RL also moves towards jw axis") \ No newline at end of file
diff --git a/104/CH8/EX8.20/8_20a.jpeg b/104/CH8/EX8.20/8_20a.jpeg
new file mode 100755
index 000000000..9d8a45381
--- /dev/null
+++ b/104/CH8/EX8.20/8_20a.jpeg
Binary files differ
diff --git a/104/CH8/EX8.20/8_20b.jpeg b/104/CH8/EX8.20/8_20b.jpeg
new file mode 100755
index 000000000..4fe003793
--- /dev/null
+++ b/104/CH8/EX8.20/8_20b.jpeg
Binary files differ
diff --git a/104/CH8/EX8.21/8_21.sce b/104/CH8/EX8.21/8_21.sce
new file mode 100755
index 000000000..00f6ec7da
--- /dev/null
+++ b/104/CH8/EX8.21/8_21.sce
@@ -0,0 +1,11 @@
+//effect of moving pole away from jw axis
+s=%s
+sys1=syslin('c',(s+2)/(s*(s^2+2*s+1))) //a=1
+evans(sys1)
+sys2=syslin('c',(s+1)/(s*(s^2+2*s+1.12))) //a=1.12
+evans(sys2)
+sys3=syslin('c',(s+1)/(s*(s^2+2*s+1.185))) //a=1.185
+evans(sys3)
+sys4=syslin('c',(s+1)/(s*(s^2+2*s+3))) //a=3
+evans(sys4)
+printf("as pole is moved away from jw axis RL also moves away from jw axis") \ No newline at end of file
diff --git a/104/CH8/EX8.21/8_21a.jpeg b/104/CH8/EX8.21/8_21a.jpeg
new file mode 100755
index 000000000..6cbb018f1
--- /dev/null
+++ b/104/CH8/EX8.21/8_21a.jpeg
Binary files differ
diff --git a/104/CH8/EX8.21/8_21b.jpeg b/104/CH8/EX8.21/8_21b.jpeg
new file mode 100755
index 000000000..1ba1d4329
--- /dev/null
+++ b/104/CH8/EX8.21/8_21b.jpeg
Binary files differ
diff --git a/104/CH8/EX8.3/8_3.jpeg b/104/CH8/EX8.3/8_3.jpeg
new file mode 100755
index 000000000..88d069dac
--- /dev/null
+++ b/104/CH8/EX8.3/8_3.jpeg
Binary files differ
diff --git a/104/CH8/EX8.3/8_3.sce b/104/CH8/EX8.3/8_3.sce
new file mode 100755
index 000000000..be18bd169
--- /dev/null
+++ b/104/CH8/EX8.3/8_3.sce
@@ -0,0 +1,6 @@
+//root locus
+s=%s
+sys=syslin('c',1/(s*(s+2)*(s+1)))
+clf
+evans(sys)
+printf("root loci is symmetical to both axis") \ No newline at end of file
diff --git a/104/CH8/EX8.4/8_4.jpeg b/104/CH8/EX8.4/8_4.jpeg
new file mode 100755
index 000000000..82a24b68a
--- /dev/null
+++ b/104/CH8/EX8.4/8_4.jpeg
Binary files differ
diff --git a/104/CH8/EX8.4/8_4.sce b/104/CH8/EX8.4/8_4.sce
new file mode 100755
index 000000000..ba78420b9
--- /dev/null
+++ b/104/CH8/EX8.4/8_4.sce
@@ -0,0 +1,6 @@
+//root locus
+s=%s
+sys=syslin('c',1/(s*(s+2)*(s^2+2*s+2)))
+clf
+evans(sys)
+printf("when pole zero configuration is symmetrical wrt a point in s plane,then root loci is symmetrical to that point") \ No newline at end of file
diff --git a/104/CH8/EX8.5/8_5.jpeg b/104/CH8/EX8.5/8_5.jpeg
new file mode 100755
index 000000000..6c4c3f1bb
--- /dev/null
+++ b/104/CH8/EX8.5/8_5.jpeg
Binary files differ
diff --git a/104/CH8/EX8.5/8_5.sce b/104/CH8/EX8.5/8_5.sce
new file mode 100755
index 000000000..8d6a092bd
--- /dev/null
+++ b/104/CH8/EX8.5/8_5.sce
@@ -0,0 +1,24 @@
+//root locus
+s=%s
+sys=syslin('c',(s+1)/(s*(s+4)*(s^2+2*s+2)))
+clf
+evans(sys)
+n=4;
+disp(n,"no of poles=")
+m=1;
+disp(m,"no of poles=")
+//angle of asymptotes
+printf("angle of asymptotes of RL")
+for i=0:(n-m-1)
+ O=((2*i)+1)/(n-m)*180
+ disp(O,"q=")
+ end
+printf("angle of asymptotes of CRL")
+for i=0:(n-m-1)
+ O=(2*i)/(n-m)*180
+ disp(O,"q=")
+end
+//centroid
+printf("Centroid=((sum of all real part of poles of G(s)H(s))-(sum of all real part of zeros of G(s)H(s))/(n-m) \n")
+C=((0-4-1-1)-(-1))/(n-m);
+disp(C,"centroid=")
diff --git a/104/CH8/EX8.8/8_8.jpeg b/104/CH8/EX8.8/8_8.jpeg
new file mode 100755
index 000000000..736bfafad
--- /dev/null
+++ b/104/CH8/EX8.8/8_8.jpeg
Binary files differ
diff --git a/104/CH8/EX8.8/8_8.sce b/104/CH8/EX8.8/8_8.sce
new file mode 100755
index 000000000..3df597c43
--- /dev/null
+++ b/104/CH8/EX8.8/8_8.sce
@@ -0,0 +1,7 @@
+//angle of departure and angle of arrivals
+s=%s
+sys=syslin('c',1/(s*(s+3)*(s^2+2*s+2)))
+clf
+evans(sys)
+printf("angle of arrival and departure of root loci on the real axis are not affected by complex poles and zeroes of G(s)H(s)")
+
diff --git a/104/CH8/EX8.9/8_9.sce b/104/CH8/EX8.9/8_9.sce
new file mode 100755
index 000000000..27b89197d
--- /dev/null
+++ b/104/CH8/EX8.9/8_9.sce
@@ -0,0 +1,6 @@
+//multiple order pole
+s=%s
+sys=syslin('c',(s+3)/(s*(s+2)^3))
+clf
+evans(sys)
+printf("this shows that whole real axis is occupied by RL and CRL")
diff --git a/104/CH9/EX9.1/9_1.jpeg b/104/CH9/EX9.1/9_1.jpeg
new file mode 100755
index 000000000..f9f741ab4
--- /dev/null
+++ b/104/CH9/EX9.1/9_1.jpeg
Binary files differ
diff --git a/104/CH9/EX9.1/9_1.sce b/104/CH9/EX9.1/9_1.sce
new file mode 100755
index 000000000..0d55ddf4b
--- /dev/null
+++ b/104/CH9/EX9.1/9_1.sce
@@ -0,0 +1,7 @@
+//nyquist plot
+s=%s;
+sys=syslin('c',1/(s*(s+2)*(s+10)))
+nyquist(sys)
+show_margins(sys,'nyquist')
+K=kpure(sys)
+disp(K,"system is stable for 0<K<")
diff --git a/104/CH9/EX9.10/9_10.jpeg b/104/CH9/EX9.10/9_10.jpeg
new file mode 100755
index 000000000..dbb3b15d2
--- /dev/null
+++ b/104/CH9/EX9.10/9_10.jpeg
Binary files differ
diff --git a/104/CH9/EX9.10/9_10.sce b/104/CH9/EX9.10/9_10.sce
new file mode 100755
index 000000000..4a6b9ba64
--- /dev/null
+++ b/104/CH9/EX9.10/9_10.sce
@@ -0,0 +1,15 @@
+//multiple loop systems
+s=%s
+innerloop=syslin('c',6/s*(s+1)*(s+2))
+nyquist(innerloop)
+show_margins(innerloop,'nyquist')
+printf("nyquist plot intersects jw axis at -1 so innerloop is marginally stable")
+outerloop=syslin('c',100*(s+0.1)/(s+10)*(s^3+3*s^2+2*s+6))
+//nyquist(outerloop)
+show_margins(outerloop,'nyquist')
+P=0//no of poles on RHP
+Pw=2//no of poles on jw axis
+theta=-(Z-P-0.5*Pw)*180
+Z=0//for outer loop to be stable
+disp(theta,"theta for stability=")
+printf("theta as seen from nyquist plot is same as that required for stability \n hence outer loop is stable") \ No newline at end of file
diff --git a/104/CH9/EX9.14/9_14.jpeg b/104/CH9/EX9.14/9_14.jpeg
new file mode 100755
index 000000000..ae086399f
--- /dev/null
+++ b/104/CH9/EX9.14/9_14.jpeg
Binary files differ
diff --git a/104/CH9/EX9.14/9_14.sce b/104/CH9/EX9.14/9_14.sce
new file mode 100755
index 000000000..21fd8dc55
--- /dev/null
+++ b/104/CH9/EX9.14/9_14.sce
@@ -0,0 +1,9 @@
+//gain margin and phase margin
+s=%s;
+sys=syslin('c',(2500)/(s*(s+5)*(s+50)))
+nyquist(sys)
+show_margins(sys,'nyquist')
+gm=g_margin(sys)
+pm=p_margin(sys)
+disp(gm,"gain margin=")
+disp(pm,"phase margin=") \ No newline at end of file
diff --git a/104/CH9/EX9.15/9_15.jpeg b/104/CH9/EX9.15/9_15.jpeg
new file mode 100755
index 000000000..a72cbfee0
--- /dev/null
+++ b/104/CH9/EX9.15/9_15.jpeg
Binary files differ
diff --git a/104/CH9/EX9.15/9_15.sce b/104/CH9/EX9.15/9_15.sce
new file mode 100755
index 000000000..945580b3b
--- /dev/null
+++ b/104/CH9/EX9.15/9_15.sce
@@ -0,0 +1,14 @@
+//bode plot
+s=%s;
+sys=syslin('c',(2500)/(s*(s+5)*(s+50)))
+bode(sys)
+show_margins(sys,'bode')
+gm=g_margin(sys)
+pm=p_margin(sys)
+disp(gm,"gain margin=")
+disp(pm,"phase margin=")
+if (gm<=0 | pm<=0)
+ printf("system is unstable")
+else
+ printf("system is stable")
+ end \ No newline at end of file
diff --git a/104/CH9/EX9.17/9_17.jpeg b/104/CH9/EX9.17/9_17.jpeg
new file mode 100755
index 000000000..cc7269a19
--- /dev/null
+++ b/104/CH9/EX9.17/9_17.jpeg
Binary files differ
diff --git a/104/CH9/EX9.17/9_17.sce b/104/CH9/EX9.17/9_17.sce
new file mode 100755
index 000000000..d9741847a
--- /dev/null
+++ b/104/CH9/EX9.17/9_17.sce
@@ -0,0 +1,14 @@
+//relative stability
+s=%s;
+sys=syslin('c',(100)*(s+5)*(s+40)/(s^3*(s+100)*(s+200)))//K=1
+bode(sys)
+show_margins(sys,'bode')
+gm=g_margin(sys)
+pm=p_margin(sys)
+disp(gm,"gain margin=")
+disp(pm,"phase margin=")
+if (gm<=0 | pm<=0)
+ printf("system is unstable")
+else
+ printf("system is stable")
+ end \ No newline at end of file
diff --git a/104/CH9/EX9.2/9_2.jpeg b/104/CH9/EX9.2/9_2.jpeg
new file mode 100755
index 000000000..f5ef95f39
--- /dev/null
+++ b/104/CH9/EX9.2/9_2.jpeg
Binary files differ
diff --git a/104/CH9/EX9.2/9_2.sce b/104/CH9/EX9.2/9_2.sce
new file mode 100755
index 000000000..896ce8c2f
--- /dev/null
+++ b/104/CH9/EX9.2/9_2.sce
@@ -0,0 +1,8 @@
+//nyquist plot
+s=%s;
+sys=syslin('c',s*(s^2+2*s+2)/(s^2+5*s+1))
+nyquist(sys)
+show_margins(sys,'nyquist')
+printf("Since P=0(no of poles in RHP)=Poles of G(s)H(s) \n here the number of zeros of 1+G(s)H(s) in the RHP is N>0 \n hence the system is unstable")
+
+
diff --git a/104/CH9/EX9.3/9_3.jpeg b/104/CH9/EX9.3/9_3.jpeg
new file mode 100755
index 000000000..bc0c825ed
--- /dev/null
+++ b/104/CH9/EX9.3/9_3.jpeg
Binary files differ
diff --git a/104/CH9/EX9.3/9_3.sce b/104/CH9/EX9.3/9_3.sce
new file mode 100755
index 000000000..d2880be6e
--- /dev/null
+++ b/104/CH9/EX9.3/9_3.sce
@@ -0,0 +1,12 @@
+//stability of non minimum phase loop transfer_function
+s=%s;
+sys=syslin('c',(s^2-s+1)/s*(s^2-6*s+5))
+nyquist(sys)
+show_margins(sys,'nyquist')
+printf("Z=0 hence sys is closed loop stable but as it is a non minimum phase loop_function it should satisfy angle criterion")
+Z=0//no of zeroes of 1+G(s)H(s) in RHP
+P=2//no of poles in RHP
+Pw=1//no of poles on jw axis including origin
+theta=(Z-P-0.5*Pw)*180
+disp(theta,"theta=")
+printf("theta from nyquist_plot = -90 \n hence system is unstabe") \ No newline at end of file
diff --git a/104/CH9/EX9.4/9_4.jpeg b/104/CH9/EX9.4/9_4.jpeg
new file mode 100755
index 000000000..f9f741ab4
--- /dev/null
+++ b/104/CH9/EX9.4/9_4.jpeg
Binary files differ
diff --git a/104/CH9/EX9.4/9_4.sce b/104/CH9/EX9.4/9_4.sce
new file mode 100755
index 000000000..ae05ca78d
--- /dev/null
+++ b/104/CH9/EX9.4/9_4.sce
@@ -0,0 +1,11 @@
+//stability of minimum phase loop transfer function
+s=%s;
+sys=syslin('c',1/(s*(s+2)*(s+10)))
+nyquist(sys)
+show_margins(sys,'nyquist')
+Z=0//no of zeroes of 1+G(s)H(s) in RHP
+P=0//no of poles in RHP
+Pw=1//no of poles on jw axis including origin
+theta=(Z-P-0.5*Pw)*180
+disp(theta,"theta=")
+printf("theta from nyquist_plot = -90 \n hence system is stabe") \ No newline at end of file
diff --git a/104/CH9/EX9.5/9_5.jpeg b/104/CH9/EX9.5/9_5.jpeg
new file mode 100755
index 000000000..6c085c321
--- /dev/null
+++ b/104/CH9/EX9.5/9_5.jpeg
Binary files differ
diff --git a/104/CH9/EX9.5/9_5.sce b/104/CH9/EX9.5/9_5.sce
new file mode 100755
index 000000000..79b799eb9
--- /dev/null
+++ b/104/CH9/EX9.5/9_5.sce
@@ -0,0 +1,11 @@
+//stability of non minimum phase loop transfer_function
+s=%s;
+sys=syslin('c',(s-1)/s*(s+1))
+nyquist(sys)
+show_margins(sys,'nyquist')
+P=0//no of poles in RHP
+Pw=1//no of poles on jw axis including origin
+theta=90//as seen from nyquist plot
+Z=(theta/180)+0.5*Pw+P
+disp(Z,"Z=")
+printf("Z is not equal to 0. \n hence system is unstabe") \ No newline at end of file
diff --git a/104/CH9/EX9.6/9_6.jpeg b/104/CH9/EX9.6/9_6.jpeg
new file mode 100755
index 000000000..1846eb350
--- /dev/null
+++ b/104/CH9/EX9.6/9_6.jpeg
Binary files differ
diff --git a/104/CH9/EX9.6/9_6.sce b/104/CH9/EX9.6/9_6.sce
new file mode 100755
index 000000000..2461a595b
--- /dev/null
+++ b/104/CH9/EX9.6/9_6.sce
@@ -0,0 +1,12 @@
+//stability of non minimum phase loop transfer_function
+s=%s;
+sys=syslin('c',10*(s+2)/(s^3+3*s^2+10))
+nyquist(sys)
+show_margins(sys,'nyquist')
+printf("Z=0 hence sys is closed loop stable but as it is a non minimum phase loop_function it should satisfy angle criterion")
+Z=0//no of zeroes of 1+G(s)H(s) in RHP
+P=2//no of poles in RHP
+Pw=0//no of poles on jw axis including origin
+theta=(Z-P-0.5*Pw)*180
+disp(theta,"theta for stability=")
+printf("theta from nyquist_plot = -360 \n hence system is stabe") \ No newline at end of file
diff --git a/104/CH9/EX9.7/9_7.jpeg b/104/CH9/EX9.7/9_7.jpeg
new file mode 100755
index 000000000..b769c07e7
--- /dev/null
+++ b/104/CH9/EX9.7/9_7.jpeg
Binary files differ
diff --git a/104/CH9/EX9.7/9_7.sce b/104/CH9/EX9.7/9_7.sce
new file mode 100755
index 000000000..33ebd383f
--- /dev/null
+++ b/104/CH9/EX9.7/9_7.sce
@@ -0,0 +1,11 @@
+//stability of non minimum phase loop transfer_function
+s=%s;
+sys=syslin('c',1/(s+2)*(s^2+4))
+nyquist(sys)
+show_margins(sys,'nyquist')
+Z=0//no of zeroes of 1+G(s)H(s) in RHP(for sys to be stable)
+P=0//no of poles in RHP
+Pw=2//no of poles on jw axis including origin
+theta=(Z-P-0.5*Pw)*180
+disp(theta,"for stability theta=")
+printf("theta from nyquist_plot = 135 \n hence system is unstabe") \ No newline at end of file
diff --git a/104/CH9/EX9.8/9_8.sce b/104/CH9/EX9.8/9_8.sce
new file mode 100755
index 000000000..eb3ca64e3
--- /dev/null
+++ b/104/CH9/EX9.8/9_8.sce
@@ -0,0 +1,9 @@
+//effect of addition of poles
+s=%s;
+sys1=syslin('c',1/(s^2*(s+1)))//taking T1=1
+nyquist(sys1)
+show_margins(sys1,'nyquist')
+sys2=syslin('c',1/(s^3*(s+1)))
+//nyquist(sys2)
+//show_margins(sys2,'nyquist')
+printf("these two plots show that addition of poles decreases stability") \ No newline at end of file
diff --git a/104/CH9/EX9.8/9_8a.jpeg b/104/CH9/EX9.8/9_8a.jpeg
new file mode 100755
index 000000000..09bc807f1
--- /dev/null
+++ b/104/CH9/EX9.8/9_8a.jpeg
Binary files differ
diff --git a/104/CH9/EX9.8/9_8b.jpeg b/104/CH9/EX9.8/9_8b.jpeg
new file mode 100755
index 000000000..53514686a
--- /dev/null
+++ b/104/CH9/EX9.8/9_8b.jpeg
Binary files differ
diff --git a/104/CH9/EX9.9/9_9.sce b/104/CH9/EX9.9/9_9.sce
new file mode 100755
index 000000000..1d4bf9271
--- /dev/null
+++ b/104/CH9/EX9.9/9_9.sce
@@ -0,0 +1,9 @@
+//effect of addition of zeroes
+s=%s;
+sys1=syslin('c',1/(s*(s+1)*(2*s+1)))//taking T1=1,T2=2
+nyquist(sys1)
+show_margins(sys1,'nyquist')
+sys2=syslin('c',(3*s+1)/(s*(s+1)*(2*s+1)))//Td=3
+//nyquist(sys2)
+//show_margins(sys2,'nyquist')
+printf("these two plots show that addition of poles increases stability") \ No newline at end of file
diff --git a/104/CH9/EX9.9/9_9a.jpeg b/104/CH9/EX9.9/9_9a.jpeg
new file mode 100755
index 000000000..098639770
--- /dev/null
+++ b/104/CH9/EX9.9/9_9a.jpeg
Binary files differ
diff --git a/104/CH9/EX9.9/9_9b.jpeg b/104/CH9/EX9.9/9_9b.jpeg
new file mode 100755
index 000000000..86feb8a3d
--- /dev/null
+++ b/104/CH9/EX9.9/9_9b.jpeg
Binary files differ