summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Advanced_Engineering_Chemistry__by_Dr._M.R._Senapati/README.txt10
-rw-r--r--Electrical_Measurements_And_Measuring_Instruments_by_N._V._Suryanarayana/README.txt10
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch1.ipynb221
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch10.ipynb1082
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch11.ipynb1123
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch12.ipynb168
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch13.ipynb273
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch2.ipynb768
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch3.ipynb1678
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch4.ipynb441
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch5.ipynb858
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch6.ipynb502
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch7.ipynb491
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch8.ipynb286
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch9.ipynb459
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNip3.pngbin0 -> 22701 bytes
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNipV3.pngbin0 -> 20243 bytes
-rw-r--r--Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/transferChar3.pngbin0 -> 25449 bytes
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/Chapter1_1.ipynb437
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter10_1.ipynb896
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter11_1.ipynb375
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter12_1.ipynb405
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter13.ipynb215
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter2_1.ipynb327
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter4_1.ipynb447
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter5_1.ipynb870
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter6_1.ipynb578
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter7_1.ipynb260
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter8_1.ipynb332
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter9_1.ipynb246
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/charpter_3_2.ipynb289
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/1.JPGbin0 -> 62505 bytes
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/2.JPGbin0 -> 50041 bytes
-rw-r--r--Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/3.JPGbin0 -> 63803 bytes
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter1_.ipynb1324
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter2_1.ipynb681
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter3_1.ipynb624
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter4&5_1.ipynb237
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter6_1.ipynb274
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter7_1.ipynb402
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter8_1.ipynb197
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter9_1.ipynb194
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(1)_1.pngbin0 -> 219544 bytes
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(2)_1.pngbin0 -> 224124 bytes
-rw-r--r--Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(3)_1.pngbin0 -> 231618 bytes
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_1_Circuit_Configuration_for_Linear_Integrated_Ciruits.ipynb607
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_1_Circuit_Configuration_for_Linear_Integrated_Ciruits_1.ipynb607
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_2_Applications_Of_Operational_Amplifier.ipynb871
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_2_Applications_Of_Operational_Amplifier_1.ipynb871
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters.ipynb815
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters_1.ipynb815
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_5_Special_Integrated_Circuits.ipynb468
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_5_Special_Integrated_Circuits_1.ipynb468
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_1Circuit_Configuration_for_Linear_Integrated_Ciruits.pngbin0 -> 62037 bytes
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_2_Applications_Of_Operational_Amplifier.pngbin0 -> 10529 bytes
-rw-r--r--Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters.pngbin0 -> 32905 bytes
-rw-r--r--The_Theory_of_Machines_by_T._Bevan/README.txt10
-rw-r--r--Thermal_Engineering_by_S._l._Somasundaram/README.txt10
-rw-r--r--_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt10
-rw-r--r--sample_notebooks/ebbygeorge/ch1_1.ipynb63
60 files changed, 23595 insertions, 0 deletions
diff --git a/Advanced_Engineering_Chemistry__by_Dr._M.R._Senapati/README.txt b/Advanced_Engineering_Chemistry__by_Dr._M.R._Senapati/README.txt
new file mode 100644
index 00000000..d2e864ee
--- /dev/null
+++ b/Advanced_Engineering_Chemistry__by_Dr._M.R._Senapati/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Shivam Negi
+Course: btech
+College/Institute/Organization: Manipal Institute of Technology, Manipal
+Department/Designation: CSE
+Book Title: Advanced Engineering Chemistry
+Author: Dr. M.R. Senapati
+Publisher: Laxmi Publication, New Delhi
+Year of publication: 2008
+Isbn: 9788131801970 , 8131801977
+Edition: Third Edition \ No newline at end of file
diff --git a/Electrical_Measurements_And_Measuring_Instruments_by_N._V._Suryanarayana/README.txt b/Electrical_Measurements_And_Measuring_Instruments_by_N._V._Suryanarayana/README.txt
new file mode 100644
index 00000000..6fd8a31c
--- /dev/null
+++ b/Electrical_Measurements_And_Measuring_Instruments_by_N._V._Suryanarayana/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Vinesh Saini
+Course: btech
+College/Institute/Organization: Uttarakhand Technical University
+Department/Designation: Assistant Professor
+Book Title: Electrical Measurements And Measuring Instruments
+Author: N. V. Suryanarayana
+Publisher: S. Chand And Co. Ltd., New Delhi
+Year of publication: 2001
+Isbn: 81-7409-213-7
+Edition: 1 \ No newline at end of file
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch1.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch1.ipynb
new file mode 100644
index 00000000..1e8d294a
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch1.ipynb
@@ -0,0 +1,221 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 1 : Semiconductor Physics"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.1: Page No 9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Electon concentration = 4.375e+21 cm**-3\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Electron concentration\n",
+ "V=0.1 # Voltage in volts\n",
+ "I=5e-3 # Current in ampere\n",
+ "l_a=7e8 # Length to cross-sectional area ratio in metre inverse\n",
+ "mu=0.05 # Electron mobility in metre square per volt second\n",
+ "q=1.6e-19 # Charge on an electron in coulombs\n",
+ "n=(l_a*I)/(V*q*mu)# #Electron concentration in inverse metres cube\n",
+ "n=n*1e-6# #Electron concentration in inverse centimetres cube\n",
+ "print \"Electon concentration = %0.3e cm**-3\"%n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.2: Page No 12"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Electic field intensity = 9.20e+06 V/m\n",
+ "Voltage across the bar = 27600.00 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Electric field intensity, Voltage\n",
+ "l=3e-3 # Length of the bar in metres\n",
+ "a=50*10*1e-12 # Cross-sectional area in metres square\n",
+ "I=2e-6 # Current in amperes\n",
+ "rho=2.3e3 # Resistivity in ohm metres\n",
+ "E=I*rho/a # Electric field intensity in volt per metres\n",
+ "V=E*l # Voltage across the bar in volt\n",
+ "print \"Electic field intensity = %0.2e V/m\"%E\n",
+ "print \"Voltage across the bar = %0.2f V\"%V\n",
+ "# ans wrong in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.3: Page No 17"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Electron concentration = 5e+14 cm**-3\n",
+ "Hole concentration = 4.20e+05 cm**-3\n",
+ "Conductivity of Si sample = 0.12 ohm**-1 cm**-1\n",
+ "Voltage across the bar = 0.10 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Electron concentration, Hole concentration, Conductivity, Voltage\n",
+ "\n",
+ "l=3e-3 # Length on Si sample in metres\n",
+ "a=5e-9 # Cross-sectional area of Si sample in metres square\n",
+ "ND=5e20 # Donor concentration in inverse metres cube\n",
+ "I=2e-6 # Current flowing through the bar in amperes\n",
+ "ni=1.45e16 # Intrinsic carrier concentration in inverse metres cube\n",
+ "mu_n=0.15 # Mobility of electrons in metres square per volt second\n",
+ "q=1.6e-19 # Charge on an electron in coulombs\n",
+ "n=ND # Electron concentration in inverese metres cube\n",
+ "p=ni*ni/n # Hole concentration in inverese metres cube\n",
+ "sigma=q*n*mu_n# # Conductivity of Si sample in inverse ohm metres\n",
+ "V=(I*l)/(a*sigma) # Voltage across the bar in volts\n",
+ "n=n*1e-6 # Electron concentration in inverese centimetres cube\n",
+ "p=p*1e-6 # Hole concentration in inverese centimetres cube\n",
+ "sigma=sigma*0.01 # Conductivity of Si sample in inverse ohm centimetres\n",
+ "print \"Electron concentration = %0.e cm**-3\"%n\n",
+ "print \"Hole concentration = %0.2e cm**-3\"%p\n",
+ "print \"Conductivity of Si sample = %0.2f ohm**-1 cm**-1\"%sigma\n",
+ "print \"Voltage across the bar = %0.2f V\"%V"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.4: Page No 25"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Contact difference of potential = 752.67 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "#Contact difference of potential\n",
+ "N=5e22 # Number of acceptor or donor atoms per metres cube of step graded p-n junction\n",
+ "ni=1.45e16 # Intrinsic carrier concentration in inverse metres cube\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "Vo=VT*log(N**2/ni**2) # Contact difference of potential in volts\n",
+ "Vo=Vo*1e3 # Contact difference of potential in milivolts\n",
+ "print \"Contact difference of potential = %0.2f mV\"%Vo"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.7: Page No 28"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Contact difference of potential = 594.03 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Potential barrier\n",
+ "rho_p=0.05 # Resistivity of p side of step-graded junction in ohm metres\n",
+ "rho_n=0.025 # Resistivity of n side of step-graded junction in ohm metres\n",
+ "mu_p=475e-4 # Mobility of holes in metres square per volt second\n",
+ "mu_n=1500e-4 # Mobility of holes in metres square per volt second\n",
+ "ni=1.45e16 # Intrinsic carrier concentration in atoms per metres cube\n",
+ "q=1.6e-19 # Charge on an electron in coulombs\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "NA=1/(q*mu_p*rho_p) # Acceptor concentration in atoms per metres cube\n",
+ "ND=1/(q*mu_n*rho_n) # Donor concentration in atoms per metres cube\n",
+ "Vo=VT*log(NA*ND/ni**2) # Contact difference of potential in volts\n",
+ "Vo=Vo*1e3 # Contact difference of potential in milivolts\n",
+ "print \"Contact difference of potential = %0.2f mV\"%Vo"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch10.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch10.ipynb
new file mode 100644
index 00000000..bf46c812
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch10.ipynb
@@ -0,0 +1,1082 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 10 : Frequency response of amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.1: Page No 450"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEZCAYAAACaWyIJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmYXFWd//H3J4EQ1rAa0CBhGVTyY5NFEIQGRkRNEEdQ\nUQMRkHF5BEeDiMKQ0RHUmWEZtwRcYBgFhQlIBKaDQDMEEYlDJIEBVBZZkiAkIqZZk+/vj3OKXIru\nTlV37fV5PU89fde631q6zr3nfO85igjMzKx7jWp2AGZm1lwuCMzMupwLAjOzLueCwMysy7kgMDPr\nci4IzMy6nAsCqzlJz0ia2Ow4hkvStZKm1vD5+iQdX6vnM6s1FwRNkH8Ylkka0+xYylX7ozXQ9hGx\nYUQ8VPPgGiQi3hURlwBImibplpE+ZX6YtSQXBA2Wz5T3Bp4ADm9qMAOr9gfLP3ANImmtZsfQ6iSN\nbnYMbSki/GjgA/hH4GrgS8CcsnXvAu4G/gI8Cnw2L18ETC5stzbwJLArMBFYBUwD/gg8BXwc2Au4\nC1gOfLOw7zTgVuCbwJ+B/wMOzuu+CrwEPAs8A/x7Xv5W4I68/a+Bfdew/Spguzy9LvBvwEN5/1uA\nsQO8Lz35NZ9CKiQfB47I78n9+XV9obD93sBt+fU9nl/P2oX1hwL35WN+G7gZOL7wHswD/gVYBjwA\nHFbYtw84Hngj8Fx+jc8Ay4rry97TWwrzbwfuzcf+5gDbHwfck4/938DrB/mulD7b44CHgb417Q+c\nCywFns6f/055+UXATGAu6fvVV7bfgJ9x4fV+Ob9nfwF6gc3yurHAf5K+j8vzvq/J68YB38+fz6PA\nV4BRg7zWUcAXgd/nY8wHXld4D0aVfz5l3+dzcgxn5TgmFbbfAugHNs/zk4EFebtbgZ2b/bvQ7EfT\nA+i2R/6ifxj4G+CF0j9NXrcY2C9PjwN2z9OnAJcVtnsP8Ns8XfpH+Q4wJv8IPQ9cCWwOvDb/MByQ\nt58GvAicDIwG3p//+TfO628Cjisca9P8D/Ph/M/6QdIP0CYDbZ+XFQuCbwM3Alvl/fcBxgzwvvTk\nuE7PcZ2Q/7F/BKwP7JT/mbfJ27+ZVBiMArYh/TCenNdtTvohPCKvPym/18cV3oMXSD/2IhWcjxVi\nuamw7bEUfuQHeY+mlbbJx/4L8Hf5dXwmv67jCp/d74A35Ni+BNw6yHel9NleRCpQxw61P/AO0g/o\nRnn+DcCWefqiHNf+pO/JeYWY1/QZ9+Vj7pBjuAk4O6/7e9KJzdj8Xu4ObJjXXQl8N8e+BXA7cOIg\nr/UUUsH1N3l+5xxX6T0YNcjnMy2/v5/KsY8lFT7/XNj+U8C1eXp30v/DXjneY4AHGeA72U2PpgfQ\nTY/8T/hs4R9lAfCZwvqHgRNL/8iF5a8lnZFukOevAKbn6dI/ylaF7Z8EjirMX8HqH8lpFH708rLb\ngY/k6Zt45dnrVOBXZdv/Ejh2oO3zslXAdvkfs58KzrhIBUE/oDy/YX6evQrbzAfeM8j+nwFm5+lj\nKPtxJV0tFX88fldYt14+1msKr6m4bTUFwTHAL8u2f6TwfNeV7TsKWAFsPcBrKn22EwvLBtv/9cBB\npKugt1B25k0qCH5cmF+fdKUzocLP+IuFdZ8ArsvTH2WAs2pgPOlqamxh2dHAjYN8fvcCU4Z4D4Yq\nCB4u2+cQ4PeF+VtZ/f3+LvDlAY59QC3+x9v14TaCxjoWmBsRz+T5y/OykveRqkIeyo2w+wBExOOk\nL/ORkjYGDiOdKRctLUw/O8D8+oX5x8r2fZh0xl4ShenXkn5Ey7d/7SDbF21OOkP7wyDryz0V+T+T\nFDMM8jok7Sjp55IWS3qaVE21WSHmR8ueu3x+ycvBR/TnyQ0qjHMoAx37kcL0NsD5kpZLWk6q8oJU\nDTKYSvZ/bUTcBHyLdBW2VNIsSRvm9VGMKyJWkM76X0v67Nf0GS8pTD/L6vfqElJV0WWSHpP09dyW\nsQ2pCnNxIdaZpCuDgWxN5d+Tco+UzfcB60naO7fJ7Uq6OiHH9blSTDmuCbzy+991XBA0iKR1SdUw\nB+cfr8XA54BdJe0CEBHzI+II0j/LVcBPC09xMfAR4CjSGefiEYRT/qOzDakeF179o/5YXl++fakw\nGawQgHRl8hypSqHWvkuqDtohIsaRqkhK3+fHSf/cAEhScb5KA72+FbyyYN2yMP046UeteOytC+v/\nSKoe2aTwWD8iflVhDEPuHxHfjIg9SVVpO5KqXCBVgxTj2oBU9fJYjnmoz3jwwCJeiogvR8QkUjvD\nZNJV0R9JVZSbFeIcFxE7D/JUjzDw92RF/rteYdmWZdu84jOKiJWk/52j82NOLvjIcX217P3bICJ+\nsqbX2slcEDTOEaRL8TeRzlB2zdO3AMdIWlvShyWNy1/kZ4CVhf2vJNWLnwT8xzCOr8L0aySdlI95\nFKlR9Nq8bimwfWHba4EdJR0taS1JH8jb/3yQ7V8WEauAHwDnSNpK0mhJ+9YobXYD0nvUL+mNpOqK\nYsw7S3pPPjv9FK/+8ajUUmCCpLULyxYAfydpXUk7kNoaiseeJOm9+dgnlR17JvBFSTsBSBqXP4NK\nDbq/pD0lvSXH2k8qhIvfoXdJ2i+//18BbouIx0jVTUN9xvDK78/qhdJBknbO2TrPkOrrV0bEElLD\n9DmSNpQ0StL2kg4Y5HV9D/iKpB2U7CJp04j4E6lAmpq/P8cxyPetzI9JbR0fytMlFwIfz1cLkrS+\npHfngrFruSBonGOAH0TEoxHxRH4sJV3Kfyhv8xHgwVzVcSKp8Q6AiHgOmE2qM51d9txDnZUPtM3t\npMbqP5F+EN4XEcvzuvNJVVDLJJ0XEctIZ3mfI53hTydlMC0baPsBjjsdWEjKSHkKOJvBv3flr2Oo\n1zWd9L79BbgAuKy0fUQ8Sbpy+kaO+U2k9oXnC89b6bFuIGVyLZH0RF52LqmxeSnwQ1LWTPmxv5aP\nvQMp24a8/irg66SqlKdJ7807hnid5We7Q+2/UX4vlpGytJ4kZUaVnufHwJmkz2F30veNiHiKoT/j\n8jiK7994UhXn06QrtD5SdRGk7/wYVmc4Xc7gBfI5pLP4ufm5LiRVKwJ8jHRl8yTpSufWQWJZvTDi\n18BfSVU+1xWW/yY/37dyTL/LcXa1UsNcfQ+SzhbmA49GxJS87NPAJ0lnLNdExKl1D6TNSTqDlFUx\n7C+upGmkxt231SywFidpFKnq4UMRcXOz42kGST8k/f+d0exYrPU06gaVk0lnBRtCupwk3Uy1S0S8\nKGmwBiTLJG1Kyh+vWdcHnUzSoaSc9mdZXU8+VD18pxuwascMGlA1JGkCKRPme6z+Mn6ClIf8IkCu\nB7RBSPoYqZHruoiYt6bt12DAS+kOtC/pno0/Ae8GjoiI54fepaN1y+duw1D3qiFJl5Pu9tuIlPs+\nRdKdwM9IaZDP5eXz6xqImZkNqK5XBJImA09ExJ288tJ0LdJdi/uQLtt/OtD+ZmZWf/VuI3grcLik\nd5EyADaSdAnpxpbZABFxh6RVkjbL2Qsvk+RLWTOzYYiIituF6npFEBFfjIitI2JbUk7vjRExlXSz\n1MGQ7hAl9fPx1CDP0baPM888s+kxdGv87Rx7u8Z/zz3B+PHBz3/envG3+/tffFSr0fcRlCL8AbCd\npIXApTiP16ytPfIIHHYYfOMb8O53Nzsaq1bD+jePlL99c55+EadBmnWEp56Cd7wDPv1pOMandG3J\ndxbXUU9PT7NDGJF2jr+dY4f2iX/FCpg8OV0FTJ++enm7xD+Ydo+/Wg25s3i4JEUrx2fWzVauhCOP\nhA03hIsuglE+rWwZkogqGos99J2ZDcupp8Ly5fCTn7gQaHcuCMysajNnwpw5cNttMKYWfclaU7lq\nyMyq0tsLxx4L8+bBDvUYacJGzFVDZlY3CxfC1Kkwe7YLgU7imj0zq8jixTBlCpx/Puy/f7OjsVpy\nQWBma7RiBRx+OBx/PBx9dLOjsVpzG4GZDWnlSjjqqNVpovLIBi3PbQRmVlOnngrLlsGll7oQ6FQu\nCMxsUMU00XXWaXY0Vi+uGjKzATlNtH25asjMRsxpot3FWUNm9gpOE+0+LgjM7GVOE+1ObiMwM8Bp\nop3EbQRmNiylNNHLLnMh0G1cEJgZs2a5N9Fu5qohsy7nNNHO46ohM6uY00QNnDVk1rWWLHGaqCUu\nCMy6UH9/KgScJmrgNgKzrrNq1SsHnXeGUOepto2gIVcEkkZLulPSnLLln5O0StKmjYjDzFaniV54\noQsBSxrVWHwycA+wYWmBpK2BtwMPNygGs643axZcfbXTRO2V6n5FIGkC8C7ge0Dx/OMc4PP1Pr6Z\nJb29MGMGXHstbOprcCtoRNXQucApwKrSAknvAR6NiLsacHyzrldKE738cth++2ZHY62mrlVDkiYD\nT0TEnZJ68rL1gC+SqoVe3nSw55gxY8bL0z09PfT09NQjVLOO5d5EO19fXx99fX3D3r+uWUOSzgKm\nAi8BY4GNgOuAtwH9ebMJwGPA3hHxRNn+zhoyG4H+fjjwwNSj6BlnNDsaa5Rqs4Yalj4q6UBgekRM\nKVv+ILBHRCwbYB8XBGbD5N5Eu1erdzEx0K+6f+nN6sC9iVqlfEOZWQeaNQvOOSeliTpDqPu0bNXQ\ncLggMKteby9Mm5Z6E3WGUHdq9aohM6ujYm+iLgSsUu50zqxDuDdRGy4XBGYdwL2J2ki4jcCszbk3\nUSvnNgKzLuM0URspFwRmbcy9iVotuGrIrE150HkbjKuGzLrAokUpTfTKK10I2Mg5a8iszSxeDJMn\npzTR/fZrdjTWCVwQmLWRFStST6JOE7VachuBWZtwb6JWKbcRmHUop4lavbggMGsDM2fCnDlOE7X6\ncNWQWYsrpYneeqs7krPKuGrIrIO4N1FrhEGzhiStK2mapMMljZJ0qqRrJJ0vafNGBmnWjUppoued\n595Erb4GrRqSdDnwArA+sAmwCPg5sD+wa0RMrntwrhqyLrViBfT0eNB5G56ajVAmaVFE/D9JawGP\nRsSWhXW/jYhdRx7uGoJzQWBdaOXK1b2JXnyxM4SserVsI3gRICJekrS4bN2q4QRnZmt26qmwfLnT\nRK1xhioIJkj6d0DA6wrTAK+re2RmXaiYJrrOOs2OxrrFUFVD04Bg9Y9/UUTExXWMqxSDq4asa7g3\nUauVmrURtAIXBNYtFi6EQw5JaaLOELKRqlkbgaQ5hdnyK4OIiMOrDGw0MJ/U8DxF0r8Ak0mZSX8A\nPhoRT1fznGadYPFiDzpvzTVU76P/lh8PAM8CFwAXAn/Ny6p1MnAPqVABmAtMytlH9wOnDeM5zdpa\nf39KET3hBPcmas2zxqohSb+JiD3WtGwNzzEBuAj4KvDZiJhStv69wPsi4iNly101ZB3Lg85bvVRb\nNVTJeATrSXr55nZJ2wHrVRnXucApDJ52ehxwbZXPadbWSr2JXnihCwFrrkr6GvoH4CZJD+b5icCJ\nlR5A0mTgiYi4U1LPAOu/BLwQET8eaP8ZM2a8PN3T00NPz6uewqzteNB5q6W+vj76+vqGvX9FWUOS\nxgJvJNXv3xcRz1V8AOksYCrwEjAW2Aj4r4g4Jqeofgw4ZKDndNWQdSKniVq9tXT6qKQDgek5a+gw\nUmP0gRHx5CDbuyCwjuI0UWuEerQR1JJYnTX0TWAD4HpJd0r6ToNjMWuoJUtSmqh7E7VW4xvKzBqg\nvx8OPNC9iVpj1KVqSNLrSI3Eo8ln9RHxP8MNslIuCKwTOE3UGq3mI5RJ+jrwAdLNYCsLq+peEJh1\nglKa6KWXuhCw1lRJ+uh7gTdExPP1Dsas0xTTRN2bqLWqSgqCPwBjABcEZlXo7YUzz0xpoptu2uxo\nzAZXSUHwLLBA0g2sLgwiIk6qX1hm7a046LzvFbBWV0lBcHV+FLkF12wQpd5EnSZq7cLpo2Y15EHn\nrRXUcvD6yyPiKEkLB1gdEbHLcIOslAsCaydOE7VWUcuC4LUR8bikiQOtj4iHhhNgNVwQWDs55RS4\n447USOwMIWummt1HEBGP578P1SAus47mNFFrZ24jMBsh9yZqrabmdxab2eCcJmqdoNG9j5p1DA86\nb51i0CsCSWdW+BwREV+uUTxmbWHFCg86b51jqKqhh/GNY2avsmpVqg7aaSf40peaHY3ZyLmx2KxK\np5wC8+enRmKPN2ytqB7dUE8CDiCNRxDAQ8AtEXH3MGM0a1uzZsGcOfDLX7oQsM4x1A1lU4FPA08B\nvwYeJw1KsxWwN7A5cH5E/GfdgvMVgbWQ3l6YNi2liW6/fbOjMRtcLa8INgEOiYhnBjnQRsC06sIz\na0+lNNErr3QhYJ3HbQRma7B4Mey7L5x9tjOErD3Uo41gXeB4YBIwNi+OiDhueCGatQ+niVo3qOSG\nskuA8cA7gD5gAvDXOsZk1hJWrkzVQZMmOU3UOtsaq4YkLYiI3STdFRG7SFobmBcRb6l7cK4asiaa\nPj2lic6d6wwhay/VVg1VckXwQv77tKSdgY2BLaoMarSkOyXNyfObSrpe0v2S5krauJrnM6u3mTNT\nmujs2S4ErPNVUhBcKGlT4HTSkJX3AN+o8jgn5/1Kp/dfAK6PiB2BG/K8WUvo7YUZM+Daaz3ovHWH\numcNSZoAXAR8FfhsREyRdC9wYEQslbQl0BcRbxxgX1cNWUMtXAiHHJKuBNyRnLWremQNfY50Ji9W\nn9E/DfwmIhZUcIxzgVOAjQrLxkfE0jy9lNQYbdZU7k3UulUl4xHsAewJzCEVBu8GFgIfl3RFRHx9\nsB0lTQaeiIg7JfUMtE1EhKRBT/tnzJjx8nRPTw89PQM+jdmI9PenNNHjj3eaqLWfvr4++vr6hr1/\nJVlDtwDvjIi/5vkNgGuBw0hXBW8aYt+zgKnAS6R7EDYCZgN7AT0RsUTSVsBNrhqyZlm5Eo46yoPO\nW+eoR9bQFqzOHAJ4kVS10w88N9SOEfHFiNg6IrYFPgjcGBFTSY3Ox+bNjgWuqjRgs1o79VRYtgwu\nuMCFgHWnSqqGfgTcLukqUtXQFODHktYnZQJVo3R6/zXgp5KOJ/Vm+v4qn8esJkppoh503rpZRVlD\nkvYC3ppnb42I+XWNavVxXTVkdeNB561T1aNqCFL9/jMRcT7wsKRthxWdWYso9SZ6xRUuBMzWWBBI\nmgF8ntU3fY0B6jYGgVm9OU3U7JUquSJ4L/AeYAVARDwGbFjPoMzqpdSbqNNEzVarpCB4PiJWlWZy\nI7FZ2yn1JrrTTnD66c2Oxqx1VFIQXC5pFrCxpBNJfQN9r75hmdVeKU30wgudJmpWVGnW0KHAoXm2\nNyKur2tUq4/rrCGriVmz4JxzUpqoO5KzTldt1lDFnc5JGke67yAAImLZsCKsggsCqwWniVq3qUen\nc38P/BPwPFBqKwhgu2FFaNZApTTR2bNdCJgNppK+hn4P7BMRTzYmpFcc21cENmyLF8M++6RB5z/0\noWZHY9Y49bih7AHg2eGHZNZ4xUHnXQiYDa2SK4I3kwaWuY3Vnc9FRJxU39B8RWDD495ErdvVvI0A\nuAD4BWkMglW8coAas5Zz6qnw1FNw6aUuBMwqUUlBMDoiPlv3SMxqwL2JmlWvkqqhs4CHSWMIPF9a\n7vRRazVOEzVLan4fgaSHeHVVUERE3dNHXRBYpTzovNlqNW8jiIiJI4rIrM7cm6jZyFRyQ9kY4BPA\nAaQrg5uBmRHxYp1jM1sjDzpvNnKVVA19n1RgXEzKGJoKvBQRJ9Q9OFcN2RBWrYIjj3SaqFm5eqSP\n7hURuxTmb5B0V/WhmdVWqTfRyy5zIWA2EpUUBC9J2iEifg8gaXvgpfqGZTa0WbPg6qtTmuiYMc2O\nxqy9VVIQnALcKOnBPD8R+GjdIjJbg95emDEjpYm6S2mzkat0PIKxwBtIjcX3RcTza9ilJtxGYOUW\nLYKDD3aaqNlQatZGIOmQiLhB0vtIBUDpSXeQFMAyYF5ErBxRxGYVWrIEJk+G885zIWBWS0NVDR1A\nGpZyCgP3LbQZcDrw9qEOkK8mbgbWAcYAP4uI0yTtDXwLWJvU5vDJiLij6ldgXaG/P90rcPzx7k3U\nrNYqHqFswJ2l70fE8RVst15E9EtaC5gHTAe+AnwtInolvRP4fEQcVLafq4bMaaJmVarZeASSpuUf\n7sHWjyH9qK9RRPTnyTHAaGA5sAQYl5dvDDxWyXNZ9ymliV5wgQsBs3oYqmpoA+AOSfcCd5B+uAVs\nCewJvBG4sJKDSBoF/C+wPfDdiLhb0heAeZL+lVQg7TvsV2Edq5gm6t5Ezepj0IIgIr4l6dvAfsD+\n+QGpJ9JvAb+stN4mIlYBu0kaB/RK6iG1L5wUEVdKOgr4AQO0N8yYMePl6Z6eHnp6eio5pHWA3l44\n80yniZqtSV9fH319fcPef1htBJL2Gm7DrqQzSENf/mNEbJSXCfhzRIwr29ZtBF3KvYmaDV89xiwu\nPfEkSf+cB7OfWcV+m0vaOE+vSzrrXwD8XtKBebODgfsrfU7rbKXeRJ0matYYQ95ZLGlb4IPA0aTx\niicCe0bEQ1UcYyvg4txOMAq4JCJ+IelE4NuS1iFdIZxYffjWaUqDzjtN1KxxBq0aknQbKcvncuCn\nEfGApAcjYtuGBeeqoa7iNFGz2qhl1dBSUnrneOA1Iw3MbE1KaaIXXuhCwKyRBi0IIuIIUproQuDL\nkh4ANpH0lkYFZ92jlCY6e7Z7EzVrtIqzhiSNB95Pai/YOiK2rmdg+ZiuGuoCvb0wbVpKE91++2ZH\nY9b+aj54/SAHmVhlg/GwuCDofE4TNau9mhUEko4dZJ9iT6QAERH/UXmIlXNB0NkWL4Z994Wzz/Z4\nw2a1VMuhKrdl4F5HzUasmCbqQsCsuUbU+2i9+YqgM61cmdJEN9rIaaJm9VCPwevNasqDzpu1FhcE\n1lAzZ8KcOe5N1KyVuGrIGqa3F449NqWJ7rBDs6Mx61w1rxqStAevbjR+Gng4Il6qMj7rUgsXwtSp\nKU3UhYBZa6mkaujbwB7AXXl+Z+BuYJykT0REb72Cs85Q6k30/PN9r4BZK6qkG+rHgd0iYo+I2APY\nDXiA1J30N+oZnLW//v6UJnrCCU4TNWtVa2wjkHR3REwaaJmkBRGxW92CcxtBW1u5Eo46yr2JmjVa\nPdJH75b0XeAy0h3F7wfuyeMIvDi8MK0bOE3UrD1UckWwHvBJ0tjFALcC3wGeA9aPiGfqFpyvCNrW\nzJlw7rkpTdTjDZs1Vl06nctn/zvm2fsi4oVhxlcVFwTtqZQmeuut7k3UrBnqkT7aA1wMPJwXvV7S\nsRFx8/BCtE5WTBN1IWDWHippIzgHODQi7gOQtCOpveDN9QzM2o8HnTdrT5Wkj65VKgQAIuJ+3DWF\nlfGg82btq5LG4h8CK4H/JGUNfRgYFRHH1T04txG0BfcmatZaat5YLGks8ClWZw3dAnwnIp4fdpQV\nckHQHqZPh/nzYe5cjzds1goaMlRlo7ggaH1OEzVrPbUcqnLhEPtFROxSQTBjgZuBdYAxwM8i4rS8\n7tOk+xNWAtdExKkD7O+CoIW5N1Gz1lTL9NEpIw0mIp6TdFBE9EtaC5gnaX9gbeBwYJeIeFHSFiM9\nljWWexM16xyDFgQR8VAtDhAR/XlyDDAaWA78I3B2RLyYt/lTLY5ljbF4MUye7N5EzTpFJemjIyJp\nlKQFwFLgpoi4m3SX8gGSfiWpT9Ke9Y7DaqOUJureRM06R93vB4iIVcBuksYBvflO5bWATSJiH0l7\nAT8Fthto/xkzZrw83dPTQ09PT71DtkGsXJmqg3baCU4/vdnRmFlJX18ffX19w96/oVlDks4AngUO\nAb5W6qZC0u+Bt0TEU2Xbu7G4hZTSRHt7Pd6wWSurtrF40KohSRtL+pqkeyUtl7QsT39N0sYVBrN5\naVtJ65IGs7kTuAo4OC/fERhTXghYa5k1Kw06P3u2CwGzTjNUG8FPSQ27PcCmEbEpcBDw57yuElsB\nN+Y2gtuBORFxA/ADYLuconopcMzwwrdG6O2FM8+Ea67xvQJmnWio+wjuj4gdq11XS64aar6FC+GQ\nQ9KVgDOEzNpDzaqGgIclfV7S+MKTbynpVOCPIwnS2oN7EzXrDkMVBB8ANgduzm0Ey4E+YDPScJXW\nwdybqFn3cF9D9ioedN6svdWyaghJb5R0iKQNypYfNtwArfWVBp2/4AIXAmbdYKj00ZOAnwGfBu6W\ndERh9dn1Dsyaw2miZt1nqDuLTwT2iIi/SpoIXCFpYkSc15DIrOFKaaLz5jlN1KybDFUQKCL+CqkD\nutw1xH9J2oY0Upl1EPcmata9hmojeELSbqWZXChMJmUNrXEsAmsfpTRR9yZq1p2GuqFsa+DFiFhS\ntlzAfhExr+7BOWuo7lasgJ6elCp6xhnNjsbMasFDVVrFnCZq1plqOUKZdbhSmuill7oQMOtmLgi6\nVClN9LbbnCZq1u1cNdSFPOi8WWdz1ZANyWmiZlau7mMWW+twb6JmNhAXBF3CvYma2WDcRtAFnCZq\n1l3cRmCvUkoTvewyFwJm9mouCDrczJmr00THjGl2NGbWilw11MGcJmrWnVw1ZIDTRM2scs4a6kDu\nTdTMquGCoMMU00SPPrrZ0ZhZO6h7QSBprKTbJS2QdI+ks8vWf07SKkkeE2uEVq1K1UE77QSnn97s\naMysXdS9jSAinpN0UET0S1oLmCdp/4iYl8c8eDvwcL3j6AZOEzWz4WhI1VBE9OfJMcBoYFmePwf4\nfCNi6HSzZsHVV6fGYaeJmlk1GlIQSBolaQGwFLgpIu6R9B7g0Yi4qxExdLLSoPPXXONB582seg1J\nH42IVcBuksYBvZLeBZwGHFrYbMDKjBkzZrw83dPTQ09PT/0CbUNOEzWzvr4++vr6hr1/w28ok3QG\nEMCngVKV0QTgMWDviHiisK1vKBvC4sWw775w1lnuSM7MVqv2hrJGZA1tLmnjPL0uqXH4togYHxHb\nRsS2wKPAm4uFgA3NvYmaWa00ompoK+BiSaNIBc8lEXFD2TY+7a/CypVOEzWz2nFfQ21o+nS44w6Y\nO9fjDZub1GK6AAAJ8klEQVTZq7mvoQ7nQefNrNZ8RdBG3JuomVXCVwQdymmiZlYv7nSuDSxZ4t5E\nzax+XBC0uP7+VAi4N1Ezqxe3EbSwVavgyCM96LyZVcdtBB3EvYmaWSO4IGhRM2em3kQ96LyZ1Zur\nhlqQ00TNbCRcNdTmnCZqZo3mrKEWsngxTJ4M553nNFEzaxwXBC2i1JvoCSe4N1Ezayy3EbSAlSvh\nqKOcJmpmteE2gjZUShO99FIXAmbWeC4Imsy9iZpZs7lqqInmzoVjjnGaqJnVlquG2sSiRfCRjzhN\n1Myaz1lDTbBkSUoTdW+iZtYKXBA0mHsTNbNW4zaCBnJvombWCG4jaGFOEzWzVuSCoEFmzVrdm6jT\nRM2sldS9akjSWOBmYB1gDPCziDhN0r8Ak4EXgD8AH42Ip8v27YiqIfcmamaNVG3VUN0biyPiOeCg\niNgN2AU4SNL+wFxgUkTsCtwPnFbvWBqtr6/v5d5Er7ii/QqBvr6+ZocwbO0cOzj+Zmv3+KvVkKyh\niOjPk2OA0cCyiLg+Ilbl5bcDExoRSyPNmdPHlCnt25toO/8ztHPs4Pibrd3jr1ZDCgJJoyQtAJYC\nN0XEPWWbHAdc24hYGmXFitQofPzx7k3UzFpbQxqL85n/bpLGAb2SeiKiD0DSl4AXIuLHA+07ZUoj\nIqy9P/4RttgCTj+92ZGYmQ2t4fcRSDoDeDYi/lXSNOBjwCG5LaF82/ZvKTYza4JqGosbkTW0OfBS\nRPxZ0rpAL/BPwNrAvwEHRsSTdQ3CzMwG1Yiqoa2AiyWNIrVJXBIRN0j6Hanx+Hqlu6tui4hPNiAe\nMzMraOkuJszMrP5astM5SYdJulfS7ySd2ux41kTSDyQtlbSwsGxTSddLul/SXEkbNzPGoUjaWtJN\nku6WtEjSSXl5W7wGSWMl3S5pgaR7JJ2dl7dF/ACSRku6U9KcPN9OsT8k6a4c/6/zsnaKf2NJV0j6\nv/z9eUu7xC/pDfl9Lz2elnRStfG3XEEgaTTwLeAwYCfgaElvam5Ua/RDUrxFXwCuj4gdgRvyfKt6\nEfiHiJgE7AN8Kr/nbfEahrhpsS3iz04G7gFKl+jtFHsAPRGxe0TsnZe1U/znA9dGxJtI3597aZP4\nI+K+/L7vDuwB9ANXUm38EdFSD2Bf4L8L818AvtDsuCqIeyKwsDB/LzA+T28J3NvsGKt4LVcBf9uO\nrwFYD7gDmNQu8ZNupvwFcBAwp92+P8CDwGZly9oifmAc8MAAy9si/rKYDwVuGU78LXdFALwOeKQw\n/2he1m7GR8TSPL0UGN/MYColaSKwO+lu77Z5DQPctHg37RP/ucApwKrCsnaJHdIVwS8kzZf0sbys\nXeLfFviTpB9K+l9JF0pan/aJv+iDwKV5uqr4W7Eg6LjW60jFcsu/LkkbAP8FnBwRzxTXtfpriIhV\nkaqGJgAHSDqobH1Lxi9pMvBERNwJDJj33aqxF+wXqWrinaRqxbcVV7Z4/GsBbwa+ExFvBlZQVo3S\n4vEDIGkMMAW4vHxdJfG3YkHwGLB1YX5r0lVBu1kqaUsASVsBTzQ5niFJWptUCFwSEVflxW31GgAi\n9WB7Dam+tB3ifytwuKQHSWdzB0u6hPaIHYCIWJz//olUP7037RP/o8CjEXFHnr+CVDAsaZP4S94J\n/CZ/BlDl+9+KBcF84G8kTcyl3AeAq5sc03BcDRybp48l1bu3JKUbOb4P3BMR5xVWtcVrkLR5KSsi\n37T4duBO2iD+iPhiRGwdEduSLu1vjIiptEHsAJLWk7Rhnl6fVE+9kDaJPyKWAI9I2jEv+lvgbmAO\nbRB/wdGsrhaCat//ZjdwDNLo8U7gPuD3wGnNjqeCeC8FHieNrfAI8FFgU1ID4P2kLrc3bnacQ8S/\nP6l+egHpB/ROUhZUW7wGYGfgf3P8dwGn5OVtEX/hdRwIXN1OsZPq2Bfkx6LS/2u7xJ9j3ZWUYPBb\nYDapAbmd4l8feBLYsLCsqvh9Q5mZWZdrxaohMzNrIBcEZmZdzgWBmVmXc0FgZtblXBCYmXU5FwRm\nZl3OBYFZBST9RNL2I9h/YrGb8rxsfr6je6SxrSPpf/LgT2ZV8xfHbA0k7QCsHxF/GGDdsP6HJG0L\nPBYRL440voh4HrgFOGKkz2XdyQWBtTRJn5W0MD9OlrSN0qBFP5R0n6QfSTpU0q15EI698n7rKw0Y\ndHvuVfLwvHw9ST9VGoRntqRfSdojr/uOpDuUBueZUQjjgxS6OZH0V0n/mns73VfSGZJ+nWOcVdhu\nD0m/zduVD8N6GHBd7jX1orzvXZI+k/fdXtJ1+arhfyS9IS8fL+lKpUF4FkjaNz/f1aRuBsyq1+zb\no/3wY7AHqeO4u4B1SbfRLwJ2Iw2kM4nUW+d84Pt5+8OBK/P0WcCH8/TGpC5L1gOmA9/Nyyfl53pz\nnt8k/x0N3ATsnOevK22T51cBRxbmNylM/wcwOU/fBeyfp7/BK8eruIo0hsUewNzC8o3y3xuAHfL0\nW4Ab8vRPgJPy9KjC9uuQrjCa/rn50X6PRgxebzZc+wOzI+JZAEmzgbcBD0YabwBJd5P6VIFUUEzM\n04cCUyRNz/PrAK8H9gPOA4iIuyXdVTjeB3J/+msBWwFvInWgtg2wuLDdSlJPrSUHSzqFVNBsCiyS\nNA8YFxHz8jaXkPrQKnUZPCEiHpL0NLCdpH8n9Zo6N3cHvi9weeoPEIAx+e9BwEdy/KuAv+Tp5/PV\nxdhII7aZVcwFgbWyYOA++p8vTK8idfZXmi5+p/8uIn5X3DH/sL7qOXOd/eeAPSPiaUk/BMYWNylM\nPxcRkfcbC3wb2CMiHpN0Zt6vvBOv4v5vI9XpExHLJe1Cqir6OPB+4DPAnyP18T+QAcctyMvdeZhV\nzW0E1spuAY6QtG7u4vi9eVkleoGTSjOSSj+qt5J+bJG0E6nnUoCNSIOS/EXSePLZe/Yw6QphIKXC\n4ql8Jn8UvDwuwp8l7ZfXf7iwz2Gk6iYkbQasFRGzgTOA3SMNCvSgpCPzNsqFBaQqo0/k5aMlbZSn\n1wFWRmo4NquKCwJrWZFG7boI+DXwK+BCYDmvPuuNAaa/AqydG2AXAf+Ul38H2CJXKX2F1Pf80xHx\nW1L32/cCPwLmFZ5zHrDnQMeLiD/nuBYB/00a4rPko8C3Jd1Ztt+BwM15+nXATXmbS4DT8vIPA8fn\nhuZFpPYPSIPcH5SrtOaTqq8gDS96G2bD4G6oravkdM+1c5369sD1wI4R8dIQ+2wHfDMi3l2D408A\nZtXiucqe9yzgjoi4spbPa93BbQTWbdYHbsw3cgn4xFCFAEBEPCDpGUnbxwD3ElQjIh4Fal0IrENq\nWP9SLZ/XuoevCMzMupzbCMzMupwLAjOzLueCwMysy7kgMDPrci4IzMy6nAsCM7Mu9/8BhexBIA6Y\nffgAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fec68513050>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fec4ed1af10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Asymptotic magnitude and phase response curves\n",
+ "from scipy import log10\n",
+ "w=range(0,70)\n",
+ "# Asymptotic magnitude response curve\n",
+ "a=[]\n",
+ "b=[]\n",
+ "c=[]\n",
+ "for i in range(0,len(w)):\n",
+ " a.append(32)\n",
+ " if w[i]<10:\n",
+ " b.append(0)\n",
+ " c.append(0)\n",
+ " elif w[i]<50:\n",
+ " b.append(14*(w[i]-10)/40)\n",
+ " c.append(0)\n",
+ " else:\n",
+ " b.append(20*log10(w[i]/10))\n",
+ " c.append(-20*log10(w[i]/50))\n",
+ " \n",
+ "\n",
+ "A=[]\n",
+ "from numpy import nditer\n",
+ "import numpy as np\n",
+ "for x,y,z in nditer([a,b,c]):\n",
+ " A.append(x+y+z)\n",
+ "#A=a+b+c#\n",
+ "\n",
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "plot(w,A)\n",
+ "title(\"Asymptotic magnitude response curve\")\n",
+ "xlabel(\"omega(rad/sec)\")\n",
+ "ylabel(\"20 log |A(jomega)| in dB\")\n",
+ "show()\n",
+ "# Asymptotic phase response curve\n",
+ "w=range(0,600)\n",
+ "theta1=[] \n",
+ "theta2=[] \n",
+ "for i in range(0,len(w)):\n",
+ " if w[i]<1:\n",
+ " theta1.append(0)\n",
+ " theta2.append(0)\n",
+ " elif w[i]<5:\n",
+ " theta1.append(31.45*(w[i]-1)/4)\n",
+ " theta2.append(0)\n",
+ " elif w[i]<100:\n",
+ " theta1.append(45*log10(w[i]/10))\n",
+ " theta2.append(-45*log10(w[i]/50))\n",
+ " elif w[i]<500:\n",
+ " theta1.append(90)\n",
+ " theta2.append(-58.55-31.45*(w[i]-100)/400)\n",
+ " else:\n",
+ " theta1.append(90)\n",
+ " theta2.append(-90)\n",
+ "\n",
+ "theta=[]\n",
+ "for x,y in nditer([theta1,theta2]):\n",
+ " theta.append(x+y)\n",
+ "\n",
+ "plot(w,theta)#\n",
+ "title(\"Asymptotic phase curve response\")\n",
+ "xlabel(\"omega(rad/sec)\")\n",
+ "ylabel(\"theta(omega)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.2: Page No 453"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fec4f071710>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7fec4eb32e50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Bode's plots\n",
+ "from numpy import arange\n",
+ "w=arange(0,8,0.1)\n",
+ "# Asymptotic magnitude response curve\n",
+ "a=[]\n",
+ "b=[]\n",
+ "c=[]\n",
+ "d=[]\n",
+ "e=[]\n",
+ "for i in range(0,len(w)):\n",
+ " a.append(40)\n",
+ " if w[i]<1.3:\n",
+ " b.append(20*w[i])\n",
+ " c.append(0)\n",
+ " d.append(0)\n",
+ " e.append(0)\n",
+ " elif w[i]<3:\n",
+ " b.append(20*w[i])\n",
+ " c.append(20*(w[i]-1.3))\n",
+ " d.append(0)\n",
+ " e.append(0)\n",
+ " elif w[i]<6:\n",
+ " b.append(20*w[i])\n",
+ " c.append(20*(w[i]-1.3))\n",
+ " d.append(-20*(w[i]-3))\n",
+ " e.append(0)\n",
+ " else:\n",
+ " b.append(20*w[i])\n",
+ " c.append(20*(w[i]-1.3))\n",
+ " d.append(-20*(w[i]-3))\n",
+ " e.append(-20*(w[i]-6))\n",
+ " \n",
+ "\n",
+ "A=[]\n",
+ "from numpy import nditer\n",
+ "for m,n,o,p,q in nditer([a, b, c, d, e]):\n",
+ " A.append(m+n+o+p+q)\n",
+ "\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, show, xlabel, ylabel\n",
+ "plot(w,A)\n",
+ "title(\"Amplitude (Gain) |A(j omega)| in dB\")\n",
+ "xlabel(\"log omega\")\n",
+ "ylabel(\"|A(j omega)| dB\")\n",
+ "show()\n",
+ "# Asymptotic phase response curve\n",
+ "\n",
+ "thetab=[]\n",
+ "thetac=[]\n",
+ "thetad=[]\n",
+ "thetae=[]\n",
+ "for i in range(0,len(w)):\n",
+ " thetab.append(90)\n",
+ " if w[i]<0.3:\n",
+ " thetac.append(0)\n",
+ " thetad.append(0)\n",
+ " thetae.append(0)\n",
+ " elif w[i]<2:\n",
+ " thetac.append(45*(w[i]-0.3))\n",
+ " thetad.append(0)\n",
+ " thetae.append(0)\n",
+ " elif w[i]<2.3:\n",
+ " thetac.append(45*(w[i]-0.3))\n",
+ " thetad.append(-45*(w[i]-2))\n",
+ " thetae.append(0)\n",
+ " elif w[i]<4:\n",
+ " thetac.append(90)\n",
+ " thetad.append(-45*(w[i]-2))\n",
+ " thetae.append(0)\n",
+ " elif w[i]<5:\n",
+ " thetac.append(90)\n",
+ " thetad.append(-90)\n",
+ " thetae.append(0)\n",
+ " elif w[i]<7:\n",
+ " thetac.append(90)\n",
+ " thetad.append(-90)\n",
+ " thetae.append(-45*(w[i]-5))\n",
+ " else:\n",
+ " thetac.append(90)\n",
+ " thetad.append(-90)\n",
+ " thetae.append(-90)\n",
+ "theta =[] \n",
+ "for m,n,o,p in nditer([thetab, thetac, thetad, thetae]):\n",
+ " theta.append(m+n+o+p)\n",
+ "\n",
+ "plot(w,theta)#\n",
+ "title(\"Phase theta(omega) in degrees\")\n",
+ "xlabel(\"log10 omega\")\n",
+ "ylabel(\"theta(omega)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.3: Page No 461"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CS = 18.57 µF \n",
+ "Here at f = 0 Hz, CS has infinite reactance.\n",
+ "Therefore, zero frequency fzero = 0 Hz here, i.e. the voltage transfer function is zero at DC.\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "#CS, Zero frequency\n",
+ "\n",
+ "gm=1e-3# # in mho\n",
+ "fL=10# # in hertz\n",
+ "# From Fig. 10.10\n",
+ "RS=6e3# # in ohms\n",
+ "I=RS/(1+RS*gm)# # Impedance seen by CS in ohms\n",
+ "CS=1/(2*pi*fL*I)# # in farads\n",
+ "CS=CS*1e6# # in micro-farads\n",
+ "print \"CS = %0.2f µF \"%CS\n",
+ "print \"Here at f = 0 Hz, CS has infinite reactance.\"\n",
+ "print \"Therefore, zero frequency fzero = 0 Hz here, i.e. the voltage transfer function is zero at DC.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.4: Page No 475"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "fT = 400.50 MHz \n",
+ "fb = 2.50 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "#fT, fb\n",
+ "\n",
+ "b_o=160#\n",
+ "f=50# # in Mega-hertz\n",
+ "b_jw=8#\n",
+ "wb=sqrt((2*pi*f)**2*b_jw**2/(b_o**2-b_jw**2))# # in Mega-rad/sec\n",
+ "fb=wb/(2*pi)# # in Mega-hertz\n",
+ "fT=fb*b_o# # in Mega-hertz\n",
+ "print \"fT = %0.2f MHz \"%fT\n",
+ "print \"fb = %0.2f MHz \"%fb"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.5: Page No 477"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Cπ = 24.38 pF \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Cπ\n",
+ "\n",
+ "IC=1e-3# # in amperes\n",
+ "b_o=120#\n",
+ "b_jw=10#\n",
+ "f=25e6# # in hertz\n",
+ "C_mu=1e-12# # in farads\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "wb=sqrt((2*pi*f)**2*b_jw**2/(b_o**2-b_jw**2))# # in rad/sec\n",
+ "wT=wb*b_o# # in hertz\n",
+ "gm=IC/VT# # in mho\n",
+ "C_pi=gm/wT-C_mu# # in farads\n",
+ "C_pi=C_pi*1e12# # in pico-farads\n",
+ "print \"Cπ = %0.2f pF \"%C_pi"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.7: Page No 490"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Midband gain = -43.80 \n",
+ "p2/p1 = 49.49 \n",
+ "Since p2/p1 >> 8, therefore dominant-pole approximation holds good.\n",
+ "Upper half-power frequency = 77.05 M rad/sec \n",
+ "Part (b)\n",
+ "Zi = (26.1359763216-284.590647679j) Ω \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Midband gain, Upper half-power frequency\n",
+ "# (b) Zi\n",
+ "\n",
+ "ICQ=1e-3# # in amperes\n",
+ "RS=300# # in ohms\n",
+ "RC=1.2e3# # in ohms\n",
+ "bta=125#\n",
+ "fT=300e6# # in hertz\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "gm=ICQ/VT# # in mho\n",
+ "r_pi=bta/gm# # in ohms\n",
+ "# To find C_pi\n",
+ "C_pi=gm/(2*pi*fT)-C_mu# # in farads\n",
+ "AVo=-bta*RC/(RS+r_pi)# # Midband gain\n",
+ "print \"Midband gain = %0.2f \"%AVo\n",
+ "R_pi0=RS*r_pi/(RS+r_pi)#\n",
+ "a1=R_pi0*C_pi+(R_pi0+RC*(1+gm*R_pi0))*C_mu# # in seconds\n",
+ "a2=R_pi0*RC*C_pi*C_mu# # in seconds\n",
+ "p1=1/a1# # in rad/sec\n",
+ "p2=a1/a2# # in rad/sec\n",
+ "print \"p2/p1 = %0.2f \"%(p2/p1)\n",
+ "print \"Since p2/p1 >> 8, therefore dominant-pole approximation holds good.\"\n",
+ "wH=p1*1e-6# # in M rad/sec\n",
+ "print \"Upper half-power frequency = %0.2f M rad/sec \"%wH\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "CM=C_pi+C_mu*(1+gm*RC)# # in farads\n",
+ "Zi=r_pi/(1+1J*wH*1e6*CM*r_pi)# # in ohms\n",
+ "print \"Zi =\",Zi,\"Ω \""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.12: Page No 530"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "fH = 2.59 MHz \n",
+ "Part (b)\n",
+ "Approximate location of the closest non-dominant pole = 28.67 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Approximate value of fH\n",
+ "# (b) Approximate location of the closest non-dominant pole\n",
+ "\n",
+ "RS=600# # in ohms\n",
+ "RC1=1.5e3# # in ohms\n",
+ "RC2=600# # in ohms\n",
+ "r_pi1=1.2e3# # in ohms\n",
+ "gm1=0.1# # in mho\n",
+ "C1=24.5e-12# # in farads\n",
+ "C_pi1=C1# # in farads\n",
+ "C2=0.5e-12# # in farads\n",
+ "C_mu1=C2# # in farads\n",
+ "r_pi2=2.4e3# # in ohms\n",
+ "gm2=0.05# # in mho\n",
+ "C3=19.5e-12# # in farads\n",
+ "C_pi2=C3# # in farads\n",
+ "C4=0.5e-12# # in farads\n",
+ "C_mu2=C4# # in farads\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "R11_0=parallel(RS,r_pi1)# # in ohms\n",
+ "R33_0=parallel(RC1,r_pi2)# # in ohms\n",
+ "R22_0=R11_0*(1+gm1*R33_0)+R33_0# # in ohms\n",
+ "R44_0=R33_0*(1+gm2*RC2)+RC2# # in ohms\n",
+ "a1=R11_0*C1+R22_0*C2+R33_0*C3+R44_0*C4# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"fH = %0.2f MHz \"%fH\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "R33_1=R33_0# # in ohms\n",
+ "R44_1=R44_0# # in ohms\n",
+ "# From Fig. 10.61(a)\n",
+ "R22_1=R33_0# # in ohms\n",
+ "# From Fig. 10.61(b)\n",
+ "R44_3=RC2# # in ohms\n",
+ "# From Fig. 10.61(c)\n",
+ "R33_2=parallel(parallel(r_pi2,RC2),parallel(1/gm1,R11_0))#\n",
+ "R44_2=R33_2*(1+gm2*RC2)+RC2# # in ohms\n",
+ "a2=R11_0*C1*R22_1*C2+R11_0*C1*R33_1*C3+R11_0*C1*R44_1*C4+R22_0*C2*R33_2*C3+R22_0*C2*R44_2*C4+R33_0*C3*R44_3*C4# # in seconds\n",
+ "p2=a1/a2#\n",
+ "f2=p2/(2*pi)# # in hertz\n",
+ "f2=f2*1e-6# # in Mega-hertz\n",
+ "print \"Approximate location of the closest non-dominant pole = %0.2f MHz \"%f2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.13: Page No 537"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "fH for cascode amplifier = 24.51 MHz \n",
+ "Part (b)\n",
+ "fH for common-emitter stage = 10.11 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) fH for cascode amplifier\n",
+ "# (b) fH for common -emitter stage\n",
+ "\n",
+ "RC1=1.5e3# # in ohms\n",
+ "RC2=RC1#\n",
+ "RS=300# # in ohms\n",
+ "r_pi=2e3# # in ohms\n",
+ "gm=0.05# # in mho\n",
+ "bta=100#\n",
+ "C_pi=19.5e-12# # in farads\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "R_pi1=RS*r_pi/(RS+r_pi)# # in ohma\n",
+ "Ri2=r_pi/(1+bta)# # in ohms\n",
+ "RL1=RC1*Ri2/(RC1+Ri2)# # in ohms\n",
+ "a11=R_pi1*C_pi+(R_pi1*(1+gm*RL1)+RL1)*C_mu# # in seconds\n",
+ "a12=C_pi/gm+C_mu*RC2# # in seconds\n",
+ "a1=a11+a12# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"fH for cascode amplifier = %0.2f MHz \"%fH\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "a1=R_pi1*C_pi+(R_pi1*(1+gm*RC1)+RC1)*C_mu# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"fH for common-emitter stage = %0.2f MHz \"%fH"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.15: Page No 548"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "CB = 3.98 µF \n",
+ "CE = 406.11 µF \n",
+ "Part (b)\n",
+ "fE = 0.26 Hz \n"
+ ]
+ }
+ ],
+ "source": [
+ "## (a) CB and CL\n",
+ "# (b) Zero introduced by CE\n",
+ "\n",
+ "RE=1.5e3# # in ohms\n",
+ "Rs=600# # in ohms\n",
+ "bta=100#\n",
+ "r_pi=1e3# # in ohms\n",
+ "fL=50# # in hertz\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "fLB=fL/2# # in hertz\n",
+ "fLE=fLB# # in hertz\n",
+ "CB=1/(2*pi*fLB*(Rs+r_pi))# # in farads\n",
+ "CB=CB*1e6# # in micro-farads\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)\n",
+ " return c\n",
+ "CE=1/(2*pi*fLE*parallel(RE,(Rs+r_pi)/(1+bta)))# # in farads\n",
+ "CE=CE*1e6# # in micro-farads\n",
+ "print \"CB = %0.2f µF \"%CB\n",
+ "print \"CE = %0.2f µF \"%CE\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "fE=1e6/(2*pi*RE*CE)# # in hertz\n",
+ "print \"fE = %0.2f Hz \"%fE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.16: Page No 549"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Since p2/pi >> 8, therefore dominant-pole approximation holds good.\n",
+ "AVo = -93.75 \n",
+ "fH = 4.38 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AVo, fH\n",
+ "\n",
+ "RC=1.5e3# # in ohms\n",
+ "Rs=0.6e3# # in ohms\n",
+ "# From Fig. 10.69\n",
+ "C_pi=19.5e-12# # in farads\n",
+ "r_pi=1e3# # in ohms\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "gm=0.1# # in mho\n",
+ "bta=r_pi*gm#\n",
+ "AVo=-bta*RC/(Rs+r_pi)#\n",
+ "R_pi=Rs*r_pi/(Rs+r_pi)# # in ohms\n",
+ "R_mu=R_pi+(1+gm*R_pi)*RC# # in ohms\n",
+ "a1=R_pi*C_pi+R_mu*C_mu# # in seconds\n",
+ "a2=R_pi*C_pi*R_mu*C_mu# # in seconds\n",
+ "p2_pi=a1**2/a2# # p2/p1\n",
+ "print \"Since p2/pi >> 8, therefore dominant-pole approximation holds good.\"\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"AVo = %0.2f \"%AVo\n",
+ "print \"fH = %0.2f MHz \"%fH"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.17: Page No 550"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "a1 = 5.22 ns \n",
+ "a2 = 1.53e-21 sec square \n"
+ ]
+ }
+ ],
+ "source": [
+ "#(b) a1, a2\n",
+ "\n",
+ "RS=0.3e3# # in ohms\n",
+ "r_pi=2e3# # in ohms\n",
+ "RC=0.6# # in ohms\n",
+ "gm=0.1e-3# # in mho\n",
+ "C_pi=19.5e-12# # in farads\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "R_pi=RS*r_pi/(RS+r_pi)# # in ohms\n",
+ "a1=C_pi*R_pi+C_mu*(R_pi+RC+gm*R_pi*RC)# # in seconds\n",
+ "a1=a1*1e9# # in nano-seconds\n",
+ "a2=C_pi*R_pi*C_mu*RC# # in seconds square\n",
+ "print \"a1 = %0.2f ns \"%a1\n",
+ "print \"a2 = %0.2e sec square \"%a2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.18: Page No 552"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Upper 3 dB frequency = 2.00 MHz \n",
+ "Bandwidth:\n",
+ "Stage 1 only = 3.99 MHz \n",
+ "Stage 2 only = 3.99 MHz \n",
+ "Cascade = 2.00 MHz \n",
+ "Gain:\n",
+ "Stage 1 only = 157.50 \n",
+ "Stage 2 only = 19.53 \n",
+ "Cascade = 3076.74 \n",
+ "Gain-bandwidth product:\n",
+ "Stage 1 only = 628781932.47 MHz \n",
+ "Stage 2 only = 78003472.90 MHz \n",
+ "Cascade = 6142182172.51 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Upper 3 dB frequency\n",
+ "\n",
+ "r_pi1=1.4e3# # in ohms\n",
+ "r_pi2=2.8e3# # in ohms\n",
+ "gm1=0.15# # in mho\n",
+ "gm2=0.05# # in mho\n",
+ "C_pi1=20e-12# # in farads\n",
+ "C_pi2=25e-12# # in farads\n",
+ "C_mu1=0.5e-12# # in farads\n",
+ "C_mu2=C_mu1 # in farads\n",
+ "bta1=gm1*r_pi1#\n",
+ "bta2=gm2*r_pi2#\n",
+ "# From Fig. 10.71\n",
+ "RS=600# # in ohms\n",
+ "RC1=1.5e3# # in ohms\n",
+ "RL2=600# # in ohms\n",
+ "# From ac model in Fig. 10.72\n",
+ "R_pi1=RS*r_pi1/(RS+r_pi1)# # in ohms\n",
+ "RL1=RC1*r_pi2/(RC1+r_pi2)# # in ohms\n",
+ "R_mu1=R_pi1+RL1+gm1*RL1*R_pi1# # in ohms\n",
+ "R_pi2=RL1# # in ohms\n",
+ "R_mu2=R_pi2+RL2+gm2*RL2*R_pi2# # in ohms\n",
+ "a11=C_pi1*R_pi1+C_mu1*R_mu1# # in seconds\n",
+ "a12=C_pi2*R_pi2+C_mu2*R_mu2# # in seconds\n",
+ "a1=a11+a12# # in seconds\n",
+ "fH1=1/(2*pi*a11)# # in hertz\n",
+ "fH2=1/(2*pi*a12)# # in hertz\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH1=fH1*1e-6# # in Mega-hertz\n",
+ "fH2=fH2*1e-6# # in Mega-hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "AV1=-bta1*RC1/(RS+r_pi1)# # Gain of first stage\n",
+ "AV2=-bta2*RL2/(RC1+r_pi2)# # Gain of second stage\n",
+ "AV=AV1*AV2# # Gain of cascade\n",
+ "print \"Upper 3 dB frequency = %0.2f MHz \"%fH\n",
+ "print \"Bandwidth:\"\n",
+ "print \"Stage 1 only = %0.2f MHz \"%fH1\n",
+ "print \"Stage 2 only = %0.2f MHz \"%fH2\n",
+ "print \"Cascade = %0.2f MHz \"%fH\n",
+ "print \"Gain:\"\n",
+ "print \"Stage 1 only = %0.2f \"%abs(AV1)\n",
+ "print \"Stage 2 only = %0.2f \"%abs(AV2)\n",
+ "print \"Cascade = %0.2f \"%AV\n",
+ "print \"Gain-bandwidth product:\"\n",
+ "print \"Stage 1 only = %0.2f MHz \"%(fH1*abs(AV1)*1e6)\n",
+ "print \"Stage 2 only = %0.2f MHz \"%(fH2*abs(AV2)*1e6)\n",
+ "print \"Cascade = %0.2f MHz \"%(fH*AV*1e6)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.19: Page No 554"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Approximate value of fH 435.86 kHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Approximate value of fH\n",
+ "\n",
+ "btaf=150#\n",
+ "VA=120# # in volts\n",
+ "fT=400e6# # in hertz\n",
+ "C_mu=0.5e-12# # in farads\n",
+ "ICQ=100e-6# # in amperes\n",
+ "RS=50e3# # in ohms\n",
+ "RC=250e3# # in ohms\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "gm=ICQ/VT# # in mho\n",
+ "r_pi=btaf/gm# # in ohms\n",
+ "ro=VA/ICQ# # in ohms\n",
+ "C_pi=btaf/(2*pi*fT*r_pi)-C_mu# # in farads\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "# From AC model in Fig. 10.73\n",
+ "Ri=r_pi+(1+btaf)*parallel(ro,r_pi)# # in ohms\n",
+ "R_mu1=parallel(RS,Ri)# # in ohms\n",
+ "# From Fig. 10.75(b)\n",
+ "R=(50+36.36)/(1+145)# # in ohms\n",
+ "R_pi1=parallel(r_pi,R)# # in ohms\n",
+ "R_pi2=parallel(r_pi,parallel((RS+r_pi)/(1+btaf),ro))# # in ohms\n",
+ "RL=parallel(ro,RC)# # in ohms\n",
+ "R_mu2=R_pi2*(1+gm*RL)+RL# # in ohms\n",
+ "a1=R_mu1*C_mu+R_pi1*C_pi+R_pi2*C_pi+R_mu2*C_mu# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-3# # in kilo-hertz\n",
+ "print \"Approximate value of fH %0.2f kHz \"%fH"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.20: Page No 556"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Low 3 dB frequency = 504.72 Hz \n",
+ "Part (b)\n",
+ "High 3 dB frequency = 12.27 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Low 3 dB frequency\n",
+ "# (b) High 3 dB frequency\n",
+ "\n",
+ "# From Fig. 10.76\n",
+ "C_gd1=2e-12# # in farads\n",
+ "C_gs1=5e-12# # in farads\n",
+ "gm1=10e-3# # in mho\n",
+ "C1=1e-6# # in farads\n",
+ "C_gd2=2e-12# # in farads\n",
+ "C_gs2=5e-12# # in farads\n",
+ "gm2=10e-3# # in mho\n",
+ "C2=10e-6# # in farads\n",
+ "# From low-frequency equivalent cicuit in Fig. 10.77\n",
+ "RS=0.2e3# # in ohms\n",
+ "RG1=50e3# # in ohms\n",
+ "RS1=0.25e3# # in ohms\n",
+ "RS2=0.15e3# # in ohms\n",
+ "RD2=5e3# # in ohms\n",
+ "R=10e3# # in ohms\n",
+ "C3=5.3e-6# # in farads\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# From low-frequency equivalent cicuit in Fig. 10.77\n",
+ "tau1=C1*(RS+RG1)# # in seconds\n",
+ "R_22=RD2+R# # in ohms\n",
+ "tau2=C2*R_22# # in seconds\n",
+ "R_33=parallel(RS2,1/gm2)# # in ohms\n",
+ "tau3=C3*R_33# # in ohms\n",
+ "fL=(1/tau1+1/tau2+1/tau3)/(2*pi)# # in hertz\n",
+ "print \"Low 3 dB frequency = %0.2f Hz \"%fL\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# From high frequency equivalent cicuit in Fig. 10.78\n",
+ "R_gd1=parallel(RS,RG1)# # in ohms\n",
+ "# From Fig. 10.79\n",
+ "R_gs1=(R_gd1+RS1)/(1+gm1*RS1)# # in ohms\n",
+ "R_gs2=parallel(RS1,1/gm2)# # in ohms\n",
+ "R_gd2=R_gs2+parallel(RD2,R)+R_gs2*parallel(RD2,R)*gm2# # in ohms\n",
+ "a1=C_gd1*R_gd1+C_gs1*R_gs1+C_gs2*R_gs2+C_gd2*R_gd2# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"High 3 dB frequency = %0.2f MHz \"%fH"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.21: Page No 559"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "AVo = 160.00 \n",
+ "Approximate value of fH = 0.34 MHz \n",
+ "Part (b)\n",
+ "Frequency of the nearest non-dominant pole = 5.31 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) AVo, Approximate value of fH\n",
+ "# (b) Frequency of the nearest non-dominant pole\n",
+ "\n",
+ "gm=1e-3# # in mho\n",
+ "Rd=40e3# # in ohms\n",
+ "Cgs=5e-12# # in farads\n",
+ "Cgd=1e-12# # in farads\n",
+ "Cds=1e-12# # in farads\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RS=5e3# # in ohms\n",
+ "RD1=40e3# # in ohms\n",
+ "RD2=10e3# # in ohms\n",
+ "# From AC model of cascade amplifier in Fig. 10.80\n",
+ "Rds1=40e3# # in ohms\n",
+ "Rds2=40e3# # in ohms\n",
+ "R11_0=RS# # in ohms\n",
+ "RL1=parallel(Rds1,RD1)# # in ohms\n",
+ "R22_0=RS+RL1+gm*RS*RL1# # in ohms\n",
+ "R33_0=RL1# # in ohms\n",
+ "RL2=parallel(Rds2,RD2)# # in ohms\n",
+ "R44_0=RL1+RL2+gm*RL1*RL2# # in ohms\n",
+ "R55_0=RL2# # in ohms\n",
+ "C1=Cgs# # in farads\n",
+ "C2=Cgd# # in farads\n",
+ "C3=Cds+Cgs# # in farads\n",
+ "C4=Cds# # in farads\n",
+ "C5=Cds# # in farads\n",
+ "a1=C1*R11_0+C2*R22_0+C3*R33_0+C4*R44_0+C5*R55_0# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "AVo=gm*RL1*gm*RL2#\n",
+ "print \"AVo = %0.2f \"%AVo\n",
+ "print \"Approximate value of fH = %0.2f MHz \"%fH\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "R22_1=RL1# # in ohms\n",
+ "R33_1=RL1# # in ohms\n",
+ "R44_1=R44_0# # in ohms\n",
+ "R55_1=RL2# # in ohms\n",
+ "R33_2=parallel(RL1,parallel(1/gm,RS))# # in ohms\n",
+ "R44_2=R33_2+RL2+gm*R33_2*RL2# # in ohms\n",
+ "R55_2=R55_0# # in ohms\n",
+ "R44_3=RL2# # in ohms\n",
+ "R55_3=RL2# # in ohms\n",
+ "R55_4=parallel(RL1,parallel(1/gm,RL2))# # in ohms\n",
+ "a2=R11_0*C1*(R22_1*C2+R33_1*C3+R44_1*C4+R55_1*C5)+R22_0*C2*(R33_2*C3+R44_2*C4+R55_2*C5)+R33_0*C3*(R44_3*C4+R55_3*C5)+R44_0*C4*R55_4*C5# # in seconds\n",
+ "p2=a1/a2#\n",
+ "f=p2/(2*pi)# # in hertz\n",
+ "f=f*1e-6# # in Mega-hertz\n",
+ "print\"Frequency of the nearest non-dominant pole = %0.2f MHz \"% f"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10.23: Page No 563"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Value of fH for the cascade = 3.53 MHz \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Value of fH for the cascade\n",
+ "\n",
+ "bta=100#\n",
+ "r_pi1=0.5e3# # in ohms\n",
+ "r_pi2=0.5e3# # in ohms\n",
+ "r_pi3=1e3# # in ohms\n",
+ "fT=200e6# # in hertz\n",
+ "C_mu=1e-12# # in farads\n",
+ "# From Fig. 10.85\n",
+ "RS=2e3# # in ohms\n",
+ "RE1=5e3# # in ohms\n",
+ "RC2=2e3# # in ohms\n",
+ "RC3=1e3# # in ohms\n",
+ "RE3=100# # in ohms\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "# From Fig. 10.86\n",
+ "Ro1=parallel(RE1,(RS+r_pi1)/(1+bta))# # in ohms\n",
+ "gm2=bta/r_pi2# # in mho\n",
+ "gm3=bta/r_pi3# # in mho\n",
+ "C_pi2=bta/(2*pi*fT*r_pi2)-C_mu# # in farads\n",
+ "C_pi3=bta/(2*pi*fT*r_pi3)-C_mu# # in farads\n",
+ "\n",
+ "# From Fig. 10.87\n",
+ "C1=C_pi2# # in farads\n",
+ "C2=C_mu# # in farads\n",
+ "C3=C_pi3# # in farads\n",
+ "C4=C_mu# # in farads\n",
+ "R11_0=parallel(Ro1,r_pi1)# # in ohms\n",
+ "RL1=parallel(RC2,r_pi3+(1+bta)*RE3)# # in ohms\n",
+ "R22_0=R11_0+RL1*(1+gm2*R11_0)# # in ohms\n",
+ "\n",
+ "# From Fig. 10.88\n",
+ "R_dash=2.1e3/(1+10)# # in ohms\n",
+ "R33_0=parallel(RC2,R_dash)# # in ohms\n",
+ "\n",
+ "# From Fig. 10.89\n",
+ "R44_0=(3+2*98/13.1)*1e3# # in ohms\n",
+ "\n",
+ "a1=R11_0*C1+R22_0*C2+R33_0*C3+R44_0*C4# # in seconds\n",
+ "fH=1/(2*pi*a1)# # in hertz\n",
+ "fH=fH*1e-6# # in Mega-hertz\n",
+ "print \"Value of fH for the cascade = %0.2f MHz \"%fH"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch11.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch11.ipynb
new file mode 100644
index 00000000..1c138676
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch11.ipynb
@@ -0,0 +1,1123 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 11 : Feedback Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.1: Page No 585"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Open-loop gain = 2525.24 \n",
+ "Return ratio = 49.49 \n",
+ "Reverse transmission β of the feedback circuit = 0.0196 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Open-loop gain, Return ratio, Reverse transmission β of feedback circuit\n",
+ "\n",
+ "# Let A be open-loop gain and B be return ratio\n",
+ "# For A, B 10% higher, -1.1A + 55.11B = -50.1\n",
+ "# For A, B 10% lower, -0.9A + 44.91B = -49.9\n",
+ "# Solving the two equations\n",
+ "from numpy import mat\n",
+ "a=mat([[-1.1, 55.11],[-0.9, 44.91]])\n",
+ "b=mat([[-50.1],[-49.9]])\n",
+ "c=(a**-1)*b\n",
+ "A=c[0,0]\n",
+ "B=c[1,0]\n",
+ "print \"Open-loop gain = %0.2f \"%A\n",
+ "print \"Return ratio = %0.2f \"%B\n",
+ "print \"Reverse transmission β of the feedback circuit = %0.4f \"%(B/A)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.2: Page No 586"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Necessary amount of feedback = 0.01 \n",
+ "Gain without feedback = 145.89 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Necessary amount of feedback, Gain without feedback\n",
+ "\n",
+ "# Let A be gain without feedback and b be necessary amount of feedback\n",
+ "# AOL can assume values A, 1.1A, 0.9A, i.e. 10% variation\n",
+ "# For AOL = 1.1A yields, 50.01 + 1.1A(50.01b -1) = 0\n",
+ "# When AOL = 0.9A, 49.99 + 0.9A(49.99b - 1) = 0 \n",
+ "# Solving the two equations\n",
+ "from numpy import mat\n",
+ "a=mat([[1.1*50.01, -1.1],[0.9*44.99, -0.9]])\n",
+ "b=mat([[-50.01],[-49.99]])\n",
+ "c=(a**-1)*b#\n",
+ "d=c[0,0]# # A*b\n",
+ "A=c[1,0]#\n",
+ "b=d/A#\n",
+ "print \"Necessary amount of feedback = %0.2f \"%b\n",
+ "print \"Gain without feedback = %0.2f \"%A"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.3: Page No 595"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Fundamental output with feedback = 2.19 V\n",
+ "Second-harmonic distortion with feedback = 0.15 V\n",
+ "Part (b)\n",
+ "Input voltage = 0.20 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "# (a) Output voltage\n",
+ "# (b) Input voltage\n",
+ "\n",
+ "B1=36# # Fundamental output in volts\n",
+ "B2=7*B1/100# # Second-harmonic distortion in volts\n",
+ "Vs=0.028# # Input in volts\n",
+ "A=B1/Vs# # Gain\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "b=1.2/100# # Amount of feedback in volts\n",
+ "B1f=B1/(1+b*A)# # Fundamental output with feedback in volts\n",
+ "B2f=B2/(1+b*A)# # Second-harmonic distortion with feedback in volts\n",
+ "print \"Fundamental output with feedback = %0.2f V\"%B1f\n",
+ "print \"Second-harmonic distortion with feedback = %0.2f V\"%B2f\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "B1f=36# # Fundamental output with feedback in volts\n",
+ "B2f=1*B1f/100# # Second-harmonic distortion with feedback in volts\n",
+ "T=B2/B2f-1# # Return ratio\n",
+ "AF=A/(1+T)# # Feedback gain\n",
+ "Vs=B1f/AF# # Input voltage in volts\n",
+ "print \"Input voltage = %0.2f V\"%Vs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.4: Page No 599"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Closed loop parameters :\n",
+ "Gain = 90.91 \n",
+ "Input impedance = 11.00 kΩ\n",
+ "Output impedance = 38.18 Ω\n",
+ "Lower 3 dB frequency = 0.14 kHz\n",
+ "Upper 3 dB frequency = 5516.50 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Closed loop parameters\n",
+ "\n",
+ "Av=1000#\n",
+ "bta=0.01#\n",
+ "Zin=1# # in kilo-ohms\n",
+ "Zo=420# # in ohms\n",
+ "fL=1.5# # in kilo-hertz\n",
+ "fH=501.5# # in kilo-hertz\n",
+ "print \"Closed loop parameters :\"\n",
+ "T=Av*bta# # Return ratio\n",
+ "# From Fig. 11.18\n",
+ "Af=Av/(1+T)# # Closed loop gain\n",
+ "Zif=Zin*(1+T)# # Closed loop input impedance in kilo-ohms\n",
+ "Zof=Zo/(1+T)# # Closed loop output impedance in ohms\n",
+ "fLf=fL/(1+T)# # Closed loop lower 3 dB frequency in kilo-hertz\n",
+ "fHf=fH*(1+T)# # Closed loop upper 3 dB frequency in kilo-hertz\n",
+ "print \"Gain = %0.2f \"%Af\n",
+ "print \"Input impedance = %0.2f kΩ\"%Zif\n",
+ "print \"Output impedance = %0.2f Ω\"%Zof\n",
+ "print \"Lower 3 dB frequency = %0.2f kHz\"%fLf\n",
+ "print \"Upper 3 dB frequency = %0.2f kHz\"%fHf"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.5: Page No 603"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Output signal voltage = 01 V\n",
+ "Output noise voltage = 0.01 V\n",
+ "Improvement in S/N ratio = 40.00 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "from numpy import log10\n",
+ "#Output signal voltage, Output noise voltage, Improvement in S/N ratio\n",
+ "\n",
+ "A1=1#\n",
+ "Vs=1# # in volts\n",
+ "Vn=1# # in volts\n",
+ "A2=100#\n",
+ "bta=1#\n",
+ "Vos=Vs*A1*A2/(1+bta*A1*A2)# # Output signal voltage in volts\n",
+ "Von=Vn*A1/(1+bta*A1*A2)# # Output noise voltage in volts\n",
+ "SNRi=20*log10(Vs/Vn)# # Input S/N ratio in dB\n",
+ "SNRo=20*log10(Vos/Von)# # Output S/N ratio in dB\n",
+ "SNR=SNRo-SNRi# # Improvement in S/N raio in dB\n",
+ "print \"Output signal voltage = %02.f V\"%Vos\n",
+ "print \"Output noise voltage = %0.2f V\"%Von\n",
+ "print \"Improvement in S/N ratio = %0.2f dB\"%SNR"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.6: Page No 604"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (b)\n",
+ "R2/R1 = 9.01 \n",
+ "Part (c)\n",
+ "Amount of feedback = 60.00 dB\n",
+ "Part (d)\n",
+ "Vo = 10.00 V\n",
+ "Vf = 1.00 V\n",
+ "Vi = 0.00 V\n",
+ "Part (e)\n",
+ "Percentage decrease in Af = 0.02 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (b) R2/R1\n",
+ "# (c) Amount of feedback in decibels\n",
+ "# (d) Vo, Vf, Vi\n",
+ "# (e) Decrease in Af\n",
+ "\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "A=1e4#\n",
+ "Af=10#\n",
+ "bta=(A/Af-1)/A# # Feedback factor\n",
+ "R2_R1=1/bta-1# # R2/R1\n",
+ "print \"R2/R1 = %0.2f \"%R2_R1\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "dB=20*log10(1+A*bta)# # Amount of feedback in decibels\n",
+ "print \"Amount of feedback = %0.2f dB\"%dB\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "Vs=1# # in volts\n",
+ "Vo=Af*Vs# # in volts\n",
+ "Vf=bta*Vo# # in volts\n",
+ "Vi=Vs-Vf# # in volts\n",
+ "print \"Vo = %0.2f V\"%Vo\n",
+ "print \"Vf = %0.2f V\"%Vf\n",
+ "print \"Vi = %0.2f V\"%Vi\n",
+ "\n",
+ "print \"Part (e)\"\n",
+ "A=80*A/100# # Decreased A\n",
+ "Af_dash=A/(1+A*bta)# # Decreased Af\n",
+ "C=(Af-Af_dash)*100/Af# # Percentage decrease in Af\n",
+ "print \"Percentage decrease in Af = %0.2f %%\"%C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.7: Page No 606"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "For closed loop amplifier :\n",
+ "Low frequency gain = 9.99 \n",
+ "Upper 3 dB frequency = 100.10 kHz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Low frequency gain, Upper 3 dB frequency\n",
+ "\n",
+ "# Without feedback\n",
+ "AM=1e4# # Low frequency values of A\n",
+ "wH=100# # Upper 3 dB frequency in hertz\n",
+ "# With feedback\n",
+ "R1=1# # in kilo-ohms\n",
+ "R2=9# # in kilo-ohms\n",
+ "bta=R1/(R1+R2)# # Feedback factor\n",
+ "AfM=AM/(1+bta*AM)# # Low frequency gain\n",
+ "wHf=wH*(1+bta*AM)# # Upper 3 dB frequency in hertz\n",
+ "wHf=wHf*1e-3# # Upper 3 dB frequency in kilo-hertz\n",
+ "print \"For closed loop amplifier :\"\n",
+ "print \"Low frequency gain = %0.2f \"%AfM\n",
+ "print \"Upper 3 dB frequency = %0.2f kHz\"%wHf"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.9: Page No 615"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "RE = 0.98 kΩ\n",
+ "Part (b)\n",
+ "RL = 4.00 kΩ\n",
+ "Part (c)\n",
+ "R1F = 150.00 kΩ\n",
+ "Part (d)\n",
+ "IC = 3.82 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) RE\n",
+ "# (b) RL\n",
+ "# (c) R1F\n",
+ "# (d) Quiescent collector current\n",
+ "\n",
+ "GmF=1# # Transconductance gain in mili-amperes per volts\n",
+ "AVF=-4# # Voltage gain\n",
+ "D=50# # Desensitivity factor\n",
+ "RS=1# # in kilo-ohms\n",
+ "btao=150#\n",
+ "AoL=GmF*D# # Open loop mutual conductance in mili-amperes per volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RE=(D-1)/AoL# # in kilo-ohms\n",
+ "print \"RE = %0.2f kΩ\"%RE\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RL=-AVF/GmF# # in kilo-ohms\n",
+ "print \"RL = %0.2f kΩ\"%RL\n",
+ "print \"Part (c)\"\n",
+ "r_pi=btao/AoL-RS-RE# # in kilo-ohms\n",
+ "R1F=RS+r_pi+(1+btao)*RE# # in kilo-ohms\n",
+ "print \"R1F = %0.2f kΩ\"%R1F\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "VT=26e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "IC=btao*VT/r_pi# # in mili-amperes\n",
+ "print \"IC = %0.2f mA\"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.11: Page No 621"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "It ia a CB-CE cascade, configuration. It has low input and high output impedance and hence corresponds to a current amplifier.\n",
+ "Part (b)\n",
+ "Input resistance = 9.90 Ω​\n",
+ "Output resistance = inf \n",
+ "Transfer ratio = 74.26 \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Amplifier type\n",
+ "# (b) Input resistance, Output resistance, Transfer ratio\n",
+ "\n",
+ "r_pi=1e3# # in ohms\n",
+ "gm=0.1# # in mho\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "print \"It ia a CB-CE cascade, configuration. It has low input and high output impedance and hence corresponds to a current amplifier.\"\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# From low frequency equivalent circuit in Fig. 11.40\n",
+ "btao=gm*r_pi#\n",
+ "Rin=r_pi/(1+btao)# # Input resistance in ohms\n",
+ "from numpy import inf\n",
+ "Rout=inf# # Output resistance (= ro of Q2)\n",
+ "Ai=gm*gm*Rin*3e3*1e3/(3e3+1e3)# # Transfer ratio\n",
+ "print \"Input resistance = %0.2f Ω​\"%Rin\n",
+ "print \"Output resistance = %0.2f \"%Rout\n",
+ "print \"Transfer ratio = %0.2f \"%Ai"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.12: Page No 623"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (b)\n",
+ "AF = 299.89 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#(b) AF\n",
+ "\n",
+ "AV=4000#\n",
+ "bta=1/300#\n",
+ "RS=2# # in kilo-ohms\n",
+ "RE=RS# # in kilo-ohms\n",
+ "RC=6# # in kilo-ohms\n",
+ "btao=200#\n",
+ "r_pi=4# # in kilo-ohms\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "x=-AV*-btao*RC/(r_pi+RS)#\n",
+ "AF=x/(1+x*bta)#\n",
+ "print \"AF = %0.2f \"%AF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.13: Page No 624"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Q1 is a common collector and Q2 is common emitter stage. Hence the given circuit is cascade of cc and CE stages. As the Rin of a CC is high and the Ro of the CE is low, therefore, the given circuit approximates a voltage amplifier. If RL is chosen a low resistance, the amplifier can be considered a voltage-to-current converter.\n",
+ "Part (b)\n",
+ "Input resistance = 76.75 Ω​\n",
+ "Output resistance = 0.60 \n",
+ "Transfer ratio = -59.22 \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Amplifier type\n",
+ "# (b) Input resistance, Output resistance, Transfer ratio\n",
+ "\n",
+ "r_pi=1e3# # in ohms\n",
+ "gm=0.1# # in mho\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "print \"Q1 is a common collector and Q2 is common emitter stage. Hence the given circuit is cascade of cc and CE stages. As the Rin of a CC is high and the Ro of the CE is low, therefore, the given circuit approximates a voltage amplifier. If RL is chosen a low resistance, the amplifier can be considered a voltage-to-current converter.\"\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)\n",
+ " return c\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# From the Fig. 11.42\n",
+ "RE1=3e3# # in ohms\n",
+ "RC2=0.6e3# # in ohms\n",
+ "btao=gm*r_pi#\n",
+ "Ri2=r_pi# # in ohms\n",
+ "Ri1=r_pi+(1+btao)*parallel(RE1,Ri2)# # Input resistance in ohms\n",
+ "Rout=RC2# # Output resistance (= ro of Q2)\n",
+ "AV1=(1+btao)*RE1/(r_pi+(1+btao)*RE1)#\n",
+ "Ro1=parallel(RE1,r_pi/(1+btao))# # in ohms\n",
+ "AV2=-btao*RC2/(Ro1+r_pi)#\n",
+ "AV=AV1*AV2#\n",
+ "Ri1=Ri1*1e-3# # in kilo-ohms\n",
+ "Rout=Rout*1e-3# # in kilo-ohms\n",
+ "print \"Input resistance = %0.2f Ω​\"%Ri1\n",
+ "print \"Output resistance = %0.2f \"%Rout\n",
+ "print \"Transfer ratio = %0.2f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.15: Page No 625"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Small signal gain = -4.18 \n",
+ "Input resistance = 10.10 kΩ​\n",
+ "Output resistance = 0.52 kΩ​\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Small signal gain, Input resistance, Output resistance\n",
+ "\n",
+ "btao=100#\n",
+ "r_pi=1e3# # in ohms\n",
+ "ICQ=2.5e-3# # in amperes\n",
+ "VT=25e-3# # in volts\n",
+ "gm=ICQ/VT# # Transconductance in mho\n",
+ "r_pi=btao/gm# # Incremental resistance of emitter-base diode in ohms\n",
+ "# From ac model without feedback in Fig. 11.47\n",
+ "RS=10e3# # in ohms\n",
+ "RF=47e3# # in ohms\n",
+ "RC=4.7e3# # in ohms\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "AoL=-gm*parallel(RF,RC)*parallel(RS,parallel(RF,r_pi))# # in ohms\n",
+ "bta=1/RF#\n",
+ "T=-bta*AoL# # Return ratio\n",
+ "AF=AoL/(1+T)# # in ohms\n",
+ "AVF=AF/RS# # Small signal gain\n",
+ "RID=parallel(RF,r_pi)# # in ohms\n",
+ "RID_dash=parallel(RID,RS)# # in ohms\n",
+ "RIF_dash_I=RID_dash/(1+T)# # in ohms\n",
+ "RIF_I=RS*RIF_dash_I/(RS-RIF_dash_I)# # in ohms\n",
+ "RIF_dash_V=RS+RIF_I# # in ohms\n",
+ "RoD_dash=parallel(RF,RC)# # in ohms\n",
+ "RoF_dash=RoD_dash/(1+T)# # in ohms\n",
+ "RoF=RoF_dash*RC/(RC-RoF_dash)# # in ohms\n",
+ "RIF_dash_V=RIF_dash_V*1e-3# # in kilo-ohms\n",
+ "RoF=RoF*1e-3# # in kilo-ohms\n",
+ "print \"Small signal gain = %0.2f \"%AVF\n",
+ "print \"Input resistance = %0.2f kΩ​\"%RIF_dash_V\n",
+ "print \"Output resistance = %0.2f kΩ​\"%RoF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.16: Page No 631"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "AF = 57.10 \n",
+ "T = 9.68 \n",
+ "Part (b)\n",
+ "RIF = 204.81 kΩ​\n",
+ "RoF = 79.01 Ω​\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) AF, T\n",
+ "# (b) R1F, RoF\n",
+ "\n",
+ "btao=150#\n",
+ "ICQ=1.5e-3# # in amperes\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From circuit without feedback but with loading in Fig. 11.50\n",
+ "RS=2e3# # in ohms\n",
+ "RE1=0.1e3# # in ohms\n",
+ "RF=6.2e3# # in ohms\n",
+ "RC1=4.3e3# # in ohms\n",
+ "RC2=1.2e3# # in ohms\n",
+ "RL=4.7e3# # in ohms\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "gm=ICQ/VT# # Transconductance in mho\n",
+ "r_pi=btao/gm# # Incremental resistance of emitter-base diode in ohms\n",
+ "AV1=-btao*RC1/(RS+r_pi+(1+btao)*parallel(RE1,RF))#\n",
+ "AV2=-btao*parallel(RC2,parallel(RF+RE1,RL))/(RC1+r_pi)#\n",
+ "AoL=AV1*AV2#\n",
+ "bta=-RE1/(RE1+RF)#\n",
+ "T=-bta*AoL#\n",
+ "AF=AoL/(1+T)#\n",
+ "print \"AF = %0.2f \"%AF\n",
+ "print \"T = %0.2f \"%T\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RID=r_pi+(1+btao)*parallel(RE1,RF)# # in ohms\n",
+ "RID_dash=RS+RID# # in ohms\n",
+ "RIF_dash=RID_dash*(1+T)# # in ohms\n",
+ "RIF=RIF_dash-RS# # in ohms\n",
+ "RoD=parallel(RC2,RF+RE1)# # in ohms\n",
+ "RoD_dash=parallel(RoD,RL)# # in ohms\n",
+ "RoF_dash=RoD_dash/(1+T)# # in ohms\n",
+ "RoF=RL*RoF_dash/(RL-RoF_dash)# # in ohms\n",
+ "RIF=RIF*1e-3# # in kilo-ohms\n",
+ "print \"RIF = %0.2f kΩ​\"%RIF\n",
+ "print \"RoF = %0.2f Ω​\"%RoF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.17: Page No 633"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "T = 0.93 \n",
+ "AoL = 20.66 \n",
+ "AF = 10.72 \n",
+ "Part (b)\n",
+ "RoF = 2.68 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "#(a) T, AoL, AF\n",
+ "# (b) RoF\n",
+ "\n",
+ "gm=1e-3# # in mho\n",
+ "rd=20e3# # in ohms\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# From the ac equivalent circuit in Fig. 11.52\n",
+ "RF=10e3# # in ohms\n",
+ "RD1=10e3# # in ohms\n",
+ "RL=10e3# # in ohms\n",
+ "ro=20e3# # in ohms\n",
+ "RS=parallel(0.47e3,RF)# # in ohms\n",
+ "RL2=parallel(ro,parallel(10.47e3,RL))# # in ohms\n",
+ "mu=rd*gm# # Amplification factor\n",
+ "AV1=-mu*RD1/(RD1+rd+(1+mu)*RS)#\n",
+ "AV2=-gm*RL2#\n",
+ "AoL=AV1*AV2#\n",
+ "bta=-0.47/(10+0.47)# # Feedback factor\n",
+ "T=-bta*AoL#\n",
+ "AF=AoL/(1+T)#\n",
+ "print \"T = %0.2f \"%T\n",
+ "print \"AoL = %0.2f \"%AoL\n",
+ "print \"AF = %0.2f \"%AF\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RoD=parallel(ro,10.47e3)# # in ohms\n",
+ "TSC=0# # for RL=0, T=0\n",
+ "ToC=bta*AV1*gm*RoD#\n",
+ "# By Blackman's relation\n",
+ "RoF=RoD*(1+TSC)/(1+ToC)# # in ohms\n",
+ "RoF=RoF*1e-3# # in kilo-ohms\n",
+ "print \"RoF = %0.2f kΩ\"%RoF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.18: Page No 635"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "T = 7.10 \n",
+ "AoL = 180.34 \n",
+ "AF = 22.26 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#T, AoL, AF\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "ICQ1=0.25e-3# # in amperes\n",
+ "ICQ2=-0.5e-3# # in amperes\n",
+ "bta1=200#\n",
+ "VA1=125# # in volts\n",
+ "bta2=150#\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "gm1=ICQ1/VT# # in mho\n",
+ "gm2=abs(ICQ2)/VT# # in mho\n",
+ "r_pi1=bta1/gm1# # in ohms\n",
+ "r_pi2=bta2/gm2# # in ohms\n",
+ "ro1=VA1/ICQ1# # in ohms\n",
+ "# From ac equivalent circuit in Fig. 11.56\n",
+ "RC1=20e3# # in ohms\n",
+ "RS=1e3# # in ohms\n",
+ "bta=-0.82/(20+0.82)# # Feedback factor\n",
+ "RL1=parallel(RC1,ro1)# # in ohms\n",
+ "Ib2_IC1=RL1/(RL1+r_pi2+(1+bta2)*parallel(20e3,0.82e3))# # Ib2/IC1\n",
+ "Ib1_IS=parallel(RS,20.82e3)/(r_pi1+parallel(RS,20.82e3))# # Ib1/IS\n",
+ "AoL=bta2*Ib2_IC1*bta1*Ib1_IS# # Current gain without feedback\n",
+ "T=-bta*AoL#\n",
+ "AF=AoL/(1+T)#\n",
+ "print \"T = %0.2f \"%T\n",
+ "print \"AoL = %0.2f \"%AoL\n",
+ "print \"AF = %0.2f \"%AF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.19: Page No 638"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "AIF = 2.24 \n",
+ "Part (b)\n",
+ "R1F = 56.89 Ω\n",
+ "Part (c)\n",
+ "A1F = 1.92 \n",
+ "Part (d)\n",
+ "AVF = 22.36 \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) AIF\n",
+ "# (b) R1F\n",
+ "# (c) A1F'\n",
+ "# (d) AVF\n",
+ "\n",
+ "btao=50#\n",
+ "r_pi=2e3# # in ohms\n",
+ "# From equivalent circuit without feedback but taking loading effect in Fig. 11.58\n",
+ "RS=1e3# # in ohms\n",
+ "Rf=15e3# # in ohms\n",
+ "RE2=10e3# # in ohms\n",
+ "RC1=10e3# # in ohms\n",
+ "RC2=10e3# # in ohms\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RS_dash=parallel(RS,Rf+RE2)# # in ohms\n",
+ "gm=btao/r_pi# # in mho\n",
+ "RE2_dash=parallel(RE2,Rf)# # in ohms\n",
+ "Rx=r_pi+(1+btao)*RE2_dash# # in ohms\n",
+ "I2_IS=-gm*parallel(RS_dash,r_pi)*RC1/(RC1+Rx)# # I2/IS\n",
+ "AI=-btao*I2_IS# # Open loop\n",
+ "If_IS=(1+btao)*I2_IS*RE2/(RE2+Rf)# # If/IS\n",
+ "bta=If_IS/AI# # Feedback factor\n",
+ "T=-bta*AI#\n",
+ "AIF=AI/(1+T)#\n",
+ "print \"AIF = %0.2f \"%AIF\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RID=parallel(RS,parallel(Rf+RE2,r_pi))#\n",
+ "R1F=RID/(1+T)# # in ohms\n",
+ "print \"R1F = %0.2f Ω\"%R1F\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "Ii_IS=RS/(RS+parallel(Rf+RE2,r_pi))# # Ii'/IS\n",
+ "AI_dash=AI*Ii_IS#\n",
+ "T=-bta*AI_dash#\n",
+ "A1F_dash=AI_dash/(1+T)#\n",
+ "print \"A1F = %0.2f \"%A1F_dash\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "AVF=AIF*RC2/RS#\n",
+ "print \"AVF = %0.2f \"%AVF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.20: Page No 641"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (b)\n",
+ "AIF = 59.99 \n",
+ "Part (a)\n",
+ "AVF = 59.99 \n",
+ "Part (c)\n",
+ "RIF = 158.17 Ω\n",
+ "Part (d)\n",
+ "ROF = 4.70 kΩ​\n"
+ ]
+ }
+ ],
+ "source": [
+ "#(a) AVF\n",
+ "# (b) AIF\n",
+ "# (c) RIF\n",
+ "# (d) ROF\n",
+ "\n",
+ "btao=50#\n",
+ "r_pi=1.1e3# # in ohms\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "# From equivalent circuit of amplifier without feedback in Fig. 11.60\n",
+ "RS=4.7e3# # in ohms\n",
+ "RF=15e3# # in ohms\n",
+ "RE2=0.1e3# # in ohms\n",
+ "RB1=parallel(91e3,10e3)# # in ohms\n",
+ "RC1=4.7e3# # in ohms\n",
+ "RC2=4.7e3# # in ohms\n",
+ "RB2=RB1# # in ohms\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RL1=parallel(RS,parallel(RF+RE2,RB1))# # in ohms\n",
+ "I1_IS=RL1/(RL1+r_pi)# # I1/IS\n",
+ "IC1_IS=btao*I1_IS# # IC1/IS\n",
+ "Ri2=r_pi+(1+btao)*parallel(RE2,RF)# # in ohms\n",
+ "I2_IS=-IC1_IS*parallel(RC1,RB2)/(parallel(RC1,RB2)+Ri2)# # in ohms\n",
+ "IC2_IS=btao*I2_IS# # IC2/IS\n",
+ "AID=-IC2_IS/2# # Open loop\n",
+ "IF_IS=IC2_IS*RE2/(RE2+RF)# # IF/IS\n",
+ "bta=IF_IS/AID# # Feedback factor\n",
+ "T=-bta*AID#\n",
+ "AIF=AID/(1+T)#\n",
+ "print \"AIF = %0.2f \"%AIF\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "AVF=AIF*RC2/RS#\n",
+ "print \"AVF = %0.2f \"%AVF\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "RID=parallel(parallel(RS,RE2+RF),parallel(RB1,r_pi))# # in ohms\n",
+ "RIF=RID/(1+T)# # in ohms\n",
+ "print \"RIF = %0.2f Ω\"%RIF\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "ROF=RC2*1e-3# # in kilo-ohms\n",
+ "print \"ROF = %0.2f kΩ​\"%ROF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.21: Page No 643"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (c)\n",
+ "T = 18.20 \n",
+ "AF = 0.29 \n",
+ "Part (d)\n",
+ "Voltage gain = -2835.20 \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (c) AF, T\n",
+ "# (d) Voltage gain\n",
+ "\n",
+ "ICQ1=0.25e-3# # in amperes\n",
+ "ICQ2=1e-3# # in amperes\n",
+ "ICQ3=0.5e-3# # in amperes\n",
+ "RC1=5e3# # in ohms\n",
+ "RC2=7.5e3# # in ohms\n",
+ "RC3=10e3# # in ohms\n",
+ "R1=0.2e3# # in ohms\n",
+ "R2=0.33e3# # in ohms\n",
+ "RS=0.6e3# # in ohms\n",
+ "RF=20e3# # in ohms\n",
+ "btao=200#\n",
+ "VA=125# # in volts\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "gm1=ICQ1/VT# # in mho\n",
+ "r_pi1=btao/gm1# # in ohms\n",
+ "ro1=VA/ICQ1# # in ohms\n",
+ "gm2=ICQ2/VT# # in mho\n",
+ "r_pi2=btao/gm2# # in ohms\n",
+ "ro2=VA/ICQ2# # in ohms\n",
+ "gm3=ICQ3/VT# # in mho\n",
+ "r_pi3=btao/gm3# # in ohms\n",
+ "ro3=VA/ICQ3# # in ohms\n",
+ "Rin1=r_pi1+(btao+1)*parallel(RF+R2,R1)# # in ohms\n",
+ "RL1=parallel(RC1,ro1)# # in ohms\n",
+ "RL2=parallel(RC2,ro2)# # in ohms\n",
+ "Rin2=r_pi2# # in ohms\n",
+ "Rin3=r_pi3+(btao+1)*parallel(R2,RF+R1)# # in ohms\n",
+ "Io_Ib3=btao# # Io/Ib3\n",
+ "Ib3_Ic2=-RL2/(RL2+Rin3)# # Ib3/Ic2\n",
+ "Ic2_Ib2=btao# # Ic2/Ib2\n",
+ "Ib2_Ic1=-RL1/(RL1+Rin2)# # Ib2/Ic1\n",
+ "Ic1_Ib1=btao# # Ic1/Ib1\n",
+ "Ib1_VS=1/(RS+Rin1)# # Ib1/VS in mho\n",
+ "AoL=Io_Ib3*Ib3_Ic2*Ic2_Ib2*Ib2_Ic1*Ic1_Ib1*Ib1_VS# # Open loop\n",
+ "bta=-R1*R2/(R1+R2+RF)# # Feedback factor\n",
+ "T=-bta*AoL#\n",
+ "AF=AoL/(1+T)#\n",
+ "print \"T = %0.2f \"%T\n",
+ "print \"AF = %0.2f \"%AF\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "Vo_VS=-AF*parallel(RC3,ro3)#\n",
+ "print \"Voltage gain = %0.2f \"%Vo_VS"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 11.22: Page No 646"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AF = -92.84 \n",
+ "RoF = 214.70 Ω\n"
+ ]
+ }
+ ],
+ "source": [
+ "#AF, RoF\n",
+ "\n",
+ "gm=2e-3# # in mho\n",
+ "rd=20e3# # in ohms\n",
+ "RD=12e3# # in ohms\n",
+ "RG=500e3# # in ohms\n",
+ "Rs=50# # in ohms\n",
+ "RF=5e3# # in ohms\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "Ro=parallel(RD,rd)# # in ohms\n",
+ "AV1=-gm*parallel(RD,parallel(rd,RG))#\n",
+ "AV2=AV1#\n",
+ "AV3=-gm*parallel(RD,rd)#\n",
+ "AV=AV1*AV2*AV3#\n",
+ "RG_dash=parallel(RG,RF)# # in ohms\n",
+ "Vi_Vs=RG_dash/(RG_dash+Rs)# # Vi/Vs\n",
+ "AoL=AV*Vi_Vs*RF/(RF+Ro)# # Vo/Vs (Open loop)\n",
+ "bta=1/RF# # Feedback factor\n",
+ "RM=AoL*Rs# # in ohms\n",
+ "T=-bta*RM# # Return ratio\n",
+ "AF=AoL/(1+T)#\n",
+ "RoD=parallel(Ro,RF)# # in ohms\n",
+ "RoF=RoD/(1+T)# # in ohms\n",
+ "print \"AF = %0.2f \"%AF\n",
+ "print \"RoF = %0.2f Ω\"%RoF"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch12.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch12.ipynb
new file mode 100644
index 00000000..c3e14bb7
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch12.ipynb
@@ -0,0 +1,168 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 12 : Oscillators"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.1: Page No 664"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "RD = 9.67 kΩ​ \n",
+ "Part (b)\n",
+ "Product RC = 8.12 µs \n",
+ "Part (c)\n",
+ "Reasonable value of R = 50.00 kΩ​ \n",
+ "Reasonable value of C = 162.44 pF \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "from math import pi, sqrt\n",
+ "# (a) RD\n",
+ "# (b) Product RC\n",
+ "# (c) Reasonable value of R and C\n",
+ "\n",
+ "fo=8e3# # in hertz\n",
+ "mu=59#\n",
+ "rd=10# # in kilo-ohms\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RD=29*rd/(mu-29)# # in kilo-ohms\n",
+ "print \"RD = %0.2f kΩ​ \"%RD\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RC=1/(2*pi*fo*sqrt(6))# # in seconds\n",
+ "RC=RC*1e6# # in micro-seconds\n",
+ "print \"Product RC = %0.2f µs \"%RC\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "R=50# # in kilo-ohms\n",
+ "C=RC/R# # in nano-farad\n",
+ "C=C*1e3# # in pico-farad\n",
+ "print \"Reasonable value of R = %0.2f kΩ​ \"%R\n",
+ "print \"Reasonable value of C = %0.2f pF \"%C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.2: Page No 665"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 = 10.00 kΩ​ \n",
+ "R2 = 10.00 kΩ​ \n",
+ "R3 = 20.00 kΩ​ \n",
+ "R4 = 10.00 kΩ​ \n",
+ "C1 = 7.96 nF \n",
+ "C2 = 7.96 nF \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Designing a Wein Bridge Oscillator\n",
+ "\n",
+ "fo=2e3# # in hertz\n",
+ "R=10# # in kilo-ohms\n",
+ "C=1/(2*pi*fo*R*1e3)# # in farads\n",
+ "C=C*1e9# # in nano-farads\n",
+ "print \"R1 = %0.2f kΩ​ \"%R\n",
+ "print \"R2 = %0.2f kΩ​ \"%R\n",
+ "print \"R3 = %0.2f kΩ​ \"%(2*R)\n",
+ "print \"R4 = %0.2f kΩ​ \"%R\n",
+ "print \"C1 = %0.2f nF \"%C\n",
+ "print \"C2 = %0.2f nF \"%C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.3: Page No 669"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum value of C = 1.81 pF \n",
+ "Maximum value of C = 7.24 pF \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Range of capacitance\n",
+ "\n",
+ "L1=2e-3# # in henry\n",
+ "L2=1.5e-3# # in henry\n",
+ "fmin=1000e3# # in hertz\n",
+ "fmax=2000e3# # in hertz\n",
+ "Cmin=1/((2*pi*fmax)**2*(L1+L2))# # in farads\n",
+ "Cmax=1/((2*pi*fmin)**2*(L1+L2))# # in farads\n",
+ "Cmin=Cmin*1e12# # in pico-farads\n",
+ "Cmax=Cmax*1e12# # in pico-farads\n",
+ "print \"Minimum value of C = %0.2f pF \"%Cmin\n",
+ "print \"Maximum value of C = %0.2f pF \"%Cmax"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch13.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch13.ipynb
new file mode 100644
index 00000000..8f79f91e
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch13.ipynb
@@ -0,0 +1,273 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 13 : Power amplifiers and voltage regulators"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.1: Page No 684"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "dc input power = 8.30 W \n",
+ "ac output power = 0.64 W \n",
+ "Efficiency = 7.71 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#dc input power, ac output power, Efficiency\n",
+ "\n",
+ "Ib=5e-3# # Base current in amperes\n",
+ "# From Fig. 13.8\n",
+ "RB=1.5e3# # in ohms\n",
+ "RC=16# # in ohms\n",
+ "bta=40#\n",
+ "VCC=18# # in volts\n",
+ "VBE=0.7# # in volts\n",
+ "IBQ=(VCC-VBE)/RB# # in amperes\n",
+ "ICQ=bta*IBQ# # in amperes\n",
+ "Pi_dc=VCC*ICQ# # dc input power in watts\n",
+ "Ic=bta*Ib# # in amperes\n",
+ "Po_ac=Ic**2*RC# # ac output power\n",
+ "eta=Po_ac*100/Pi_dc# # Efficiency in percentage\n",
+ "print \"dc input power = %0.2f W \"%Pi_dc\n",
+ "print \"ac output power = %0.2f W \"%Po_ac\n",
+ "print \"Efficiency = %0.2f %%\"%eta"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.2: Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Transformer turns ratio = 44.72 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import sqrt, pi\n",
+ "#Transformer turns ratio\n",
+ "\n",
+ "def parallel(a,b):\n",
+ " c=a*b/(a+b)#\n",
+ " return c\n",
+ "RL=parallel(parallel(16,16),parallel(16,16))# # in ohms\n",
+ "RL_dash=8e3# # in ohms\n",
+ "TR=sqrt(RL_dash/RL)# # Transformer turns ratio\n",
+ "print \"Transformer turns ratio = %0.2f \"%TR"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12.3: Page No 685"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Efficiency = 37.04 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Efficiency\n",
+ "\n",
+ "P_ac=2# # in watts\n",
+ "ICQ=150e-3# # in amperes\n",
+ "VCC=36# # in volts\n",
+ "P_dc=VCC*ICQ# # in watts\n",
+ "eta=P_ac*100/P_dc# # Efficiency in percentage\n",
+ "print \"Efficiency = %0.2f %%\"%eta"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.4: Page No 692"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Maximum input power = 17.90 W \n",
+ "Maximum ac output power = 14.06 W \n",
+ "Maximum conversion efficiency = 78.54 % \n",
+ "Maximum power dissipated by each transistor = 2.85 W \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Maximum input power, Maximum ac output power, Maximum conversion efficiency, Maximum power dissipated by each transistor\n",
+ "\n",
+ "VCC=15# # in volts\n",
+ "RL=8# # in ohms\n",
+ "P_dc=2*VCC**2/(pi*RL)# # Maximum input power in watts\n",
+ "P_ac=VCC**2/(2*RL)# # Maximum ac output power in watts\n",
+ "eta=P_ac*100/P_dc# # Maximum efficiency in percentage\n",
+ "PD=2*VCC**2/(pi**2*RL)# # Maximum power dissipated in watts\n",
+ "PD_each=PD/2# # Maximum power dissipated by each transistor in watts\n",
+ "print \"Maximum input power = %0.2f W \"%P_dc\n",
+ "print \"Maximum ac output power = %0.2f W \"%P_ac\n",
+ "print \"Maximum conversion efficiency = %0.2f %% \"%eta\n",
+ "print \"Maximum power dissipated by each transistor = %0.2f W \"%PD_each"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.5: Page No 693"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Supply voltage = 22.89 V \n",
+ "Peak current drawn from each supply = 2.24 A \n",
+ "Total supply power = 32.58 W \n",
+ "Power conversion efficiency = 61.38 % \n",
+ "Maximum power that each transistor can dissipate safely = 6.64 W \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Supply voltage, Peak current drawn from each supply, Total supply power, Power conversion efficiency, Maximum power that each transistor can dissipate safely\n",
+ "\n",
+ "P_ac=20# # Average power delivered in watts\n",
+ "RL=8# # Load in ohms\n",
+ "Vm=sqrt(2*P_ac*RL)# # Peak output voltage in volts\n",
+ "VCC=Vm+5# # Supply voltage in volts\n",
+ "Im=Vm/RL# # Peak current drawn from each supply in amperes\n",
+ "P_dc=2*Im*VCC/pi# # Total supply power in watts\n",
+ "eta=P_ac*100/P_dc# # Power conversion efficiency in percentage\n",
+ "PD=2*VCC**2/(pi**2*RL)# # Maximum power dissipated in watts\n",
+ "PD_each=PD/2# # Maximum power dissipated by each transistor in watts\n",
+ "print \"Supply voltage = %0.2f V \"%VCC\n",
+ "print \"Peak current drawn from each supply = %0.2f A \"%Im\n",
+ "print \"Total supply power = %0.2f W \"%P_dc\n",
+ "print \"Power conversion efficiency = %0.2f %% \"%eta\n",
+ "print \"Maximum power that each transistor can dissipate safely = %0.2f W \"%PD_each"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13.6: Page No 697"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Thermal resistance = 0.62 °C/mW \n",
+ "Power rating at 70 °C = 128.00 mW \n",
+ "Junction temperature at 100 mW = 112.50 °C \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Thermal resistance, Power rating at 70°C, Junction temperature at 100 mW\n",
+ "\n",
+ "TAo=25# # in °C\n",
+ "PDo=200# # in mili-watts\n",
+ "Tj_max=150# # Maximum junction temperature in °C\n",
+ "T=70# # in °C\n",
+ "P=100# # in mili-watts\n",
+ "TA=50# # Ambient temperature in °C\n",
+ "theta=(Tj_max-TAo)/PDo# # Thermal resistance in °C per mili-watts\n",
+ "PR=(Tj_max-T)/theta# # Power rating at 70 °C in mili-watts\n",
+ "Tj=TA+theta*P# # Junction temperature at 100 mW in °C\n",
+ "print \"Thermal resistance = %0.2f °C/mW \"%theta\n",
+ "print \"Power rating at 70 °C = %0.2f mW \"%PR\n",
+ "print \"Junction temperature at 100 mW = %0.2f °C \"%Tj"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch2.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch2.ipynb
new file mode 100644
index 00000000..1cf7fc40
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch2.ipynb
@@ -0,0 +1,768 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 2 : The p-n junction diode"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.1: Page No 41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Labelled current I = 0.38 mA\n",
+ "Labelled voltage Vo = 7.50 V\n",
+ "Part (b)\n",
+ "Labelled current I = 0.00 A\n",
+ "Labelled voltage Vo = -2.50 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#(a) I,Vo\n",
+ "#(b) I,Vo\n",
+ "print \"Part (a)\"\n",
+ "# Applying Thevnin's theorem at XX', in Fig. 2.5(a)\n",
+ "Vth=15*20e3/(10e3+20e3)# # Thevnin equivalent voltage in volts\n",
+ "Zth=10e3*20e3/(10e3+20e3)# # Thevnin equivalent resistance in ohms\n",
+ "# From the figure 2.5(c)\n",
+ "I=Vth/(Zth+20e3)# # Labelled current in amperes\n",
+ "Vo=I*20e3# # Labelled voltage in volts\n",
+ "I=I*1e3# # Labelled current in miliamperes\n",
+ "print \"Labelled current I = %0.2f mA\"%I\n",
+ "print \"Labelled voltage Vo = %0.2f V\"%Vo\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# Applying Thevnin's theorem at XX' and YY', in Fig. 2.5(b)\n",
+ "Vth1=15*10e3/(10e3+10e3)# # Thevnin equivalent voltage at XX' in volts\n",
+ "Zth1=10e3*10e3/(10e3+10e3)# # Thevnin equivalent resistance at YY' in ohms\n",
+ "Vth2=5# # Thevnin equivalent voltage at YY' in volts\n",
+ "Zth2=5e3# # Thevnin equivalent resistance at YY' in ohms\n",
+ "# From the figure 2.5(d)\n",
+ "I=0# # Labelled current in amperes\n",
+ "Vo=5-7.5# # Labelled voltage in volts\n",
+ "print \"Labelled current I = %0.2f A\"%I\n",
+ "print \"Labelled voltage Vo = %0.2f V\"%Vo\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.2: Page No 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Change in diode voltage (for Ge)= 67.70 mV\n",
+ "Change in diode voltage (for Si) = 135.40 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Change in diode voltage\n",
+ "from math import log\n",
+ "ID1=1# # Let the initial diode current be 1 A\n",
+ "ID2=15*ID1# # Final diode current\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "eta=1# # for Ge\n",
+ "deltaVD=eta*VT*log(ID2/ID1)# # Change in diode voltage in volts\n",
+ "deltaVD=deltaVD*1e3# # Change in diode voltage in milivolts\n",
+ "print \"Change in diode voltage (for Ge)= %0.2f mV\"%deltaVD\n",
+ "eta=2# # for Si\n",
+ "deltaVD=eta*VT*log(ID2/ID1)# # Change in diode voltage in volts\n",
+ "deltaVD=deltaVD*1e3# # Change in diode voltage in milivolts\n",
+ "print \"Change in diode voltage (for Si) = %0.2f mV\"%deltaVD"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.3: Page No 44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Voltage = -59.55 mV\n",
+ "Part (b)\n",
+ "Ratio of current in forward bias to that in reverse bias = -6.91 \n",
+ "Part (c)\n",
+ "Forward current for 0.1 V = 467.83 μA\n",
+ "Forward current for 0.1 V = 22.82 mA\n",
+ "Forward current for 0.1 V (A) = 1.09 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#(a) Voltage\n",
+ "#(b) Ratio of current in forward bias to that in reverse bias\n",
+ "#(c) Forward current\n",
+ "from __future__ import division\n",
+ "from math import exp\n",
+ "print \"Part (a)\"\n",
+ "eta=1# # for Ge\n",
+ "T=300# # Room temperature in kelvins\n",
+ "VT=T/11600# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "IS=1# # Let reverse saturation current be 1 A\n",
+ "I=-0.9*IS# # Reverse current\n",
+ "V=eta*VT*log(1+(I/IS))# # Voltagei in volts\n",
+ "V=V*1e3# # Voltage in milivolts\n",
+ "print \"Voltage = %0.2f mV\"%V\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "V=0.05# # Voltage in volts\n",
+ "If_Ir=(exp(V/(eta*VT))-1)/(exp(-V/(eta*VT))-1)# # Ratio of current in forward bias to that in reverse bias\n",
+ "print \"Ratio of current in forward bias to that in reverse bias = %0.2f \"%If_Ir\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "IS=10e-6# # Reverse saturation current in amperes\n",
+ "V=0.1# # Voltage in volts\n",
+ "ID=IS*(exp(V/(eta*VT))-1)# # Forward current for 0.1 V in amperes\n",
+ "ID=ID*1e6# # Forward current for 0.1 V in micro-amperes\n",
+ "print \"Forward current for 0.1 V = %0.2f μA\"%ID\n",
+ "V=0.2# # Voltage in volts\n",
+ "ID=IS*(exp(V/(eta*VT))-1)# # Forward current for 0.1 V in amperes\n",
+ "ID=ID*1e3# # Forward current for 0.1 V in miliamperes\n",
+ "print \"Forward current for 0.1 V = %0.2f mA\"%ID\n",
+ "V=0.3# # Voltage in volts\n",
+ "ID=IS*(exp(V/(eta*VT))-1)# # Forward current for 0.1 V in amperes\n",
+ "print \"Forward current for 0.1 V (A) = %0.2f A\"%ID\n",
+ "# ans is wrong in the book."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.4 : Page No 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Current = -10.00 μA\n",
+ "Part (b)\n",
+ "Current = -5.5067 μA\n",
+ "Part (c)\n",
+ "Current = 1.6275 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Current\n",
+ "# (b) Current\n",
+ "# (C) Current\n",
+ "\n",
+ "IS=10e-6# # Reverse saturation current in amperes\n",
+ "eta=1# # for Ge\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "VD=-24# # Reverse bias in volts\n",
+ "ID=IS*(exp(VD/(eta*VT))-1)# # Current in amperes\n",
+ "ID=ID*1e6# # Current in micro-amperes\n",
+ "print \"Current = %0.2f μA\"%ID\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "VD=-0.02# # Reverse bias in volts\n",
+ "ID=IS*(exp(VD/(eta*VT))-1)# # Current in amperes\n",
+ "ID=ID*1e6# # Current in micro-amperes\n",
+ "print \"Current = %0.4f μA\"%ID\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "VD=0.3# # Forward bias in volts\n",
+ "ID=IS*(exp(VD/(eta*VT))-1)# # Current in amperes\n",
+ "print \"Current = %0.4f A\"%ID"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.5 : Page No 46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Change in diode voltage (for Ge) = 60 mV\n",
+ "Change in diode voltage (for Si) = 119 mV\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Change in diode voltage\n",
+ "\n",
+ "T=300# # Operating temperature in kelvins\n",
+ "VT=T/11600# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "ID1=1# # Let the initial diode current be 1 A\n",
+ "ID2=10*ID1# # Final diode current\n",
+ "eta=1# # for Ge\n",
+ "deltaVD=eta*VT*log(ID2/ID1)# # Change in diode voltage in volts\n",
+ "deltaVD=deltaVD*1e3# # Change in diode voltage in milivolts\n",
+ "print \"Change in diode voltage (for Ge) = %0.f mV\"%deltaVD\n",
+ "eta=2# # for Si\n",
+ "deltaVD=eta*VT*log(ID2/ID1)# # Change in diode voltage in volts\n",
+ "deltaVD=deltaVD*1e3# # Change in diode voltage in milivolts\n",
+ "print \"Change in diode voltage (for Si) = %0.f mV\"%deltaVD"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.6: Page No 47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R = 20.81 Ω\n"
+ ]
+ }
+ ],
+ "source": [
+ "## R\n",
+ "\n",
+ "# In the circuit given in Fig. 2.7\n",
+ "V=50e-3# # Output voltage\n",
+ "VD1=0.7# # Voltage across diode 1 in volts\n",
+ "I1=10e-3# # Current through diode 1 at 0.7 V in amperes\n",
+ "VD2=0.8# # Voltage across diode 2 in volts\n",
+ "I2=100e-3# # Current through diode 2 at 0.8 V in amperes\n",
+ "eta_VT=(VD2-VD1)/log(I2/I1)# # Product of η and VT\n",
+ "I=10e-3/(exp(V/eta_VT)+1)# # Current through diode 1 in amperes\n",
+ "R=V/I#\n",
+ "print \"R = %0.2f Ω\"%R"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.7: Page No 48"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Diode current = 4.3000 mA\n",
+ "Diode voltage = 0.7633 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Current, Diode voltage\n",
+ "VDD=5# # Applied voltage in volts\n",
+ "VD=0.7# # Diode voltage in volts\n",
+ "I1=1e-3# # Current in amperes at diode voltage = 0.7 V\n",
+ "R=1000# # R in ohms\n",
+ "deltaVD=0.1# # Change in diode voltage in volts for every decade change in current\n",
+ "ratioI=10# # Decade change in current\n",
+ "eta_VT=deltaVD/log(ratioI)# # Product of η and VT\n",
+ "ID=(VDD-VD)/R# # Diode current in amperes\n",
+ "VD2=VD+eta_VT*log(ID/I1)# # Diode voltage in volts\n",
+ "ID=ID*1e3# # Diode current in miliamperes\n",
+ "print \"Diode current = %0.4f mA\"%ID\n",
+ "print \"Diode voltage = %0.4f V\"%VD2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.8: Page No 55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Output voltage = 5.00 V Part (b)\n",
+ "Output voltage = 0.864 V\n",
+ "Part (c)\n",
+ "Output voltage = 0.736 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Output voltage\n",
+ "# (b) Output voltage\n",
+ "# (c) Output voltage\n",
+ "\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# Since both the diodes are in OFF state\n",
+ "Vo=5# # Output voltage in volts\n",
+ "print \"Output voltage = %0.2f V\"%Vo,\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "#Since diode D1 is in OFF state and diode D2 is in ON state\n",
+ "# From Fig. 2.16(C)\n",
+ "I=(5-0.6)/(4.7e3+300)# # Current flowing through the diode D2 in amperes\n",
+ "Vo=5-I*4.7e3# # Output voltage in volts\n",
+ "print \"Output voltage = %0.3f V\"%Vo\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "# Since both diodes are in ON state\n",
+ "# Applying KVL in Fig. 2.16(d)\n",
+ "I=(5-0.6)/(2*4.7e3+300)# # Current flowing through diode D1 or diode D2 in amperes\n",
+ "Vo=5-2*I*4.7e3# # Output voltage in volts\n",
+ "print \"Output voltage = %0.3f V\"%Vo"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.9 : Page No 57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Output voltage = 2 V\n",
+ "Current through diode D1 = 0 A\n",
+ "Current through diode D2 = 0.62 mA \n",
+ "Part (b)\n",
+ "Output voltage = 4.00 V\n",
+ "Current through diode D1 = 0.63 mA\n",
+ "Current through diode D2 = 0.20 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Output voltage, Diode currents\n",
+ "# (b) Output voltage, Diode currents\n",
+ "\n",
+ "Vy=0.7# # Cut-in voltage in volts\n",
+ "# In the Fig. 2.17\n",
+ "R1=5e3#\n",
+ "R2=10e3#\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# Since diode D1 is OFF and diode D2 is ON\n",
+ "ID2=(5-Vy-(-5))/(R1+R2)# # Current through diode D2 in amperes\n",
+ "Vo=5-ID2*R1# # Output voltage\n",
+ "ID2=ID2*1e3# # Current through diode D2 in miliamperes\n",
+ "print \"Output voltage = %0.f V\"%Vo\n",
+ "print \"Current through diode D1 = %0.f A\"%0\n",
+ "print \"Current through diode D2 = %0.2f mA \"%ID2\n",
+ "print \"Part (b)\"\n",
+ "# Since both the diodes are ON\n",
+ "VA=4-Vy# # In the fig.\n",
+ "Vo=VA+Vy# # Output voltage\n",
+ "ID2=(5-Vo)/R1# # Current through diode D2 in amperes\n",
+ "IR2=(VA-(-5))/R2# # Current through diode R2 in amperes\n",
+ "ID1=IR2-ID2# # Current through diode D1 in amperes\n",
+ "ID1=ID1*1e3# # Current through diode D1 in miliamperes\n",
+ "ID2=ID2*1e3# # Current through diode D2 in miliamperes\n",
+ "print \"Output voltage = %0.2f V\"%Vo\n",
+ "print \"Current through diode D1 = %0.2f mA\"%ID1\n",
+ "print \"Current through diode D2 = %0.2f mA\"%ID2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.11 : Page No 62"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Amplitude of alternating component of the voltage across load resistance = 0.20 V\n",
+ "Therefore, the alternating component of the voltage across load resistance is 0.199 sin ωt V\n",
+ "Part (b)\n",
+ "DC component of voltage across load resistance = 8.36 V\n",
+ "Therefore, total voltage across load resistance is (8.36 + 0.199 sin ωt) V\n",
+ "Part (C)\n",
+ "DC component of current across load resistance = 4.18 mA \n",
+ "Amplitude of alternating component of the current across load resistance = 0.10 mA\n",
+ "Therefore, total current across load resistance is (4.18 + 0.099 sin ωt) mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Alternating component of voltage acroos load resistance\n",
+ "# (b) Total voltage across load resistance\n",
+ "# (c) Total current\n",
+ "\n",
+ "T=293# # Operating temperature in kelvins\n",
+ "VT=T/11600# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# In the Fig. 2.21(a)\n",
+ "VAA=9# # in volts\n",
+ "Vm=0.2# # in volts\n",
+ "RL=2e3# # Load resistance in ohms\n",
+ "Vy=0.6# # Cut-in voltage in volts\n",
+ "Rf=10# # Forward resistance of diode in ohms\n",
+ "eta=2#\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# From DC model in Fig. 2.21(b)\n",
+ "IDQ=(VAA-Vy)/(RL+Rf)# # DC current through diode or load resistance in amperes\n",
+ "rd=eta*VT/IDQ# # Dynamic resistance in ohms\n",
+ "# This dynamic resistance is used in AC model in Fig. 2.21(c)\n",
+ "Vom=Vm*RL/(RL+rd)# # Amplitude of alternating component of the voltage across load resistance in volts\n",
+ "print \"Amplitude of alternating component of the voltage across load resistance = %0.2f V\"%Vom\n",
+ "print \"Therefore, the alternating component of the voltage across load resistance is 0.199 sin ωt V\"\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "VDQ=IDQ*RL# # DC component of voltage across load resistance in volts\n",
+ "print \"DC component of voltage across load resistance = %0.2f V\"%VDQ\n",
+ "print \"Therefore, total voltage across load resistance is (8.36 + 0.199 sin ωt) V\"\n",
+ "\n",
+ "print \"Part (C)\"\n",
+ "IDQ=IDQ*1e3# # DC current through load resistance in miliamperes\n",
+ "idm=Vm/(RL+rd)# # Amplitude of alternating component of the current across load resistance in amperes\n",
+ "idm=idm*1e3# # Amplitude of alternating component of the current across load resistance in miliamperes\n",
+ "print \"DC component of current across load resistance = %0.2f mA \"%IDQ\n",
+ "print \"Amplitude of alternating component of the current across load resistance = %0.2f mA\"%idm\n",
+ "print \"Therefore, total current across load resistance is (4.18 + 0.099 sin ωt) mA\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.12: Page No 64"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (b)\n",
+ "Vo for I= 1 mA = 0.476 mV\n",
+ "Vo for I= 0.1 mA = 3.33 mV\n",
+ "Vo for I= 1 μA = 9.804 mV\n",
+ "Part (c)\n",
+ "I = 50.00 μA\n"
+ ]
+ }
+ ],
+ "source": [
+ "## (b) Vo\n",
+ "#(c) I\n",
+ "\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# In the Fig. 2.22 (a)\n",
+ "vs=10e-3# # in volts\n",
+ "Rs=1e3# # in ohms\n",
+ "eta=2#\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "I=1e-3# # in amperes\n",
+ "Vo=vs*eta*VT/(eta*VT+I*Rs)# # in volts\n",
+ "Vo=Vo*1e3# # in milivolts\n",
+ "print \"Vo for I= 1 mA = %0.3f mV\"%Vo\n",
+ "I=0.1e-3# # in amperes\n",
+ "Vo=vs*eta*VT/(eta*VT+I*Rs)# # in volts\n",
+ "Vo=Vo*1e3# # in milivolts\n",
+ "print \"Vo for I= 0.1 mA = %0.2f mV\"%Vo\n",
+ "I=1e-6# # in amperes\n",
+ "Vo=vs*eta*VT/(eta*VT+I*Rs)# # in volts\n",
+ "Vo=Vo*1e3# # in milivolts\n",
+ "print \"Vo for I= 1 μA = %0.3f mV\"%Vo\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "Vo=vs/2# # in volts\n",
+ "I=eta*VT*(vs-Vo)/(Vo*Rs)# # in amperes\n",
+ "I=I*1e6# # in micro-amperes\n",
+ "print \"I = %0.2f μA\"%I"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.13: Page No 69"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Barrier capacitance = 70.74 pF\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Barrier capacitance\n",
+ "from math import pi\n",
+ "A=1e-3*1e-3# # Area of p-n junction in metres square\n",
+ "W=2e-6# # Space charge thickness in metres\n",
+ "E=16# # Dielectric constant of Ge\n",
+ "Eo=1/(36*pi*1e9)# # Absolute permittivity of air\n",
+ "C=E*Eo*A/W# # Barrier capacitance in farads\n",
+ "C=C*1e12# # Barrier capacitance in pico-farads\n",
+ "print \"Barrier capacitance = %0.2f pF\"%C"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.14: Page No 70"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Change in capacitance = -0.229 pF\n",
+ "Part (b)\n",
+ "Change in capacitance = 0.276 pF\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Change in capacitance\n",
+ "# (b) Change in capacitance\n",
+ "from math import sqrt\n",
+ "C=4e-12# # Depletion capacitance in farads\n",
+ "V=4# # in volts\n",
+ "K=C*sqrt(V)# # a constant\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "V=4+0.5# # in volts\n",
+ "C_new=K/sqrt(V)# # in farads\n",
+ "deltaC=C_new-C# # Change in capacitande in farads\n",
+ "deltaC=deltaC*1e12# # Change in capacitande in pico-farads\n",
+ "print \"Change in capacitance = %0.3f pF\"%deltaC\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "V=4-0.5# # in volts\n",
+ "C_new=K/sqrt(V)# # in farads\n",
+ "deltaC=C_new-C# # Change in capacitande in farads\n",
+ "deltaC=deltaC*1e12# # Change in capacitande in pico-farads\n",
+ "print \"Change in capacitance = %0.3f pF\"%deltaC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.18: Page No 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Diffusion length = 2.60 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Diffusion length\n",
+ "\n",
+ "I=1e-3# # Forward bias current in amperes\n",
+ "C=1e-6# # Diffusion capacitance in farads\n",
+ "Dp=13# # Diffusion constant for Si\n",
+ "eta=2# # for Si\n",
+ "VT=26e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "Lp=sqrt(C*Dp*eta*VT/I)# # Diffusion length in metres\n",
+ "Lp=Lp*1e2# # Diffusion length in centimetres\n",
+ "print \"Diffusion length = %0.2f cm\"%Lp"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2.19 : Page No 90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Vd1 = 0.0180 V\n",
+ "Vd2 = 4.9820 V\n",
+ "Part (b)\n",
+ "Current in the circuit = 229 μA\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Vd1 and Vd2\n",
+ "# (b) Current in the circuit\n",
+ "\n",
+ "eta_VT=0.026# # Product of η and VT\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "# From the Fig. 2.19(a)\n",
+ "Is=5e-6# # Reverse saturation current through diode D2 in amperes\n",
+ "Id1=Is# # Forward current through diode D1 in amperes\n",
+ "Vd1=eta_VT*log(1+(Id1/Is))# # in volts\n",
+ "Vd2=5-Vd1# # in volts\n",
+ "print \"Vd1 = %0.4f V\"%Vd1\n",
+ "print \"Vd2 = %0.4f V\"%Vd2\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "# From the Fig. 2.19(b)\n",
+ "Vz=4.9# # Zener voltage in volts\n",
+ "Vd1=5-Vz# # in volts\n",
+ "I=Is*(exp(Vd1/eta_VT)-1)# # Current in the circuit in amperes\n",
+ "I=I*1e6# # Current in the circuit in micro-amperes\n",
+ "print \"Current in the circuit = %0.f μA\"%I"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch3.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch3.ipynb
new file mode 100644
index 00000000..4edb1a62
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch3.ipynb
@@ -0,0 +1,1678 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 3 : Applications of diodes"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.4: Page No 116"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "DC load current = 1.20 A\n",
+ "Part (b)\n",
+ "DC power in load = 41.789 W\n",
+ "Part (c)\n",
+ "Rectification efficiency = 0.7836 \n",
+ "Part (d)\n",
+ "Percentage regulation = 3.45 %\n",
+ "Part (e)\n",
+ "PIV for each diode = 113.14 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "# (a) DC load current\n",
+ "# (b) DC power in load\n",
+ "# (c) Rectification efficiency\n",
+ "# (d) Percentage regulation\n",
+ "# (e) PIV of each diode\n",
+ "from math import sqrt, pi\n",
+ "Vrms=40# # Input in volts\n",
+ "Rf=1# # Forward conduction resistance of diodes in ohms\n",
+ "RL=29# # Load resistance in ohms\n",
+ "Vmax=Vrms*sqrt(2)# # in volts\n",
+ "Imax=Vmax/(Rf+RL)# # in amperes\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Idc=2*Imax/pi# # DC load current in amperes\n",
+ "print \"DC load current = %0.2f A\"%Idc\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "Pdc=Idc**2*RL# # DC power in load in watts\n",
+ "print \"DC power in load = %0.3f W\"%Pdc\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "Pac=Vrms**2/(Rf+RL)# # AC power in load\n",
+ "eta=Pdc/Pac# # Rectification efficiency\n",
+ "print \"Rectification efficiency = %0.4f \"%eta\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "reg=Rf*100/RL# # Percentage regulation\n",
+ "print \"Percentage regulation = %0.2f %%\"%reg\n",
+ "\n",
+ "print \"Part (e)\"\n",
+ "PIV=2*Vmax# # in volts\n",
+ "print \"PIV for each diode = %0.2f V\"%PIV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.5: Page No 118"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "DC voltage at load = 107.15 V\n",
+ "Part (b)\n",
+ "PIV rating of each diode = 169.71 V\n",
+ "Part (c)\n",
+ "Maximum current through each diode = 168.31 mA\n",
+ "Part (d)\n",
+ "Required power rating = 117.81 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) DC voltage at load\n",
+ "# (b) PIV rating of each diode\n",
+ "# (c) Maximum current through each diode\n",
+ "# (d) Required power rating\n",
+ "Vrms=120# # Input voltage in volts\n",
+ "RL=1e3# # Load resistance in ohms\n",
+ "Vy=0.7# # Cut-in voltage in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Vmax=Vrms*sqrt(2)# # in volts\n",
+ "Imax=(Vmax-2*Vy)/RL# # in amperes\n",
+ "Idc=2*Imax/pi# # in amperes\n",
+ "Vdc=Idc*RL# # in volts\n",
+ "print \"DC voltage at load = %0.2f V\"%Vdc\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "print \"PIV rating of each diode = %0.2f V\"%Vmax\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "Imax=Imax*1e3# # in miliamperes\n",
+ "print \"Maximum current through each diode = %0.2f mA\"%Imax\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "Pmax=Vy*Imax# # Required power rating in mili-watts\n",
+ "print \"Required power rating = %0.2f mW\"%Pmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.6: Page No 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Peak value of current = 0.2178 A\n",
+ "Part (b)\n",
+ "DC value of current = 0.13867 A\n",
+ "Part (C)\n",
+ "Ripple factor = 0.483 \n",
+ "Part (d)\n",
+ "Rectification efficiency = 0.803 \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Peak value of current\n",
+ "# (b) DC value of current\n",
+ "# (c) Ripple factor\n",
+ "# (d) Rectification efficiency\n",
+ "# From the Fig. 2.16\n",
+ "RL=1e3# # Load resistance in ohms\n",
+ "rd=10# # Forward bias dynamic resistance of diodes in ohms\n",
+ "Vmax=220# # Amplitude of input voltage in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Imax=Vmax/(rd+RL)# # Peak value of current in amperes\n",
+ "print \"Peak value of current = %0.4f A\"%Imax\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "Idc=2*Imax/pi# # DC value of current in amperes\n",
+ "print \"DC value of current = %0.5f A\"%Idc\n",
+ "\n",
+ "print \"Part (C)\"\n",
+ "ripl=sqrt((Imax/(Idc*sqrt(2)))**2-1)#\n",
+ "print \"Ripple factor = %0.3f \"%ripl\n",
+ "\n",
+ "print \"Part (d)\"\n",
+ "eta=8/(pi**2*(1+(rd/RL)))# # Rectification efficiency\n",
+ "print \"Rectification efficiency = %0.3f \"%eta,"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.7: Page No 121"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Full-scale deflection = 5.5647 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import pi, sqrt\n",
+ "#Full scale reading\n",
+ "Idc=1e-3# # in amperes\n",
+ "Rf=10# # in ohms\n",
+ "RL=5e3# # in ohms\n",
+ "Vrms=Idc*(RL+Rf)*pi/(2*sqrt(2))# # Full-scale deflection in volts\n",
+ "print \"Full-scale deflection = %0.4f V\"%Vrms"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.8: Page No 122"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Full-scale deflection = 111.294 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Full-scale reading\n",
+ "Idc=5e-3# # in amperes\n",
+ "Rf=40# # in ohms\n",
+ "RL=20e3# # in ohms\n",
+ "Vrms=Idc*(RL+Rf)*pi/(2*sqrt(2))# # Full-scale deflection in volts\n",
+ "print \"Full-scale deflection = %0.3f V\"%Vrms"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.10: Page No 133"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Minimum value of zener diode current = 4.00 mA\n",
+ "Maximum value of zener diode current = 19.00 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Minimum and maximum value of zener diode current\n",
+ "# From the Fig. 3.33\n",
+ "Vsmin=120# # in volts\n",
+ "Vsmax=170# # in volts\n",
+ "Vz=50# # in volts\n",
+ "Rs=5e3# # in ohms\n",
+ "RLmin=5e3# # in ohms\n",
+ "RLmax=10e3# # in ohms\n",
+ "ILmin=Vz/RLmax# # in amperes\n",
+ "ILmax=Vz/RLmin# # in amperes\n",
+ "Izmin=((Vsmin-Vz)/Rs)-ILmax# # Minimum value of zener diode current in amperes\n",
+ "Izmin=Izmin*1e3# # Minimum value of zener diode current in miliamperes\n",
+ "Izmax=((Vsmax-Vz)/Rs)-ILmin# # Maximum value of zener diode current in amperes\n",
+ "Izmax=Izmax*1e3# # Maximum value of zener diode current in miliamperes\n",
+ "print \"Minimum value of zener diode current = %0.2f mA\"%Izmin\n",
+ "print \"Maximum value of zener diode current = %0.2f mA\"%Izmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.11: Page No 134"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "V = 75.00 V\n",
+ "Part (b)\n",
+ "Vmin = 71.67 V\n",
+ "Vmax = 91.67 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) V\n",
+ "# (b) Voltage range of V\n",
+ "\n",
+ "Vz=50# # Zener voltage in volts\n",
+ "Izmin=1e-3# # in amperes\n",
+ "Izmax=5e-3# # in amperes\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "ILmin=0#\n",
+ "Rs=5e3# # in ohms\n",
+ "V=Vz+Rs*(Izmax+ILmin)# # in volts\n",
+ "print \"V = %0.2f V\"%V\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "IL=(50/15)*1e-3# # in amperes\n",
+ "Vmin=Vz+Rs*(Izmin+IL)# # in volts\n",
+ "Vmax=Vz+Rs*(Izmax+IL)# # in volts\n",
+ "print \"Vmin = %0.2f V\"%Vmin\n",
+ "print \"Vmax = %0.2f V\"%Vmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.12: Page No 135"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Normal situation\n",
+ "Zener diode current = 22.00 mA\n",
+ "Power dissipation in zener diode = 149.60 mW\n",
+ "Power dissipation in resistor = 48.40 mW\n",
+ "Aberrant situation\n",
+ "Zener diode current = 82.00 mA\n",
+ "Power dissipation in zener diode = 557.60 mW\n",
+ "Power dissipation in resistor = 672.40 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Zener diode current, Power dissipation in zener diode and resistor\n",
+ "# In the Fig. 3.35\n",
+ "Vz=6.8# # in volts\n",
+ "R=100# # in ohms\n",
+ "\n",
+ "print \"Normal situation\"\n",
+ "Vs=9# # in volts\n",
+ "I=(Vs-Vz)/R# # in amperes\n",
+ "Pzener=I*Vz# # in watts\n",
+ "Presistor=I**2*R# # in watts\n",
+ "I=I*1e3# # in miliamperes\n",
+ "Pzener=Pzener*1e3# # in miliwatts\n",
+ "Presistor=Presistor*1e3# # in miliwatts\n",
+ "print \"Zener diode current = %0.2f mA\"%I\n",
+ "print \"Power dissipation in zener diode = %0.2f mW\"%Pzener\n",
+ "print \"Power dissipation in resistor = %0.2f mW\"%Presistor\n",
+ "\n",
+ "print \"Aberrant situation\"\n",
+ "Vs=15# # in volts\n",
+ "I=(Vs-Vz)/R# # in amperes\n",
+ "Pzener=I*Vz# # in watts\n",
+ "Presistor=I**2*R# # in watts\n",
+ "I=I*1e3# # in miliamperes\n",
+ "Pzener=Pzener*1e3# # in miliwatts\n",
+ "Presistor=Presistor*1e3# # in miliwatts\n",
+ "print \"Zener diode current = %0.2f mA\"%I\n",
+ "print \"Power dissipation in zener diode = %0.2f mW\"%Pzener\n",
+ "print \"Power dissipation in resistor = %0.2f mW\"%Presistor"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.13: Page No 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ILmin = 52.63 mA\n",
+ "ILmax = 476.32 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Range of load current\n",
+ "Vz=5# # in volts\n",
+ "Izmin=50e-3# # in amperes\n",
+ "Izmax=1# # in amperes\n",
+ "Vmin=7.5# # in volts\n",
+ "Vmax=10# # in volts\n",
+ "Rs=4.75# # in ohms\n",
+ "ILmin=((Vmax-Vz)/Rs)-Izmax# # in amperes\n",
+ "ILmin=ILmin*1e3# # in miliamperes\n",
+ "ILmax=((Vmin-Vz)/Rs)-Izmin# # in amperes\n",
+ "ILmax=ILmax*1e3# # in miliamperes\n",
+ "print \"ILmin = %0.2f mA\"%ILmin\n",
+ "print \"ILmax = %0.2f mA\"%ILmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exmaple 3.14: Page No 136"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ILmin = 0.00 A\n",
+ "ILmax = 3.10 mA\n",
+ "Redesigned Part\n",
+ "Series resistance = 410.26 Ω\n"
+ ]
+ }
+ ],
+ "source": [
+ "## Load-current range, Series resistance in redesigned circuit\n",
+ "# In Fig. 3.37\n",
+ "Vz=6.8# # in volts\n",
+ "Izk=0.1e-3# # in amperes\n",
+ "Vs=10# # in volts\n",
+ "Rs=1e3# # in ohms\n",
+ "ILmax=((Vs-Vz)/Rs)-Izk# # in amperes\n",
+ "ILmax=ILmax*1e3# # in miliamperes\n",
+ "print \"ILmin = %0.2f A\"%0\n",
+ "print \"ILmax = %0.2f mA\"%ILmax\n",
+ "\n",
+ "print \"Redesigned Part\"\n",
+ "RL=1e3# # in ohms\n",
+ "Izk=Izk*10# # in amperes\n",
+ "I=Izk+(Vz/RL)# # in amperes\n",
+ "R=(Vs-Vz)/I# # in ohms\n",
+ "print \"Series resistance = %0.2f Ω\"%R"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.15: Page No 137"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "Series resistance = 4.00 Ω\n",
+ "Part (b)\n",
+ "Power dissipation rating of zener diode = 6.00 W\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Series resistance\n",
+ "# (b) Power dissipation rating of zener diode\n",
+ "# In Fig. 3.38\n",
+ "Vz=6# # in volts\n",
+ "ILmin=0#\n",
+ "ILmax=0.5# # in amperes\n",
+ "Vmin=8# # in volts\n",
+ "Vmax=10# # in volts\n",
+ "Izmin=0#\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Rs=(Vmin-Vz)/(ILmax+Izmin)# # Series resistance in ohms\n",
+ "print \"Series resistance = %0.2f Ω\"%Rs\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "Izmax=((Vmax-Vz)/Rs)-ILmin# # in amperes\n",
+ "Pzmax=Vz*Izmax# # in watts\n",
+ "print \"Power dissipation rating of zener diode = %0.2f W\"%Pzmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.16: Page No 138"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Series resistance = 116.36 Ω\n",
+ "Maximum zener current = 110.00 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Series resistance R, Maximum zener current\n",
+ "# In Fig. 3.39\n",
+ "Vz=7.2# # in volts\n",
+ "ILmin=12e-3# # in amperes\n",
+ "ILmax=100e-3# # in amperes\n",
+ "Vs=20# # in volts\n",
+ "Izmin=10e-3# # in amperes\n",
+ "Rs=(Vs-Vz)/(ILmax+Izmin)# # Series resistance in ohms\n",
+ "print \"Series resistance = %0.2f Ω\"%Rs\n",
+ "# For ILmin=0\n",
+ "Izmax=((Vs-Vz)/Rs)# # in amperes\n",
+ "Izmax=Izmax*1e3# # in miliamperes\n",
+ "print \"Maximum zener current = %0.2f mA\"%Izmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.17: Page No 139"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "R = 3.75 kΩ\n",
+ "Maximum possible value of load current = 35.00 mA\n",
+ "Part (b)\n",
+ "Minimum value of V = 162.50 V\n",
+ "Maximum value of V = 293.75 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) R, maximum possible value of load current\n",
+ "# (b) Range of V\n",
+ "Vz=50# # Diode voltage in volts\n",
+ "Izmin=5e-3# # in amperes\n",
+ "Izmax=40e-3# # in amperes\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "ILmin=0#\n",
+ "V=200# # Input voltage in volts\n",
+ "R=(V-Vz)/(Izmax-ILmin)# # in ohms\n",
+ "ILmax=((V-Vz)/R)-Izmin# # in amperes\n",
+ "Rk=R*1e-3# # in kilo-ohms\n",
+ "ILmax=ILmax*1e3# # in miliamperes\n",
+ "print \"R = %0.2f kΩ\"%Rk\n",
+ "print \"Maximum possible value of load current = %0.2f mA\"%ILmax\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "IL=25e-3#\n",
+ "Vmin=Vz+R*(Izmin+IL)# # in volts\n",
+ "Vmax=Vz+R*(Izmax+IL)# # in volts\n",
+ "print \"Minimum value of V = %0.2f V\"%Vmin\n",
+ "print \"Maximum value of V = %0.2f V\"%Vmax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.18: Page No 140"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R = 400.00 Ω\n",
+ "ILmax = 30.00 mA\n",
+ "Power rating of zener diode = 240.00 mW\n"
+ ]
+ }
+ ],
+ "source": [
+ "#R, ILmax, Power rating of zener diode\n",
+ "# In Fig. 3.41\n",
+ "Vz=6# # in volts\n",
+ "V=22# # in volts\n",
+ "Izmin=10e-3# # in amperes\n",
+ "Izmax=40e-3# # in amperes\n",
+ "ILmin=0#\n",
+ "R=(V-Vz)/(Izmax-ILmin)# # in ohms\n",
+ "ILmax=((V-Vz)/R)-Izmin# # in amperes\n",
+ "P=Izmax*Vz# # Power rating of zener diode in watts\n",
+ "ILmax=ILmax*1e3# # in miliamperes\n",
+ "P=P*1e3# # Power rating of zener diode in mili-watts\n",
+ "print \"R = %0.2f Ω\"%R\n",
+ "print \"ILmax = %0.2f mA\"%ILmax\n",
+ "print \"Power rating of zener diode = %0.2f mW\"%P"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.19: Page No 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "VL = 10.00 V\n",
+ "IL = 55.56 mA\n",
+ "Iz = 12.63 mA\n",
+ "IR = 68.18 mA\n",
+ "Part (b)\n",
+ "RL for maximum power dissipation for zener diode = 354.84 Ω\n",
+ "Part (c)\n",
+ "Maximum value of RL for zener diode to remain ON = 155.81 Ω\n",
+ "If Izmin=0\n",
+ "Maximum value of RL for zener diode to remain ON = 147 Ω\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) VL,IL,Iz,IR\n",
+ "# (b) RL for maximum power dissipation for zener diode\n",
+ "# (c) Maximum value of RL for zener diode to remain ON\n",
+ "# From Fig. 3.42\n",
+ "Vs=25# # in volts\n",
+ "Rs=220# # in ohms\n",
+ "Vz=10# # in volts\n",
+ "Pzmax=400# # in mili-watts\n",
+ "Izmax=Pzmax/Vz# # in miliamperes\n",
+ "Izmin=Izmax*10/100# # in miliamperes\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "RL=180# # in ohms\n",
+ "VL=Vz# # in volts\n",
+ "IL=Vz/RL# # in amperes\n",
+ "IL=IL*1e3# # in miliamperes\n",
+ "IR=(Vs-Vz)/Rs# # in amperes\n",
+ "IR=IR*1e3# # in miliamperes\n",
+ "Iz=IR-IL# # in miliamperes\n",
+ "print \"VL = %0.2f V\"%VL\n",
+ "print \"IL = %0.2f mA\"%IL\n",
+ "print \"Iz = %0.2f mA\"%Iz\n",
+ "print \"IR = %0.2f mA\"%IR\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "RL=Vz*1e3/(IR-Izmax)# # in ohms\n",
+ "print \"RL for maximum power dissipation for zener diode = %.2f Ω\"%RL\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "RL=Vz*1e3/(IR-Izmin)# # in ohms\n",
+ "print \"Maximum value of RL for zener diode to remain ON = %0.2f Ω\"%RL\n",
+ "print \"If Izmin=0\"\n",
+ "RL=Vz*1e3/IR# # in ohms\n",
+ "print \"Maximum value of RL for zener diode to remain ON = %0.f Ω\"%RL"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.20: Page No 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rs <= 1.00 \n",
+ "Rs >= 3.33\n",
+ "To meet the load current variation from 1 A to 10 A a zener of specification Izmin = 0.01 A to Izmax = 5 A cannot meet the requirement for any value of Rs\n",
+ "Minimum value of Rs = 4.00 Ω\n",
+ "Maximum value of Rs = 500.00 Ω\n",
+ "Average wattage of Rs = 100.40 W\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Range and average watage of Rs\n",
+ "# From Fig. 3.43\n",
+ "Vsmin=20# # in volts\n",
+ "Vsmax=30# # in volts\n",
+ "RLmin=1# # in ohms\n",
+ "RLmax=10# # in ohms\n",
+ "Izmin=10e-3# # in amperes\n",
+ "Pzmax=50# # in watts\n",
+ "Vz=10# # in volts\n",
+ "ILmin=Vz/RLmax# # in amperes\n",
+ "ILmax=Vz/RLmin# # in amperes\n",
+ "Izmax=Pzmax/Vz# # in amperes\n",
+ "Rs1=(Vsmin-Vz)/(ILmax+Izmin)# # in ohms\n",
+ "Rs2=(Vsmax-Vz)/(ILmin+Izmax)# # in ohms\n",
+ "print \"Rs <= %0.2f \"%Rs1\n",
+ "print \"Rs >= %0.2f\"%Rs2\n",
+ "print \"To meet the load current variation from 1 A to 10 A a zener of specification Izmin = 0.01 A to Izmax = 5 A cannot meet the requirement for any value of Rs\"\n",
+ "# Let\n",
+ "RLmin=1e3# # in ohms\n",
+ "RLmax=10e3# # in ohms\n",
+ "ILmin=Vz/RLmax# # in amperes\n",
+ "ILmax=Vz/RLmin# # in amperes\n",
+ "Rsmin=(Vsmax-Vz)/(ILmin+Izmax)# # in ohms\n",
+ "Rsmax=(Vsmin-Vz)/(ILmax+Izmin)# # in ohms\n",
+ "print \"Minimum value of Rs = %0.2f Ω\"%Rsmin\n",
+ "print \"Maximum value of Rs = %0.2f Ω\"%Rsmax\n",
+ "Rs=4# # in ohms\n",
+ "W=Rs*(ILmax+Izmax)**2# # in watts\n",
+ "print \"Average wattage of Rs = %0.2f W\"%W"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.21: Page No 146"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9ffc602a10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n3W6OpzzBAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe151fd50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe13fdf10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\nRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe1332a10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# (a) Transfer characteristics and output\n",
+ "# (b) Transfer characteristics and output\n",
+ "Vy=0.6# # in volts\n",
+ "Rf=100# # in ohms\n",
+ "from numpy import arange\n",
+ "t=arange(-40,40,0.001)\n",
+ "from math import sin, pi\n",
+ "vin=[]\n",
+ "for x in t:\n",
+ " vin.append(40*sin(2*pi*x/80)) # Input voltage in volts\n",
+ "\n",
+ "# Part (a)\n",
+ "# From Fig. 3.49(a)\n",
+ "# Sketching of transfer characteristics\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " \n",
+ " if vin[i]<5.6 :\n",
+ " vo.append(vin[i])# # in volts\n",
+ " else:\n",
+ " ID=(vin[i]-5.6)/(4.9e3+Rf)# # in amperes\n",
+ " vo.append(vin[i]-ID*4.9e3)# # in volts\n",
+ " \n",
+ "\n",
+ "% matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "plot(vin,vo)#\n",
+ "title(\"Part (a) - Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "\n",
+ "\n",
+ "# Sketching of output\n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)#\n",
+ "title(\"Part (a) - Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "# Part (b)\n",
+ "# From Fig. 3.49(b)\n",
+ "# Sketching of transfer characteristics\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " \n",
+ " if vin[i]>-0.6:\n",
+ " vo.append(vin[i])# # in volts\n",
+ " else:\n",
+ " ID=(vin[i]+0.6)/(9.9e3+Rf)# # in amperes\n",
+ " vo.append(vin[i]-ID*9.9e3)# # in volts\n",
+ " \n",
+ "plot(vin,vo)#\n",
+ "title(\"Part (b) - Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "# Sketching of output\n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)\n",
+ "title(\"Part (b) - Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.22: Page No 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n1omZekl9Y/RyHjP1kvrIYj+PmXpJfeSc/QAz9ZImgTn7NTJTL2kSuEC7BmbqJfWZxR4z9ZL6z2kc\nzNRLmixO46yCmXpJ02Cqo5dm6iVNi6ku9mbqJU2LqZ2zN1MvaVKZs18BM/WSJpULtMtkpl7StOl0\nzj7J+5Jcm2Rrl+2sxFym/p3vNFMvaXp0vUD7fuCZHbexIiefDBs3wlFHjbonkjQ8nU7jVNV5SQ7u\nso2VMFMvaVpNTfTSTL2kaTbyBdotW7bcfntmZoaZmZlO2jFTL2lSzc7OMjs7u6Z9dB69bKdxPllV\nj1zguaFEL83US+qT1UQvp2IaZ/Nm2LTJQi9penUdvfww8GXgYUmuSnJsl+0tZC5T/7rXDbtlSRof\nvf4E7fbtzdn8qacatZTUH14uYR6vUy+pj7xcwgAz9ZJ0h14u0Jqpl6Q762WxN1MvSXfWuzl7M/WS\n+s4FWrxOvaT+m/oFWq9TL0kL602xn7tO/amnep16SZqvN9M4ZuolTYupncYxUy9JOzfx0Usz9ZK0\ntIkv9mbqJWlpEz1nb6Ze0jSaupy9mXpJ02iqFmjN1EvS8k1ksTdTL0krM5HTOGbqJU2zqZjGMVMv\nSSs3UdFLM/WStDoTVezN1EvS6kzMnL2Zeklq9Dpnb6Zekhq9XaA1Uy9JazP2xd5MvSSt3dhP45ip\nl6Q76900jpl6SVofYxu9NFMvSetnbIu9mXpJWj9jOWdvpl6SFtebnL2ZeklaXC8WaM3US9L6G6ti\nb6ZekroxVtM4ZuolaWkTPY1jpl6SujMW0Usz9ZLUrU6LfZJnJvl2ku8m+e+LbWemXpK61VmxT7IL\n8A7gmcC/B34nycPnb7dtG5x0Epx2WlPw+2R2dnbUXeiU45tsfR5fn8e2Wl2W18OB71XVFVX1C+Aj\nwG/N32jzZti0qZ8fnur7G87xTbY+j6/PY1utLhdoHwhcNXD/auAJ8zcyUy9J3evyzH5Zmc53vtNM\nvSR1rbOcfZKNwJaqemZ7/0RgR1W9eWCb0YX8JWmCjc21cZLsCvwjcCTwQ+B84Heq6rJOGpQkLaqz\nOfuqui3JccDZwC7AX1joJWk0Rnq5BEnScIws2b7cD1xNiiTvS3Jtkq0Dj+2b5LNJvpPkM0n2GWUf\nVyvJQUnOTfKtJJck+cP28b6M7x5JvprkoiSXJnlT+3gvxjcnyS5JLkzyyfZ+b8aX5IokF7fjO799\nrE/j2yfJx5Jc1r5Hn7DS8Y2k2C/3A1cT5v004xl0AvDZqnoYcE57fxL9AthcVYcCG4FXtt+vXoyv\nqn4GHFFVjwYOA45I8mR6Mr4BxwOXckdSrk/jK2Cmqh5TVYe3j/VpfG8H/q6qHk7zHv02Kx1fVQ39\nC3gi8OmB+ycAJ4yiL+s8roOBrQP3vw3cv729P/DtUfdxncZ5JvD0Po4P2AO4ADi0T+MDDgQ+BxwB\nfLJ9rE/juxy4z7zHejE+4F7A9xd4fEXjG9U0zkIfuHrgiPrSpftX1bXt7WuB+4+yM+shycHAY4Cv\n0qPxJdmQ5CKacZxbVd+iR+MD3gq8Btgx8FifxlfA55J8Lcmm9rG+jO/BwPVJ3p/kG0nek2RPVji+\nURX7qVsVrubH70SPO8lewMeB46vq5sHnJn18VbWjmmmcA4FfS3LEvOcndnxJjgauq6oLgQWz2ZM8\nvtaTquoxwLNophmfMvjkhI9vV+CxwDur6rHAvzBvymY54xtVsf8BcNDA/YNozu775tok+wMkOQC4\nbsT9WbUkd6Mp9KdX1Zntw70Z35yqugn4FPCr9Gd8/wH4zSSXAx8GnpbkdPozPqpqW/vv9cAZNNfm\n6sv4rgaurqoL2vsfoyn+16xkfKMq9l8DHprk4CS7Ac8HPjGivnTpE8BL2tsvoZnrnjhJAvwFcGlV\nvW3gqb6Mb7+5JEOS3YFfBy6kJ+OrqtdW1UFV9WDgGODvq+pF9GR8SfZIsnd7e0/gGcBWejK+qroG\nuCrJw9qHng58C/gkKxnfCBcdnkXzCdvvASeOehFkHcbzYZpPCt9Ksx5xLLAvzaLYd4DPAPuMup+r\nHNuTaeZ6L6IpghfSJI/6Mr5HAt9ox3cx8Jr28V6Mb95Ynwp8ok/jo5nTvqj9umSunvRlfO1YHkUT\nHPgm8Dc0i7YrGp8fqpKkKdCzPxciSVqIxV6SpoDFXpKmgMVekqaAxV6SpoDFXpKmgMVemifJAUn+\netT9kNaTOXtJmgKe2WuqJXlTklcM3N+S5FVzf4QmyUuT/E2Ss9o/EvHm0fVWWj2LvabdR4HnDdx/\nLs3lmwc9qt3mkcDzk/Txctzquc7+4Lg0CarqoiT3a68aeD/gBu78txYAzqn2ks5JLqX5IzU/GGpH\npTWy2Evw18BzaP7az0cWeP7nA7d/CewyjE5J68liLzVTOe8F7gP8GrD7Etsv+AdApHHmnL2mXlVd\nCuxF8wci5v7MWw38Oz+yZoRNE8fopSRNAc/sJWkKWOwlaQpY7CVpCljsJWkKWOwlaQpY7CVpCljs\nJWkKWOwlaQr8f7mTno9OLf9JAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f840dc5e710>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f840dab0410>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# (a) Transfer characteristics\n",
+ "# (b) Transfer characteristics\n",
+ "from numpy import arange\n",
+ "t=arange(0,20,0.1) # in mili-seconds\n",
+ "vin=[]\n",
+ "for x in t:\n",
+ " vin.append(30*x/10)# Input voltage in volts\n",
+ "# From Fig. 3.52(b)\n",
+ "# Part {a}\n",
+ "# Sketching of transfer characteristics\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]>25:\n",
+ " vo.append(5)# in volts\n",
+ " else:\n",
+ " IL=vin[i]/(200+50)# # in amperes\n",
+ " vo.append(IL*50) #in volts\n",
+ " \n",
+ "\n",
+ "#plot2d(vin,vo,rect=[0,0,60,6])#\n",
+ "plot(vin,vo)\n",
+ "title(\"Part (a) - Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "# Part (b)\n",
+ "# Sketching of transfer characteristics\n",
+ "Vy=0.5# # in volts\n",
+ "Rf=40# # in ohms\n",
+ "VA=5+0.5# # in volts\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]<27.5 :\n",
+ " IL=vin[i]/(200+50)# # in amperes\n",
+ " vo.append(IL*50)# # in volts\n",
+ " else:\n",
+ " IL=(vin[i]+27.5)/500# # in amperes\n",
+ " vo.append(IL*50)# # in volts\n",
+ " \n",
+ "\n",
+ "plot(vin,vo)#\n",
+ "title(\"Part (b) - Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.23: Page No 150"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe12eddd0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\nAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe11b5d10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Output voltage and transfer characteristic curve\n",
+ "from numpy import arange\n",
+ "t=arange(-6,6,0.001)\n",
+ "vin=[]\n",
+ "for x in t:\n",
+ " vin.append(6*sin(2*pi*x/12)) #Input voltage in volts\n",
+ "# Sketching of output voltage\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]>=2:\n",
+ " # From Fig. 3.54(b), D1 ON and D2 OFF\n",
+ " I1=(vin[i]-2)/(10e3+10e3)# # in amperes\n",
+ " vo.append(vin[i]-I1*10e3) # in volts\n",
+ " elif vin[i]>=-4:\n",
+ " # both D1 and D2 OFF\n",
+ " vo.append(vin[i])#\n",
+ " else:\n",
+ " # From Fig. 3.54(c), D1 OFF and D2 ON \n",
+ " vo.append(-4)# # in volts\n",
+ " \n",
+ "\n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()\n",
+ "# Sketching of transfer characteristic curve\n",
+ "plot(vin,vo)\n",
+ "title(\"Transfer characteristic curve\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.24: Page No 152"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nmJOHmZlV7P8DzVRlD6v4PNkAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe11588d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Voltage transfer characteristics\n",
+ "from numpy import arange\n",
+ "vin=arange(-2.5,2.5,0.25)# # Input voltage in volts\n",
+ "# Obtaining thevnin's equivalent circuit on LHS of XX'\n",
+ "V_th=[]\n",
+ "for v in vin:\n",
+ " V_th.append(v*7.5e3/(7.5e3+15e3))# # in volts\n",
+ " \n",
+ "R_th=15e3*7.5e3/(15e3+7.5e3)# # in ohms\n",
+ "# Sketching of voltage transfer characteristics\n",
+ "# From thevnin's equivalent circuit in Fig. 3.55(b)\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]>1.8:\n",
+ " I1=(V_th[i]-0.6)/(5e3+R_th)# # in amperes\n",
+ " vo.append(I1*5e3)# in volts\n",
+ " elif vin[i]>-1.8:\n",
+ " vo.append(0)#\n",
+ " else:\n",
+ " I2=(V_th[i]+0.6)/(4e3+R_th)# # in amperes \n",
+ " vo.append(I2*5e3)# # in volts\n",
+ " \n",
+ "\n",
+ "plot(vin,vo)#\n",
+ "title(\"Voltage transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.25: Page No 153"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n3+SDCAkBUwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe1129ed0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe0fc2cd0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# (a) Output voltage waveform\n",
+ "# (b) Transfer curve\n",
+ "from numpy import arange\n",
+ "t=arange(0,12,0.001)\n",
+ "vin=[]\n",
+ "for tt in t:\n",
+ " vin.append(15*sin(2*pi*tt/12)) # Input voltage in volts\n",
+ "# From Fig. 3.56(a)\n",
+ "\n",
+ "# Sketching of output voltage waveform\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]<16/3:\n",
+ " # D1 OFF and D2 ON\n",
+ " I2=(10-3)/(20e3+10e3)# # in amperes\n",
+ " vo.append(10-I2*20e3)# # in volts\n",
+ " elif vin[i]<=10:\n",
+ " # both D1 and D2 ON\n",
+ " vo.append(vin[i])#\n",
+ " else:\n",
+ " # D1 ON and D2 OFF \n",
+ " vo.append(10)# # in volts\n",
+ " \n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)#\n",
+ "title(\"Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()\n",
+ "# Sketching of transfer curve\n",
+ "plot(vin,vo)\n",
+ "title(\"Transfer characteristic curve\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.26: Page No 155"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe0f41e50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe0e8ee50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Transfer characteristics and output and input voltage\n",
+ "T=60# # Let T = 60 seconds\n",
+ "t=range(0,T)#\n",
+ "vin=[]\n",
+ "for tt in t:\n",
+ " vin.append(120*tt/T) # Input voltage in volts\n",
+ "# From Fig. 3.57(a)\n",
+ "# Sketching of transfer characteristics\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]<=15:\n",
+ " # Both D1 and D2 OFF\n",
+ " vo.append(15)# # in volts\n",
+ " elif vin[i]<=105:\n",
+ " # D1 OFF and D2 ON\n",
+ " I2=(vin[i]-15)/(100e3+200e3)# # in amperes\n",
+ " vo.append(vin[i]-I2*100e3)# # in volts\n",
+ " else :\n",
+ " # Both D1 and D2 ON\n",
+ " vo.append(75)# # in volts\n",
+ " \n",
+ "plot(vin,vo)#\n",
+ "title(\"Transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "# Sketching of output\n",
+ "plot(t,vin,\"--\")\n",
+ "plot(t,vo)#\n",
+ "title(\"Output voltage and input voltage\")\n",
+ "xlabel(\"omega_t\")\n",
+ "ylabel(\"vo,vin\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.27: Page No 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nrkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe0e9f410>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#vo vs vin\n",
+ "vin=range(0,500) # Input voltage in volts\n",
+ "# Sketching of vo vs vin\n",
+ "vo=[]\n",
+ "for i in range(0,len(vin)):\n",
+ " if vin[i]<3 :\n",
+ " # From Fig. 3.58(b), D1 ON, D2 and D3 OFF\n",
+ " I1=6/(5e3+5e3)# # in amperes\n",
+ " vo.append(I1*5e3) # in volts\n",
+ " elif vin[i]<9 :\n",
+ " # From Fig. 3.58(c), D1 and D3 ON, D2 OFF\n",
+ " # Applying Kirchoff's laws\n",
+ " vo.append(0.5*vin[i]+1.5) # in volts\n",
+ " elif vin[i]<30:\n",
+ " # From Fig. 3.58(d), D3 ON, D1 and D2 OFF\n",
+ " I3=vin[i]/(2.5e3+5e3) # in amperes \n",
+ " vo.append(I3*5e3) # in volts\n",
+ " else:\n",
+ " # From Fig. 3.58(e), D2 and D3 ON, D1 OFF\n",
+ " # Applying Kirchoff's laws\n",
+ " vo.append(4*vin[i]/7+20/7)# # in volts\n",
+ "\n",
+ "plot(vin,vo)#\n",
+ "title(\"Voltage transfer characteristics\")\n",
+ "xlabel(\"vin\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.28: Page No 164"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nA37jeq9o8Ir9AAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe0fb80d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Output voltage\n",
+ "t=range(0,5)# # in seconds\n",
+ "vs=[]\n",
+ "for tt in t:\n",
+ " vs.append(10*tt/5) # Input voltage in volts\n",
+ "# Output voltage\n",
+ "vo=[]\n",
+ "for i in range(0,len(vs)):\n",
+ " if vs[i]<6 :\n",
+ " # Diode is OFF\n",
+ " vo.append(6)# in volts\n",
+ " else:\n",
+ " # From Fig. 3.65(c), Diode is ON\n",
+ " I=(vs[i]-6)/(200+200)# # in amperes\n",
+ " vo.append(6+I*200)# in volts\n",
+ " \n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t in ms\")\n",
+ "ylabel(\"vo(t)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.29: Page No 165"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe12210d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Output voltage\n",
+ "Vy=0.5# # in volts\n",
+ "Rf=50# # in ohms\n",
+ "t=range(0,5) # in seconds\n",
+ "vs=[]\n",
+ "for tt in t:\n",
+ " vs.append(10*tt/5) # Input voltage in volts\n",
+ "# Output voltage\n",
+ "vo=[]\n",
+ "for i in range(0,len(vs)):\n",
+ " if vs[i]<6.5:\n",
+ " # Diode is OFF\n",
+ " vo.append(6)# # in volts\n",
+ " else:\n",
+ " # From Fig. 3.66(a), Diode is ON\n",
+ " I=(vs[i]-6.5)/(200+Rf+200)# # in amperes\n",
+ " vo.append(6+I*2000) # in volts\n",
+ " \n",
+ "\n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t in ms\")\n",
+ "ylabel(\"vo(t)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.30: Page No 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEZCAYAAACNebLAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XeYlOXVx/HvodlAUIwKCrGCir2LbRVF7FiwFzAiivqi\nwQYkQhQQaySiMfZeotEoalRQV1GaEkSkCHYRYy+A9D3vH/eDrsvC7s7O7D3PzO9zXXsx7XnmzM4y\nZ85dzd0RERGpqF7sAEREJD8pQYiISKWUIEREpFJKECIiUiklCBERqZQShIiIVEoJQlLBzN4ws+2q\n8bhVzGyama1TF3EVAjMrMbPPYsch+UcJQmrMzD42s5/NbI6Z/c/M7jazNTI8V6mZ/aGKxxwO/Oju\nk6o6n7svBO4CLssknnLP2czM/m5mX5jZPDN7x8y61uD4rH7o1uWHePL+7l8XzyX5TQlCMuHAYe7e\nBNgR2Bn4U01OYEG95FxVORu4vwanfxg43cwa1iSmcrE1AkYCrYDdgTWBi4EhZnZhJudMGQcsdhAS\nnxKE1Iq7zwaeB7ZOvnU/Y2Zfmdl3ZjbczDZY9tikWhhoZq8D84D7gL2BYUk18reK508+rPcDXi13\n265mNsbMvjez2WZ2U/lk4O6zgO+BPTJ8WacSkkMXd//E3Ze6+wvA/wFXmFnjJI4yM9ukXFz3mNmV\nZrY68B+gZfK6fjKzFmY2wMweN7NHktsmmNm25Y6vyfnWr/B72i2pdqzcbUeZ2aTk8ipmdqOZfZ78\n/DX53VLhPPcDrYHhyXNdlNz+WHL+H8zsVTPbqtwxzZP3+kczG5+8x6PK3b+FmY0ws2/NbLqZdcns\nbZG6pgQhmTIAM2sFHAz8l/D3dCfhA6Y1MB8YVuG4U4DuQGOgKzAKONfdm7j7/1XyPJsDZUkiWmYJ\n0AtoTkgCHYCeFY6bBlTZZ7ECBwLPufv8Crc/AazKihOPA+7uPwOdgNnJ61rT3b9IHnME8E9gLeAh\n4N9mVj+D8/3vNw90H0dIuh3K3XwS8GByuR+wK+F3sl1yebmqz91PBT4lqRDd/brkrmeBzYDfEd7r\nB8sddjMwB1gPOB04LYmdpOlxBPBAcuwJwC1mtuUKXrPkESUIyYQRPti+J3zAlwKD3f07d3/S3Re4\n+1xgMLBvueMcuMfdp7l7mbsvKXe+FWlG+PD59STu/3X38ck5PgFuq/A8JMc0y/D1NQe+qHhjEu83\nwMo6wK3CvxW95e5PuPtS4AZCwtm9Fucr72HgRAAza0JI3A8n950EXOHu37j7N8BfCJVStbj7Pe4+\nz90XJ8duZ2ZNkuR2NNA/ed+nAfeWi/cw4CN3vzd5v94mJFpVESnQIHYAkkoOHOnuL5e/MWkK+Stw\nEOEbMkBjMzP/dVXIyjpaV9YP8T3QpMLztCF8uO4ErE74O36rwnFNkmOXY2Zzk+d0YKukSaq8b4CW\nlRzXgJAcvllJvFX55bnc3c1sVmXPlaGHgNFmdg7hQ3uCuy/7fbcEPin32E+r+7xJX9Fg4FhCFVBG\n+N2tQ6gSG/Db97X87/P3wG7Jl4llGhCaFyXPqYKQbOoNtAF2dfemhG/1xm+//VZMBlV1Ur9P6NNu\nUe62vwNTgc2S5+nH8n/LWwKVjnpy98blmmoqJgcIHdQHJwmvvGOAhcDY5PrPhAS1TItyr2dFr6vV\nsgvJB++GwLLms0zO94vk2/snhMrhJELCWGY2sFG5663LPe9yp6pw/WRC01iH5Pe9Mb++r18Tmvxa\nlXt8+cufAq+6+1rlfpq4+7lVvR6JTwlCsqkx4Rvlj2a2NtC/ksdUbCr5Eth0RSd090WED+ySCs8z\nB/jZzLYAzvnNE4SO8bX59YO8pu4nfAt+zMx+b2YNzewgYCihKWVZk9fbwMlmVt/MOgH7VHhdzc1s\nzQrn3inpPG4AXAAsKBdnJuer6KHkvHsDj5W7/WHgT2a2joU5Ipez4pFhFd+TxoTE+F3SpzB42R1J\nU9kTwAAzWy15P07l1yTzLNDGzE5Jfo8NzWyX5HGS55QgJJtuBFYjNMGMJoy8qapiGAocm4x6unEF\n5/0Hv20vv4jwDfknQv/DIxXOexKhr2NxJi8iSUoHEJpNxgE/AtcBfd39+nIP7QUcTmjKOgl4stw5\nphM+lD9MXtuyauAp4HjgO8I386OTD9manu83o5jKeZiQWF5y9+/K3T6Q0Az3TvLzVnLbL09R7vJV\nhGTyvZn9kdAc9AnwOfAuMKbC488DmgL/I/Q/PAwsSuKeA3QkdE5/TujbuQpYbgSV5B/Lxw2Dkm9P\nNwL1gTvc/erIIUlkydDYc6uaLGdmqxC+ie+ddMbmDTPrT2gWq3bncBqZ2dXAuu7eLXYsUjt510md\njIoYRvgG9znwppk9nbSvSpFy972q+biFhP6HfFSQk8/MrC2wCjAZ2AU4A1jp7HhJh7xLEITx2e+7\n+8cAZvYIcCRhXLtImi0bOVVomhCalVoS+i+uc/en44Yk2ZCPCWIDlh8yt1ukWESyxt3/EjuGXHD3\ntwgTGqXA5GMndSF+wxIRSZ18rCA+Z/kx1b8Zq25mSiIiIhlw92r3heVjBfEWsLmZbZQsJnY8sFx7\nprsX7E///v0zPraszBk50jn0UKdpU+f0051nnnHmzKn5uZYudd580+nf39lkE2ebbZybbnLmzYv3\n+tLwo9eX3p9Cfm3uNf9enXcJwsN6N+cBLxBmyz7qGsFUJXcYPhx22QXOOw+OOgo+/xzuuQcOPRQa\nN675OevVg513hgEDYOZMGDoUXn4ZNtkErr4a5s7N9qsQkXySj01MuPt/CJOspBomToTeveHLL2HQ\nIDjiiPDhnk316sF++4Wfd9+FgQNhiy1gyBA46aTsP5+IxKf/1nmopKSkWo/7+We48EI4+GA47jiY\nNAk6d879h/XWW8Mjj8Bjj8Hf/gZ77QXTp1f/+Oq+vrTS60uvQn5tmcjLmdRV+e3ioMVp1Cg44wzY\nbbfQ9NO8eZw4ysrgH/+Ayy+Hvn2hVy9VEyL5yszwGnRSK0GkTFkZXHUV3Hwz3HpraE7KBx9+CF27\nQsOG8PDDsO66sSMSkYpqmiD0XS9Fvv0WDjsMnn8e3norf5IDhI7rV16BPfYIHdtjM11HVUTyhhJE\nSkyfDrvuCu3ahZFELbO1xUwW1a8fOq9vvjkkr7vvjh2RiNSGmphS4LXXoEuXMLS0a9fY0VTPe+/B\nIYfAqadC//5gBblMnUi6qA+iwDz6KJx/fmjX79Ch6sfnky+/DE1iW28Nt90W+idEJB4liAJy771h\nZNDzz8M228SOJjPz5oXqZ7XVQpJrpG1iRKJRJ3WBuP12+NOfQn9DWpMDwBprwJNPwpIlIVEsXBg7\nIhGpLiWIPHTrrWFG9CuvQNu2saOpvVVWCZPqGjSAo49WkhBJCzUx5ZkHH4TLLgsd0xtvHDua7Fq8\nGE48MXRYP/JIGPUkInVHfRAp9uyz8Ic/wEsvheGshWjhwrB44CabhBnYGt0kUnfUB5FSo0ZBt27w\n9NOFmxwgNDc9+SS8/Tb06xc7GhFZGSWIPPDee3DssfDQQ2EyXKFr0gSeew6eeAJuuSV2NCKyInm5\n3HcxWbZ8xuDBcMABsaOpO+usE5rU9twTNtsMOnaMHZGIVKQ+iIgWLYKDDgqb/FxzTexo4hg1Co45\nBkpLYautYkcjUtjUSZ0S7tC9O3z9dWhqKeYRPffeC1dcAePGhcpCRHKjpglCTUyR3HorjB8Po0cX\nd3IAOP10mDo1DIF9/nn9PkTyhSqICMaPD/0Oo0eH9ncJM60POigsFz5wYOxoRAqThrnmuW++CUtO\n3H67kkN5DRqEtZruvReeeSZ2NCICqiDq1NKlYQnsHXaAIUNiR5OfRo8O+2qPHRsm04lI9qiCyGMD\nB4aRS2pCWbH27cMihcceqzWbRGJTBVFH3ngjDOecOBFatIgdTX5zD1VEmzZw7bWxoxEpHKog8tCP\nP8Ipp4RNc5QcqmYGd94Z+iRGjowdjUjxUgVRB04+GZo21bISNTVyZNhi9e23NT9CJBtUQeSZBx4I\nzUrXXRc7kvQ54AA46aSwwm2Kvg+IFAxVEDn08cdhGY0RI2D77WNHk06LFoW5EWefHWaei0jmtNRG\nnnAP34A7doRLL40dTbq9+y7stx9MmACtW8eORiS9Ut/EZGYDzGyWmU1MfjrFjikTt90Gc+dC796x\nI0m/rbeGCy+EM89UU5NIXcq7CsLM+gNz3P2GlTwmryuITz6BnXeGV1/VCqXZsmRJaGrq3h3OOit2\nNCLplPoKIpHajSiXrdL6xz8qOWRTgwZwzz1hF7pPPokdjUhxyNcEcb6ZTTKzO82sWexgauLOO+G7\n7+Dii2NHUnjatQuJV01NInUjShOTmY0A1q/krn7AWODr5PqVQAt3/0OF4/OyiWnWrLDO0iuvhHZz\nyb4lS2C33aBXLzjttNjRiKRLKvaDcPcDq/M4M7sDGF7ZfQMGDPjlcklJCSUlJdkIrVZ69YKePZUc\ncqlBgzAA4NBDw8KHmkAnsmKlpaWUlpZmfHw+dlK3cPcvkssXAru4+0kVHpN3FcQzz4Tmj3fegVVX\njR1N4bvwwrCEyV13xY5EJD1SPw/CzO4Dtgcc+Ajo4e5fVnhMXiWIefNC+/gdd4S5D5J7c+aE3/l9\n90EeFI8iqZD6BFEd+ZYgLr009D88+GDsSIrLU0+F3/2kSbDKKrGjEcl/ShB1bPJk6NAh/LveerGj\nKT5HHRUGBlx+eexIRPKfEkQdKiuDvfcOo2l69IgdTXH67LOQIMaO1RauIlUplIlyqXDPPWEbUS0i\nF0+rVmHOyYUXxo5EpPCogsjQjz/CFluE0Us77RQ1lKK3cCFssw3ceGMY+ioilVMTUx3p3TskiTvu\niBqGJJ57Di64IPQFqcNapHJKEHVg+vTQ9zBlCqy7brQwpILDDw/vyyWXxI5EJD8pQeSYe2jGOPDA\nMDFO8sf778Puu4fJii1bxo5GJP+okzrHnn0WPvoIzjsvdiRS0WabhaXAtUGTSHaogqiBhQvDOks3\n3QSdUrmNUeGbOxe23BIefRTat48djUh+UQWRQ0OHQtu2Sg75rHFjGDw4NP+l8LuPSF5RBVFNX30V\nNgAaPRratKnTp5YaKiuDXXYJndXHHx87GpH8oU7qHDnvPKhfP1QRkv9eeQXOOCOMONOwV5FACSIH\nZsyAPfeEadO0/0CaHHEE7LMPXHRR7EhE8oMSRA4cfXTYxUyjY9Jl2XyV6dOhefPY0YjEpwSRZa+/\nDiefHD5kVlutTp5Ssujcc8MudGoaFFGCyCr3MFSyZ0849dScP53kwLLBBWPGwOabx45GJC4Nc82i\nxx+HBQtCBSHptO66oQ9CzYMiNacKYgUWLQrfPG+9VduIpt38+WH+yqOPwh57xI5GJB5VEFny97+H\nJgklh/RbbTXo3x/69NHkOZGaUAVRiZ9+Cslh5Miwz4Ck35IlYZmUoUPhoINiRyMShyqILLjxRujY\nUcmhkDRoAIMGhSqirCx2NCLpoAqigm+/De3V48bBppvm5CkkEnfYddfQaa0lOKQYaZhrLV1yCcyZ\nE/ogpPCMHBmGLU+ZAg0bxo5GpG4pQdTC7NmhWemdd2CDDbJ+eskTBxwAxx0X9o4QKSZKELXQsyes\nsQZce23WTy155M034aijYOZMzY6X4qIEkaEPPwzt09Ona0G+YnDMMWF70osvjh2JSN1RgsjQaaeF\nTun+/bN6WslT06bBvvuGlXqbNYsdjUjdUILIwJQpsP/+oclhzTWzdlrJc926we9/DwMGxI5EpG4o\nQWTg6KPDfg+9e2ftlJICH3wQlnGfORPWWit2NCK5l4qJcmbWxcymmNlSM9uxwn19zGymmU03s465\njuXNN2H8+NBBLcVl002hc2e44YbYkYjkpygVhJltAZQB/wB6u/t/k9u3Ah4CdgE2AEYCbdy9rMLx\nWasgDjkEDj8czjknK6eTlPn4Y9hpp9AXoU2FpNClooJw9+nuPqOSu44EHnb3xe7+MfA+sGuu4hg3\nDt59N+xdLMVpo42gSxe47rrYkYjkn3xbi6klMKvc9VmESiInBgyAvn21qX2x69sXbrstbC4kIr9q\nkKsTm9kIYP1K7urr7sNrcKpK25IGlBt6UlJSQklJSU3CY+xYmDoVnnqqRodJAWrdGk48MUyQ1CRJ\nKSSlpaWUlpZmfHzUUUxm9gq/7YO4DMDdhyTXnwf6u/u4CsfVug/i4INDB2WPHrU6jRSIzz8Py6xM\nnQrrV/a1RqQApKIPooLywT4NnGBmjcxsY2BzYHy2n3BZ9dCtW7bPLGm1wQZh3/FrrokdiUj+iDWK\n6Sjgb8A6wI/ARHc/OLmvL3AGsATo5e4vVHJ8rSoIVQ9SmS++gHbtwsCFli1jRyOSfZooV4UxY+CE\nE8LkqEaNshyYpF7v3rB4Mfztb7EjEck+JYgqdOoUZk5rqWepzFdfwRZbwOTJWvJdCo8SxEqoepDq\n6N077GE9dGjsSESySwliJVQ9SHUs64vQiCYpNGkcxVQnxowJez107Ro7Esl3LVrAKafA9dfHjkQk\nrqKpIDp1CpvEdO+eo6CkoMyaBdtuC++9B7/7XexoRLJDFUQlxo4N1cPpp8eORNJiww3DvtV//Wvs\nSETiKYoK4rDDws/ZZ+cwKCk4y1Z6nTkT1l47djQitacKooKJE8OP+h6kpjbaKEyo1GgmKVYFX0F0\n6QLt28OFF+Y4KClI778Pu+8edp9r2jR2NCK1o2Gu5UybBiUl8OGHsMYauY9LCtNpp0HbttCvX+xI\nRGpHCaKc00+HNm30H1tqZ/p02GefUEU0aRI7GpHMKUEkPvwQdt1VTQOSHSecADvuCJdcEjsSkcwp\nQSTOPhvWWQcGDqyjoKSgTZ4MBx4YvnisvnrsaEQyowTBr5u/zJgRkoRINhxzDOy1lwY8SHopQRD+\nA9erp6USJLsmTgzzaT74AFZdNXY0IjVX9Ali2XLN2vRFcuHww8OyLeeeGzsSkZor+gTRty/88APc\ncksdByVFYexYOP74MD+iYcPY0YjUTFEniO+/h802gwkTwixYkVzo0CHsX63Z+ZI2Rb3UxrBhoQlA\nyUFyqV8/uOoqWLo0diQiuVUwCWLuXLjpJujTJ3YkUuj22w/WWgueeCJ2JCK5VTAJ4tZbw3/ctm1j\nRyKFzixUEYMGQQpbaEWqrSASxIIFcMMNWlJD6s5hh4Xk8NxzsSMRyZ2CSBB33QU77xx2ABOpC2ah\nOVNVhBSy1I9iWrw4jFz65z9ht90iByZFZelS2HJLuO22sGqwSL4rulFMDzwQVmxVcpC6Vr8+XHZZ\nqCJEClGqKwh9g5PYFi0KFezjj4fVg0XyWVFVEI89BuuuC/vuGzsSKVaNGsHFF8PgwbEjEcm+1FYQ\nS5c6220H11wDBx8cOyIpZvPnwyabwIsvhlWERfJVTioIM1vfzA43s8PMbN3Mw/vlfF3MbIqZLTWz\nHcvdvpGZzTezicnPCldUGj48fHvr1Km20YjUzmqrwQUXwJAhsSMRya4qE4SZHQeMA7oAxwHjzaxL\nLZ93MnAU8Fol973v7jskPz1XdIJBg8K8B6t2LhTJnXPOgRdeCIv4iRSKBtV4zJ+AXdz9KwAz+x3w\nEvBYpk/q7tOTc2V6CubNg86dMz5cJKvWXBN69oSrr4bbb48djUh2VKeJyYCvy13/NrktVzZOmpdK\nzWyvFT2oT5+wKZBIvujVC/71L5g1K3YkIsubN6/mx1SngngeeMHMHiIkhuOB/1R1kJmNANav5K6+\n7j58BYfNBlq5+/dJ38S/zaydu8+p+MAZMwYwYEC4XFJSQonGuUpkzZtDt25w3XVw442xoxGB0tJS\nSktLgbCXSU1VOYrJzC4CvgK2T24a5e5P1vypKj33K0Bvd/9vTe6vastRkVhmz4att4bp08MQbJF8\nsHBhmK8za1b2RzE1Bi4FdgU+AkZnGOOK/BKsma1jZvWTy5sAmwMfZvn5RHKmZcuw49zQobEjEfnV\n/fdDu3Y1P67a8yDMbDvCKKZjgVnu3qHmT/fLuY4C/gasA/wITHT3g83sGOAvwGKgDLjc3Z+t5HhV\nEJK3PvoIdtkljGhq1ix2NFLsliyBLbYIi5ruu2+Othw1sxaE5HAi0Njdo62dqgQh+e6008LeJFqC\nXmJ7+GG45RYYNSoHe1KbWU9C5bAuYWjro+4+tVYR15IShOS7adPC+mAffghrrBE7GilWZWX8ZsWJ\nXMykbgVc4O5buXv/2MlBJA223BL22ktzIiSuZ5+Fhg0zX3EitWsxpTFuKS4TJsCRR8IHH8Aqq8SO\nRoqNO+yxB1x0ERx7bLitqFZzFclnO+0UFu+7777YkUgxevll+OEHOOqozM+hCkIkh0aNgq5d4b33\noEF1pqWKZMn++8Ppp4efZVRBiOSRvfeGDTaARx+NHYkUkzfeCMOtTzqpdudRghDJsX794KqrwogS\nkbowaFDYDrdhw9qdRwlCJMc6doRVV4Wnn44diRSDCRPgnXdC02ZtKUGI5JgZ9O0bvtWp60xybfDg\nsA1uNkbOKUGI1IHOneHnn2HkyNiRSCGbMiX0P3Tvnp3zKUGI1IF69cIeJoMGxY5ECtngwWH729VX\nz875NMxVpI4sWRLWZ7r33jDLWiSbZs6E9u3DxMw116z8MRrmKpKnGjQIVcSVV8aORArRkCFw7rkr\nTg6ZUAUhUocWLYLNN4d//hN22y12NFIoPv0UdtghVBFrr73ix6mCEMljjRqF8emqIiSbrrkmdEyv\nLDlkQhWESB1bsCBs//jUU2G9JpHa+OKLsFtcdba5VQUhkudWXTWMUx84MHYkUgiuvz5sUJWLPdBV\nQYhE8PPPsOmm8MILsG20vRkl7b75Btq0CTOnN9yw6serghBJgdVXh969VUVI7QwdCl26VC85ZEIV\nhEgkc+eGKuKVV2CrrWJHI2nzww+hL2v8eNhkk+odowpCJCUaNw6zXjW7WjJx881w6KHVTw6ZUAUh\nEtFPP4UqYvToMD9CpDrmzAl/N6+9BltsUf3jVEGIpMiaa8L554c1dESqa9iwsIx8TZJDJlRBiET2\nww/h2+Cbb+a2uUAKQ6bVA6iCEEmdZs2gZ8+wlo5IVYYNgwMPzH31AKogRPLCt9+G8ewTJ0Lr1rGj\nkXxVm+oBVEGIpFLz5nDmmXD11bEjkXx2881wwAF1Uz2AKgiRvPHVV+E//uTJsMEGsaORfLOsenj1\nVdhyy8zOkYoKwsyuNbNpZjbJzJ4ws6bl7utjZjPNbLqZdYwRn0gM664LZ5wBV10VOxLJR8uqh0yT\nQyaiVBBmdiDwkruXmdkQAHe/zMy2Ah4CdgE2AEYCbdy9rMLxqiCkIH39dagi1Bch5S2bdV9aWrsE\nkYoKwt1HlPvQHwcsW0nkSOBhd1/s7h8D7wO7RghRJIrf/Q7OOkuzq+W3br4Z9t+/bqsHyI9O6jOA\n55LLLYFZ5e6bRagkRIrGRRfB44/DRx/FjkTywdy5cMMN8Oc/1/1zN8jVic1sBLB+JXf1dffhyWP6\nAYvc/aGVnKrStqQBAwb8crmkpISSkpKMYxXJJ82bh72Fr7wS7rordjQS27LqIZMFHUtLSyktLc34\nuaONYjKzrkB3oIO7L0huuwzA3Yck158H+rv7uArHqg9CCtqylTrHjNEaTcVszpzwd5CtFX9T0Qdh\nZp2Ai4EjlyWHxNPACWbWyMw2BjYHxseIUSSmZs2gVy+44orYkUhMQ4eGkUuxloOPNYppJtAI+C65\naYy790zu60vol1gC9HL3Fyo5XhWEFLyffgrfHmsz7l3S6/vvw+z6MWPC30E21LSC0EQ5kTw2ZAi8\n/TY88kjsSKSu9e0bhj3ffnv2zqkEIVJA5s4N3x5HjIBttokdjdSVL78MzUrZng+jBCFSYK6/Pmwo\n9K9/xY5E6soFF4B76IPIJiUIkQLz88+hinj2Wdhhh9jRSK599hlsvz1MnQrrrZfdc6diFJOIVN/q\nq0OfPtCvX+xIpC5ceWWYTZ/t5JAJVRAiKbBoUVij6e67Yd99Y0cjufL++7D77jBjBqy9dvbPrwpC\npAA1ahTmRFx6aWiblsI0YECY/5KL5JAJJQiRlDjpJJg/H556KnYkkgvvvhtGq11wQexIfqUEIZIS\n9eqFvSL69oUlS2JHI9nWrx9ccgk0aRI7kl8pQYikyMEHwzrrwH33xY5EsmnUKJg0KSzSmE/USS2S\nMmPGwPHHh47MVVeNHY3Ulju0bx+Swymn5Pa51EktUuD22AN23DEsAy3p98QTsGBB6GPKN6ogRFJo\nyhTYbz+YOROaNq368ZKfFi+Gdu1g2DDo2DH3z6cKQqQItGsHhx4K11wTOxKpjdtvh402qpvkkAlV\nECIp9emnYemNt9+GVq1iRyM1NWdOWM77uefqbgkVVRAiRaJ1azjnHC3BkVbXXx82A8rn9bVUQYik\n2Jw50LYtPP007Lxz7Gikuv73v9BMOGFCaGKqK1rNVaTI3HFHmBfx6qtg1f6vLzF17x4GF1x3Xd0+\nr5qYRIpMt27w44/w5JOxI5HqmDgRnnkG/vzn2JFUTRWESAEYORLOPjsMf11lldjRyIq4Q0kJnHxy\nWNK7rqmCEClCBxwAW26pyXP57l//CtXeH/4QO5LqUQUhUiCmT4e994Zp08J6TZJfFiwISfyuu8Ik\nxxhUQYgUqS22gBNOgMsvjx2JVOaGG8KQ1ljJIROqIEQKyHffwVZbwX/+k9/j64vN7Nmw7bYwfjxs\nskm8OFRBiBSxtdeGgQPDyqBlZbGjkWX69oUzz4ybHDKhBCFSYM44A5Yu1Z4R+eL118MoszTOeFcT\nk0gBeustOPzw0GHdrFnsaIrX4sVhafbLL4cuXWJHoyYmESEsu3HEEeqwju2mm6BFCzj22NiRZEYV\nhEiB+vbb0GH94ouw3Xaxoyk+s2bB9tvD6NFh1dZ8kIoKwsyuNbNpZjbJzJ4ws6bJ7RuZ2Xwzm5j8\n3BIjPpFC0Lw5XHGFOqxj+eMfoWfP/EkOmYjVxPQi0M7dtwNmAH3K3fe+u++Q/PSME55IYTjzzNBh\nfccdsSOs1RxnAAALWklEQVQpLi++GPqB+vSp+rH5LEqCcPcR7r7sO804YMMYcYgUuvr14bbbwgia\n2bNjR1Mc5s8PVdtNN8Fqq8WOpnbyoZP6DOC5ctc3TpqXSs1sr1hBiRSKbbaBHj3g/PNjR1Ic/vKX\nMHLp0ENjR1J7OeukNrMRwPqV3NXX3Ycnj+kH7OjuxyTXGwFruPv3ZrYj8G9CU9ScCudWJ7VIDSxY\nEDqqr74aOneOHU3hmjABDjkE3nkH1lsvdjTLq2kndYNcBeLuB67sfjPrChwCdCh3zCJgUXL5v2b2\nAbA58N+Kxw8YMOCXyyUlJZSUlGQhapHCtOqqoanplFPCWkBNm8aOqPAsXhxWab3uuvxJDqWlpZSW\nlmZ8fJRhrmbWCbge2Nfdvyl3+zrA9+6+1Mw2AV4Dtnb3HyocrwpCJANnnRX6Jf7+99iRFJ7Bg2HU\nKHjuufzd2S8VW46a2UygEfBdctMYd+9pZscAfwEWA2XA5e7+bCXHK0GIZOCHH2DrrcMyHPvvHzua\nwjF9Ouy1V2hi+v3vY0ezYqlIELWlBCGSuf/8B845ByZNUlNTNixZAvvsAyeemP8DAZQgRKRKPXqE\nNvO77oodSfoNHgwvvQQjRkC9fBgXuhJKECJSpTlzwqimoUPDon6SmYkT4aCDQtNSq1axo6laKpba\nEJG4mjSBe+8NlcQ331T9eFne/PlhVNhf/5qO5JAJVRAiReyii+Cjj+Dxx/N35E2+uvDCMDv9kUfS\n87tTE5OIVNuCBbDHHqGSOPvs2NGkx4gR0K1bmBC39tqxo6k+JQgRqZEZM2DPPUNH67bbxo4m/33x\nBey0E9x/P3ToUPXj84n6IESkRtq0gRtugOOPh3nzYkeT35YuhZNPDhMO05YcMqEKQkQA6No1tKXf\nfXfsSPLXgAHw2muhial+/djR1JwqCBHJyLBhMGZMGN0ky3vppbCe1UMPpTM5ZEIVhIj8YsoUKCkJ\ns6133jl2NPnj009h993T2e9QnioIEclYu3bwj3/AMcfAV1/FjiY//PwzHHVU2EI0zckhE6ogRGQ5\nf/pTWJl05Eho2DB2NPG4h07pevVC9ZCW+Q4romGuIlJrS5fCkUeGlUmHDUv/B2Omrr0WHn00JMu0\nbx8KamISkSyoXx8efBBefRVuvDF2NHH8+9/htT/5ZGEkh0zkbEc5EUm3pk3D5jft24e1ho49NnZE\ndWf0aOjeHZ5/vnDXWaoOJQgRWaHWrWH4cOjYEdZfP2yKU+jeew+OPjpsqrTTTrGjiUtNTCKyUjvs\nAA88EEY2vftu7Ghya/ZsOPhguOqq8G+xU4IQkSoddFBoj+/YMWyvWYi+/DIMYz3rrLAQn6iJSUSq\n6cQTYeFCOPBAKC2FTTeNHVH2fP11SA4nnACXXRY7mvyhBCEi1da1a0gSHTqEpScKIUl8801Iekcc\nAZdfHjua/KIEISI10qNH+HfffcOSHNtsEzee2vjss9Bs1rkzDBpUvPM9VkQJQkRqrEcPaNYMDjgg\nzBNo3z52RDX33nuhb+W888LOerI8dVKLSEaOPz6s/Nq5c0gSafL662FRwv79lRxWRkttiEitTJgQ\nFrPr3j2s4ZTvzTR33gl9+oTkVmxDWbUWk4jUuS++CEmidWu44w5Yc83YES1v0SK4+OLQbzJ8OLRt\nGzuiuqe1mESkzrVoEYa+rrVWmFg3dmzsiH7rvfdgjz3g449h3LjiTA6ZUIIQkaxYddWwl8S114aV\nYK+4Inxrj6msDG69NSwRcuaZYQG+tdaKG1OaqIlJRLJu1iw4+2z48MPwAb3PPnUfw7vvhtFWZWWh\n2atdu7qPId+koonJzK40s0lm9raZvWRmrcrd18fMZprZdDPrGCM+EamdDTcM7fwDB4YNd044ITTz\n1IXZs6FnT9hvPzjtNHjjDSWHTMVqYrrG3bdz9+2BfwP9AcxsK+B4YCugE3CLmRVdM1hpaWnsEHJK\nry/dqvv6zMKqqNOmwbbbhmaebt1g8uTcxPXRR2Fb0G22gTXWCGtG9egRdoOrrkJ/72oqyoevu88p\nd7Ux8E1y+UjgYXdf7O4fA+8Du9ZxeNEV+h+pXl+61fT1NW4MffvCzJmw8cbQqVOYg/DAA/Djj7WL\nZf58eOKJMBdjl13CRkfvvBP6QZo3r/n5Cv29q6loM6nNbBBwKjCfX5NAS6D8+IdZwAZ1HJqI5ECz\nZmGtoz59wsS6++8PTUF77hkSRvv2sP320KTJis8xb16oSF5/HV57DV5+GXbeOTRhPfhgqBwke3KW\nIMxsBLB+JXf1dffh7t4P6GdmlwE3AitaYFe90SIFpGFDOO648PPTT/Dii+ED/49/hKlTYfXVw3yK\nJk3CVp8LF4bHffEFfPcdbL55SCbHHhs6wNddN/YrKlzRRzGZWWvgOXffOkkWuPuQ5L7ngf7uPq7C\nMUoaIiIZqMkopihNTGa2ubvPTK4eCUxMLj8NPGRmNxCaljYHxlc8viYvUEREMhOrD+IqM2sLLAU+\nAM4BcPepZvZPYCqwBOipCQ8iInFEb2ISEZH8lLo5BmbWKZlEN9PMLo0dTzaZWSsze8XMppjZu2b2\nf7FjyjYzq29mE81seOxYss3MmpnZ42Y2zcymmtnusWPKpmQS6xQzm2xmD5nZKrFjqg0zu8vMvjSz\nyeVuW9vMRpjZDDN70cyaxYyxNlbw+q5N/j4nmdkTZtZ0ZedIVYIws/rAMMIkuq2AE81sy7hRZdVi\n4EJ3bwfsDpxbYK8PoBehCbEQS9ehhAEXWwLbAtMix5M1ZrYR0B3Y0d23AeoDJ8SMKQvuJnyWlHcZ\nMMLd2wAvJdfTqrLX9yLQzt23A2YAfVZ2glQlCMJ8iffd/WN3Xww8QujkLgju/j93fzu5PJfwAdMy\nblTZY2YbAocAdwAFNdAg+Sa2t7vfBeDuS9y9ltPA8spPhC8wq5tZA2B14PO4IdWOu48Cvq9w8xHA\nvcnle4HOdRpUFlX2+tx9hLuXJVfHARuu7BxpSxAbAJ+Vu16wE+mSb2w7EN7EQvFX4GKgrKoHptDG\nwNdmdreZ/dfMbjez1WMHlS3u/h1wPfApMBv4wd1Hxo0qJ9Zz9y+Ty18C68UMJsfOAJ5b2QPSliAK\nsVliOWbWGHgc6JVUEqlnZocBX7n7RAqsekg0AHYEbnH3HYF5pLt54jfMbFPgAmAjQlXb2MxOjhpU\njiUjKAvyM8fM+gGL3P2hlT0ubQnic6BVueutCFVEwTCzhsC/gAfc/d+x48mi9sARZvYR8DCwv5nd\nFzmmbJoFzHL3N5PrjxMSRqHYGRjt7t+6+xLgCcJ7Wmi+NLP1AcysBfBV5Hiyzsy6Epp6q0zwaUsQ\nbwGbm9lGZtaIsPLr05FjyhozM+BOYKq73xg7nmxy977u3srdNyZ0br7s7qfFjitb3P1/wGdm1ia5\n6QBgSsSQsm06sLuZrZb8nR5AGGxQaJ4GTk8un05YbbpgmFknQjPvke6+oKrHpypBJN9czgNeIPxx\nPuruBTNSBNgTOAXYLxkKOjF5QwtRIZbu5wMPmtkkwiimwZHjyRp3nwTcR/iS9k5y823xIqo9M3sY\nGA20NbPPzKwbMAQ40MxmAPsn11Opktd3BnATYQXtEcnnyy0rPYcmyomISGVSVUGIiEjdUYIQEZFK\nKUGIiEillCBERKRSShAiIlIpJQgREamUEoRIlphZUzM7J3YcItmiBCGSPWsBPWMHIZItShAi2TME\n2DSZoXp17GBEakszqUWyxMx+DzyTbKgjknqqIESypxCXMZcipgQhIiKVUoIQyZ45QJPYQYhkixKE\nSJa4+7fAG2Y2WZ3UUgjUSS0iIpVSBSEiIpVSghARkUopQYiISKWUIEREpFJKECIiUiklCBERqZQS\nhIiIVEoJQkREKvX/Hxxm0M1Xs/YAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe16b8550>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEZCAYAAACNebLAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xnc1XP6x/HX1SYpRSYqGbKX7Ev2m5Ia+5JsQxlZwg+T\nrTJqqOxGI8ZYh7GOdYRBGTdRiSak3SSkJtmSSNv1++Nz4riduu/73Ofcn+855/18PO5HZ/me77nO\nfe7Oda7Pau6OiIhIRXViByAiIsmkBCEiIhkpQYiISEZKECIikpEShIiIZKQEISIiGSlBSOKZ2Rtm\ntkPq8iAz+/sajn3TzNrVXnSFzcw2NbOVZqbPAvkF/VFItZjZbDP7zswWmdn/zOxeM1sny3OVm9nv\nKjnmMGChu7+buqmyiTs3AFdmE0/ac65lZleb2Uep1zrDzC6qxuNz+qFbmx/iVXlPpHQoQUh1OXCo\nuzcBdgZ2BS6vzgksqEPlH/YAZwHpFYNVcvwI4AAz27A6MVXwGHAA0A1oDPwWOMPMhlXzPJXFWl25\nPl8mmjkrP1KCkKy5+1zgBWA7M2tmZs+a2Wdm9qWZjTCz1quOTX0zHWxmrwOLgfuBfYHhqWrkzxXP\nb2YNCB/Ur6Y/LdDQzB4xs2/MbIKZbZ8W0xJgAnBwNq/JzDoBBwHHuPsUd1/p7m8CJwPnmFnb1HGz\nU8euelx609drqX+/TsXY0cx6pprKbjGzr81sqpkdmPb4qp5vkZntUSHmVqlKZ72023YyswVmVtfM\n6pjZ5annmG9m95nZur986TaEDO+JmQ0zs4/NbKGZvW1m+6Q9aO3U+b40sylmdomZfVIhtidSfxez\nzOy8Kr8ZEp0ShGTDAMysDeFb9n8If0t3A5ukfr4Hhld43MlAb8K38p7AaOAcd2/i7v+X4Xm2BFam\nElH6cx8B/ANYD3gIeNrM6qUdMxXYIcvXdhAwzt0/Tb/R3ccDc4BVH+LOz79tp1/eN/VvU3df193H\npa7vDnwANAcGAk+aWbNqnq9JKmGlxzYXGAsck3bzicBj7r6C8Ls+FSgD2hJ+/xXfG3f3AWR+T8YT\nfp+rft+PpZI3qdexCbAZ4Xd38qrYU1XiCGAi0Irwu7vAzLogBUEJQqrLCB/IXxE+TMqBoe7+pbs/\n5e5L3P1bYCiwf9rjHPibu09NfStfnna+1WkGLMpw+9vu/mTqw+8moCHQMe3+RanHZmMD4H+ruW9e\n6v5MbDWX033m7sPcfYW7/wOYDhxSg/Olewg4AUIpAPRI3QZwEnCju89298VAP+D4NfRp/Oz53P1B\nd/8q9b7dBKwFbJ26uzvh/V+YSqrD0h6/G7CBuw929+Xu/iFwF3B8FV6PJEC9yg8R+RkHjnD3f6ff\naGaNgD8RmnZWNXU0NjPzn1aE/IRfWlOb91dAkwy3z/nxwe5uZnOAlmn3r5t67C+Y2WTCN16Aru7+\nRoVDFgBbrCaeVsDna4i3Mp9WuP5R6py58CRwi5ltRPjwXunur6fua5l6rlU+JvzfX10/zc/ek1QH\n/WmpWJ3w+12VKFvx8/d1TtrlXwOtUl8mVqnLT01mknCqICRX+gJbAbu7e1NC9WD8/NtoxWRQWYfo\nB4QvxC0r3N5m1YXUt+CNgfRmqG2Bd8nA3dunmk+aZEgOAKOAPcxs4/QbU+3+GwOrEuNiIH301kbp\nT7Oa19O6wvVfp8Wdzfl+OsD9K+AlQuVwIvBw2t1zgU3Trm8CLAfmZzpV+hUz2xe4GOju7s3cfT1g\nIT+9r/NIez8qXP4E+NDd10v7WdfdD63s9UgyKEFIrjQm9DssNLP1CW3TFVVsKpkPbL66E7r7UsIH\ndlmFu3Yxs6NS/Q4XAEuAcQBm1pAwumpkFq8Bd38ZeBl4wszapTp5OxJGUt3m7v9NHfoOoZmmnpnt\nSmj/X/XhugBYmeG1tTCz/zOz+mbWHdgGeL4G56voIUJfwzH81LwEIVlcmBou25jQ/PeIu6/McI6K\n70kTQjL53MwamNkVhApilX8A/VKDFFoD56bFPR5YlOq4Xjv1u9wu9fqkAChBSK7cDKxNaIIZA/yL\nyiuGYcCxqREwN6/mvH8lDDNNP8fThG/KXxLa149O9UcAHAa84u6r60eoimOAVwgjtBYRksNd7p4+\nAucPhA/Sr4BBwIM/Buj+HTAEeCP12vZIxf0moeN9AXAVYaTUV9U831dmtvtq4n6G0Dw2z90npd1+\nT+o1vAbMAr4D0l9L+vtS8T15IfUzA5hN+BLwcdrxVxKalT4kVDCPAUtTca8ADgV2TD3vAuAOfp5g\nJMEsqRsGmdls4BtgBbDM3Vf3n0KKXGpo7Dlpk+XWdOw44DR3n5L/yKrOzHoCv3P3fSs7tpCZ2dnA\nce5+QOxYpOaS3EntQJm7fxk7EInL3fep/Kgfj+1Y+VGSK6lO8c0Jw2y3BH4P3BI1KMmZJCcIqJ2Z\noyK1oeI8h2LRALidMA/ia0J/x21RI5KcSXIT0yzCaIkVwF/d/c7IIYmIlJQkVxB7u/s8M/sVMNLM\nprn76NhBiYiUisQmCHefl/p3gZk9RVimYDSAmSWz7BERSTh3r3LTfSKHuZpZIzNrkrq8DtAFSB+2\nh7sX7c/AgQOzfuzKlc6oUc4hhzhNmzqnnuo8+6yzaFH1z7VihfPWW87AgU7btk6HDs4ttziLF8d7\nfYXwo9dXuD/F/Nrcq/+9OpEJgrAEwGgze4cwdvxZd38pckyJ5g4jRsBuu8G558JRR8Gnn8Lf/gaH\nHAKNG1f/nHXqwK67wqBBMHMmDBsG//43tG0L114L336b61chIkmSyCYmD4t67Rg7jkIxcSL07Qvz\n58OQIXD44eHDPZfq1IEDDgg/778PgwfDNtvANdfAiSfm/vlEJD79t06gsrKyKh333Xdw4YXQrRsc\ndxy8+y4ceWT+P6y32w4eeQQeewz+/GfYZx+YNq3qj6/q6ytUen2Fq5hfWzYSO8x1TX6+QGhpGj0a\nTjsN9tgjNP00bx4njpUr4a9/hSuugP794fzzVU2IJJWZ4dXopFaCKDArV8LVV8Ott8Ltt4fmpCSY\nNQt69oT69eHhh6FFi9gRiUhF1U0Q+q5XQL74Ag49FF54Ad5+OznJAULH9SuvwJ57ho7tceMqf4yI\nJJsSRIGYNg123x3atw8jiVrlapuZHKpbN3Re33prSF733hs7IhGpCTUxFYDXXoPu3cPQ0p49Y0dT\nNdOnw29+A7/9LQwcCKZVtUSiUx9EkXn0UTjvvNCu36lT7GiqZ/780CS23XZwxx2hf0JE4lGCKCL3\n3RdGBr3wAnToEDua7CxeHKqftdcOSa5Bg9gRiZQudVIXiTvvhMsvD/0NhZocANZZB556CpYvD4ni\nhx9iRyQiVaUEkUC33x5mRL/yCmy9dexoam6ttcKkunr14OijlSRECoWamBLmwQfhsstCx/Rmm8WO\nJreWLYMTTggd1o88EkY9iUjtUR9EAXvuOfjd7+Dll8Nw1mL0ww9h8cC2bcMMbI1uEqk96oMoUKNH\nQ69e8MwzxZscIDQ3PfUUvPMODBgQOxoRWRMliASYPh2OPRYeeihMhit2TZrA88/Dk0/Cbdq9WCSx\nErncdylZtXzG0KHQuXPsaGrPBhuEJrW994YttoAuXWJHJCIVqQ8ioqVL4eCDwyY/110XO5o4Ro+G\nY46B8nJo1y52NCLFTZ3UBcIdeveGBQtCU0spj+i57z648kp4881QWYhIflQ3QaiJKZLbb4fx42HM\nmNJODgCnngpTpoQhsC+8oN+HSFKogohg/PjQ7zBmTGh/lzDT+uCDw3LhgwfHjkakOGmYa8J9/nlY\ncuLOO5Uc0tWrF9Zquu8+ePbZ2NGICKiCqFUrVoQlsHfaCa65JnY0yTRmTNhXe9y4MJlORHJHFUSC\nDR4cRi6pCWX19torLFJ47LFas0kkNlUQteSNN8JwzokToWXL2NEkm3uoIrbaCq6/PnY0IsVDFUQC\nLVwIJ58cNs1RcqicGdx9d+iTGDUqdjQipUsVRC046SRo2lTLSlTXqFFhi9V33tH8CJFcUAWRMA88\nEJqVbrghdiSFp3NnOPHEsMJtAX0fECkaqiDyaPbssIzGyJGw446xoylMS5eGuRFnnRVmnotI9rTU\nRkK4h2/AXbrApZfGjqawvf8+HHAATJgAm2wSOxqRwlUUTUxm1tXMppnZTDMryI/XO+6Ab7+Fvn1j\nR1L4ttsOLrwQTj9dTU0itSlxFYSZ1QWmA52BT4G3gBPcfWraMYmuID76CHbdFV59VSuU5sry5aGp\nqXdvOOOM2NGIFKZiqCB2Bz5w99nuvgx4BDgickxVtmqV1t//Xskhl+rVg7/9LexC99FHsaMRKQ1J\nTBCtgU/Srs9J3VYQ7r4bvvwSLr44diTFp337kHjV1CRSO5KYIAr2v/6cOdCvX/imW08LqefFxReH\nBPz3v8eORKT4JfFj7FOgTdr1NoQq4mcGDRr04+WysjLKysryHVelzj8f+vQJnaqSH/XqhQEAhxwS\nFj7UBDqR1SsvL6e8vDzrxyexk7oeoZO6EzAXGE8BdFI/+2xo/njvPWjYMHY0xe/CC8MSJvfcEzsS\nkcJRFPMgzKwbcDNQF7jb3a+ucH+iEsTixaF9/K67wtwHyb9Fi8Lv/P77IQHFo0hBKIoEUZmkJYhL\nLw39Dw8+GDuS0vLPf4bf/bvvwlprxY5GJPmUIGrZpEnQqVP4d8MNY0dTeo46KmzAdMUVsSMRST4l\niFq0ciXsuy+ccgqceWbsaErTJ5+EBDFunLZwFalMMUyUKxh/+1vYRlSLyMXTpk0Y+nrhhbEjESk+\nqiCytHAhbLNNGL20yy5RQyl5P/wAHTrAzTeHoa8ikpmamGpJ374hSdx1V9QwJOX55+GCC0JfkDqs\nRTJTgqgF06aFvofJk6FFi2hhSAWHHRbel0suiR2JSDIpQeSZe2jGOOigMDFOkuODD6BjxzBZsVWr\n2NGIJI86qfPsuefgww/h3HNjRyIVbbFFWApcGzSJ5IYqiGr44YewztItt0DXrrX+9FIF334L224L\njz4Ke+0VOxqRZFEFkUfDhsHWWys5JFnjxjB0aGj+K8DvPiKJogqiij77LGwANGYMbLVVrT61VNPK\nlbDbbqGzukeP2NGIJIc6qfPk3HOhbt1QRUjyvfIKnHZaGHGmYa8igRJEHsyYAXvvDVOnav+BQnL4\n4bDffnDRRbEjEUkGJYg8OPpo2GMPjY4pNKvmq0ybBs2bx45GJD4liBx7/XU46aTwIbP22rXylJJD\n55wTdqFT06CIEkROuYehkn36wG9/m/enkzxYNbhg7FjYcsvY0YjEpWGuOfT447BkSaggpDC1aBH6\nINQ8KFJ9qiBWY+nS8M3z9tu1jWih+/77MH/l0Udhzz1jRyMSjyqIHPnLX0KThJJD4Vt7bRg4EPr1\n0+Q5kepQBZHBN9+E5DBqVNhnQArf8uVhmZRhw+Dgg2NHIxKHKogcuPlm6NJFyaGY1KsHQ4aEKmLl\nytjRiBQGVRAVfPFFaK9+803YfPO8PIVE4g677x46rbUEh5QiDXOtoUsugUWLQh+EFJ9Ro8Kw5cmT\noX792NGI1C4liBqYOzc0K733HrRunfPTS0J07gzHHRf2jhApJUoQNdCnD6yzDlx/fc5PLQny1ltw\n1FEwc6Zmx0tpUYLI0qxZoX162jQtyFcKjjkmbE968cWxIxGpPUoQWTrllNApPXBgTk8rCTV1Kuy/\nf1ipt1mz2NGI1A4liCxMngwHHhiaHNZdN2enlYTr1Qt+/WsYNCh2JCK1QwkiC0cfHfZ76Ns3Z6eU\nAvDf/4Zl3GfOhPXWix2NSP4V/EQ5MxtkZnPMbGLqJ687QL/1FowfHzqopbRsvjkceSTcdFPsSESS\nKXEVhJkNBBa5+2r/2+aygvjNb+Cww+Dss3NyOikws2fDLruEvghtKiTFruAriJQqv4CaePNNeP/9\nsHexlKZNN4Xu3eGGG2JHIpI8Sa0gegELgbeBvu7+dYVjclJBdOsGRxwBZ51V41NJAfv4Y9hppzCy\nqUWL2NGI5E9BdFKb2Uhgowx3DQDGAQtS168CWrr77yo83gemjUctKyujrKysWjGMGxfW45k5Exo0\nqNZDpQide26YNKdJklJMysvLKS8v//H6H//4x+QniKoys02BEe7eocLtNa4gunULHZRnnlmj00iR\n+PTTsMzKlCmwUaavLiJFoOD7IMysZdrVo4BJuX6OcePCB0GvXrk+sxSq1q3DvuPXXRc7EpHkSFwF\nYWb3AzsCDnwInOnu8yscU6MKQtWDZDJvHrRvHwYutGoVOxqR3CuIPoiaqkmCGDsWjj9efQ+SWd++\nsGwZ/PnPsSMRyT0liEp07RpmTmupZ8nks89gm21g0iQt+S7FRwliDVQ9SFX07Rv2sB42LHYkIrml\nBLEGqh6kKlb1RWhEkxSbgh/FlC9jx4a9Hnr2jB2JJF3LlnDyyXDjjbEjEYmrZCqIrl3DJjG9e+cp\nKCkqc+bA9tvD9Onwq1/FjkYkN1RBZDBuXKgeTj01diRSKDbeOOxb/ac/xY5EJJ6SqCAOPTT8aM0l\nqY5VK73OnAnrrx87GpGaUwVRwcSJ4Ud9D1Jdm24aJlRqNJOUqqKvILp3h732ggsvzHNQUpQ++AA6\ndgy7zzVtGjsakZrRMNc0U6dCWRnMmgXrrJP/uKQ4nXIKbL01DBgQOxKRmlGCSHPqqbDVVvqPLTUz\nbRrst1+oIpo0iR2NSPaUIFJmzYLdd1fTgOTG8cfDzjvDJZfEjkQke0oQKWedBRtsAIMH11JQUtQm\nTYKDDgpfPBo1ih2NSHaUIPhp85cZM0KSEMmFY46BffbRgAcpXEoQhP/AdepoqQTJrYkTw3ya//4X\nGjaMHY1I9ZV8gli1XLM2fZF8OOywsGzLOefEjkSk+ko+QfTvD19/DbfdVstBSUkYNw569AjzI+rX\njx2NSPWUdIL46ivYYguYMCHMghXJh06dwv7Vmp0vhaakl9oYPjw0ASg5SD4NGABXXw0rVsSORCS/\niiZBfPst3HIL9OsXOxIpdgccAOutB08+GTsSkfwqmgRx++3hP+7WW8eORIqdWagihgyBAmyhFamy\nokgQS5bATTdpSQ2pPYceGpLD88/HjkQkf4oiQdxzD+y6a9gBTKQ2mIXmTFURUswKfhTTsmVh5NI/\n/gF77BE5MCkpK1bAttvCHXeEVYNFkq7kRjE98EBYsVXJQWpb3bpw2WWhihApRgVdQegbnMS2dGmo\nYB9/PKweLJJkJVVBPPYYtGgB++8fOxIpVQ0awMUXw9ChsSMRyb2CrSBWrHB22AGuuw66dYsdkZSy\n77+Htm3hpZfCKsIiSZWXCsLMNjKzw8zsUDNrkX14P56vu5lNNrMVZrZzhfv6mdlMM5tmZl1Wd44R\nI8K3t65daxqNSM2svTZccAFcc03sSERyq9IEYWbHAW8C3YHjgPFm1r2GzzsJOAp4rcJztQN6AO2A\nrsBtZpYxxiFDwrwHq3IuFMmfs8+GF18Mi/iJFIuqVBCXA7u5+ynufgqwG/CHmjypu09z9xkZ7joC\neNjdl7n7bOADIGPX3+LFcOSRNYlCJHfWXRf69IFrr40diUjuVCVBGLAg7foXqdvyoRUwJ+36HKB1\npgP79QubAokkxfnnwxNPwJw5lR8rUtsWL67+Y+pV4ZgXgBfN7CFCYugB/KuyB5nZSGCjDHf1d/cR\n1YgxYy/6jBmDGDQoXC4rK6NM41wlsubNoVcvuOEGuPnm2NGIQHl5OeXl5UDYy6S6Kh3FZGYXAZ8B\nO6ZuGu3uT1X/qTKe+xWgr7v/J3X9MgB3vyZ1/QVgoLu/WeFxa9xyVCSWuXNhu+1g2rQwBFskCX74\nIczXmTMn96OYGgOXEvoCPgTGZBnj6qQH+wxwvJk1MLPNgC2B8Tl+PpG8adUq7Dg3bFjsSER+8ve/\nQ/v21X9cledBmNkOhFFMxwJz3L1T9Z/ux3MdBfwZ2ABYCEx0926p+/oDpwHLgfPd/cUMj1cFIYn1\n4Yew225hRFOzZrGjkVK3fDlss01Y1HT//fO05aiZtSQkhxOAxu4ebe1UJQhJulNOCXuTaAl6ie3h\nh+G222D06DzsSW1mfQiVQwvgMeBRd59So4hrSAlCkm7q1LA+2KxZsM46saORUrVyJT9bcSIfM6nb\nABe4ezt3Hxg7OYgUgm23hX32gTvvjB2JlLLnnoP69bNfcaJg12IqxLiltEyYAEccAf/9L6y1Vuxo\npNS4w557wkUXwbHHhttKajVXkSTbZZeweN/998eORErRv/8NX38NRx2V/TlUQYjk0ejR0LMnTJ8O\n9aoyLVUkRw48EE49NfysogpCJEH23Rdat4ZHH40diZSSN94Iw61PPLFm51GCEMmzAQPg6qvDiBKR\n2jBkSNgOt379mp1HCUIkz7p0gYYN4ZlnYkcipWDCBHjvvdC0WVNKECJ5Zgb9+4dvdeo6k3wbOjRs\ng5uLkXNKECK14Mgj4bvvYNSo2JFIMZs8OfQ/9O6dm/MpQYjUgjp1wh4mQ4bEjkSK2dChYfvbRo1y\ncz4NcxWpJcuXh/WZ7rsvzLIWyaWZM2GvvcLEzHXXzXyMhrmKJFS9eqGKuOqq2JFIMbrmGjjnnNUn\nh2yoghCpRUuXwpZbwj/+AXvsETsaKRYffww77RSqiPXXX/1xqiBEEqxBgzA+XVWE5NJ114WO6TUl\nh2yoghCpZUuWhO0f//nPsF6TSE3Mmxd2i6vKNreqIEQSrmHDME598ODYkUgxuPHGsEFVPvZAVwUh\nEsF338Hmm8OLL8L20fZmlEL3+eew1VZh5vTGG1d+vCoIkQLQqBH07asqQmpm2DDo3r1qySEbqiBE\nIvn221BFvPIKtGsXOxopNF9/Hfqyxo+Htm2r9hhVECIFonHjMOtVs6slG7feCoccUvXkkA1VECIR\nffNNqCLGjAnzI0SqYtGi8Hfz2muwzTZVf5wqCJECsu66cN55YQ0dkaoaPjwsI1+d5JANVRAikX39\ndfg2+NZb+W0ukOKQbfUAqiBECk6zZtCnT1hLR6Qyw4fDQQflv3oAVRAiifDFF2E8+8SJsMkmsaOR\npKpJ9QCqIEQKUvPmcPrpcO21sSORJLv1VujcuXaqB1AFIZIYn30W/uNPmgStW8eORpJmVfXw6quw\n7bbZnaMgKggz625mk81shZntnHb7pmb2vZlNTP3cFiM+kRhatIDTToOrr44diSTRquoh2+SQjSgV\nhJltA6wE/gr0dff/pG7fFBjh7h0qebwqCClKCxaEKkJ9EZJu1az78vKaJYiCqCDcfZq7z4jx3CJJ\n9qtfwRlnaHa1/Nytt8KBB9Zu9QCR+yDM7BV+WUG8D8wEFgKXu/vrGR6nCkKK1qoRTW+/DZttFjsa\niS2Xa3ZVt4KoV7OnW2MgI4GNMtzV391HrOZhc4E27v5Vqm/iaTNr7+6LKh44aNCgHy+XlZVRVlZW\n86BFEqB587C38FVXwT33xI5GYltVPWSTHMrLyykvL8/6uRNVQVT1flUQUuxWrdQ5dqzWaCplixaF\nv4NcrfhbEH0QFfwYrJltYGZ1U5fbAlsCs2IFJhJLs2Zw/vlw5ZWxI5GYhg0LI5diLQcfaxTTUcCf\ngQ0IfQ0T3b2bmR0D/BFYRhjldIW7P5fh8aogpOh980349liTce9SuL76KvRFjR0b/g5yoboVhCbK\niSTYNdfAO+/AI4/EjkRqW//+YdjznXfm7pxKECJF5Ntvw7fHkSOhwxpnB0kxmT8/NCvlej6MEoRI\nkbnxxrCh0BNPxI5EassFF4B76IPIJSUIkSLz3XehinjuOdhpp9jRSL598gnsuCNMmQIbbpjbcxfi\nKCYRWYNGjaBfPxgwIHYkUhuuuirMps91csiGKgiRArB0aVij6d57Yf/9Y0cj+fLBB9CxI8yYAeuv\nn/vzq4IQKUINGoQ5EZdeGtqmpTgNGhTmv+QjOWRDCUKkQJx4Inz/Pfzzn7EjkXx4//0wWu2CC2JH\n8hMlCJECUadO2Cuif39Yvjx2NJJrAwbAJZdAkyaxI/mJEoRIAenWDTbYAO6/P3YkkkujR8O774ZF\nGpNEndQiBWbsWOjRI3RkNmwYOxqpKXfYa6+QHE4+Ob/PpU5qkSK3556w885hGWgpfE8+CUuWhD6m\npFEFIVKAJk+GAw6AmTOhadPY0Ui2li2D9u1h+HDo0iX/z6cKQqQEtG8PhxwC110XOxKpiTvvhE03\nrZ3kkA1VECIF6uOPw9Ib77wDbdrEjkaqa9GisJz388/X3hIqqiBESsQmm8DZZ2sJjkJ1441hM6Ak\nr6+lCkKkgC1aBFtvDc88A7vuGjsaqar//S80E06YEJqYaotWcxUpMXfdFeZFvPoqWJX/60tMvXuH\nwQU33FC7z6smJpES06sXLFwITz0VOxKpiokT4dln4Q9/iB1J5VRBiBSBUaPgrLPC8Ne11oodjayO\nO5SVwUknhSW9a5sqCJES1LkzbLutJs8l3RNPhGrvd7+LHUnVqIIQKRLTpsG++8LUqWG9JkmWJUtC\nEr/nnjDJMQZVECIlaptt4Pjj4YorYkcimdx0UxjSGis5ZEMVhEgR+fJLaNcO/vWvZI+vLzVz58L2\n28P48dC2bbw4VEGIlLD114fBg8PKoCtXxo5GVunfH04/PW5yyIYShEiROe00WLFCe0Ykxeuvh1Fm\nhTjjXU1MIkXo7bfhsMNCh3WzZrGjKV3LloWl2a+4Arp3jx2NmphEhLDsxuGHq8M6tltugZYt4dhj\nY0eSHVUQIkXqiy9Ch/VLL8EOO8SOpvTMmQM77ghjxoRVW5OgICoIM7vezKaa2btm9qSZNU27r5+Z\nzTSzaWaW0FXSRZKveXO48kp1WMfy+99Dnz7JSQ7ZiNXE9BLQ3t13AGYA/QDMrB3QA2gHdAVuMzM1\ng4lk6fTTQ4f1XXfFjqS0vPRS6Afq1y92JDUT5cPX3Ue6+6rvNG8CG6cuHwE87O7L3H028AGwe4QQ\nRYpC3bpwxx1hBM3cubGjKQ3ffx+qtltugbXXjh1NzSTh2/lpwPOpy62AOWn3zQFa13pEIkWkQwc4\n80w477y26l4fAAAKuklEQVTYkZSGP/4xjFw65JDYkdRcvXyd2MxGAhtluKu/u49IHTMAWOruD63h\nVOqNFqmhyy8PHdVPPw1HHhk7muI1YQLcey+8917sSHIjbwnC3Q9a0/1m1hP4DdAp7eZPgfTddTdO\n3fYLgwYN+vFyWVkZZWVl2QUqUgIaNgxNTSefHNYCatq08sdI9SxbFlZpveEG2HDD2NEE5eXllJeX\nZ/34KMNczawrcCOwv7t/nnZ7O+AhQr9Da2AUsEXFMa0a5iqSnTPOCP0Sf/lL7EiKz9ChMHo0PP98\ncnf2K4gtR81sJtAA+DJ101h375O6rz+hX2I5cL67v5jh8UoQIln4+mvYbruwDMeBB8aOpnhMmwb7\n7BOamH7969jRrF5BJIiaUoIQyd6//gVnnw3vvqumplxYvhz22w9OOCH5AwGUIESkUmeeGdrM77kn\ndiSFb+hQePllGDkS6iRhXOgaKEGISKUWLQqjmoYNC4v6SXYmToSDDw5NS23aVH58bAWx1IaIxNWk\nCdx3X6gkPv+88uPll77/PowK+9OfCiM5ZEMVhEgJu+gi+PBDePzx5I68SaoLLwyz0x95pHB+d2pi\nEpEqW7IE9twzVBJnnRU7msIxciT06hUmxK2/fuxoqk4JQkSqZcYM2Hvv0NG6/faxo0m+efNgl13g\n73+HTp0qPz5J1AchItWy1VZw003QowcsXhw7mmRbsQJOOilMOCy05JANVRAiAkDPnqEt/d57Y0eS\nXIMGwWuvhSamunVjR1N9qiBEJCvDh8PYsWF0k/zSyy+H9aweeqgwk0M2VEGIyI8mT4aysjDbetdd\nY0eTHB9/DB07Fma/QzpVECKStfbt4a9/hWOOgc8+ix1NMnz3HRx1VNhCtJCTQzZUQYjIL1x+eViZ\ndNQoqF8/djTxuIdO6Tp1QvVQKPMdVkfDXEWkxlasgCOOCCuTDh9e+B+M2br+enj00ZAsC337UFAT\nk4jkQN268OCD8OqrcPPNsaOJ4+mnw2t/6qniSA7ZyNuOciJS2Jo2DZvf7LVXWGvo2GNjR1R7xoyB\n3r3hhReKd52lqlCCEJHV2mQTGDECunSBjTYKm+IUu+nT4eijw6ZKu+wSO5q41MQkImu0007wwANh\nZNP778eOJr/mzoVu3eDqq8O/pU4JQkQqdfDBoT2+S5ewvWYxmj8/DGM944ywEJ+oiUlEquiEE+CH\nH+Cgg6C8HDbfPHZEubNgQUgOxx8Pl10WO5rkUIIQkSrr2TMkiU6dwtITxZAkPv88JL3DD4crrogd\nTbIoQYhItZx5Zvh3//3DkhwdOsSNpyY++SQ0mx15JAwZUrrzPVZHCUJEqu3MM6FZM+jcOcwT2Guv\n2BFV3/TpoW/l3HPDznryS+qkFpGs9OgRVn498siQJArJ66+HRQkHDlRyWBMttSEiNTJhQljMrnfv\nsIZT0ptp7r4b+vULya3UhrJqLSYRqXXz5oUksckmcNddsO66sSP6paVL4eKLQ7/JiBGw9daxI6p9\nWotJRGpdy5Zh6Ot664WJdePGxY7o56ZPhz33hNmz4c03SzM5ZEMJQkRyomHDsJfE9deHlWCvvDJ8\na49p5Uq4/fawRMjpp4cF+NZbL25MhURNTCKSc3PmwFlnwaxZ4QN6v/1qP4b33w+jrVauDM1e7dvX\nfgxJUxBNTGZ2vZlNNbN3zexJM2uaun1TM/vezCamfm6LEZ+I1MzGG4d2/sGDw4Y7xx8fmnlqw9y5\n0KcPHHAAnHIKvPGGkkO2YjUxvQS0d/cdgBlAv7T7PnD3nVI/feKEF1d5eXnsEPJKr6+wVfX1mYVV\nUadOhe23D808vXrBpEn5ievDD8O2oB06wDrrhDWjzjwz7AZXVcX+3lVXlATh7iPdfWXq6pvAxjHi\nSKpi/yPV6yts1X19jRtD//4wcyZsthl07RrmIDzwACxcWLNYvv8ennwyzMXYbbew0dF774V+kObN\nq3++Yn/vqisJndSnAc+nXd8s1bxUbmYlsPq8SGlo1iysdTR7dmgCevTRsBlPt25w7bVhW89Fi9Z8\njsWL4e23w8qyRx8dRk/ddhsceih89FFIDK1b18rLKQl5W2rDzEYCG2W4q7+7j0gdMwBY6u4Ppe6b\nC7Rx96/MbGfgaTNr7+6V/NmISKGoXx+OOy78fPMNvPRSmNn8+9/DlCnQqFGYT9GkSdjq84cfwnHz\n5sGXX8KWW4alPY49NnSAt2gR+xUVr2ijmMysJ9Ab6OTuS1ZzzCtAX3f/T4XbNYRJRCQL1RnFFGWx\nPjPrClwM7J+eHMxsA+Ard19hZm2BLYFZFR9fnRcoIiLZiVJBmNlMoAHwZeqmse7ex8yOAf4ILANW\nAle4+3O1HqCIiBTmRDkREcm/JIxiqhYz62pm08xsppldGjueXDKzNmb2iplNNrP3zez/YseUa2ZW\nNzVKbUTsWHLNzJqZ2eOpSaBTzKxj7Jhyycz6pf42J5nZQ2a2VuyYasLM7jGz+WY2Ke229c1spJnN\nMLOXzKxZzBhrYjWvL+Mk5dUpqARhZnWB4UBXoB1wgpltGzeqnFoGXOju7YGOwDlF9voAzgemAMVY\nug4Dnnf3bYHtgamR48kZM9uUMKhkZ3fvANQFjo8ZUw7cS/gsSXcZMNLdtwJeTl0vVJle35omKf9C\nQSUIYHfCTOvZ7r4MeAQ4InJMOePu/3P3d1KXvyV8wLSKG1XumNnGwG+Au4CiGmiQ+ia2r7vfA+Du\ny929htPAEuUbwheYRmZWD2gEfBo3pJpx99HAVxVuPhy4L3X5PuDIWg0qhzK9vupOUi60BNEa+CTt\n+pzUbUUn9Y1tJ8KbWCz+RBi9trKyAwvQZsACM7vXzP5jZneaWaPYQeWKu38J3Ah8TJiv9LW7j4ob\nVV5s6O7zU5fnAxvGDCbPKk5S/oVCSxDF2CzxC2bWGHgcOD9VSRQ8MzsU+MzdJ1Jk1UNKPWBn4DZ3\n3xlYTGE3T/yMmW0OXABsSqhqG5vZSVGDyrPUktFF+ZmTYZJyRoWWID4F2qRdb0OoIoqGmdUHngAe\ncPenY8eTQ3sBh5vZh8DDwIFmdn/kmHJpDjDH3d9KXX+ckDCKxa7AGHf/wt2XA08S3tNiM9/MNgIw\ns5bAZ5HjybnUJOXfAJUm+EJLEG8DW6aWBW8A9ACeiRxTzpiZAXcDU9z95tjx5JK793f3Nu6+GaFz\n89/ufkrsuHLF3f8HfGJmW6Vu6gxMjhhSrk0DOprZ2qm/086EwQbF5hng1NTlU4Fi+pKWPkn5iNWt\nYJGuoBJE6pvLucCLhD/OR929aEaKAHsDJwMHpO2JUXEUQrEoxtL9POBBM3uXMIppaOR4csbd3wXu\nJ3xJey918x3xIqo5M3sYGANsbWafmFkv4BrgIDObARyYul6QMry+04BbgMbAyKrsuaOJciIiklFB\nVRAiIlJ7lCBERCQjJQgREclICUJERDJSghARkYyUIEREJCMlCJEcMbOmZnZ27DhEckUJQiR31gP6\nxA5CJFeUIERy5xpg89QM1WtjByNSU5pJLZIjZvZr4NnUhjoiBU8VhEjuFOMy5lLClCBERCQjJQiR\n3FkENIkdhEiuKEGI5Ii7fwG8YWaT1EktxUCd1CIikpEqCBERyUgJQkREMlKCEBGRjJQgREQkIyUI\nERHJSAlCREQyUoIQEZGMlCBERCSj/weoGCxBZciQSwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe0e86e50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# (a) Output waveform\n",
+ "# (b) Output waveform\n",
+ "from numpy import arange\n",
+ "t=arange(0,12,0.001)\n",
+ "vin =[]\n",
+ "for tt in t:\n",
+ " vin.append(15*sin(2*pi*tt/12))# # Input voltage in volts\n",
+ "\n",
+ "# Part (a), From Fig. 3.67(a)\n",
+ "vo=[]\n",
+ "for v in vin:\n",
+ " vo.append(v-15)# # in volts\n",
+ "plot(t,vo)#\n",
+ "title(\"Part (a) - Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()\n",
+ "\n",
+ "# Part(b), From Fig. 3.67(b)\n",
+ "vo=[]\n",
+ "for v in vin:\n",
+ " vo.append(v-10)# # in volts\n",
+ "plot(t,vo)#\n",
+ "title(\"Part (b) - Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.31: Page No 167"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fe16d1f50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Output voltage\n",
+ "from numpy import arange\n",
+ "t=arange(0,9*pi,0.1)\n",
+ "from scipy.signal import square\n",
+ "vin =[]\n",
+ "for tt in t:\n",
+ " vin.append(15*square(tt)-5) # Input wave in volts\n",
+ "vo =[]\n",
+ "for v in vin:\n",
+ " vo.append(v+25) # in volts\n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.32: Page No 168"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nKhdsAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fd9eb2f50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Output voltage\n",
+ "\n",
+ "t1=range(0,20)\n",
+ "vin1=range(0,20)\n",
+ "t2=range(20,60)\n",
+ "vin2 =[]\n",
+ "for t in t2:\n",
+ " vin2.append(40-t)\n",
+ "\n",
+ "t3=range(60,80)\n",
+ "vin3 =[]\n",
+ "for t in t3:\n",
+ " vin3.append(-80+t)\n",
+ "t=t1+t2+t3#\n",
+ "vin=vin1+vin2+vin3# Input wave in volts\n",
+ "vo=[]\n",
+ "for x in vin:\n",
+ " vo.append(x+25) # in volts\n",
+ "\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, xlabel, ylabel, show, title\n",
+ "plot(t,vo)#\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3.33: Page No 169"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7f9fd9e9a310>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#vo\n",
+ "from numpy import arange, sin, pi\n",
+ "t=arange(0,12,0.001)\n",
+ "vin =[]\n",
+ "for tt in t:\n",
+ " vin.append(10*sin(2*pi*tt/4)) # Input voltage in volts\n",
+ "# From Fig. 3.73\n",
+ "vint=[]\n",
+ "for v in vin:\n",
+ " vint.append(v+5)\n",
+ "vo =[]\n",
+ "for i in range(0,len(vint)):\n",
+ " if vint[i]>0 :\n",
+ " # Diode is OFF\n",
+ " vo.append(vint[i]) # in volts\n",
+ " else:\n",
+ " break#\n",
+ " \n",
+ "\n",
+ "for i in range(i,len(vint)):\n",
+ " if vint[i]==-5:\n",
+ " break#\n",
+ " else:\n",
+ " # Diode is ON\n",
+ " vo.append(0)#\n",
+ " \n",
+ "\n",
+ "for i in range(i,len(vint)):\n",
+ " # Capacitor is charged to 5 V\n",
+ " vo.append(vint[i]+5)# # in volts\n",
+ "\n",
+ "plot(t,vo)\n",
+ "title(\"Output voltage\")\n",
+ "xlabel(\"t\")\n",
+ "ylabel(\"vo\")\n",
+ "show()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch4.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch4.ipynb
new file mode 100644
index 00000000..bd9b3095
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch4.ipynb
@@ -0,0 +1,441 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 4 : Biplolar Junction Transistors(BJTs)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.1: Page No 197"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "New value of Ic = 1.10 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#New value of Ic\n",
+ "\n",
+ "VA=100# # Early voltage in volts\n",
+ "VCE_old=1# # in volts\n",
+ "Ic_old=1e-3# # in amperes\n",
+ "VCE_new=11# # in volts\n",
+ "ro=VA/Ic_old# # Output resistance in ohms\n",
+ "Ic_new=(VCE_new-VCE_old+Ic_old*ro)/ro# # in amperes\n",
+ "Ic_new=Ic_new*1e3# # in miliamperes\n",
+ "print \"New value of Ic = %0.2f mA\"%Ic_new"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.2: Page No 201"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "VC = 5.05 V\n",
+ "VE = 3.30 V\n",
+ "VB = 4.00 V\n",
+ "IC = 0.99 mA\n",
+ "IE = 1.00 mA\n",
+ "IB = 0.0099 mA\n",
+ "Since the base is at 4 V and the collector is at 5.05 V, so the collector junction is reverse biased by 1.05 V. The transistor is indeed in forward active region as assumed.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Region of operation, All the node voltages and currents\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "VBE_active=0.7# # in volts\n",
+ "# From the equivalent circuit in Fig. 4.18(b)\n",
+ "VCC=10# # in volts\n",
+ "VBB=4# # in volts\n",
+ "RE=3.3e3# # in ohms\n",
+ "RC=5e3# # in ohms\n",
+ "VE=VBB-VBE_active# # in volts\n",
+ "# Writing KVL for base emitter loop and putting Ic= βF*Ib\n",
+ "IB=VE/((1+betaf)*RE)# # in amperes\n",
+ "IB=IB*1e3# # in miliamperes\n",
+ "IC=betaf*IB# # in miliamperes\n",
+ "IE=IB+IC# # in miliamperes\n",
+ "VC=VCC-IC*RC*1e-3# # in volts\n",
+ "print \"VC = %0.2f V\"%VC\n",
+ "print \"VE = %0.2f V\"%VE\n",
+ "print \"VB = %0.2f V\"%VBB\n",
+ "print \"IC = %0.2f mA\"%IC\n",
+ "print \"IE = %0.2f mA\"%IE\n",
+ "print \"IB = %0.4f mA\"%IB\n",
+ "print \"Since the base is at 4 V and the collector is at 5.05 V, so the collector junction is reverse biased by 1.05 V. The transistor is indeed in forward active region as assumed.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.3: Page No 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "VC = 7.15 V\n",
+ "VE = 2.88 V\n",
+ "VB = 5.00 V\n",
+ "IC = 1.42 mA\n",
+ "IE = 1.44 mA\n",
+ "IB = 0.01 mA\n",
+ "Since base voltage VB is 3.6 V and collector is at 7.2 V, so collector-base junction is reverse biased by 3.6 V. Thus our assumption that the transistor is in active region is valid.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Region of operation, Node currents and voltages\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "VBE_active=0.7# # in volts\n",
+ "# From Fig. 4.19\n",
+ "VCC=10# # in volts\n",
+ "VBB=5# # in volts\n",
+ "RB=100e3# # in ohms\n",
+ "RE=2e3# # in ohms\n",
+ "RC=2e3# # in ohms\n",
+ "# Writing KVL to the base circuit and putting Ic= βF*Ib\n",
+ "IB=(VBB-VBE_active)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "IB=IB*1e3# # in miliamperes\n",
+ "IC=betaf*IB# # in miliamperes\n",
+ "IE=IB+IC# # in miliamperes\n",
+ "VB=VBB-IB*RB*1e-3# # in volts\n",
+ "VE=IE*RE*1e-3# # in volts\n",
+ "VC=VCC-IC*RC*1e-3# # in volts\n",
+ "print \"VC = %0.2f V\"%VC\n",
+ "print \"VE = %0.2f V\"%VE\n",
+ "print \"VB = %0.2f V\"%VBB\n",
+ "print \"IC = %0.2f mA\"%IC\n",
+ "print \"IE = %0.2f mA\"%IE\n",
+ "print \"IB = %0.2f mA\"%IB\n",
+ "print \"Since base voltage VB is 3.6 V and collector is at 7.2 V, so collector-base junction is reverse biased by 3.6 V. Thus our assumption that the transistor is in active region is valid.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.4: Page No 203"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in saturation region.\n",
+ "Minimum IB required to saturate the transistor = 0.049 mA\n",
+ "IB in the circuit = 0.084 mA\n",
+ "Since IB in the circuit is calculated as 0.084 mA, so it is greater than IB,min. Thus the transistor is indeed in saturation mode.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Region of operation\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in saturation region.\"\n",
+ "VBE_sat=0.8# # in volts\n",
+ "VCE_sat=0.2# # in volts\n",
+ "# From Fig. 4.21\n",
+ "VCC=10# # in volts\n",
+ "VBB=5# # in volts\n",
+ "RB=50e3# # in ohms\n",
+ "RC=2e3# # in ohms\n",
+ "# From the base loop\n",
+ "IB=(VBB-VBE_sat)/RB# # in amperes\n",
+ "IB=IB*1e3# # in miliamperes\n",
+ "IC_sat=(VCC-VCE_sat)/RC# # in amperes\n",
+ "IC_sat=IC_sat*1e3# # in miliamperes\n",
+ "IB_min=IC_sat/betaf# # in miliamperes\n",
+ "print \"Minimum IB required to saturate the transistor = %0.3f mA\"%IB_min\n",
+ "print \"IB in the circuit = %0.3f mA\"%IB\n",
+ "print \"Since IB in the circuit is calculated as 0.084 mA, so it is greater than IB,min. Thus the transistor is indeed in saturation mode.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.5: Page No 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Value of RB so as to drive the transistor into saturation = 2.14 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Value of RB so as to drive the transistor into saturation\n",
+ "\n",
+ "bta=50# # Current gain\n",
+ "VBE_sat=0.8# # in volts\n",
+ "VCE_sat=0.2# # in volts\n",
+ "# From Fig. 4.22\n",
+ "VCC=10# # in volts\n",
+ "VBB=5# # in volts\n",
+ "RC=1e3# # in ohms\n",
+ "IC_sat=(VCC-VCE_sat)/RC# # in amperes\n",
+ "IB_min=IC_sat/bta# # Minimum base current in amperes to saturate the transistor\n",
+ "# Then base current can be taken as\n",
+ "IB=10*IB_min# # in amperes\n",
+ "RB=(VBB-VBE_sat)/IB# # in ohms\n",
+ "RB=RB*1e-3# # in kilo-ohms\n",
+ "print \"Value of RB so as to drive the transistor into saturation = %0.2f kΩ\"%RB"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.6: Page No 205"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "Vo1 = -1.36 V\n",
+ "Vo2 = 4.06 V\n",
+ "Voltage at base = 3.36 V\n",
+ "As base voltage, VB is 3.36 V and voltage at collector is -1.4 V, collector base junction is reverse biased. Thus the transistor is indeed in active region as assumed.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Vo1, Vo2\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "VBE_active=-0.7# # in volts\n",
+ "# From Fig. 4.23\n",
+ "VCC=-10# # in volts\n",
+ "VEE=10# # in volts\n",
+ "VBB=2.5# # in volts\n",
+ "RE=6.8e3# # in ohms\n",
+ "RB=100e3# # in ohms\n",
+ "RC=10e3# # in ohms\n",
+ "# Writing KVL for base-emitter circuit and putting Ic= βF*Ib\n",
+ "IB=(VEE-VBB+VBE_active)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "\n",
+ "IC=betaf*IB# # in amperes\n",
+ "IE=IB+IC# # in amperes\n",
+ "Vo1=VCC+IC*RC# # in volts\n",
+ "Vo2=VEE-IE*RE# # in volts\n",
+ "VB=VBB+IB*RB# # in volts\n",
+ "print \"Vo1 = %0.2f V\"%Vo1\n",
+ "print \"Vo2 = %0.2f V\"%Vo2\n",
+ "print \"Voltage at base = %0.2f V\"%VB\n",
+ "print \"As base voltage, VB is 3.36 V and voltage at collector is -1.4 V, collector base junction is reverse biased. Thus the transistor is indeed in active region as assumed.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.7: Page No 206"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "When current gain = 50\n",
+ "Value of RC to obtain VC = +5 V = 1.08 kΩ When current gain = 100\n",
+ "Collector voltage = 10.00 V\n",
+ "Since collector voltage is greater than the base voltage, the transistor goes into saturation as collector junction gets forward biased.\n"
+ ]
+ }
+ ],
+ "source": [
+ "#Value of RC to obtain VC = +5 V\n",
+ "\n",
+ "betaf=50# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "print \"When current gain = 50\"\n",
+ "VBE_active=-0.7# # in volts\n",
+ "# From Fig. 4.24\n",
+ "VC=5# # in volts\n",
+ "VEE=10# # in volts\n",
+ "RB=100e3# # in ohms\n",
+ "# Writing KVL for base circuit and putting Ic= βF*Ib\n",
+ "IB=(VEE+VBE_active)/RB# # in amperes\n",
+ "IC=IB*betaf# # in amperes\n",
+ "RC=VC/IC# # in ohms\n",
+ "RC=RC*1e-3# # in kilo-ohms\n",
+ "print \"Value of RC to obtain VC = +5 V = %0.2f kΩ\"%RC,\n",
+ "print \"When current gain = 100\"\n",
+ "IC=IB*100# # in amperes\n",
+ "VC=IC*RC*1e3# # in volts\n",
+ "print \"Collector voltage = %0.2f V\"%VC\n",
+ "print \"Since collector voltage is greater than the base voltage, the transistor goes into saturation as collector junction gets forward biased.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4.8: Page No 207"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Let us assume that the transistor is in active region.\n",
+ "IC = 0.85 mA\n",
+ "IE = 0.86 mA\n",
+ "IB = 0.01 mA\n",
+ "I1 = 0.04 mA\n",
+ "I2 = 0.04 mA\n",
+ "VC = -1.49 V\n",
+ "VE = 4.16 V\n",
+ "VB = 2.50 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#:Labelled voltages and currents\n",
+ "\n",
+ "betaf=100# # Current gain\n",
+ "print \"Let us assume that the transistor is in active region.\"\n",
+ "VBE_active=-0.7# # in volts\n",
+ "# From Fig. 4.25(a)\n",
+ "VCC=-10# # in volts\n",
+ "VEE=10# # in volts\n",
+ "RE=6.8e3# # in ohms\n",
+ "RC=10e3# # in ohms\n",
+ "R1=300e3# # in ohms\n",
+ "R2=180e3# # in ohms\n",
+ "# Applying Thevnin's theorem at point B\n",
+ "R_th=R1*R2/(R1+R2)# # in ohms\n",
+ "V_th=VEE-(R2*(VEE-VCC)/(R1+R2))# # in volts\n",
+ "# From the Thevnin equivalent circuit in Fig. 4.25(b)\n",
+ "# Writing KVL for base-emitter circuit and putting Ic= βF*Ib\n",
+ "IB=(VEE-V_th+VBE_active)/(R_th+(1+betaf)*RE)# # in amperes\n",
+ "IB=IB*1e3# # in miliamperes\n",
+ "IC=betaf*IB# # in miliamperes\n",
+ "IE=IB+IC# # in miliamperes\n",
+ "VC=VCC+IC*RC*1e-3# # in volts\n",
+ "VE=VEE-IE*RE*1e-3# # in volts\n",
+ "VB=V_th+IB*R_th*1e-3# # in volts\n",
+ "I1=(VEE-VB)/R2# # in amperes\n",
+ "I1=I1*1e3# # in miliamperes\n",
+ "I2=I1+IB# # in miliamperes\n",
+ "print \"IC = %0.2f mA\"%IC\n",
+ "print \"IE = %0.2f mA\"%IE\n",
+ "print \"IB = %0.2f mA\"%IB\n",
+ "print \"I1 = %0.2f mA\"%I1\n",
+ "print \"I2 = %0.2f mA\"%I2\n",
+ "print \"VC = %0.2f V\"%VC\n",
+ "print \"VE = %0.2f V\"%VE\n",
+ "print \"VB = %0.2f V\"%VBB\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch5.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch5.ipynb
new file mode 100644
index 00000000..f37de7da
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch5.ipynb
@@ -0,0 +1,858 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 5 : BJT biasing (Q point) and stability"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.1: Page No 221"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "RB = 282.50 kΩ \n",
+ "RC = 1.875 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#RB, RC\n",
+ "\n",
+ "IB=40e-6# # in amperes\n",
+ "VCE=6# # in volts\n",
+ "VCC=12# # in volts\n",
+ "betaf=80#\n",
+ "VBE=0.7# # in volts\n",
+ "RB=(VCC-VBE)/IB# # in ohms\n",
+ "RC=(VCC-VCE)/(betaf*IB)# # in ohms\n",
+ "RB=RB*1e-3# # in kilo-ohms\n",
+ "RC=RC*1e-3# # in kilo-ohms\n",
+ "print \"RB = %0.2f kΩ \"%RB\n",
+ "print \"RC = %0.3f kΩ \"%RC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.2: Page No 227"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VCEQ = 4.50 V \n",
+ "ICQ = 1.98 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#VCEQ, ICQ\n",
+ "\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=50#\n",
+ "# From Fig. 5.11(a)\n",
+ "VCC=18# # in volts\n",
+ "R1=82e3# # in ohms\n",
+ "R2=22e3# # in ohms\n",
+ "RC=5.6e3# # in ohms\n",
+ "RE=1.2e3# # in ohms\n",
+ "# Using Thevnin's theorem to obtain equivalent circuit given in Fig. 5.11(b)\n",
+ "VBB=R2*VCC/(R1+R2)# # in volts\n",
+ "RB=R1*R2/(R1+R2)# # in ohms\n",
+ "IB=(VBB-VBE)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "VCE=VCC-IC*(RC+RE)-IB*RE# # in volts\n",
+ "IC=IC*1e3# # in mili-amperes\n",
+ "print \"VCEQ = %0.2f V \"%VCE\n",
+ "print \"ICQ = %0.2f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.3: Page No 228"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 = 80.00 kΩ \n",
+ "R2 = 40.00 kΩ \n",
+ "RC = 4.00 kΩ \n",
+ "RE = 3.30 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#R1, R2, RC, RE\n",
+ "\n",
+ "IC=1e-3# # in amperes\n",
+ "VCC=12# # in volts\n",
+ "betaf=100#\n",
+ "VBE=0.7# # in volts\n",
+ "# As suggested in the design constraints, allocate 1/3VCC to RC, another 1/3VCC to R2 leaving 1/3VCC for VCEQ.\n",
+ "VB=4# # in volts\n",
+ "VE=VB-VBE# # in volts\n",
+ "# Neglecting base current,\n",
+ "RE=VE/IC# # in ohms\n",
+ "# Select the current through R1R2 equal to 0.1IC\n",
+ "R1_plus_R2=VCC/(0.1*IC)# # in ohms\n",
+ "R2=VB*R1_plus_R2/VCC# # in ohms\n",
+ "R1=R1_plus_R2-R2# # in ohms\n",
+ "RC=VCC/(3*IC)# # in ohms\n",
+ "R1=R1*1e-3# # in kilo-ohms\n",
+ "R2=R2*1e-3# # in kilo-ohms\n",
+ "RC=RC*1e-3# # in kilo-ohms\n",
+ "RE=RE*1e-3# # in kilo-ohms\n",
+ "print \"R1 = %0.2f kΩ \"%R1\n",
+ "print \"R2 = %0.2f kΩ \"%R2\n",
+ "print \"RC = %0.2f kΩ \"%RC\n",
+ "print \"RE = %0.2f kΩ \"%RE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.4: Page No 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VCEQ = 4.52 V \n",
+ "ICQ = 3.735 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#VCEQ, ICQ\n",
+ "\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=45#\n",
+ "# From Fig. 5.14\n",
+ "VEE=9# # in volts\n",
+ "RB=100e3# # in ohms\n",
+ "RC=1.2e3# # in ohms\n",
+ "# Applying KVL in the clockwise direction base emitter loop\n",
+ "IB=(VEE-VBE)/RB# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "# Writing KVL for the collector loop\n",
+ "VCE=VEE-IC*RC# # in volts\n",
+ "IC=IC*1e3# # in mili-amperes\n",
+ "print \"VCEQ = %0.2f V \"%VCE\n",
+ "print \"ICQ = %0.3f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.5: Page No 232"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VCEQ = 20.84 V \n",
+ "ICQ = 4.24 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#VCEQ, ICQ\n",
+ "\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=120#\n",
+ "# From Fig. 5.15\n",
+ "VCC=20# # in volts\n",
+ "VEE=20# # in volts\n",
+ "R1=8.2e3# # in ohms\n",
+ "R2=2.2e3# # in ohms\n",
+ "RC=2.7e3# # in ohms\n",
+ "RE=1.8e3# # in ohms\n",
+ "# Using Thevnin's theorem to obtain equivalent circuit given in Fig. 5.16(b)\n",
+ "RB=R1*R2/(R1+R2)# # in ohms\n",
+ "# From Fig. 5.16(a)\n",
+ "I=(VCC+VEE)/(R1+R2)# # in amperes\n",
+ "VBB=I*R2-VEE# # in volts\n",
+ "# Writing KVL for the base emitter loop and putting Ic= βF*Ib gives\n",
+ "IB=(VEE+VBB-VBE)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "# KVL for the collector loop gives\n",
+ "VCE=VCC+VEE-IC*(RC+RE)-IB*RE# # in volts\n",
+ "IC=IC*1e3# # in mili-amperes\n",
+ "print \"VCEQ = %0.2f V \"%VCE\n",
+ "print \"ICQ = %0.2f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.6: Page No 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "RF so that IE=+2 mA = 106.53 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#RF so that IE=+2 mA\n",
+ "\n",
+ "IE=2e-3# # in amperes\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=49#\n",
+ "# From Fig. 5.17\n",
+ "VCC=12# # in volts\n",
+ "RB=25e3# # in ohms\n",
+ "RC=2e3# # in ohms\n",
+ "I1=VBE/RB# # in amperes\n",
+ "IB=IE/(1+betaf)# # in amperes\n",
+ "# KVL for the indicated loop gives\n",
+ "RF=(VCC-RC*(I1+(1+betaf)*IB)-VBE)/(I1+IB)# # in ohms\n",
+ "RF=RF*1e-3# # in kilo-ohms\n",
+ "print \"RF so that IE=+2 mA = %0.2f kΩ \"%RF"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.7: Page No 234"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "RC = 0.587 kΩ \n",
+ "RE = 0.292 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#RCQ, RE\n",
+ "\n",
+ "VCEQ=3# # in volts\n",
+ "VBE=0.7# # in volts\n",
+ "betaf=200#\n",
+ "# From Fig. 5.18(a)\n",
+ "VCC=6# # in volts\n",
+ "VEE=6# # in volts\n",
+ "R1=90e3# # in ohms\n",
+ "R2=90e3# # in ohms\n",
+ "# Using Thevnin's theorem to obtain equivalent circuit given in Fig. 5.18(b)\n",
+ "RB=R1*R2/(R1+R2)# # in ohms\n",
+ "VBB=R2*(VCC+VEE)/(R1+R2)# # in volts\n",
+ "# In the output loop\n",
+ "x=VEE-VCEQ# # x = (IC+IB)RE in volts\n",
+ "# Applying KVL in the base emitter loop\n",
+ "IB=(VEE-VBE-x)/RB# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "# In the output loop\n",
+ "RC=VCC/IC# # in ohms\n",
+ "RE=x/(IC+IB)# # in ohms\n",
+ "RC=RC*1e-3# # in kilo-ohms\n",
+ "RE=RE*1e-3# # in kilo-ohms\n",
+ "print \"RC = %0.3f kΩ \"%RC\n",
+ "print \"RE = %0.3f kΩ \"%RE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.8: Page No 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VCEQ = -10.7 V \n"
+ ]
+ }
+ ],
+ "source": [
+ "#VCEQ\n",
+ "\n",
+ "VBE=-0.7# # in volts\n",
+ "betaf=120#\n",
+ "# From Fig. 5.19(a)\n",
+ "VCC=18# # in volts\n",
+ "R1=47e3# # in ohms\n",
+ "R2=10e3# # in ohms\n",
+ "RC=2.4e3# # in ohms\n",
+ "RE=1.1e3# # in ohms\n",
+ "# Using Thevnin's theorem to obtain equivalent circuit given in Fig. 5.19(b)\n",
+ "VBB=R2*VCC/(R1+R2)# # in volts\n",
+ "RB=R1*R2/(R1+R2)# # in ohms\n",
+ "# Applying KVL in the base emitter loop and putting Ic= βF*Ib\n",
+ "IB=(VBB+VBE)/(RB+(1+betaf)*RE)# # in amperes\n",
+ "IC=betaf*IB# # in amperes\n",
+ "# In the collector emitter loop\n",
+ "VCE=-VCC+IC*(RC+RE)+IB*RE# # in volts\n",
+ "print \"VCEQ = %0.1f V \"%VCE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.9 : Page No 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "RB = 121.19 kΩ \n",
+ "Part (ii)\n",
+ "Stability factor = 10.23 \n",
+ "Part (iii)\n",
+ "IC at 100°C = 1.77 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (i) RB\n",
+ "# (ii) Stability factor\n",
+ "# (iii) IC at 100°C\n",
+ "\n",
+ "bta=50#\n",
+ "VBE=0.7# # in volts\n",
+ "VCE=5# # in volts\n",
+ "# From Fig. 5.21\n",
+ "VCC=24# # in volts\n",
+ "RC=10e3# # in ohms\n",
+ "RE=500# # in ohms\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "# Applying KVL to the collector emitter circuit and putting Ic= βF*Ib\n",
+ "IB=(VCC-VCE)/((RC+RE)*(bta+1))# # in amperes\n",
+ "IC=bta*IB# # at 25°C in amperes\n",
+ "RB=(VCE-VBE)/IB# # in ohms\n",
+ "RB=RB*1e-3# # in kilo-ohms\n",
+ "print \"RB = %0.2f kΩ \"%RB\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "S=(1+bta)/(1+bta*(RC+RE)/(RC+RE+RB*1e3))# # Stability factor\n",
+ "print \"Stability factor = %0.2f \"%S\n",
+ "\n",
+ "print \"Part (iii)\"\n",
+ "# From Table 5.1\n",
+ "del_ICO=(20-0.1)*1e-9# # in amperes\n",
+ "del_IC=S*del_ICO# # in amperes\n",
+ "IC=IC+del_IC# # at 100°C in amperes\n",
+ "IC=IC*1e3# # at 100°C in mili-amperes\n",
+ "print \"IC at 100°C = %0.2f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.10: Page No 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "S(ICO) for RB/RE=10, 10.0\n",
+ "Change in IC = 0.199 μA \n",
+ "Part (ii)\n",
+ "S(VBE) for (RB = 240 kΩ, RE = 1 kΩ) = -2.933e-04 \n",
+ "Change in IC = 50 μA \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (i) S(ICO) for RB/RE=10 and change in IC\n",
+ "# (ii) S(VBE) for RB = 240 kΩ, RE = 1 kΩ and change in IC\n",
+ "\n",
+ "bta=100#\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "RB_RE=10# # RB/RE\n",
+ "S_ICO=(1+bta)*(1+RB_RE)/(1+bta+RB_RE)#\n",
+ "# From Table 5.1\n",
+ "del_ICO=(20-0.1)*1e-9# # in amperes\n",
+ "del_IC=S_ICO*del_ICO# # in amperes\n",
+ "del_IC=del_IC*1e6# # in micro-amperes\n",
+ "print \"S(ICO) for RB/RE=10, \",round(S_ICO,2)\n",
+ "print \"Change in IC = %0.3f μA \"%del_IC\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "RB=240e3# # in kilo-ohms\n",
+ "RE=1e3# # in kilo-ohms\n",
+ "S_VBE=-bta/(RB+(1+bta)*RE)#\n",
+ "# From Table 5.1\n",
+ "del_VBE=0.48-0.65# # in volts\n",
+ "del_IC=S_VBE*del_VBE# # in amperes\n",
+ "del_IC=del_IC*1e6# # in micro-amperes\n",
+ "print \"S(VBE) for (RB = 240 kΩ, RE = 1 kΩ) = %0.3e \"%S_VBE\n",
+ "print \"Change in IC = %0.f μA \"%del_IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.11: Page No 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "S(β) = 4.84e-06 \n",
+ "IC at 100°C = 2.145 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#S(β), IC at 100°C\n",
+ "\n",
+ "IC=2e-3# # at 25°C in amperes\n",
+ "# From Table 5.1\n",
+ "bta1=50# # at 25°C\n",
+ "bta2=80# # at 100°C\n",
+ "RB_RE=10# # RB/RE\n",
+ "S=IC*(1+RB_RE)/(bta1*(1+bta2+RB_RE))#\n",
+ "del_bta=bta2-bta1#\n",
+ "del_IC=S*del_bta# # in amperes\n",
+ "IC=IC+del_IC# # at 100°C in amperes\n",
+ "IC=IC*1e3# # at 100°C in mili-amperes\n",
+ "print \"S(β) = %0.2e \"%S\n",
+ "print \"IC at 100°C = %0.3f mA \"%IC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.12: Page No 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IC at -65°C = 1.803 mA \n",
+ "IC at 175°C = 2.15 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Variation of IC over the temperature range -65°C to 175°C\n",
+ "\n",
+ "RB_RE=2# # RB/RE\n",
+ "RE=4.7e3# # in ohms\n",
+ "IC=2e-3# # at 25°C in amperes\n",
+ "# From Table 5.1\n",
+ "bta=50# # at 25°C\n",
+ "S_ICO=(1+bta)*(1+RB_RE)/(1+bta+RB_RE)#\n",
+ "S_VBE=-bta/(RE*(1+bta+RB_RE))#\n",
+ "# From Table 5.1\n",
+ "bta1=20# # at -65°C\n",
+ "bta2=120# # at 175°C\n",
+ "S_bta1=IC*(1+RB_RE)/(bta*(1+bta1+RB_RE))# # For 25°C to -65°C\n",
+ "S_bta2=IC*(1+RB_RE)/(bta*(1+bta2+RB_RE))# # For 25°C to 175°C\n",
+ "# From Table 5.1\n",
+ "\n",
+ "# For 25°C to -65°C\n",
+ "del_ICO=(0.2e-3-0.1)*1e-9# # in amperes\n",
+ "del_VBE=0.85-0.65# # in volts\n",
+ "del_bta=bta1-bta#\n",
+ "del_IC=S_ICO*del_ICO+S_VBE*del_VBE+S_bta1*del_bta# # in amperes\n",
+ "IC1=IC+del_IC# # at -65°C in amperes\n",
+ "IC1=IC1*1e3# # at -65°C in mili-amperes\n",
+ "print \"IC at -65°C = %0.3f mA \"%IC1\n",
+ "\n",
+ "# For 25°C to 175°C\n",
+ "del_ICO=(3.3e3-0.1)*1e-9# # in amperes\n",
+ "del_VBE=0.30-0.65# # in volts\n",
+ "del_bta=bta2-bta#\n",
+ "del_IC=S_ICO*del_ICO+S_VBE*del_VBE+S_bta2*del_bta# # in amperes\n",
+ "IC2=IC+del_IC# # at 175°C in amperes\n",
+ "IC2=IC2*1e3# # at 175°C in mili-amperes\n",
+ "print \"IC at 175°C = %0.2f mA \"%IC2"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.13: Page No 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "R1 = 9.15 kΩ \n",
+ "Part (ii)\n",
+ "R1 for (IC = 10 μA) = 915 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (i) R1\n",
+ "# (ii) R1 for IC = 10 μA\n",
+ "\n",
+ "IC=1e-3# # in amperes\n",
+ "VCC=10# # in volts\n",
+ "bta=125#\n",
+ "VBE=0.7# # in volts\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "R1=bta*(VCC-VBE)/((bta+2)*IC)# # in ohms\n",
+ "R1=R1*1e-3# # in kilo-ohms\n",
+ "print \"R1 = %0.2f kΩ \"%R1\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "IC=10e-6# # in amperes\n",
+ "R1=bta*(VCC-VBE)/((bta+2)*IC)# # in ohms\n",
+ "R1=R1*1e-3# # in kilo-ohms\n",
+ "print \"R1 for (IC = 10 μA) = %0.f kΩ \"%R1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.14: Page No 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 = 9.30 kΩ \n",
+ "RE = 11.51 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "from math import log\n",
+ "#R1, RE\n",
+ "\n",
+ "Io=10e-6# # in amperes\n",
+ "VCC=10# # in volts\n",
+ "bta=125#\n",
+ "VBE=0.7# # in volts\n",
+ "VT=25e-3# # in volts\n",
+ "# Let\n",
+ "I_ref=1e-3# # in amperes\n",
+ "R1=(VCC-VBE)/I_ref# # in ohms\n",
+ "R1=R1*1e-3# # in kilo-ohms\n",
+ "RE=VT*log(I_ref/Io)/((1+1/bta)*Io)# # in ohms\n",
+ "RE=RE*1e-3# # in kilo-ohms\n",
+ "print \"R1 = %0.2f kΩ \"%R1\n",
+ "print \"RE = %0.2f kΩ \"%RE"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.15: Page No 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IC1 = 0.270 mA \n",
+ "IC2 = 0.270 mA \n",
+ "IC3 = 0.0280 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#IC1, IC2, IC3\n",
+ "\n",
+ "bta=125#\n",
+ "VBE=0.7# # in volts\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 5.27\n",
+ "VC=9# # in volts\n",
+ "RC=30# # in kilo-ohms\n",
+ "RE=1.94# # in kilo-ohms\n",
+ "I_ref=(VC-VBE)/RC# # in mili-amperes\n",
+ "IC=I_ref*bta/(3+bta)# # in mili-amperes\n",
+ "from numpy import arange\n",
+ "for i in arange(0.01,0.5,0.001):\n",
+ " if abs(VT*log(IC/i)/(i*(1+1/bta))-RE)<=0.1:\n",
+ " break#\n",
+ " \n",
+ "\n",
+ "print \"IC1 = %0.3f mA \"%IC\n",
+ "print \"IC2 = %0.3f mA \"%IC\n",
+ "print \"IC3 = %0.4f mA \"%i"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.16: Page No 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Io = 0.46 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Io\n",
+ "\n",
+ "bta=100#\n",
+ "VBE=0.7# # in volts\n",
+ "# From Fig. 5.30\n",
+ "# Writing KVL for the indicated loop\n",
+ "I_ref=(10-VBE)/10# # in mili-amperes\n",
+ "Io=bta*I_ref/(2*(1+bta))# # in mili-amperes\n",
+ "print \"Io = %0.2f mA \"%Io"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.17: Page No 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "IC1 = 0.50 mA \n",
+ "IC2 = 0.50 mA \n",
+ "Part (ii)\n",
+ "RC so that (Vo = 6 V) = 12.04 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (i) IC1 and IC2\n",
+ "# (ii) RC so that Vo = 6 V\n",
+ "\n",
+ "bta=200#\n",
+ "# From Fig. 5.31\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "I_ref=(12-0.7)/15# # in amperes\n",
+ "I1=0.7/2.8# # in amperes\n",
+ "IC=(I_ref-I1)*bta/(bta+2)# # in mili-amperes\n",
+ "print \"IC1 = %0.2f mA \"%IC\n",
+ "print \"IC2 = %0.2f mA \"%IC\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "Vo=6# # in volts\n",
+ "RC=(12-Vo)/IC# # in kilo-ohms\n",
+ "print \"RC so that (Vo = 6 V) = %0.2f kΩ \"%RC"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5.18: Page No 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Emitter current in transistor Q3 = 0.98 mA \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Emitter current in transistor Q3\n",
+ "\n",
+ "bta=100#\n",
+ "VBE=0.75# # in volts\n",
+ "# From Fig. 5.32\n",
+ "I=(10-VBE)/4.7# # in mili-amperes\n",
+ "IE=I/2# # in mili-amperes\n",
+ "print \"Emitter current in transistor Q3 = %0.2f mA \"%IE"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch6.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch6.ipynb
new file mode 100644
index 00000000..3033d3de
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch6.ipynb
@@ -0,0 +1,502 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 6 : BJT amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.2: Page No 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "rπ = 3.29 kΩ \n",
+ "gm = 31.62 mA/V \n"
+ ]
+ }
+ ],
+ "source": [
+ "#rπ, gm\n",
+ "\n",
+ "IBQ=7.6e-6 # in amperes\n",
+ "bta=104#\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "ICQ=IBQ*bta # in amperes\n",
+ "gm=ICQ/VT # in ampere per volt\n",
+ "gm=gm*1e3 # in mili-ampere per volt\n",
+ "r_pi=bta/gm # in kilo-ohms\n",
+ "print \"rπ = %0.2f kΩ \"%r_pi\n",
+ "print \"gm = %0.2f mA/V \"%gm"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.3: Page No 287"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AI = -90.91 \n",
+ "Ri = 0.91 kΩ \n",
+ "AV = -500.00 \n",
+ "AVs = -238.10 \n",
+ "Ro = 100.00 kΩ \n",
+ "Ro'' = 4.76 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AI, Ri, AV, AVs, Ro, Ro'\n",
+ "\n",
+ "hie=1e3 # in ohms\n",
+ "hfe=100#\n",
+ "hre=2e-4#\n",
+ "hoe=20e-6 # in amperes per volt\n",
+ "RC=5e3 # in ohms\n",
+ "Rs=1e3 # in ohms\n",
+ "# From Table 6.3\n",
+ "AI=-hfe/(1+hoe*RC)#\n",
+ "Ri=hie+hre*AI*RC # in ohms\n",
+ "AV=AI*RC/Ri#\n",
+ "AVs=AV*Ri/(Ri+Rs)#\n",
+ "Yo=hoe-hfe*hre/(hie+Rs) # in ohms inverse\n",
+ "Ro=1/Yo # in ohms\n",
+ "Ro_dash=Ro*RC/(Ro+RC) # in ohms\n",
+ "Ri=Ri*1e-3 # in kilo-ohms\n",
+ "Ro=Ro*1e-3 # in kilo-ohms\n",
+ "Ro_dash=Ro_dash*1e-3 # in kilo-ohms\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"Ri = %0.2f kΩ \"%Ri\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"AVs = %0.2f \"%AVs\n",
+ "print \"Ro = %0.2f kΩ \"%Ro\n",
+ "print \"Ro'' = %0.2f kΩ \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.4: Page No 288"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AI'' = -37.34 \n",
+ "AVs = -51.78 \n",
+ "Ri,eff = 1.61 kΩ \n",
+ "Ro = 57.97 kΩ \n",
+ "Ro'' = 4.60 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AI', AVs, Ri,eff, Ro, Ro'\n",
+ "\n",
+ "hie=2e3 # in ohms\n",
+ "hfe=50#\n",
+ "hre=2e-4#\n",
+ "hoe=20e-6 # in amperes per volt\n",
+ "# From Fig. 6.22(a)\n",
+ "Rs=2e3 # in ohms\n",
+ "R1=90e3 # in ohms\n",
+ "R2=10e3 # in ohms\n",
+ "RC=5e3 # in ohms\n",
+ "# From the Table 6.3\n",
+ "RB=R1*R2/(R1+R2) # in ohms\n",
+ "AI=-hfe/(1+hoe*RC)#\n",
+ "Ri=hie+hre*AI*RC # in ohms\n",
+ "Ri_eff=RB*Ri/(RB+Ri) # in ohms\n",
+ "AI_dash=AI*RB/(RB+Ri)#\n",
+ "AVs=AI*RC*Ri_eff/(Ri*(Rs+Ri_eff))#\n",
+ "Rs_eff=Rs*RB/(Rs+RB) # in ohms\n",
+ "Yo=hoe-hfe*hre/(hie+Rs_eff) # in ohms inverse\n",
+ "Ro=1/Yo # in ohms\n",
+ "Ro_dash=Ro*RC/(Ro+RC) # in ohms\n",
+ "Ri_eff=Ri_eff*1e-3 # in kilo-ohms\n",
+ "Ro=Ro*1e-3 # in kilo-ohms\n",
+ "Ro_dash=Ro_dash*1e-3 # in kilo-ohms\n",
+ "print \"AI'' = %0.2f \"%AI_dash\n",
+ "print \"AVs = %0.2f \"%AVs\n",
+ "print \"Ri,eff = %0.2f kΩ \"%Ri_eff\n",
+ "print \"Ro = %0.2f kΩ \"%Ro\n",
+ "print \"Ro'' = %0.2f kΩ \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.5: Page No 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AI = -8.41 \n",
+ "AVs = -3.09 \n",
+ "Ri = 205.00 kΩ \n",
+ "Ro'' = 5.00 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AI, AVs, Ri, Ro'\n",
+ "\n",
+ "hie=4e3 # in ohms\n",
+ "hfe=200#\n",
+ "# From Fig. 6.27(a)\n",
+ "Rs=5e3 # in ohms\n",
+ "R1=90e3 # in ohms\n",
+ "R2=10e3 # in ohms\n",
+ "RC=5e3 # in ohms\n",
+ "RE=1e3 # in ohms\n",
+ "# From Fig 6.27(b)\n",
+ "RB=R1*R2/(R1+R2) # in ohms\n",
+ "Ri=hie+(1+hfe)*RE # in ohms\n",
+ "Ri_eff=RB*Ri/(RB+Ri) # in ohms\n",
+ "AI=-hfe*RB/(RB+Ri)#\n",
+ "AVs=-hfe*RC*Ri_eff/(Ri*(Rs+Ri_eff))#\n",
+ "Ro_dash=RC # in ohms\n",
+ "Ri=Ri*1e-3 # in kilo-ohms\n",
+ "Ro_dash=Ro_dash*1e-3 # in kilo-ohms\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"AVs = %0.2f \"%AVs\n",
+ "print \"Ri = %0.2f kΩ \"%Ri\n",
+ "print \"Ro'' = %0.2f kΩ \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.6: Page No 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AI = -100.00 \n",
+ "Ri = 101.09 kΩ \n",
+ "AVs = -2.97 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AI, Ri, AVs\n",
+ "\n",
+ "bta=100#\n",
+ "VBE=0.7 # Cut-in voltage in volts\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 6.33\n",
+ "RB=100e3 # in ohms\n",
+ "RC=3e3 # in ohms\n",
+ "VBB=3 # in volts\n",
+ "\n",
+ "# DC analysis\n",
+ "# From dc equivalent circuit in Fig. 6.34(a)\n",
+ "IBQ=(VBB-VBE)/RB # in amperes\n",
+ "ICQ=bta*IBQ # in amperes\n",
+ "gm=ICQ/VT # in ampere per volt\n",
+ "r_pi=bta/gm # in ohms\n",
+ "\n",
+ "# AC analysis\n",
+ "# From ac equivalent circuit using approximate hybrid-π model in Fig. 6.34(b)\n",
+ "AI=-bta#\n",
+ "Ri=RB+r_pi # in ohms\n",
+ "AVs=-bta*RC/(RB+r_pi)#\n",
+ "Ri=Ri*1e-3 # in kilo-ohms\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"Ri = %0.2f kΩ \"% Ri\n",
+ "print \"AVs = %0.2f \"%AVs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.7: Page No 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (a)\n",
+ "RE = 3.96 kΩ \n",
+ "Part (b)\n",
+ "Ro = 52.08 Ω \n",
+ "Ro'' = 51.41 Ω \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Load resistance RE to make Ri ≥ 500 kΩ\n",
+ "# (b) AV, Ro, Ro'\n",
+ "\n",
+ "IC=2e-3 # in amperes\n",
+ "Rs=5e3 # Source resistance in ohms\n",
+ "bta=125#\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "Ri=500e3 # in ohms\n",
+ "gm=IC/VT # in mho\n",
+ "r_pi=bta/gm # in ohms\n",
+ "RE=(Ri-r_pi)/(1+bta) # in ohms\n",
+ "REk=RE*1e-3 # in kilo-ohms\n",
+ "print \"RE = %0.2f kΩ \"%REk\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "AV=(1+bta)*RE/(Rs+Ri)#\n",
+ "Ro=(Rs+r_pi)/(1+bta) # in ohms\n",
+ "Ro_dash=Ro*RE/(Ro+RE) # in ohms\n",
+ "print \"Ro = %0.2f Ω \"%Ro\n",
+ "print \"Ro'' = %0.2f Ω \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.8: Page No 313"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ri = 28.2 kΩ \n",
+ "AVs = -20.7 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Ri, AVs\n",
+ "\n",
+ "IC=0.2e-3 # in amperes\n",
+ "bta=125#\n",
+ "Rs=2e3 # in ohms\n",
+ "RE=100 # in ohms\n",
+ "RC=5e3 # in ohms\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "gm=IC/VT # in mho\n",
+ "r_pi=bta/gm # in ohms\n",
+ "Ri=r_pi+(1+bta)*RE # in ohms\n",
+ "AVs=-bta*RC/(Rs+r_pi+(1+bta)*RE)#\n",
+ "Ri=Ri*1e-3 # in kilo-ohms\n",
+ "print \"Ri = %0.1f kΩ \"%Ri\n",
+ "print \"AVs = %0.1f \"%AVs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.9: Page No 314"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "rπ = 1.81 kΩ \n",
+ "AI = -200.00 \n",
+ "AVs = -218.41 \n",
+ "Ro = inf \n",
+ "Ro'' = 1.98 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#rπ, AI, Ri, AVs, Ro, Ro'\n",
+ "\n",
+ "bta=200#\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 6.39\n",
+ "VBE=0.7 # Cut-in voltage in volts\n",
+ "VCC=9 # in volts\n",
+ "RB=200e3 # in ohms\n",
+ "RC=2e3 # in ohms\n",
+ "\n",
+ "# DC analysis\n",
+ "# From dc equivalent circuit in Fig. 6.40(a)\n",
+ "# Writing KVL from collector to base loop\n",
+ "IB=(VCC-VBE)/(RB+(1+bta)*RC) # in amperes\n",
+ "ICQ=bta*IB# # in amperes\n",
+ "gm=ICQ/VT # in mho\n",
+ "r_pi=bta/gm # in ohms\n",
+ "\n",
+ "# AC analysis\n",
+ "# From ac equivalent circuit using Miller's theorem in Fig. 6.40(b)\n",
+ "# Assuming AV >> 1\n",
+ "RL=RB*RC/(RB+RC) # Effective load resistance in ohms\n",
+ "# Using hybrid-π model and approximate resulta given in Table 6.5 for CE amplifier stage, we have\n",
+ "AI=-bta#\n",
+ "AV=-bta*RL/r_pi#\n",
+ "from numpy import inf\n",
+ "Ro=inf#\n",
+ "r_pi=r_pi*1e-3 # in kilo-ohms\n",
+ "RL=RL*1e-3 # in kilo-ohms\n",
+ "print \"rπ = %0.2f kΩ \"%r_pi\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"AVs = %0.2f \"%AV\n",
+ "print \"Ro = %0.2f \"%Ro\n",
+ "print \"Ro'' = %0.2f kΩ \"%RL"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 6.10: Page No 323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ri,eff = 8.46 kΩ \n",
+ "Ro = inf \n",
+ "AI = -12.08 \n",
+ "AVs = -3.24 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Ri,eff, Ro, AV, AI\n",
+ "\n",
+ "bta=200#\n",
+ "ro=50e3 # in ohms\n",
+ "VBE=0.7 # Cut-in voltage in volts\n",
+ "VT=25e-3 # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 6.44\n",
+ "VCC=16 # in volts\n",
+ "R1=90e3 # in ohms\n",
+ "R2=10e3 # in ohms\n",
+ "RC=2.2e3 # in ohms\n",
+ "RE=0.68e3 # in ohms\n",
+ "\n",
+ "# DC analysis\n",
+ "# From the Thevnin's equivalent circuit in Fig. 6.45(a)\n",
+ "RB=R1*R2/(R1+R2) # in ohms\n",
+ "VBB=VCC*R2/(R1+R2) # in volts\n",
+ "# From the base loop\n",
+ "IB=(VBB-VBE)/(RB+(1+bta)*RE) # in amperes\n",
+ "IE=(1+bta)*IB # in amperes\n",
+ "re=VT/IE # in ohms\n",
+ "\n",
+ "# AC analysis\n",
+ "Ri=bta*re+(1+bta)*RE # in ohms\n",
+ "Ri_eff=RB*Ri/(RB+Ri) # in ohms\n",
+ "AI=-bta*RB/(RB+bta*(re+RE))#\n",
+ "AV=-RC/RE#\n",
+ "Ri_eff=Ri_eff*1e-3 # in kilo-ohms\n",
+ "print \"Ri,eff = %0.2f kΩ \"%Ri_eff\n",
+ "print \"Ro = %0.2f \"%inf\n",
+ "print \"AI = %0.2f \"%AI\n",
+ "print \"AVs = %0.2f \"%AV"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch7.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch7.ipynb
new file mode 100644
index 00000000..95fc8a6d
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch7.ipynb
@@ -0,0 +1,491 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 7 : Field effect transistors - characteristics and biasing"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.1: Page No 346"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nRU5ErkJggg==\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7effa84458d0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Transfer curve\n",
+ "\n",
+ "IDSS=12# # in mili-amperes\n",
+ "VP=-5# # in volts\n",
+ "# Plotting transfer curve\n",
+ "from numpy import arange\n",
+ "VGS=arange(0, VP,-0.01) # Gate source voltage in volts\n",
+ "# Using Shockley's equation\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append(IDSS*(1-vgs/VP)**2) # Drain current in mili-amperes\n",
+ "\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, title, xlabel, ylabel, show\n",
+ "plot(VGS,ID)\n",
+ "title(\"Transfer Curve\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.2: Page No 352"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VGS - VT = 1.00 V\n",
+ "Part (a)\n",
+ "VDS = 0.50 V \n",
+ "Since VDS < VGS - VT, therefore transistor is in ohmic region.\n",
+ "Part (b)\n",
+ "VDS = 1 V \n",
+ "Since VDS = VGS - VT, therefore transistor is in saturation region.\n",
+ "Part (c)\n",
+ "VDS 5 V \n",
+ "Since VDS > VGS - VT, therefore transistor is in saturation region.\n"
+ ]
+ }
+ ],
+ "source": [
+ "# (a) Region of operation\n",
+ "# (b) Region of operation \n",
+ "# (c) Region of operation\n",
+ "\n",
+ "VT=2# # in volts\n",
+ "VGS=3# # in volts\n",
+ "print \"VGS - VT = %0.2f V\"%(VGS-VT)\n",
+ "\n",
+ "print \"Part (a)\"\n",
+ "print \"VDS = %0.2f V \"%(0.5)\n",
+ "print \"Since VDS < VGS - VT, therefore transistor is in ohmic region.\"\n",
+ "\n",
+ "print \"Part (b)\"\n",
+ "print \"VDS = %0.f V \"%1\n",
+ "print \"Since VDS = VGS - VT, therefore transistor is in saturation region.\"\n",
+ "\n",
+ "print \"Part (c)\"\n",
+ "print \"VDS %0.f V \"%5\n",
+ "print \"Since VDS > VGS - VT, therefore transistor is in saturation region.\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.3: Page No 359"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IDQ = 4.7 mA \n",
+ "VDSQ = 6.38 V \n"
+ ]
+ }
+ ],
+ "source": [
+ "#IDQ, VDSQ\n",
+ "\n",
+ "IDSS=12# # in mili-amperes\n",
+ "VP=-4# # in volts\n",
+ "# From Fig. 7.28\n",
+ "VDD=12# # in volts\n",
+ "RD=1.2# # in kilo-ohms\n",
+ "# Since IG=0\n",
+ "VGS=-1.5# # in volts\n",
+ "# Using Shockley's equation\n",
+ "ID=IDSS*(1-VGS/VP)**2# # Drain current in mili-amperes\n",
+ "VDS=VDD-ID*RD# # in volts\n",
+ "print \"IDQ = %0.1f mA \"%ID\n",
+ "print \"VDSQ = %0.2f V \"%VDS"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.4: Page No 361"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\ncRzt6jqQasIAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7eff8ec55d10>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VDSQ = 5.41 V \n",
+ "IDQ = 1.73 mA \n",
+ "VD = 8.19 V \n",
+ "VS = 2.77 V \n"
+ ]
+ }
+ ],
+ "source": [
+ "#VDSQ, IDSQ, VD, VS\n",
+ "\n",
+ "IDSS=6e-3# # in amperes\n",
+ "VP=-6# # in volts\n",
+ "# From Fig. 7.31\n",
+ "VDD=12# # in volts\n",
+ "RD=2.2e3# # in ohms\n",
+ "RS=1.6e3# # in ohms\n",
+ "# Plotting transfer characteristics\n",
+ "from numpy import arange\n",
+ "VGS=arange(0, VP, -0.01) # Gate source voltage in volts\n",
+ "# Using Shockley's equation\n",
+ "ID = []\n",
+ "for vgs in VGS:\n",
+ " ID.append(IDSS*(1-vgs/VP)**2*1e3) # Drain current in mA\n",
+ "\n",
+ "plot(VGS,ID)#\n",
+ "title(\"Transfer Characteristics\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "# Plotting bias line\n",
+ "# From gate source circuit\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append(-vgs/RS*1e3) # Source current in mA\n",
+ "plot(VGS,ID,\"RED\")\n",
+ "show()\n",
+ "\n",
+ "# Intersection of transfer characteristics with the bias curve\n",
+ "# Putting VGS = -ID*RS in Shockley's equation and solving, we get ID**2*RS**2 + (2*RS*VP - VP**2/IDSS)*ID + VP**2\n",
+ "# Solving the equation\n",
+ "from sympy import symbols, solve\n",
+ "ID = symbols('ID')\n",
+ "expr = ID**2*RS**2 + (2*RS*VP - VP**2/IDSS)*ID + VP**2\n",
+ "IDQ = solve(expr, ID)[0] # A\n",
+ "# Writing the KVL for the output loop\n",
+ "VDSQ=VDD-IDQ*(RD+RS)# # in volts\n",
+ "VS=IDQ*RS# # in volts\n",
+ "VD=VDSQ+VS# # in volts\n",
+ "IDQ=IDQ*1e3# # in mili-amperes\n",
+ "print \"VDSQ = %0.2f V \"%VDSQ\n",
+ "print \"IDQ = %0.2f mA \"%IDQ\n",
+ "print \"VD = %0.2f V \"%VD\n",
+ "print \"VS = %0.2f V \"%VS"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.5: Page No 363"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VDSQ = 6.83 V \n",
+ "IDQ = 2.79 mA \n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\nQB0AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7eff8ec18f50>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#Operating point\n",
+ "\n",
+ "VP=-5# # in volts\n",
+ "IDSS=12e-3# # in amperes\n",
+ "# From Fig. 7.34(a)\n",
+ "VDD=18# # in volts\n",
+ "R1=400# # in kilo-ohms\n",
+ "R2=90# # in kilo-ohms\n",
+ "RD=2e3# # in ohms\n",
+ "RS=2e3# # in ohms\n",
+ "# Applying Thevnin's theorem to obtain simplified circuit in Fig. 7.34(b)\n",
+ "VGG=VDD*R2/(R1+R2)# # in volts\n",
+ "# Plotting transfer characteristics\n",
+ "from numpy import arange\n",
+ "VGS=arange(VGG, VP,-0.01) # Gate source voltage in volts\n",
+ "# Using Shockley's equation\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append(IDSS*(1-vgs/VP)**2*1e3) # Drain current in mA\n",
+ "plot(VGS,ID)\n",
+ "title(\"Transfer Characteristics\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "# Plotting bias line\n",
+ "# From the KVL for the gate-loop\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append((-vgs+VGG)/RS*1e3)# # Source current in mA\n",
+ "plot(VGS,ID,\"RED\")\n",
+ "# Intersection of transfer curve with the bias curve\n",
+ "# Putting VGS = VGG-ID*RS in Shockley's equation and solving, we get\n",
+ "# ID**2*RS**2 + (2*RS*VP - 2*VGG*RS - VP**2/IDSS)*ID + (VGG-VP)**2\n",
+ "# Solving the equation\n",
+ "from sympy import symbols, solve\n",
+ "ID = symbols('ID')\n",
+ "expr = ID**2*RS**2 + (2*RS*VP - 2*VGG*RS - VP**2/IDSS)*ID + (VGG-VP)**2\n",
+ "IDQ=solve(expr)[0] # in amperes\n",
+ "# Writing the KVL for the drain source loop\n",
+ "VDSQ=VDD-IDQ*(RD+RS)# # in volts\n",
+ "IDQ=IDQ*1e3# # in mili-amperes\n",
+ "print \"VDSQ = %0.2f V \"%VDSQ\n",
+ "print \"IDQ = %0.2f mA \"%IDQ"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.6: Page No 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "VDSQ = 6.41 V \n",
+ "IDQ = 2.79 mA \n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7effa8430dd0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#VDSQ, IDQ\n",
+ "\n",
+ "ID=6e-3# # in amperes\n",
+ "VGS=8# # in volts\n",
+ "VT=3# # in volts\n",
+ "# From Fig. 7.37(a)\n",
+ "VDD=12# # in volts\n",
+ "RD=2e3# # in ohms\n",
+ "# Plotting transfer curve\n",
+ "k=ID/(VGS-VT)**2# # in amperes per volt square\n",
+ "from numpy import arange\n",
+ "VGS=arange(3, VDD,0.01) # Gate source voltage in volts\n",
+ "ID=[]\n",
+ "for x in VGS:\n",
+ " ID.append(k*(x-VT)**2*1e3) # Drain current in mA ............ (i)\n",
+ "plot(VGS,ID)#\n",
+ "title(\"Transfer Curve\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "# Plotting bias line\n",
+ "# From the simplified dc equivalent circuit in Fig. 7.37(b)\n",
+ "VGS=arange(0, VDD,0.01) # Gate source voltage in volts\n",
+ "ID=[]\n",
+ "for x in VGS:\n",
+ " ID.append((VDD-x)/RD*1e3)# # Source current in mA\n",
+ "plot(VGS,ID,\"RED\")\n",
+ "# Intersection of transfer curve with the bias curve\n",
+ "# Putting VGS = VDD-ID*RD in equation (i) and solving, we get ID**2*RD**2 + (2*RD*VT - 2*VDD*RD - 1/k)*ID + (VDD-VT)**2\n",
+ "# Solving the equation\n",
+ "from sympy import symbols, solve\n",
+ "ID = symbols('ID')\n",
+ "expr = ID**2*RD**2 + (2*RD*VT - 2*VDD*RD - 1/k)*ID + (VDD-VT)**2\n",
+ "IDQ=solve(expr, ID)[0]# in amperes\n",
+ "VGSQ=VDD-IDQ*RD# # in volts\n",
+ "IDQ=IDQ*1e3# # in mili-amperes\n",
+ "print \"VDSQ = %0.2f V \"%VGSQ\n",
+ "print \"IDQ = %0.2f mA \"%IDQ"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7.7: Page No 367"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IDQ = 4.97 mA \n",
+ "VDSQ = 9.35 V \n",
+ "VGSQ = 5.99 V \n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x7eff8efefbd0>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#IDQ, VDSQ, VGSQ\n",
+ "\n",
+ "ID=5e-3# # in amperes\n",
+ "VGS=6# # in volts\n",
+ "VT=3# # in volts\n",
+ "# From Fig. 7.39(a)\n",
+ "VDD=24# # in volts\n",
+ "R1=10# # in mega-ohms\n",
+ "R2=6.8# # in mega-ohms\n",
+ "RD=2.2e3# # in ohms\n",
+ "RS=0.75e3# # in ohms\n",
+ "# Applying Thevnin's theorem to obtain simplified circuit in Fig. 7.39(b)\n",
+ "VGG=VDD*R2/(R1+R2)# # in volts\n",
+ "# Plotting transfer characteristics\n",
+ "k=ID/(VGS-VT)**2# # in amperes per volt square\n",
+ "from numpy import arange\n",
+ "VGS=arange(3, VGG,0.01) # Gate source voltage in volts\n",
+ "ID=[]\n",
+ "for vgs in VGS:\n",
+ " ID.append(k*(vgs-VT)**2*1e3) # Drain current in mA ............ (i)\n",
+ "\n",
+ " \n",
+ "from matplotlib.pyplot import plot, xlabel, ylabel, title, show\n",
+ "%matplotlib inline\n",
+ "plot(VGS,ID)#\n",
+ "title(\"Transfer Characteristics\")\n",
+ "xlabel(\"VGS (V)\")\n",
+ "ylabel(\"ID (mA)\")\n",
+ "# Plotting bias line\n",
+ "VGS=arange(0, VGG,0.01)# # Gate source voltage in volts\n",
+ "# Writing KVL for the gate-source loop\n",
+ "ID=[]\n",
+ "for x in VGS:\n",
+ " ID.append((VGG-x)/RS*1e3)# # Source current in mA\n",
+ "plot(VGS,ID,\"RED\")\n",
+ "# Intersection of transfer curve with the bias curve\n",
+ "# Putting VGS = VGG-ID*RD in equation (i) and solving, we get ID**2*RS**2 + (2*RS*VT - 2*VGG*RS - 1/k)*ID + (VGG-VT)**2\n",
+ "# Solving the equation\n",
+ "from sympy import symbols, solve\n",
+ "ID = symbols('ID')\n",
+ "expr = ID**2*RS**2 + (2*RS*VT - 2*VGG*RS - 1/k)*ID + (VGG-VT)**2\n",
+ "IDQ=solve(expr,ID)[0] # in amperes\n",
+ "VGSQ=VGG-IDQ*RS# # in volts\n",
+ "# From the output circuit\n",
+ "VDSQ=VDD-IDQ*(RD+RS)# # in volts\n",
+ "IDQ=IDQ*1e3# # in mili-amperes\n",
+ "print \"IDQ = %0.2f mA \"%IDQ\n",
+ "print \"VDSQ = %0.2f V \"%VDSQ\n",
+ "print \"VGSQ = %0.2f V \"%VGSQ"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch8.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch8.ipynb
new file mode 100644
index 00000000..2c4ae29b
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch8.ipynb
@@ -0,0 +1,286 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 8 : FET Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.1: Page No 377"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "gm = 3.36 mS\n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#gm\n",
+ "\n",
+ "IDSS=12# # in mili-amperes\n",
+ "Vp=-5# # in volts\n",
+ "VGS=-1.5# # in volts\n",
+ "gmo=2*IDSS/abs(Vp)# # in mili-Siemens\n",
+ "gm=gmo*(1-VGS/Vp)# # in mili-Siemens\n",
+ "print \"gm = %0.2f mS\"%gm"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.2: Page No 380"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage gain = -6.7 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Voltage gain\n",
+ "\n",
+ "gm=2# # in mili-ampere per volt\n",
+ "rd=10# # in kilo-ohms\n",
+ "# From Fig. 8.7\n",
+ "RD_eff=10*10/(10+10)# # in kilo-ohms\n",
+ "AV=-gm*rd*RD_eff/(rd+RD_eff)# # Voltage gain\n",
+ "print \"Voltage gain = %0.1f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.3: Page No 384"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "gm = 1.51 mA/V\n",
+ "µ = 75.56 \n",
+ "Ri = 1.00 MΩ\n",
+ "Ro = 3.22 kΩ\n",
+ "AV = -1.92 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#gm, µ, Ri, Ro, AV\n",
+ "\n",
+ "VGSQ=-2.6# # in volts\n",
+ "IDSS=8# # in mili-amperes\n",
+ "Vp=-6# # in volts\n",
+ "rd=50# # in kilo-ohms\n",
+ "# From Fig. 8.11\n",
+ "RD=3.3# # in kilo-ohms\n",
+ "RG=1# # in mega-ohms\n",
+ "RS=1# # in kilo-ohms\n",
+ "gmo=2*IDSS/abs(Vp)# # in mili-ampere per volt\n",
+ "gm=gmo*(1-VGSQ/Vp)# # in mili-ampere per volt\n",
+ "mu=rd*gm# # µ\n",
+ "Ro=(rd+(1+mu)*RS)*RD/(RD+rd+(1+mu)*RS)# # in kilo-ohms\n",
+ "AV=-mu*RD/(RD+rd+(1+mu)*RS)#\n",
+ "print \"gm = %0.2f mA/V\"%gm\n",
+ "print \"µ = %0.2f \"%mu\n",
+ "print \"Ri = %0.2f MΩ\"%RG\n",
+ "print \"Ro = %0.2f kΩ\"%Ro\n",
+ "print \"AV = %0.2f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.4: Page No 386"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AV = 0.83 \n",
+ "Ri = 10.00 MΩ\n",
+ "Ro = 0.347 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "#AV, Ri, Ro\n",
+ "\n",
+ "IDSS=16# # in mili-amperes\n",
+ "Vp=-4# # in volts\n",
+ "rd=40# # in kilo-ohms\n",
+ "# From Fig. 8.14\n",
+ "RS=2.2# # in kilo-ohms\n",
+ "# Using dc analysis\n",
+ "VGSQ=-2.8# # in volts\n",
+ "gmo=2*IDSS/abs(Vp)# # in mili-ampere per volt\n",
+ "gm=gmo*(1-VGSQ/Vp)# # in mili-ampere per volt\n",
+ "mu=rd*gm# # Amplification factor\n",
+ "AV=mu*RS/(rd+(1+mu)*RS)#\n",
+ "Ri=10# # in mega-ohms\n",
+ "Ro=rd*RS/(rd+(1+mu)*RS)# # in kilo-ohms\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"Ri = %0.2f MΩ\"%Ri\n",
+ "print \"Ro = %0.3f kΩ\"%Ro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.5: Page No 389"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AV = 6.30 \n",
+ "Ri = 0.39 kΩ\n",
+ "Ro = 3.05 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "#AV, Ri, Ro\n",
+ "\n",
+ "VGSQ=-1.8# # in volts\n",
+ "rd=40# # in kilo-ohms\n",
+ "IDSS=8# # in mili-amperes\n",
+ "Vp=-2.8# # in volts\n",
+ "# From Fig. 8.16\n",
+ "RD=3.3# # in kilo-ohms\n",
+ "RS=1.5# # in kilo-ohms\n",
+ "gmo=2*IDSS/abs(Vp)# # in mili-Siemens\n",
+ "gm=gmo*(1-VGSQ/Vp)# # in mili-Siemens\n",
+ "mu=rd*gm# # Amplification factor\n",
+ "AV=(1+mu)*RD/(rd+RD)#\n",
+ "Ri_dash=(RD+rd)/(1+mu)# # in kilo-ohms\n",
+ "Ri=Ri_dash*RS/(Ri_dash+RS)# # in kilo-ohms\n",
+ "Ro=rd*RD/(rd+RD)#\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"Ri = %0.2f kΩ\"%Ri\n",
+ "print \"Ro = %0.2f kΩ\"%Ro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8.6: Page No 392"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "gm = 3.00 mS\n",
+ "AV = -6.60 \n",
+ "Ri = 1.32 MΩ\n",
+ "Ro = 2.20 kΩ\n"
+ ]
+ }
+ ],
+ "source": [
+ "#gm, Ri, Ro, AV\n",
+ "\n",
+ "VGSQ=8# # in volts\n",
+ "VT=3# # in volts\n",
+ "k=0.3e-3#\n",
+ "# From Fig. 8.18\n",
+ "RF=10e6# # in ohms\n",
+ "RD=2.2e3# # in ohms\n",
+ "gm=2*k*(VGSQ-VT)# # in Siemens\n",
+ "Ri=RF/(1+gm*RD)# # in ohms\n",
+ "Ro=RF*RD/(RF+RD)# # in ohms\n",
+ "AV=-gm*Ro#\n",
+ "gm=gm*1e3# # in mili-Siemens\n",
+ "Ri=Ri*1e-6# # in mega-ohms\n",
+ "Ro=Ro*1e-3# # in kilo-ohms\n",
+ "print \"gm = %0.2f mS\"%gm\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"Ri = %0.2f MΩ\"%Ri\n",
+ "print \"Ro = %0.2f kΩ\"%Ro"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch9.ipynb b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch9.ipynb
new file mode 100644
index 00000000..7baef299
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/Ch9.ipynb
@@ -0,0 +1,459 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 9 : Multistage Amplifiers"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Exmaple 9.1: Page No 402"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Overall voltage gain = -79.61 \n",
+ "Overall current gain = -31.84 \n"
+ ]
+ }
+ ],
+ "source": [
+ "from __future__ import division\n",
+ "#Overall voltage gain, Overall current gain\n",
+ "\n",
+ "bta=100#\n",
+ "r_pi=0.5# # in kilo-ohms\n",
+ "# From Fig. 9.4\n",
+ "Rs=2# # in kilo-ohms\n",
+ "RC=2# # in kilo-ohms\n",
+ "RE=5# # in kilo-ohms\n",
+ "# As the first stage ia a CE amplifier stage\n",
+ "AV1=-bta*RC/(Rs+r_pi)# # Voltage gain of first amplifier\n",
+ "# The second stage is a CC amplifier\n",
+ "AV2=(1+bta)*RE/(Rs+r_pi+(1+bta)*RE)# # Voltage gain of second amplifier\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "AI=Rs*AV/RE# # Overall current gain\n",
+ "print \"Overall voltage gain = %0.2f \"%AV\n",
+ "print \"Overall current gain = %0.2f \"%AI"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.2: Page No 403"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Overall voltage gain = 12119.79 \n",
+ "Overall current gain = 939.35 \n",
+ "Imput impedance = 0.78 kΩ \n",
+ "Output impedance = 1.67 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Overall voltage gain, Current gain, Input impedance, Output impedance\n",
+ "\n",
+ "bta=100#\n",
+ "VBE=0.7# # in volts\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 9.7\n",
+ "R1=22# # in kilo-ohms\n",
+ "R2=3.3# # in kilo-ohms\n",
+ "RC1=6# # in kilo-ohms\n",
+ "RE1=0.5# # in kilo-ohms\n",
+ "R3=16# # in kilo-ohms\n",
+ "R4=6.2# # in kilo-ohms\n",
+ "RC2=2# # in kilo-ohms\n",
+ "RE2=1# # in kilo-ohms\n",
+ "RL=10# # in kilo-ohms\n",
+ "\n",
+ "\n",
+ "# DC analysis\n",
+ "\n",
+ "# From simplified dc equivalent circuit for stage 1 in Fig. 9.8(a)\n",
+ "RB1=R1*R2/(R1+R2)# # in kilo-ohms\n",
+ "VBB1=15*R2/(R1+R2)# # in volts\n",
+ "IB1=(VBB1-VBE)/(RB1+(1+bta)*RE1)# # in mili-amperes\n",
+ "IC1=bta*IB1# # in mili-amperes\n",
+ "gm1=IC1/VT# # in mili-Siemens\n",
+ "r_pi1=bta/gm1# # in kilo-ohms\n",
+ "\n",
+ "# From simplified dc equivalent circuit for stage 2 in Fig. 9.8(b)\n",
+ "RB2=R3*R4/(R3+R4)# # in kilo-ohms\n",
+ "VBB2=15*R4/(R3+R4)# # in volts\n",
+ "IB2=(VBB2-VBE)/(RB2+(1+bta)*RE2)# # in mili-amperes\n",
+ "IC2=bta*IB2# # in mili-amperes\n",
+ "gm2=IC2/VT# # in mili-Siemens\n",
+ "r_pi2=bta/gm2# # in kilo-ohms\n",
+ "\n",
+ "\n",
+ "# AC analysis\n",
+ "\n",
+ "# Applying Thevnin theorem at 1-1' in ac equivalent circuit in Fig. 9.9 to obtain equivalent circuit of stage 1 in Fig. 9.10(a)\n",
+ "RL1=RC1*RB2/(RC1+RB2)# # Effective load for first stage in kilo-ohms\n",
+ "AV1=-bta*RL1/r_pi1# # Voltage gain of first stage\n",
+ "\n",
+ "# Using the Thevnin's equivalent of first stage the equivalent circuit of second stage is shown in Fig. 9.10(b)\n",
+ "RL2=RC2*RL/(RC2+RL)# # Effective load for second stage in kilo-ohms\n",
+ "AV2=-bta*RL2/(RL1+r_pi2)# # Voltage gain of second stage\n",
+ "\n",
+ "Io_Ic2=-RC2/(RC2+RL)# # Io/Ic2\n",
+ "Ic2_Ib2=-bta# # Ic2/Ib2\n",
+ "#From simplified diagram in Fig. 9.11\n",
+ "Ib2_Ic1=-RL1/(RL1+r_pi2)# # Ib2/Ic1\n",
+ "Ic1_Ib1=-bta# # Ic1/Ib1\n",
+ "Ib1_Ii=RB1/(RB1+r_pi1)# # Ib1/Ii\n",
+ "\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "AI=Io_Ic2*Ic2_Ib2*Ib2_Ic1*Ic1_Ib1*Ib1_Ii# # Overall current gain\n",
+ "Ri=RB1*r_pi1/(RB1+r_pi1)# # Input impedance in kilo-ohms\n",
+ "Ro=RC2*RL/(RC2+RL)# # Output impedance in kilo-ohms\n",
+ "print \"Overall voltage gain = %0.2f \"%AV\n",
+ "print \"Overall current gain = %0.2f \"%AI\n",
+ "print \"Imput impedance = %0.2f kΩ \"%Ri\n",
+ "print \"Output impedance = %0.2f kΩ \"%Ro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.3: Page No 407"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Voltage gain = -825.58 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Voltage gain\n",
+ "\n",
+ "bta=150#\n",
+ "VA=130# # in volts\n",
+ "IC=100# # in micro-amperes\n",
+ "Rs=50# # in kilo-ohms\n",
+ "RC=250# # in kilo-ohms\n",
+ "VT=25# # Voltage equivalent to temperatue at room temperature in mili-volts\n",
+ "gm=IC/VT# # in mili-Siemens\n",
+ "ro=VA/IC# # in Megaohms\n",
+ "ro=ro*1e3# # in kilo-ohms\n",
+ "r_pi=bta/gm# # in kilo-ohms\n",
+ "# From ac equivalent circuit of the first CC stage using hybrid-π model in Fig. 9.13(a)\n",
+ "# Voltage gain of CC stage\n",
+ "AV1=(1+bta)*ro/(Rs+r_pi+(1+bta)*ro)# # Voltage gain of first stage\n",
+ "Ro1=(Rs+r_pi)/(1+bta)# # in kilo-ohms\n",
+ "Ro1_dash=ro*Ro1/(ro+Ro1)# # in kilo-ohms\n",
+ "# From the ac equivalent circuit of second stage in Fig. 9.13(b)\n",
+ "RL=ro*RC/(ro+RC)# # Effective load for second stage in kilo-ohms\n",
+ "AV2=-bta*RL/(Ro1_dash+r_pi)# # Voltage gain of second stage\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "print \"Voltage gain = %0.2f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.4: Page No 409"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "Voltage gain = 30.25 \n",
+ "Input impedance = 3.00 MΩ \n",
+ "Output impedance = 2.20 kΩ \n",
+ "Part (ii)\n",
+ "Output voltage = 247.95 mV \n"
+ ]
+ }
+ ],
+ "source": [
+ "# (i) Voltage gain, Input impedance, Output impedance\n",
+ "# (ii) Output voltage\n",
+ "\n",
+ "gm=2.5# # in mili-Siemens\n",
+ "# From Fig. 9.14(a)\n",
+ "RG=3# # in Mega-ohms\n",
+ "RD=2.2# # in kilo-ohms\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "AV1=-gm*RD# # Voltage gain of both individual stages\n",
+ "AV=AV1**2# # Overall voltage gain\n",
+ "print \"Voltage gain = %0.2f \"%AV\n",
+ "print \"Input impedance = %0.2f MΩ \"%RG\n",
+ "print \"Output impedance = %0.2f kΩ \"%RD\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "Vi=10# # in mili-volts\n",
+ "RD_dash=RD*10/(RD+10)# # Effective load of secong stage in kilo-ohms\n",
+ "# Now the gain of second stage\n",
+ "AV2=-gm*RD_dash#\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "Vo=Vi*AV# # Output voltage in mili-volts\n",
+ "print \"Output voltage = %0.2f mV \"%Vo"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.5: Page No 410"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Part (i)\n",
+ "Voltage gain of first stage = -9.88 CS amplifier with RS1 \n",
+ "Voltage gain of second stage = -8.00 CS amplifier stage \n",
+ "Voltage gain of third stage = 0.82 CD amplifier stage \n",
+ "Part (ii)\n",
+ "Overall voltage gain = 64.50 \n",
+ "Part (iii)\n",
+ "Output resistance = 0.816 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "## (i) Gain of each stage\n",
+ "# (ii) Overall voltage gain\n",
+ "# (iii) Output resistance Ro'\n",
+ "\n",
+ "gm=1 # in mili-mho\n",
+ "rd=40# # in kilo-ohms\n",
+ "# From Fig. 9.14(b)\n",
+ "RD1=40 # in kilo-ohms\n",
+ "RS1=2 # in kilo-ohms\n",
+ "RD2=10 # in kilo-ohms\n",
+ "RS3=5 # in kilo-ohms\n",
+ "mu=rd*gm# # Amplification factor\n",
+ "\n",
+ "print \"Part (i)\"\n",
+ "AV1=-mu*RD1/(rd+RD1+(1+mu)*RS1)# # Voltage gain of first stage (CS amplifier with RS1)\n",
+ "AV2=-mu*RD2/(rd+RD2)# # Voltage gain of second stage (CS amplifier stage)\n",
+ "AV3=mu*RS3/(rd+(1+mu)*RS3)# # Voltage gain of third stage (CD amplifier stage)\n",
+ "print \"Voltage gain of first stage = %0.2f CS amplifier with RS1 \"%AV1\n",
+ "print \"Voltage gain of second stage = %0.2f CS amplifier stage \"%AV2\n",
+ "print \"Voltage gain of third stage = %0.2f CD amplifier stage \"%AV3\n",
+ "\n",
+ "print \"Part (ii)\"\n",
+ "AV=AV1*AV2*AV3# # Overall voltage gain\n",
+ "print \"Overall voltage gain = %0.2f \"%AV\n",
+ "\n",
+ "print \"Part (iii)\"\n",
+ "# Last stage is a CD amplifier, therefore\n",
+ "Ro=rd/(1+mu)# # in kilo-ohms\n",
+ "Ro_dash=Ro*RS3/(Ro+RS3)# # in kilo-ohms\n",
+ "print \"Output resistance = %0.3f kΩ \"%Ro_dash"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.6: Page No 412"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Input impedance = 10.00 MΩ \n",
+ "Output impedance = 2.70 kΩ \n",
+ "Voltage gain = 647.33 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Input impedance, Output impedance, Voltage gain\n",
+ "\n",
+ "gm=2.5# # in mili-Siemens\n",
+ "r_pi=1.3# # in kilo-ohms\n",
+ "bta=200#\n",
+ "# From Fig. 9.14(c)\n",
+ "Ri2=15*4.7*1.3/(15*4.7+15*1.3+4.7*1.3)# # Input impedance of second stage in kilo-ohms\n",
+ "RD_dash=1.8*Ri2/(1.8+Ri2)# # Effective load for the first stage in kilo-ohms\n",
+ "AV1=-gm*RD_dash# # Voltage gain of the loaded 1st stage\n",
+ "AV2=-bta*2.7/r_pi# # Voltage gain of the 2nd stage\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "print \"Input impedance = %0.2f MΩ \"%10\n",
+ "print \"Output impedance = %0.2f kΩ \"%2.70\n",
+ "print \"Voltage gain = %0.2f \"%AV"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.7: Page No 416"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "AV = 0.93 \n",
+ "Ri = 12.02 MΩ \n",
+ "Ro = 30.64 kΩ \n"
+ ]
+ }
+ ],
+ "source": [
+ "#AV, Ri, Ro\n",
+ "\n",
+ "RE=0.5# # in kilo-ohms\n",
+ "Rs=50# # in kilo-ohms\n",
+ "Ic1=15e-3# # in mili-amperes\n",
+ "Ic2=1# # in mili-amperes\n",
+ "VA=100# # in volts\n",
+ "bta=150#\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# For Q1\n",
+ "gm1=Ic1/VT# # in mili-mho\n",
+ "r_pi1=bta/gm1# # in kilo-ohms\n",
+ "ro1=VA/Ic1# # in kilo-ohms\n",
+ "# For Q2\n",
+ "gm2=Ic2/VT# # in mili-mho\n",
+ "r_pi2=bta/gm2# # in kilo-ohms\n",
+ "ro2=VA/Ic2# # in kilo-ohms\n",
+ "# From ac equivalent circuit in Fig. 9.17\n",
+ "RE2=ro2*RE/(ro2+RE)# # Effective load for stage Q2 in kilo-ohms\n",
+ "Ri2=r_pi2+(1+bta)*RE2# # Input resistance for second stage in kilo-ohms\n",
+ "AV2=(1+bta)*RE2/Ri2# # Voltage gain of the second stage\n",
+ "RE1=ro1*Ri2/(ro1+Ri2)# # Effective load for the first stage in kilo-ohms\n",
+ "Ri1=r_pi1+(1+bta)*RE1# # Input resistance for first stage in kilo-ohms\n",
+ "AV1=(1+bta)*RE1/Ri1# # Voltage gain of first stage\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "Ro=ro2*(r_pi2+ro1)/(ro2*(1+bta)+r_pi2+ro1)# # Output resistance in kilo-ohms\n",
+ "Ri1=Ri1*1e-3# # in Mega-ohms\n",
+ "print \"AV = %0.2f \"%AV\n",
+ "print \"Ri = %0.2f MΩ \"%Ri1\n",
+ "print \"Ro = %0.2f kΩ \"%Ro"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9.8 : Page 420"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Gain = -240.00 \n"
+ ]
+ }
+ ],
+ "source": [
+ "IC=1# # in mili-amperes\n",
+ "bta=120#\n",
+ "VT=25e-3# # Voltage equivalent to temperatue at room temperature in volts\n",
+ "# From Fig. 9.20\n",
+ "RC=6# # in kilo-ohms\n",
+ "AV1=-1# # Voltage gain of CE stage (from Eqn. 9.35)\n",
+ "gm=IC/VT# # in mili-mho\n",
+ "AV2=gm*RC# # Voltage gain of CB stage\n",
+ "AV=AV1*AV2# # Overall voltage gain\n",
+ "print \"Gain = %0.2f \"%AV"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNip3.png b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNip3.png
new file mode 100644
index 00000000..5fba4497
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNip3.png
Binary files differ
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNipV3.png b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNipV3.png
new file mode 100644
index 00000000..aee8da44
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/opNipV3.png
Binary files differ
diff --git a/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/transferChar3.png b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/transferChar3.png
new file mode 100644
index 00000000..eabea8d1
--- /dev/null
+++ b/Electronic_Devices_And_Circuits_by_B._Kumar_And_S._B._Jain/screenshots/transferChar3.png
Binary files differ
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/Chapter1_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/Chapter1_1.ipynb
new file mode 100644
index 00000000..ed833104
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/Chapter1_1.ipynb
@@ -0,0 +1,437 @@
+{
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ },
+ "name": "",
+ "signature": "sha256:5ef00909be24a2b4d65cd7f64da2e07a8b79e5ac34c1eea3e4cbb11c87e75590"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 1 : Stress, Axial loads and Safety concepts"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.1 page number 24"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math\n",
+ "d_bolt = 20.0 #mm,diameter,This is not the minimum area\n",
+ "d_bolt_min = 16.0 #mm This is at the roots of the thread \n",
+ "#This yealds maximum stress \n",
+ "A_crossection = (math.pi)*(d_bolt**2)/4 #mm*2\n",
+ "A_crossection_min = (math.pi)*(d_bolt_min**2)/4 #mm*2 ,This is minimum area which yeilds maximum stress\n",
+ "load = 10.0 #KN\n",
+ "BC = 1.0 #m\n",
+ "CF = 2.5 #m\n",
+ "contact_area = 200*200 # mm*2 , The contact area at c\n",
+ "\n",
+ "#caliculations \n",
+ "#Balancing forces in the x direction:\n",
+ "# Balncing the moments about C and B:\n",
+ "Fx = 0 \n",
+ "R_cy = load*(BC+CF) #KN , Reaction at C in y-direction\n",
+ "R_by = load*(CF) #KN , Reaction at B in y-direction\n",
+ "#Because of 2 bolts\n",
+ "stress_max = (R_by/(2*A_crossection_min))*(10**3) # MPA,maximum stess records at minimum area\n",
+ "stress_shank = (R_by/(2*A_crossection))*(10**3) # MPA\n",
+ "Bearing_stress_c = (R_cy/contact_area)*(10**3) #MPA, Bearing stress at C\n",
+ "\n",
+ "print\"The bearing stress at C is \",(Bearing_stress_c) ,\"MPA\"\n",
+ "print\"The maximum normal stress in BD bolt is: \",round(stress_max),\"MPA\"\n",
+ "print\"The tensile strss at shank of the bolt is: \",round(stress_shank),\"MPA\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The bearing stress at C is 0.875 MPA\n",
+ "The maximum normal stress in BD bolt is: 62.0 MPA\n",
+ "The tensile strss at shank of the bolt is: 40.0 MPA\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.2 page number 26"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "load_distributed = 20 #KN/m*2, This is the load distributed over the pier\n",
+ "H = 2 # m, Total height \n",
+ "h = 1 #m , point of investigation \n",
+ "base = 1.5 #m The length of crossection in side veiw \n",
+ "top = 0.5 #m ,The length where load is distributed on top\n",
+ "base_inv = 1 #m , the length at the point of investigation \n",
+ "area = 0.5*1 #m ,The length at a-a crossection \n",
+ "density_conc = 25 #KN/m*2\n",
+ "#caliculation of total weight \n",
+ "\n",
+ "v_total = ((top+base)/2)*top*H #m*2 ,The total volume \n",
+ "w_total = v_total* density_conc #KN , The total weight\n",
+ "R_top = (top**2)*load_distributed #KN , THe reaction force due to load distribution \n",
+ "reaction_net = w_total + R_top\n",
+ "\n",
+ "#caliculation of State of stress at 1m \n",
+ "v_inv = ((top+base_inv)/2)*top*h #m*2 ,The total volume from 1m to top\n",
+ "w_inv = v_inv*density_conc #KN , The total weight from 1m to top\n",
+ "reaction_net = w_inv + R_top #KN\n",
+ "Stress = reaction_net/area #KN/m*2\n",
+ "print\"The total weight of pier is\",w_total,\"KN\"\n",
+ "print\"The stress at 1 m above is\",Stress,\"MPA\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total weightof pier: 25.0 KN\n",
+ "The stress at 1 m above is 28.75 MPA\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.3 page number 27"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "from math import pow\n",
+ "d_pins = 0.375 #inch\n",
+ "load = 3 #Kips\n",
+ "AB_x = 6 #inch,X-component\n",
+ "AB_y = 3 #inch,Y-component \n",
+ "BC_y = 6 #inch,Y-component\n",
+ "BC_x = 6 #inch,X-component\n",
+ "area_AB = 0.25*0.5 #inch*2 \n",
+ "area_net = 0.20*2*(0.875-0.375) #inch*2 \n",
+ "area_BC = 0.875*0.25 #inch*2 \n",
+ "area_pin = d_pins*2*0.20 #inch*2 \n",
+ "area_pin_crossection = 3.14*((d_pins/2)**2)\n",
+ "#caliculations\n",
+ "\n",
+ "slope = AB_y/ AB_x #For AB\n",
+ "slope = BC_y/ BC_x #For BC\n",
+ "\n",
+ "#momentum at point C:\n",
+ "F_A_x = (load*AB_x )/(BC_y + AB_y ) #Kips, F_A_x X-component of F_A\n",
+ "\n",
+ "#momentum at point A:\n",
+ "F_C_x = -(load*BC_x)/(BC_y + AB_y ) #Kips, F_C_x X-component of F_c\n",
+ "\n",
+ "#X,Y components of F_A\n",
+ "F_A= (pow(5,0.5)/2)*F_A_x #Kips\n",
+ "F_A_y = 0.5*F_A_x #Kips\n",
+ "\n",
+ "#X,Y components of F_C \n",
+ "F_C= pow(2,0.5)*F_C_x #Kips\n",
+ "F_C_y = F_C_x #Kips\n",
+ "\n",
+ "T_stress_AB = F_A/area_AB #Ksi , Tensile stress in main bar AB\n",
+ "stress_clevis = F_A/area_net #Ksi ,Tensile stress in clevis of main bar AB\n",
+ "c_strees_BC = F_C/area_BC #Ksi , Comprensive stress in main bar BC\n",
+ "B_stress_pin = F_C/area_pin #Ksi , Bearing stress in pin at C\n",
+ "To_stress_pin = F_C/area_pin_crossection #Ksi , torsion stress in pin at C\n",
+ "\n",
+ "print\"Tensile stress in main bar AB:\",round(T_stress_AB,2),\"Ksi\"\n",
+ "print\"Tensile stress in clevis of main bar AB:\",round(stress_clevis,2),\"Ksi\"\n",
+ "print\"Comprensive stress in main bar BC:\",round(-c_strees_BC,2),\"Ksi\"\n",
+ "print\"Bearing stress in pin at C:\",round(-B_stress_pin,2),\"Ksi\"\n",
+ "print\"torsion stress in pin at C:\",round(To_stress_pin,2),\"Ksi\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Tensile stress in main bar AB: 17.89 Ksi\n",
+ "Tensile stress in clevis of main bar AB: 11.18 Ksi\n",
+ "Comprensive stress in main bar BC: 12.93 Ksi\n",
+ "Bearing stress in pin at C: 18.86 Ksi\n",
+ "torsion stress in pin at C: -25.62 Ksi\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.4 page number 38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "strength_steel = 120 #Ksi\n",
+ "factor = 2.5\n",
+ "F_C = 2.23 #Ksi\n",
+ "\n",
+ "#caliculations\n",
+ "\n",
+ "stress_allow = strength_steel/factor #Ksi\n",
+ "A_net = F_C/strength_steel #in*2 , \n",
+ "#lets adopt 0.20x0.25 in*2 and check wether we are correct or not? \n",
+ "\n",
+ "A_net_assumption = 0.25*0.20 #in*2 , this is assumed area which is near to A_net\n",
+ "stress = 2.23/A_net_assumption #Ksi\n",
+ "factor_assumed = strength_steel/stress \n",
+ "\n",
+ "if factor_assumed > factor :\n",
+ " print \"The factor\",factor,\"is less than assumed factor\",round(factor_assumed,1),\"so this can be considered\"\n",
+ "else:\n",
+ " print \"The assumed factor\",factor, \"is more than assumed factor\",factor_assumed,\"factor_assumed\"\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The factor 2.5 is less than assumed factor 2.7 so this can be considered\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.6 page number 35"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "mass = 5 #Kg\n",
+ "frequency = 10 #Hz\n",
+ "stress_allow = 200 #MPa\n",
+ "R = 0.5 #m\n",
+ "\n",
+ "#caliculations \n",
+ "from math import pi\n",
+ "w = 2*pi*frequency #rad/sec\n",
+ "a = (w**2)*R #m*2/sec\n",
+ "F = mass*a #N\n",
+ "A_req = F/stress_allow #m*2 , The required area for aloowing stress\n",
+ "print\"The required size of rod is:\",round(A_req,2),\"m*2\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required size of rod is: 49.35 m*2\n"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.7 page number 45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "D_n = 5.0 #kips, dead load\n",
+ "L_n_1 = 1.0 #kips ,live load 1\n",
+ "L_n_2 = 15 #kips ,live load 2\n",
+ "stress_allow = 22 #ksi\n",
+ "phi = 0.9 #probalistic coefficients\n",
+ "y_stress = 36 #ksi,Yeild strength\n",
+ "#According to AISR \n",
+ "\n",
+ "#a\n",
+ "p_1 = D_n + L_n_1 #kips since the total load is sum of dead load and live load\n",
+ "p_2 = D_n + L_n_2 #kips, For second live load\n",
+ "\n",
+ "Area_1 = p_1/stress_allow #in*2 ,the allowable area for the allowed stress\n",
+ "Area_2 = p_2/stress_allow #in*2\n",
+ "print \"the allowable area for live load\",L_n_1,\"is\",round(Area_1,3),\"in*2\"\n",
+ "print \"the allowable area for live load\",L_n_2,\"is\",round(Area_2,3),\"in*2\"\n",
+ "\n",
+ "#b\n",
+ "#area_crossection= (1.2*D_n +1.6L_n)/(phi*y_stress)\n",
+ "\n",
+ "area_crossection_1= (1.2*D_n +1.6*L_n_1)/(phi*y_stress) #in*2,crossection area for first live load\n",
+ "area_crossection_2= (1.2*D_n +1.6*L_n_2)/(phi*y_stress) #in*2,crossection area for second live load\n",
+ "print \"the crossection area for live load\",L_n_1,\"is\",round(area_crossection_1,3),\"in*2\"\n",
+ "print \"the crossection area for live load\",L_n_2,\"is\",round(area_crossection_2,3),\"in*2\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the allowable area for live load 1.0 is 0.273 in*2\n",
+ "the allowable area for live load 15 is 0.909 in*2\n",
+ "the crossection area for live load 1.0 is 0.235 in*2\n",
+ "the crossection area for live load 15 is 0.926 in*2\n"
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 1.8 page number 51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "A_angle = 2 #in*2 \n",
+ "stress_allow = 20 #ksi, The maximum alowable stress\n",
+ "F = stress_allow*A_angle #K, The maximum force\n",
+ "AD = 3 #in, from the figure\n",
+ "DC = 1.06 #in, from the figure\n",
+ "strength_AWS = 5.56 # kips/in,Allowable strength according to AWS\n",
+ "\n",
+ "#caliculations \n",
+ "#momentum at point \"d\" is equal to 0\n",
+ "R_1 = (F*DC)/AD #k,Resultant force developed by the weld\n",
+ "R_2 = (F*(AD-DC))/AD #k,Resultant force developed by the weld\n",
+ "\n",
+ "l_1 = R_1/strength_AWS #in,Length of the Weld 1\n",
+ "l_2 = R_2/strength_AWS #in,Length of the Weld 2\n",
+ " \n",
+ "print \"Length of the Weld 1:\",round(l_1,2),\"in\"\n",
+ "print \"Length of the Weld 2:\",round(l_2,2),\"in\" \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of the Weld 1: 2.54 in\n",
+ "Length of the Weld 2: 4.65 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "code",
+ "collapsed": true,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "IOError",
+ "evalue": "[Errno 2] No such file or directory: 'arr'",
+ "output_type": "pyerr",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mIOError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32m<ipython-input-1-7d69e32f0cee>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mnp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mload\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'arr'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[1;32mC:\\Users\\Kowshik\\AppData\\Local\\Enthought\\Canopy\\User\\lib\\site-packages\\numpy\\lib\\npyio.pyc\u001b[0m in \u001b[0;36mload\u001b[1;34m(file, mmap_mode)\u001b[0m\n\u001b[0;32m 367\u001b[0m \u001b[0mown_fid\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mFalse\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 368\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbasestring\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 369\u001b[1;33m \u001b[0mfid\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"rb\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 370\u001b[0m \u001b[0mown_fid\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 371\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfile\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mgzip\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mGzipFile\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
+ "\u001b[1;31mIOError\u001b[0m: [Errno 2] No such file or directory: 'arr'"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter10_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter10_1.ipynb
new file mode 100644
index 00000000..695fe138
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter10_1.ipynb
@@ -0,0 +1,896 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:42031753a466b3ba5ee8c11468e375015d1a3d943c879daacc89b28eec81ab67"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 10:Deflections of beams "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.1 page number 501"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "dia = 400 #mm - The diameter of a pulley\n",
+ "E = 200 #Gpa - Youngs modulus\n",
+ "t = 0.6 #mm - The thickness of band\n",
+ "c = t/2 #mm - The maximum stress is seen \n",
+ "#Caliculations\n",
+ "\n",
+ "stress_max = E*c*(10**3)/(dia/2) #Mpa - The maximum stress on the crossection occurs at the ends\n",
+ "print \"The maximum bending stress developed in the saw \",stress_max,\"Mpa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum bending stress developed in the saw 300.0 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.3 page number 512"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import numpy\n",
+ "l_ab = 1.0 #L in - The length of the beam\n",
+ "F_D = 1.0 #W lb/in - The force distribution \n",
+ "F = F_D*l_ab #WL - The force applied\n",
+ "#Beause of symmetry the moment caliculations can be neglected\n",
+ "#F_Y = 0\n",
+ "R_A = F/2 #wl - The reactive force at A\n",
+ "R_B = F/2 #wl - The reactive force at B\n",
+ "#EI - The flxure rigidity is constant and 1/EI =1 # k\n",
+ "\n",
+ "#part - A\n",
+ "#section 1--1\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M_1 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "v = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " v[i] = R_A - F_D*l_1[i] \n",
+ " M_1[i] = R_A*l_1[i] - F_D*(l_1[i]**2)/2\n",
+ "# (EI)y'' = M_1[i] we will integrate M_1[i] twice where variable is l_1[i]\n",
+ "#(EI)y'- \n",
+ "\n",
+ "M_1_intg1 = R_A*(l_1[i]**2)/4 - F_D*(l_1[i]**3)/6 - F_D*(l_ab**3)*l_1[i]/24 #integration of x**n = x**n+1/n+1\n",
+ "#(EI)y- Using end conditions for caliculating constants \n",
+ "\n",
+ "M_1_intg2 = R_A*(l_1[i]**3)/12.0 - F_D*(l_1[i]**4)/24.0 + F_D*(l_ab**3)*l_1[i]/24.0 \n",
+ "#Equations \n",
+ "\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M_1_intg2 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "Y = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " M_1_intg2[i] = (l_1[i]**3)/12.0 - (l_1[i]**4)/24.0 - l_1[i]/24.0 # discluding every term for ruling out float values\n",
+ " Y[i] = M_1_intg2[i] #W(l**4)/EI k = 1/EI\n",
+ "#The precision is very less while caliculating through this equation because the least count in X direction is 0.1\n",
+ "print \"a) The maximum displacement in y direction is\",min(Y),\"W(l**4)/EI \"\n",
+ "print \"a) The maximum deflection occured at\",l_1[Y.index(min(Y))],\"L\"\n",
+ "\n",
+ "#Part - B\n",
+ "#Graphs\n",
+ "import numpy as np\n",
+ "values = M_1\n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,11)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "print \"b) The above graph is bending moment graph\"\n",
+ "import numpy as np\n",
+ "values = Y \n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,11)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "print \"b)The above graph is beam displacement graph\"\n",
+ "print \"b)The maximum occures in the middle from the above graph \"\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a) The maximum displacement in y direction is -0.0130208333333 W(l**4)/EI \n",
+ "a) The maximum deflection occured at 0.5 L\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8059b00>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "b) The above graph is bending moment graph\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8217320>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "b)The above graph is beam displacement graph\n",
+ "b)The maximum occures in the middle from the above graph \n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.4 page number 514"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import numpy\n",
+ "l_ab = 1.0 #L in - The length of the beam\n",
+ "F_D = 1.0 #W lb/in - The force distribution \n",
+ "F = F_D*l_ab #WL - The force applied\n",
+ "#Beause of symmetry the moment caliculations can be neglected\n",
+ "#F_Y = 0\n",
+ "R_A = F/2 #wl - The reactive force at A\n",
+ "R_B = F/2 #wl - The reactive force at B\n",
+ "#EI - The flxure rigidity is constant and 1/EI =1 # k\n",
+ "#M_A and M_B are applied at the ends\n",
+ "\n",
+ "#part - A\n",
+ "#section 1--1\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " M[i] = l_1[i]/2.0 - (l_1[i]**2)/2.0 -1.0/12.0 #The moment euation at 1--1 section\n",
+ "# M_1 = R_A*l_1[i]/2.0 - F_D*(l_1[i]**2)/2.0 -F_D*(l_ab**2)/12.0 #The moment euation at 1--1 section \n",
+ "# (EI)y'' = M_1[i] we will integrate M_1[i] twice where variable is l_1[i]\n",
+ "#(EI)y'\n",
+ "M_1_intg1 = R_A*(l_1[i]**2)/4 - F_D*(l_1[i]**3)/6 - F_D*(l_ab**2)*l_1[i]/12.0 #integration of x**n = x**n+1/n+1\n",
+ "#(EI)y\n",
+ "M_1_intg2[i] = R_A*(l_1[i]**3)/12.0 - F_D*(l_1[i]**4)/24.0 + F_D*(l_ab**2)*(l_1[i]**2)/24.0 \n",
+ "\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M_1_intg2 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "Y = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " M_1_intg2[i] = (l_1[i]**3)/12.0 - (l_1[i]**4)/24.0 - (l_1[i]**2)/24.0 # discluding every term for ruling out float values\n",
+ " Y[i] = M_1_intg2[i] #W(l**4)/EI k = 1/EI\n",
+ " \n",
+ "#Part - B\n",
+ "#Graphs\n",
+ "import numpy as np\n",
+ "values = M\n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,11)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "print \"b) The above graph is bending moment graph\"\n",
+ "import numpy as np\n",
+ "values = Y \n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,11)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "\n",
+ "\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x22dba90>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "b) The above graph is bending moment graph\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nxhhjfPb/MPjEgLOKoGcAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x81fa630>"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.5 page number 517"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#because of symmetry the problem can be solved by considering first half\n",
+ "#Given\n",
+ "import numpy\n",
+ "l_ab = 1.0 #L in - The length of the beam\n",
+ "F_D = 1.0 #W lb/in - The force distribution \n",
+ "F = F_D*l_ab #WL - The force applied\n",
+ "#Beause of symmetry the moment caliculations can be neglected\n",
+ "#EI - The flxure rigidity is constant and 1/EI =1 # k\n",
+ "\n",
+ "#part - A\n",
+ "#section 1--1\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M_1 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "v = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " v[i] = R_A - F_D*l_1[i] \n",
+ " M_1[i] = R_A*l_1[i] - F_D*(l_1[i]**2)/2\n",
+ "# (EI)y'' = M_1[i] we will integrate M_1[i] twice where variable is l_1[i]\n",
+ "#(EI)y'\n",
+ "M_1_intg1 = R_A*(l_1[i]**2)/2 - F_D*(l_1[i]**3)/6 - F_D*(l_ab**3)*l_1[i]/48 #integration of x**n = x**n+1/n+1\n",
+ "#(EI)y\n",
+ "M_1_intg2[i] = R_A*(l_1[i]**3)/6 - F_D*(l_1[i]**4)/24.0 - F_D*(l_ab**3)*l_1[i]/48.0 \n",
+ "#Equations \n",
+ "#R_A = #wl Unknown- The reactive force at A\n",
+ "#R_B = #wl - The reactive force at B\n",
+ "\n",
+ "# M_1_intg2[10] = 0, the displacement at the end of rod is 0 since its rigid \n",
+ "R_A = (F_D*(l_1[10]**4)/24.0 + F_D*(l_ab**3)*l_1[10]/48.0)/((l_1[10]**3)/6.0)\n",
+ "R_C = R_A #WL - symmetry\n",
+ "R_B = 1-R_A+R_B # WL - F_Y = 0, the equilibrium in Y direction\n",
+ "print \"The reaction at A is\",R_A ,\"WL\"\n",
+ "print \"The reaction at B is\",R_B ,\"WL\"\n",
+ "print \"The reaction at C is\",R_C ,\"WL\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The reaction at A is 0.375 WL\n",
+ "The reaction at B is 2.375 Wl\n",
+ "The reaction at C is 0.375 Wl\n"
+ ]
+ }
+ ],
+ "prompt_number": 82
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.7 page number 521 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "l_ac = 5 #m - The length of the beam \n",
+ "l_ab = 4 #m - The length of ac on beam \n",
+ "l_bc = 1 #m - The length of bc on beam \n",
+ "F = 20 #N - force applied on beam at 'b'\n",
+ "I_ab = 4 #I The moment of inertia of part AB \n",
+ "I_bc = 1 #I - The momemt of inertia of part BC\n",
+ "R_A = F*(l_bc/l_ac) #N- The reaction at joint A\n",
+ "R_B = F*(l_ab/l_ac) #N- The reaction at joint B\n",
+ "E = 1 #E youngs modulus\n",
+ "\n",
+ "#0<x<4\n",
+ "x = [0,1,2,3,4]\n",
+ "M = [0,0,0,0,0]\n",
+ "y = [0,0,0,0,0]\n",
+ "for i in range(5):\n",
+ " M[i] = 4*x[i] #integration of x**n = x**n+1/n+1\n",
+ " #y_2[i] = 4*x[i]/(E*I_ab) #The \n",
+ " #y_1[i] = 4*(x[i]**2)/(E*I_ab) -4.8/(E*I_bc) #The constant can be found by conditions y(o) = y(c) = 0\n",
+ " y[i] = 4*(x[i]**2)/(6*E*I_ab) -4.8*x[i]/(E*I_bc) #elastic curve constant can be found by Y_1(0) = 0 \n",
+ "\n",
+ "\n",
+ "#0<x_1<1\n",
+ "x_1 = [4,5]\n",
+ "m = [0,0]\n",
+ "Y = [0,0]\n",
+ "for i in range(2):\n",
+ " m[i] = 16 - 16*x_1[i] #integration of x**n = x**n+1/n+1\n",
+ " # Y_2 = (16 - 16*x_1[i])/(E*I_ab) \n",
+ " #Y_1 = (16*x_1[i]-8*(x_1[i]**2) +8 - 4.8)/(E*I_ab)#The constant can be found by conditions y(o) = y(c) = 0\n",
+ " Y[i] = (8*(x_1[i]**2)-8*(x_1[i]**3)/3 +(8-4.8)*x_1[i] - 4*4.8 )/(E*I_ab) #elastic curve constant can be found by Y_1(0) = 0\n",
+ "\n",
+ "#Graphs\n",
+ "import numpy as np\n",
+ "values = y\n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,5)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "print \"b) The shape from x belongs to 0<x<4\"\n",
+ "import numpy as np\n",
+ "values = Y \n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,2)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "print \"b) The shape from x belongs to 4<x<5\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n/j9lJ+moq4xgJQAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa792dd8>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "b) The shape from x belongs to 0<x<4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "C:\\Users\\Kowshik\\AppData\\Local\\Enthought\\Canopy\\User\\lib\\site-packages\\numpy\\lib\\polynomial.py:588: RankWarning: Polyfit may be poorly conditioned\n",
+ " warnings.warn(msg, RankWarning)\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEACAYAAABS29YJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl41PW99vH3J4FAj0ZckUVWG0hAEARUoEKUEBKook9b\nu2B7qX1aIDEJm0uBllrFI3gQMhiopbZqrVo99lQ9mLCIKdpHbA0kBDJRUPRApTyCYClLzPI9f5Bq\npBiyf2e5X9c115WZ3yw3vyvz4Zt7fjNjzjlERCSyxfgOICIirU/DXkQkCmjYi4hEAQ17EZEooGEv\nIhIFNOxFRKJAk4e9mX3DzLabWbWZXXbSth+Z2Q4zKzez1ObHFBGR5mjXjNuWAjcAD9e90MwGAN8E\nBgDdgfVm1s85V9OMxxIRkWZo8sreOVfunHv7FJsmA0855yqdc+8BO4HLm/o4IiLSfK3R2XcD9tQ5\nv4cTK3wREfGk3hrHzNYBXU6xaa5z7sVGPI4+k0FExKN6h71zbnwT7vOvQI865y+qvexzzEz/AYiI\nNIFzzhp7m5aqceo+8AvAt8wszsz6AAnAn091I+ecTs6xYMEC7xlC5aR9oX2hfVH/qamac+jlDWa2\nG7gSWG1m+bUDvAx4BigD8oEM15yEIiLSbE0+9NI591/Af33BtvuA+5p63yIi0rL0DtoQkJyc7DtC\nyNC++Iz2xWe0L5rPfDUsZqZ2R0SkkcwM5/EFWhERCWEa9iIiUUDDXkQkCmjYi4hEAQ17EZEooGEv\nIhIFNOxFRKKAhr2ISBTQsBcRiQJeh/2ECfNZvXqjzwgiIlGhOd9B22xr197LO+/MA2DSpDE+o4iI\nRDTvNc477yxk+fJ1vmOIiEQ0v8P++pvhzL0cPx7rNYaISKTzWuPwjwshYxB7PxzCJ9WfEBcb5zWO\niEik8ruyX7+IHmu/RqfBRxm0chD5O/K9xhERiVSej8b5MSvvncKfZ/w/Hkx9kJyCHK596lp2frTT\nZywRkYgTUl9eUlFVQe4buSz+02J+cNkPmDdmHmfGnekln4hIKIqILy/p0K4Dd4y+g63Tt/LXw38l\n8aFEntj6RLO+UV1EREJsZX+y13e/TlZ+Fh3adSCQFmBYt2FtlE5EJDQ1dWUf0sMeoMbV8Ostv2be\nhnlc1/86Fl6zkAvOuKANEoqIhJ6IqHFOJcZi+P5l36f8tnLOaH8GA1YMIHdTLpXVlb6jiYiEjZBf\n2Z+s7MMycgpy+ODwBwTSAozrO64V0omIhKaIrXFOxTnH8289z8w1M7ms62UsSV1C77N7t2xAEZEQ\nFLE1zqmYGdcnXk9ZRhlDuwxl2C+GseCVBRytPOo7mohISArLYf9PX2r/JeaPmU/x1GLeOvAWSXlJ\nPLv9WR2qKSJykrCscb7IH9/7I9kF2Zz7pXMJpAUYdOGgFr1/ERHfoqrG+SJje4+l6IdF3DjgRsY9\nPo7bXrqNj4595DuWiIh3ETXsAdrFtGP6iOkEM4M450jKS+Lnb/6c6ppq39FERLyJqBrnVEr+VkJ2\nQTYfH/+YQHqAMb30jVgiEr6i6tDLxnLO8WzZs8xZO4fRPUezOGUxPTr1aJPHFhFpSers62Fm3Djw\nRoKZQRLOTWDIw0NYuHEhx6uO+44mItImomJlf7JdB3cxe+1sSvaVsCR1CZP7T8as0f9Rioi0OdU4\nTbD+3fVk52dz0VkXkZuWS9IFSV7ziIicjmqcJkjpm0LJtBImJUxizKNjmLVmFh8f/9h3LBGRFtfk\nYW9m3zCz7WZWbWaX1bm8t5kdM7MttacVLRO1dbSPbU/OlTlsz9jO4YrDJOYl8qstv6LG1fiOJiLS\nYppc45hZIlADPAzMds5trr28N/Cic67et6+GQo1zKm9+8CbZ+dlU1lSyPH05V150pe9IIiKfavMa\nxzlX7px7u6m3D1XDuw3ntVtfI/vybL72zNe4+Q83s/fwXt+xRESapbU6+z61FU6hmX2llR6j1cRY\nDN+99LuUZ5bT5cwuDFo5iAf+9ACfVH/iO5qISJPUW+OY2Tqgyyk2zXXOvVh7nVf4fI0TB5zhnDtY\n2+X/ARjonDt80n27BQsWfHo+OTmZ5OTkZv5zWseOAzuYuWYmOz7awbIJy0hPSPcdSUSiRGFhIYWF\nhZ+ev/vuu/0cennysG/o9lDt7Ouz+u3VzFwzk37n9WPphKUknJfgO5KIRBnfh15++sBmdr6Zxdb+\n3BdIAN5tocfxalK/SWzL2MbYXmMZ+chI7lp/F4crDp/+hiIinjXn0MsbzGw3cCWw2szyazeNBUrM\nbAvwLDDVOXeo+VFDQ1xsHLePvp3S6aXs/cdeEvMSeWLrE/rCFBEJaVH9DtqW8Pru18nKz6JDuw4E\n0gIM6zbMdyQRiWD6uASPalwNv97ya+a/Mp+vJnyVheMW0vmMzr5jiUgE8t3ZR7UYi+H7l32fYGaQ\n+A7xDFwxkNxNuVRWV/qOJiICaGXfKso+LCOnIIcPDn9AblouKX1TfEcSkQihGifEOOd4/q3nmbVm\nFkO7DmVJ6hJ6n93bdywRCXOqcUKMmXF94vVsz9jO0C5DGfaLYSx4ZQFHK4/6jiYiUUjDvpV9qf2X\nmD9mPsVTi3n7o7dJykvime3P6FBNEWlTqnHa2Mb3N5KVn8U5Hc8hkB5g8IWDfUcSkTCiGidMjOk1\nhqIfFvHNgd8k5fEUMldncuDoAd+xRCTCadh70C6mHdNHTCeYGQQgKS+JlX9ZSXVNtedkIhKpVOOE\ngK37tpKdn82h44cIpAcY02uM70giEqJ06GWYc87xbNmzzFk7h9E9R7M4ZTE9OvXwHUtEQow6+zBn\nZtw48EaCmUESzk1gyMNDuHfjvRyvOu47mohEAK3sQ9Sug7uYvXY2xX8r5sEJDzK5/2TMGv2fuYhE\nGNU4EWr9u+vJKcihe3x3ctNySbogyXckEfFINU6ESumbQvHUYiYlTGLMo2OYtWYWHx//2HcsEQkz\nGvZhoH1se3KuzGF7xnYOVxwmMS+RX235FTWuxnc0EQkTqnHCUNEHRWTlZ1FZU0kgLcDIHiN9RxKR\nNqLOPso45/ht6W+5c/2dpPRN4f5x99M1vqvvWCLSytTZRxkz46bBN1GeWU7XM7syaOUgFv9pMRVV\nFb6jiUgI0so+Quw4sIOZa2by9oG3WZa2jIkJE31HEpFWoBpHAHhpx0vMKJhBv/P6sXTCUhLOS/Ad\nSURakGocAWBiwkS2ZWxjbK+xjHxkJHetv4vDFYd9xxIRzzTsI1BcbBy3j76d0uml7P3HXhLzEnli\n6xP6whSRKKYaJwq8vvt1svKziIuNY3n6coZ1G+Y7kog0kTp7qVeNq+HR4keZt2EeX034KgvHLaTz\nGZ19xxKRRlJnL/WKsRhuHXorwcwg8R3iGbhiILmbcqmsrvQdTUTagFb2UarswzJyCnL44PAH5Kbl\nktI3xXckEWkA1TjSaM45nn/reWatmcWQLkNYkrqEPuf08R1LROqhGkcazcy4PvF6yjLLGNZ1GMNX\nDecnr/yEo5VHfUcTkRamYS90bNeReWPmUTy1mB0f7SDxoUSe2f6MDtUUiSCqceRfbHx/I9n52Zzd\n8WwC6QEGXzjYdyQRqaUaR1rMmF5jKPphEd+65FuM/814MldncuDoAd+xRKQZNOzllGJjYpk2fBrB\nzCBmRlJeEiv/spLqmmrf0USkCVTjSINs3beV7PxsDh0/RCA9wJheY3xHEolKOvRSWp1zjmfLnmXO\n2jmM7jmaxSmL6dGph+9YIlGlzTt7M3vAzIJmVmJmvzezTnW2/cjMdphZuZmlNvUxJLSYGTcOvJHy\n28rpd24/hjw8hHs33svxquO+o4nIaTR5ZW9m44GXnXM1ZnY/gHPuLjMbADwJjAC6A+uBfs59/tux\ntbIPf7sO7mLOujls2buFByc8yOT+kzFr9IJDRBrBa41jZjcAX3PO3WRmPwJqnHOLarcVAD91zm06\n6TYa9hFi/bvrySnIoXt8d3LTckm6IMl3JJGI5fvQy1uBl2p/7gbsqbNtDydW+BKhUvqmUDy1mEkJ\nkxjz6BhmFszk0PFDvmOJSB31DnszW2dmpac4XVvnOvOAT5xzT9ZzV1rCR7j2se3JuTKHsowyjlQe\nIfGhRB7Z/Ag1n2/vRMSTdvVtdM6Nr2+7md0MTATG1bn4r0DdQzQuqr3sX/z0pz/99Ofk5GSSk5Pr\nezgJAxeccQG/uPYXTB02laz8LH5e9HMCaQFG9hjpO5pIWCosLKSwsLDZ99OcF2jTgCXAWOfc/jqX\n//MF2sv57AXaL59c0Kuzj3zOOX5b+lvuXH8nKX1TuH/c/XSN7+o7lkhY89HZLwfOBNaZ2RYzWwHg\nnCsDngHKgHwgQ1M9OpkZNw2+ifLMcrqd2Y1BKwex+E+Lqaiq8B1NJOroTVXSZnYc2MGstbN4a/9b\nLEtbxsSEib4jiYQdvYNWwsZLO15iRsEM+p3Xj6UTlpJwXoLvSCJhw/ehlyINNjFhItsytjG211hG\nPjKSu9bfxeGKw75jiUQ0DXvxIi42jttH307p9FL+9o+/kZiXyG9KfqNDNUVaiWocCQmb9mwiKz+L\n9jHtCaQHGN5tuO9IIiFJnb2EvRpXw6PFjzJvwzy+mvBVFo5bSOczOvuOJRJS1NlL2IuxGG4deivB\nzCDxHeIZuGIgyzYto7K60nc0kbCnlb2ErOCHQXIKctjz9z0E0gOk9E3xHUnEO9U4EpGcc7zw1gvM\nXDOTIV2GsCR1CX3O6eM7log3qnEkIpkZkxMnU5ZZxrCuwxi+ajg/eeUnHPnkiO9oImFFw17CQsd2\nHZk3Zh4l00rY+dFOkvKS+N2236G/DkUaRjWOhKWN728kOz+bTh07EUgLcGmXS31HEmkTqnEkqozp\nNYaiHxbx7Uu+TeoTqWSuzuTA0QO+Y4mELA17CVuxMbFMGz6NYGYQMyMpL4mVf1lJdU2172giIUc1\njkSMrfu2kp2fzcHjBwmkBRjbe6zvSCItTodeinDiUM1ny57l9nW3M/KikTww/gF6dOpx+huKhAl1\n9iKceCLcOPBGgplB+p/XnyEPD+HejfdyvOq472giXmllLxFt18FdzFk3hy17t7AkdQnXJ16PWaMX\nRSIhQzWOSD1efvdlsguy6Rbfjdy0XAZcMMB3JJEmUY0jUo9xfcdRPLWYa/tdy9hHxzKzYCaHjh/y\nHUukzWjYS9RoH9ue7CuyKcso40jlEZLyknhk8yP6whSJCqpxJGoVfVBEVn4Wn1R/wvL05YzsMdJ3\nJJHTUmcv0gTOOZ4sfZI71t/BuD7juD/lfrrFd/MdS+QLqbMXaQIzY8rgKZRnltM9vjuDVw5m8Z8W\nU1FV4TuaSIvSyl6kjh0HdjBr7Sze2v8Wy9KWMTFhou9IIp+jGkekBb204yVmFMwg4bwElk5YSr/z\n+vmOJAKoxhFpURMTJrItYxvJvZIZ9cgo7lx3J4crDvuOJdJkGvYiXyAuNo7bR99O6fRS9h3ZR2Je\nIr8p+Y0O1ZSwpBpHpIE27dlEVn4W7WPaE0gPMLzbcN+RJAqpsxdpAzWuhkeLH2XehnlMSpjEfePu\no/MZnX3Hkiiizl6kDcRYDLcOvZXyzHI6dejEwBUDWbZpGZXVlb6jidRLK3uRZgh+GGTGmhns/ng3\nuWm5jL94vO9IEuFU44h44pzjhbdeYOaamVza5VKWpC6h7zl9fceSCKUaR8QTM2Ny4mTKMssY3nU4\nI1aN4McbfsyRT474jibyKQ17kRbSsV1H5o2ZR8m0Et45+A5JeUn8btvv0F+wEgpU44i0klfff5Ws\n/Cw6dexEIC3ApV0u9R1JIoBqHJEQc1Wvqyj6YRHfvuTbpD6RSsbqDA4cPeA7lkSpJg97M3vAzIJm\nVmJmvzezTrWX9zazY2a2pfa0ouXiioSX2JhYpg2fRjAzSIzFkJSXxIq/rKCqpsp3NIkyTa5xzGw8\n8LJzrsbM7gdwzt1lZr2BF51zg05ze9U4EnW27ttKTkEOHx37iEBagLG9x/qOJGGmzWsc59w65z79\nkJA3gIuael8i0WLwhYPZ8L0NzL9qPt/7w/f41n9+i90f7/YdS6JAS3X2twIv1Tnfp7bCKTSzr7TQ\nY4hEBDPjGwO/QTAzSP/z+jPk4SHc88d7OFZ5zHc0iWD11jhmtg7ocopNc51zL9ZeZx5wmXPua7Xn\n44AznHMHzewy4A/AQOfc5z4fVjWOyAnvHXqPOWvnULS3iAdTH+T6xOsxa/Rf6RIlvLyD1sxuBn4A\njHPOHf+C67wCzHbObT7pcrdgwYJPzycnJ5OcnNzkLCLh7uV3XyanIIeu8V3JTctlwAUDfEeSEFBY\nWEhhYeGn5+++++62HfZmlgYsAcY65/bXufx84KBzrtrM+gIbgUucc4dOur1W9iInqayuZOWbK7ln\n4z3cNOgmFiQv4OyOZ/uOJSHEx3H2y4EzgXUnHWI5Figxsy3As8DUkwe9iJxa+9j2ZF+RTVlGGUcq\nj5D4UCK/3PxLqmuqfUeTMKd30IqEsKIPisguyKaiqoJAeoBRPUb5jiSe6VMvRSKUc44nS5/kzvV3\nck2fa7g/5X66xXfzHUs80ccliEQoM2PK4CkEM4N0j+/O4JWDWfTaIiqqKnxHkzCilb1ImNlxYAez\n1s6ifH85yyYsY1K/Sb4jSRtSjSMSZfJ35DNjzQy+fO6XWTphKf3O6+c7krQB1TgiUSY9IZ3S6aVc\n3ftqRj0yijvX3cnhisOnv6FEJQ17kTAWFxvHnFFzKJ1eyr4j+0jMS+Txksep+fRjq0ROUI0jEkHe\n2PMGWflZxMbEsjx9OcO7DfcdSVqYOnsRAaDG1fBY8WPM3TCXSQmTuG/cfXQ+o7PvWNJC1NmLCAAx\nFsMtQ2+hPLOcTh06MXDFQJZtWkZldaXvaOKRVvYiES74YZAZa2aw++Pd5KblMv7i8b4jSTOoxhGR\nL+Sc44W3XmDW2lkMvnAwS1KX0Pecvr5jSROoxhGRL2RmTE6czPaM7YzoNoIRq0bw4w0/5sgnR3xH\nkzaiYS8SRTq268jcq+ZSMq2Edw6+Q1JeEk9vexr9lR35VOOIRLFX33+VrPwszupwFsvTl3Npl0t9\nR5LTUI0jIo12Va+rKPphEVMGTSH1iVQyVmdw4OgB37GkFWjYi0S52JhYpg6fSjAzSKzFkpSXxIq/\nrKCqpsp3NGlBqnFE5HO27ttKTkEOB44eIJAeILl3su9IUocOvRSRFuOc47ngc8xeO5srL7qSB8Y/\nQM9OPX3HEtTZi0gLMjO+PuDrBDODJJ2fxNCHh3LPH+/hWOUx39GkibSyF5HTeu/Qe8xZO4eivUU8\nmPog1ydej1mjF5fSAlTjiEire/ndl8kpyKFrfFdy03IZcMEA35GijmocEWl14/qOY8vULVzb71rG\nPjqWGQUzOHT8kO9Y0gAa9iLSKO1j25N9RTZlGWUcqzxG4kOJ/HLzL6muqfYdTeqhGkdEmmXz3s1k\n5WdRUVVBID3AqB6jfEeKaOrsRcQb5xxPlj7Jnevv5Oo+V7MoZRHd4rv5jhWR1NmLiDdmxpTBUyi/\nrZweZ/Vg8MrBLHptERVVFb6jSS2t7EWkxe38aCez1swiuD/IsgnLmNRvku9IEUM1joiEnPwd+cxY\nM4OLz7mYZWnL6HdeP9+Rwp5qHBEJOekJ6ZROL+WaPtcw6pFR3LHuDv5e8XffsaKShr2ItKq42Djm\njJrDtoxtfHj0Q5Lykni85HFqXI3vaFFFNY6ItKk39rxBVn4WsTGxBNICjOg+wneksKLOXkTCRo2r\n4bHix5i7YS6TEiZx37j76HxGZ9+xwoI6exEJGzEWwy1Db6E8s5xOHToxIG8AS19fSmV1pe9oEUsr\nexHxLvhhkBlrZrD7493kpuUy/uLxviOFLNU4IhLWnHO8+PaLzFwzk8EXDmZJ6hL6ntPXd6yQoxpH\nRMKamXFd/+vYnrGdEd1GcPmqy5m/YT5HPjniO1pEaPKwN7N7zKzEzIrN7GUz61Fn24/MbIeZlZtZ\nastEFZFo0LFdR+ZeNZfiacXsOrSLxLxEnt72NGoCmqfJNY6ZxTvnDtf+nAVc6pz7v2Y2AHgSGAF0\nB9YD/Zz7/EG1qnFEpCFeff9VsguyiY+LJ5AeYEiXIb4jedXmNc4/B32tM4H9tT9PBp5yzlU6594D\ndgKXN/VxRCS6XdXrKt78wZtMGTSFCU9MIGN1BgeOHvAdK+w0q7M3s4Vm9j/AzcC/117cDdhT52p7\nOLHCFxFpktiYWKYOn0owM0isxZKUl0Ten/OoqqnyHS1s1FvjmNk6oMspNs11zr1Y53p3Af2dc7eY\n2XJgk3Put7Xbfgm85Jz7/Un37RYsWPDp+eTkZJKTk5vzbxGRKFG6r5TsgmwOHD1AID1Acu9k35Fa\nTWFhIYWFhZ+ev/vuu/0demlmPTkx0C+pHfw45+6v3VYALHDOvXHSbdTZi0iTOed4Lvgcs9fO5sqL\nruSB8Q/Qs1NP37FaXZt39maWUOfsZGBL7c8vAN8yszgz6wMkAH9u6uOIiJyKmfH1AV8nmBkk6fwk\nhj48lHv+eA/HKo/5jhaSmnM0zn8C/YFq4B1gunPu/9dumwvcClQBOc65Nae4vVb2ItJi3jv0HnPW\nzqFobxFLUpdwQ+INmDV6ARzy9A5aERFgw64NZOdn0+XMLuSm5TKw80DfkVqU3kErIgJc0+caiqcV\nM7n/ZJIfS2ZGwQwOHT/kO5Z3GvYiEnHaxbQj64osyjLKOFZ5jMSHEllVtIrqmmrf0bxRjSMiEW/z\n3s1k5WdxvOo4y9OXM6rHKN+RmkydvYhIPZxzPLXtKe5YdwdX97maRSmL6BbfzXesRlNnLyJSDzPj\nO4O+Q/lt5fQ4qweDVw5m0WuLqKiq8B2tTWhlLyJRaedHO5m1ZhbB/UGWTVjGpH6TfEdqENU4IiJN\nkL8jnxlrZnDxORezdMJS+p/f33ekeqnGERFpgvSEdEqnlzKuzzhG/2o0d6y7g79X/N13rBanYS8i\nUS8uNo7Zo2azLWMbHx79kMSHEnm85HFqPv81HGFNNY6IyEne2PMGWflZxFgMy9OXM6L7CN+RPqXO\nXkSkBdW4Gh4rfoy5G+Yy8csTuW/cfVx45oW+Y6mzFxFpSTEWwy1Db6E8s5xzvnQOl6y8hKWvL6Wy\nutJ3tCbRyl5EpAHK95eTU5DD7o93syxtGakXp3rJoRpHRKSVOed48e0XmblmJoM6D+LBCQ/S95y+\nbZpBNY6ISCszM67rfx3bM7ZzRfcrGLFqBPM3zOfIJ0d8RzstDXsRkUbq2K4jP7rqR5RMK2HXoV0k\n5iXy9LanCeW2QjWOiEgzvfY/r5GVn0V8XDyB9ABDugxptcdSjSMi4slXen6FN3/wJlMGTWHCExOY\n/t/T2X90v+9Yn6NhLyLSAmJjYpk6fCrBzCDtY9szIG8AeX/Oo6qmync0QDWOiEirKN1XSk5BDvuP\n7ieQHiC5d3KL3K8OvRQRCTHOOZ4LPsfstbO5ovsV/Efqf9CzU89m3ac6exGREGNmfH3A1wlmBhlw\nwQCGPjyUn/3xZxyrPNb2WbSyFxFpG+8fep856+bw5gdvsiR1CTck3oBZ4xbpqnFERMLEhl0byM7P\npsuZXchNy2Vg54ENvq1qHBGRMHFNn2sonlbM5P6TSX4smZz8HA4eO9iqj6lhLyLiQbuYdmRdkUVZ\nRhkV1RUk5SWxqmgV1TXVrfJ4qnFERELA5r2byc7P5ljVMQJpAUb3HH3K66mzFxEJc845ntr2FHes\nu4Or+1zNopRFdIvv9rnrqLMXEQlzZsZ3Bn2H8tvK6XFWDwatHMT9r91PRVUFq1dvZMKE+U2/b63s\nRURC086PdjJ77Wz+8l4RLn8Uf9v4OyBGNY6ISCQa9s1vs7nzFjjYF36brxpHRCQSxe/rDyu3wrvj\nmnwfGvYiIiGuQ4cqqI6D12c3+T407EVEQlx2dioXXzyvWffRroWyiIhIK5k0aQwAy5f/mDVrmnYf\nTX6B1szuAa4DHHAAuNk5t9vMegNBoLz2qq875zJOcXu9QCsi0kg+jrNf7Jy71Dk3BPgDsKDOtp3O\nuaG1p38Z9PJ5hYWFviOEDO2Lz2hffEb7ovmaPOydc4frnD0TCK0vXAwj+kX+jPbFZ7QvPqN90XzN\n6uzNbCHwXeAocGWdTX3MbAvwMTDfOfdacx5HRESap96VvZmtM7PSU5yuBXDOzXPO9QQeBZbW3uwD\noIdzbigwC3jSzOJb8d8gIiKn0SLvoDWznsBLzrlLTrHtFWC2c27zSZfr1VkRkSZoygu0Ta5xzCzB\nObej9uxkYEvt5ecDB51z1WbWF0gA3m2JsCIi0jTN6ez/3cz6A9XAO8D02svHAD8zs0qgBpjqnDvU\nvJgiItIc3j4ITURE2k6rf1yCmaWZWbmZ7TCzO7/gOoHa7SVmNrS1M/lyun1hZlNq98FWM/uTmQ32\nkbMtNOT3ovZ6I8ysysz+T1vma0sNfI4km9kWM9tmZoVtHLHNNOA5cr6ZFZhZce2+uNlDzFZnZr8y\ns31mVlrPdRo3N51zrXYCYoGdQG+gPVAMJJ10nYmceHEX4ApgU2tm8nVq4L4YCXSq/TktmvdFnett\nAP4b+Jrv3B5/L84GtgMX1Z4/33duj/vip8C//3M/cOLd++18Z2+FfXEVMBQo/YLtjZ6brb2yv5wT\n76Z9zzlXCTzNiRdz67oOeAzAOfcGcLaZXdjKuXw47b5wzr3unPu49uwbwEVtnLGtNOT3AiAL+E/g\nw7YM18Yasi++AzznnNsD4JyL1DcwNmRf7AXOqv35LOCAc66qDTO2Cefcq8DBeq7S6LnZ2sO+O7C7\nzvk9tZed7jqROOQasi/q+j7wUqsm8ue0+8LMunPiib6y9qJIfXGpIb8XCcC5ZvaKmb1pZt9ts3Rt\nqyH7YhUw0Mw+AEqAnDbKFmoaPTdb+1MvG/oEPfkwzEh8Yjf432RmVwO3Aqf+evnw15B9sQy4yznn\nzMz419+RSNGQfdEeuAwYB/wb8LqZbXKfHfocKRqyL+YCxc65ZDO7GFhnZpe6z398S7Ro1Nxs7WH/\nV6BHnfM7ue5+AAABgElEQVQ9OPE/UH3Xuaj2skjTkH1B7Yuyq4A051x9f8aFs4bsi2HA0yfmPOcD\n6WZW6Zx7oW0itpmG7IvdwH7n3DHgmJltBC4FIm3YN2RfjAIWAjjn3jGzXUB/4M02SRg6Gj03W7vG\neRNIMLPeZhYHfBM4+cn6AvA9ADO7EjjknNvXyrl8OO2+qH0n8u+Bm5xzOz1kbCun3RfOub7OuT7O\nuT6c6O2nR+Cgh4Y9R54HvmJmsWb2b5x4Qa6sjXO2hYbsi3IgBaC2o+7PKd60GQUaPTdbdWXvnKsy\ns9uANZx4pf0R51zQzKbWbn/YOfeSmU00s53AEeCW1szkS0P2BfAT4BxgZe2KttI5d7mvzK2lgfsi\nKjTwOVJuZgXAVk68UXGVcy7ihn0Dfy/uA35tZiWcWKze4Zz7yFvoVmJmTwFjgfPNbDcnPkK+PTR9\nbupNVSIiUUDfQSsiEgU07EVEooCGvYhIFNCwFxGJAhr2IiJRQMNeRCQKaNiLiEQBDXsRkSjwv7Hv\nQl6d+sBHAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa6b60f0>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "b) The shape from x belongs to 4<x<5\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.10 page number 529"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "k = 24.0*(10**12) #N.mm2 Flexure rigidity\n",
+ "E = 200.0 #Gpa - Youngs modulus of the string\n",
+ "l = 5000.0 #mm - The length of the string\n",
+ "C_A = 300.0 #mm2 - crossection area \n",
+ "P = 50.0 #KN - The force applies at the end \n",
+ "a = 2000.0 #mm - The distance C-F\n",
+ "x = 1#X - let it be a variable X\n",
+ "y_d = x*(a**3)/(3*k) #Xmm The displacement at D, lets keep the variable in units part\n",
+ "y_p = -P*(10**3)*(16*(a**3)-12*(a**3)+(a**3))/(k*6) #mm The displacement due to p \n",
+ "e_rod = l/(C_A*E*(10**3)) #Xmm -deflection, The varible is in units \n",
+ "e_rod\n",
+ "X = y_p/(2*e_rod+y_d) # By equating deflections \n",
+ "y_d_1 = X*(a**3)/(3*k) # the deflection of point D\n",
+ "print \"The deflection of point D\",round(y_d_1,2),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the deflection of point D -5.56 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.11 page number 530 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "l = 15 #in - The length of the crossection \n",
+ "b = 33.9 #in - the width of the crossection\n",
+ "L = 100 #in The length of the cantilever \n",
+ "E = 29*(10**6) #psi The youngs modulus of the material used \n",
+ "I_Z = 315 #in4 - the moment of inertia wrt Z axis \n",
+ "I_y = 8.13 #in4 - the moment of inertia wrt Y axis\n",
+ "o = 5 # degrees - the angle of acting force \n",
+ "P = 2000 #k the acting force \n",
+ "P_h = P*math.sin(math.radians(o)) #k - The horizantal component of P\n",
+ "P_v = P*math.cos(math.radians(o)) #k - The vertical component of P\n",
+ "e_h = P_h*(L**3)/(3*E*I_y) # the horizantal component of deflection \n",
+ "e_v = P_v*(L**3)/(3*E*I_Z ) # the vertical component of deflection\n",
+ "e = pow((e_h**2 + e_v**2),0.5)\n",
+ "print \"the horizantal component of deflection\",round(e_h,3) ,\"in\"\n",
+ "print \"the vertical component of deflection\",round(e_v,3) ,\"in\"\n",
+ "print \"the resultant deflection\",round(e,3) ,\"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the horizantal component of deflection 0.246 in\n",
+ "the vertical component of deflection 0.073 in\n",
+ "the resultant deflection 0.257 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 88
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.13 page number 533"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "l = 50.0 #mm - The length of the crossection \n",
+ "b = 50.0 #mm - the width of the crossection\n",
+ "m = 15.3 # mass of the falling body\n",
+ "h = 75.0 #mm - The height of the falling body \n",
+ "p = m*9.81 #N the force acted due to the body\n",
+ "L = 1000.0 #mm The length of the cantilever\n",
+ "E = 200 #Gpa The youngs modulus of the material used \n",
+ "I = (l**4)/12 #mm - the moment of inertia \n",
+ "k = 300 #N/mm -the stiffness of the spring \n",
+ "#Rigid supports \n",
+ "e = m*9.81*(L**3)*(10**-3)/(48*E*I) #mm - the deflection of beam \n",
+ "imp_fact_a = 1 +pow((1 +2*h/e),0.5) #no units , impact factor \n",
+ "#spring supports\n",
+ "e_spr = h/k #mm the elongation due to spring \n",
+ "e_total = e_spr + e \n",
+ "imp_fact_b = 1 +pow((1 +2*h/e_total),0.5) #no units , impact factor\n",
+ "print \"a) The maximum deflection when the beam is on rigid supports\",round(e,3),\"mm with impact factor\",round(imp_fact_a ,2),\n",
+ "print \"b) The maximum deflection when the beam is on spring supports\",round(e_total,2),\"mm with impact factor\",round(imp_fact_b,2) ,\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a) The maximum deflection when the beam is on rigid supports 0.03 mm with impact factor 71.7 b) The maximum deflection when the beam is on spring supports 0.28 mm with impact factor 24.17\n"
+ ]
+ }
+ ],
+ "prompt_number": 111
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.15 page number 536 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "E = 30*(10**3) #ksi - The youngs modulus of the material \n",
+ "stress_y = 40 #Ksi - yield stress\n",
+ "stress_max = 24.2 #Ksi - the maximum stress\n",
+ "l = 2 #in - The length of the crossection \n",
+ "b = 3 #in - the width of the crossection\n",
+ "h = 3 #in - the depth of the crossection\n",
+ "#lets check ultimate capacity for a 2 in deep section \n",
+ "M_ul = stress_y*b*(l**2)/4 #K-in the ultimate capacity \n",
+ "curvature = 2*stress_y/(E*(h/2) ) #in*-1 the curvature of the beam \n",
+ "curvature_max = stress_max/(E*(h/2)) #in*-1 The maximum curvature \n",
+ "print \"the ultimate capacity\",M_ul,\"K-in\"\n",
+ "print \"the ultimate curvature\",curvature_max,\"in*-1\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the ultimate capacity 120 K-in\n",
+ "the ultimate curvature 0.000806666666667 in*-1\n"
+ ]
+ }
+ ],
+ "prompt_number": 114
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.16 page number 543"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "l_ad = 1600 #mm - The total length of the beam \n",
+ "l_ab = 600 #mm - The length of AB\n",
+ "l_bc = 600 #mm - The length of BC\n",
+ "e_1 = 0.24 #mm - deflection \n",
+ "e_2 = 0.48 #mm - deflection\n",
+ "E = 35 #Gpa\n",
+ "#Caliculation \n",
+ "\n",
+ "A_afe = -(l_ab+l_bc)*e_1*(10**-3)/(2*E)\n",
+ "A_afe = -(l_ab)*e_2*(10**-3)/(4*E)\n",
+ "y_1_b = A_afe + A_afe #rad the slope at the tip B\n",
+ "x_1 = 1200 #com from B\n",
+ "x_2 = 800 #com from B\n",
+ "y_b = A_afe*x_1 + A_afe*x_2 #mm The maximum deflection at tip B\n",
+ "print\"The maximum deflection at tip B\",round(y_b,2),\"mm\"\n",
+ "print \"The slope at the tip B\",round(y_1_b,2) ,\"radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum deflection at tip B -4.11 mm\n",
+ "The slope at the tip B -0.0 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 126
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.19 page number 547 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import numpy\n",
+ "l_ab = 1.0 #L in - The length of the beam\n",
+ "F_D = 1.0 #W lb/in - The force distribution \n",
+ "F = F_D*l_ab #WL - The force applied\n",
+ "#Beause of symmetry the moment caliculations can be neglected\n",
+ "#F_Y = 0\n",
+ "R_A = F/2 #wl - The reactive force at A\n",
+ "R_B = F/2 #wl - The reactive force at B\n",
+ "#EI - The flxure rigidity is constant and 1/EI =1 # k\n",
+ "\n",
+ "#part - A\n",
+ "#section 1--1\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M_1 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "v = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " v[i] = R_A - F_D*l_1[i] \n",
+ " M_1[i] = R_A*l_1[i] - F_D*(l_1[i]**2)/2\n",
+ "# (EI)y'' = M_1[i] we will integrate M_1[i] twice where variable is l_1[i]\n",
+ "#(EI)y'- \n",
+ "\n",
+ "M_1_intg1 = R_A*(l_1[i]**2)/4 - F_D*(l_1[i]**3)/6 - F_D*(l_ab**3)*l_1[i]/24 #deflection integration of x**n = x**n+1/n+1\n",
+ "#(EI)y- Using end conditions for caliculating constants \n",
+ "\n",
+ "M_1_intg2 = R_A*(l_1[i]**3)/12.0 - F_D*(l_1[i]**4)/24.0 + F_D*(l_ab**3)*l_1[i]/24.0 \n",
+ "#Equations \n",
+ "\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M_1_intg2 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "Y = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " M_1_intg2[i] = (l_1[i]**3)/12.0 - (l_1[i]**4)/24.0 - l_1[i]/24.0 # discluding every term for ruling out float values\n",
+ " Y[i] = M_1_intg2[i] #W(l**4)/EI k = 1/EI\n",
+ "#The precision is very less while caliculating through this equation because the least count in X direction is 0.1\n",
+ "print \" The maximum displacement in y direction is\",min(Y),\"W(l**4)/EI \"\n",
+ "print \" The maximum deflection occured at\",l_1[Y.index(min(Y))],\"L\"\n",
+ "\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M_1_intg1 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "Y = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " M_1_intg1[i] = R_A*(l_1[i]**2)/4 - F_D*(l_1[i]**3)/6 - F_D*(l_ab**3)*l_1[i]/24\n",
+ "print \" The maximum deflection is\",min(M_1_intg1 ),\"W(l**3)/EI \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The maximum displacement in y direction is -0.0130208333333 W(l**4)/EI \n",
+ " The maximum deflection occured at 0.5 L\n",
+ " The maximum deflection is -0.05775 W(l**3)/EI \n"
+ ]
+ }
+ ],
+ "prompt_number": 132
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.23 page number 554 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "import numpy\n",
+ "l_ab = 1.0 #L in - The length of the beam\n",
+ "F_D = 1.0 #W lb/in - The force distribution \n",
+ "F = F_D*l_ab #WL - The force applied\n",
+ "#Beause of symmetry the moment caliculations can be neglected\n",
+ "#F_Y = 0\n",
+ "R_A = F/2 #wl - The reactive force at A\n",
+ "R_B = F/2 #wl - The reactive force at B\n",
+ "#EI - The flxure rigidity is constant and 1/EI =1 # k\n",
+ "#M_A and M_B are applied at the ends\n",
+ "\n",
+ "#part - A\n",
+ "#section 1--1\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " M[i] = l_1[i]/2.0 - (l_1[i]**2)/2.0 -1.0/12.0 #The moment euation at 1--1 section\n",
+ "# M_1 = R_A*l_1[i]/2.0 - F_D*(l_1[i]**2)/2.0 -F_D*(l_ab**2)/12.0 #The moment euation at 1--1 section \n",
+ "# (EI)y'' = M_1[i] we will integrate M_1[i] twice where variable is l_1[i]\n",
+ "#(EI)y'\n",
+ "M_1_intg1 = R_A*(l_1[i]**2)/4 - F_D*(l_1[i]**3)/6 - F_D*(l_ab**2)*l_1[i]/12.0 #integration of x**n = x**n+1/n+1\n",
+ "#(EI)y\n",
+ "M_1_intg2[i] = R_A*(l_1[i]**3)/12.0 - F_D*(l_1[i]**4)/24.0 + F_D*(l_ab**2)*(l_1[i]**2)/24.0 \n",
+ "\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M_1_intg2 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "Y = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " M_1_intg2[i] = (l_1[i]**3)/12.0 - (l_1[i]**4)/24.0 - (l_1[i]**2)/24.0 # discluding every term for ruling out float values\n",
+ " Y[i] = M_1_intg2[i] #W(l**4)/EI k = 1/EI\n",
+ " \n",
+ "print \"The moment at the end is \",M[0],\"wl**2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The moment at the end is -0.0833333333333 wl**2\n"
+ ]
+ }
+ ],
+ "prompt_number": 133
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 10.25 pagenumber 556"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "# This problem is divided into two parts\n",
+ "#Part _1\n",
+ "#Given\n",
+ "l = 1.0 #l - The length of the beam\n",
+ "p = 1.0 #W - The total load applied\n",
+ "#since it is triangular distribution \n",
+ "l_com = 0.66*L #l - The distance of force of action from one end\n",
+ "#F_Y = 0\n",
+ "#R_A + R_B = p\n",
+ "#M_a = 0 Implies that R_B = 2*R_A\n",
+ "R_A = p/3.0\n",
+ "R_B = 2.0*p/3\n",
+ "\n",
+ "#Taking Many sections \n",
+ "\n",
+ "#Section 1----1\n",
+ "l = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "v = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " v[i] = p*(l[i]**2) - p/3.0\n",
+ " M[i] = p*(l[i]**3)/(3.0)- p*l[i]/3.0\n",
+ "\n",
+ "v[10] = R_B #again concluded Because the value is tearing of \n",
+ "\n",
+ "\n",
+ "#Graph\n",
+ "import numpy as np\n",
+ "values = M\n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,11)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "import numpy as np\n",
+ "values = v\n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,11)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "\n",
+ "\n",
+ "#part B\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nY/L8f6G/NIrkiT5JAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa6d47f0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nbKRBM81FAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x80d0f98>"
+ ]
+ }
+ ],
+ "prompt_number": 134
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter11_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter11_1.ipynb
new file mode 100644
index 00000000..aa2f8723
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter11_1.ipynb
@@ -0,0 +1,375 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:1a88ac8a4ae99a352f7f49d975099441ec02a55d62cfaa2e8c07de364172180d"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 11:Stability of Equilibrium: columns "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.2 page number 589"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "h = 60 #mm - the length of the crossection \n",
+ "b = 100 #mm - the width of hte crossection \n",
+ "E = 200 #Gpa - The youngs modulus\n",
+ "stress_cr = 250 #Mpa - The proportionality limit\n",
+ "#Caliculations \n",
+ "\n",
+ "I = b*(h**3)/12 #mm3 The momentof inertia of the crossection\n",
+ "A = h*b #mm2 - The area of teh crossection \n",
+ "#From Eulier formula\n",
+ "r_min = pow((I/A),0.5) #mm - The radius of the gyration \n",
+ "#(l/r)**2= (pi**2)*E/stress_cr #From Eulier formula\n",
+ "l = (((math.pi**2)*E*(10**3)/stress_cr)**0.5)*r_min #mm - the length after which the beam starts buckling\n",
+ "print \"The length after which the beam starts buckling is \",round(l,0),\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The length after which the beam starts buckling is 1539.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.6 page number 613"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "L = 15 #ft - The length of the each rod\n",
+ "A = 46.7 #in2 - The length of the crossection \n",
+ "r_min = 4 #in - The radius of gyration\n",
+ "stress_yp = 36 #Ksi - the yielding point stress\n",
+ "E = 29*(10**3) #ksi - The youngs modulus\n",
+ "C_c = ((2*(math.pi**2)*E/stress_yp)**0.5) #Slenderness ratio L/R\n",
+ "C_s = L*12/r_min # Slenderness ratio L/R of the present situation \n",
+ "#According to AISC formulas \n",
+ "if C_s <C_c :\n",
+ " print \"a)The following approch is solvable\"\n",
+ "else: \n",
+ " print \"The caliculation is not possible\"\n",
+ "F_S = 5.0/3 +3*C_s/(8*C_c) -(3*C_s**3)/(8*C_c**3) #Safety factor \n",
+ "Stress_all = (1 - (C_s**2)/(2*C_c**2))*stress_yp/F_S #The allowable strees \n",
+ "print \"a) The allowable stress in this case is\",round(Stress_all,2),\"Kips\" \n",
+ "#Part - B\n",
+ "#Given\n",
+ "L = 40 #ft - The length of the each rod\n",
+ "A = 46.7 #in2 - The length of the crossection \n",
+ "r_min = 4 #in - The radius of gyration\n",
+ "stress_yp = 36 #Ksi - the yielding point stress\n",
+ "E = 29*(10**3) #ksi - The youngs modulus\n",
+ "C_c = ((2*(math.pi**2)*E/stress_yp)**0.5) #Slenderness ratio L/R\n",
+ "C_s = L*12/r_min # Slenderness ratio L/R of the present situation \n",
+ "#According to AISC formulas \n",
+ "if C_s <C_c :\n",
+ " print \"b) The following approch is solvable\"\n",
+ "else: \n",
+ " print \"The caliculation is not possible\"\n",
+ "F_S = 5.0/3 +3*C_s/(8*C_c) -(3*C_s**3)/(8*C_c**3) #Safety factor \n",
+ "Stress_all = (1 - (C_s**2)/(2*C_c**2))*stress_yp/F_S #The allowable strees \n",
+ "print \"b) The allowable stress in this case is\",round(Stress_all,2),\"Kips\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)The following approch is solvable\n",
+ "a) The allowable stress in this case is 18.9 Kips\n",
+ "b) The following approch is solvable\n",
+ "b) The allowable stress in this case is 11.59 Kips\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.7 page number 614"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "L = 15 #ft - The length of the each rod \n",
+ "p = 200 #Kips The concentric load applied \n",
+ "r_min = 2.10 #in - The radius of gyration\n",
+ "stress_yp = 50 #Ksi - the yielding point stress\n",
+ "E = 29*(10**3) #ksi - The youngs modulus\n",
+ "C_c = ((2*(math.pi**2)*E/stress_yp)**0.5) #Slenderness ratio L/R\n",
+ "C_s = L*12/r_min #Slenderness ratio L/R present situation\n",
+ "if C_s <C_c :\n",
+ " print \"a)The following approch is solvable\"\n",
+ "else: \n",
+ " print \"The caliculation is not possible\"\n",
+ "F_S = 5.0/3 +3*C_s/(8*C_c) -(3*C_s**3)/(8*C_c**3) #Safety factor \n",
+ "Stress_all = (1 - (C_s**2)/(2*C_c**2))*stress_yp/F_S #The allowable strees\n",
+ "a = p/Stress_all #in2 the alloawble area of the beam \n",
+ "print \"The allowable stress in this case is\",round(Stress_all,2),\"Kips\"\n",
+ "print \"This stress requires \",round(a,2),\"in2\"\n",
+ "if a <11.5:\n",
+ " print \"This case is satisfying W8x24 section\" #From AISC Manual \n",
+ "else:\n",
+ " print \"This case is not satisfying W8x24 section\"\n",
+ " #The ans are quiet varying because of rounding\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)The following approch is solvable\n",
+ "The allowable stress in this case is 19.14 Kips\n",
+ "This stress requires 10.45 in2\n",
+ "This case is satisfying W8x24 section\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.8 pagenumber 614 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "L = 15.0 #ft - The length of the each rod\n",
+ "A = 46.7 #in2 - The length of the crossection \n",
+ "r_min = 4 #in - The radius of gyration\n",
+ "stress_yp = 36.0 #Ksi - the yielding point stress\n",
+ "E = 29*(10**3) #ksi - The youngs modulus\n",
+ "lamda = L*12*((stress_yp/E)**0.5)/(4*(math.pi)) #column slenderness ratio\n",
+ "if lamda<1.5:\n",
+ " print \"The following approach is right\"\n",
+ "else:\n",
+ " print \"The following approach is wrong\"\n",
+ "stress_cr = (0.658**(lamda**2))*stress_yp #Ksi - The critical stress \n",
+ "P_n = stress_cr*A #Kips #Nominal compressive strength \n",
+ "o = 0.85 #Resistance factor\n",
+ "p_u = o*P_n #Kips ,column design compressive strength \n",
+ "print \"column design compressive strength \",p_u,\"Kips\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The following approach is right\n",
+ "column design compressive strength 1284.51846781 Kips\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.9 page number 615"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#FOR FLANGS\n",
+ "l = 5 #in - The length of the flang\n",
+ "b = 5 #in - Teh width of the flang\n",
+ "t = 0.312 #in - the thickness of the flang\n",
+ "L = 20 #in - Length of the beam, Extracted from AISC manuals\n",
+ "A = 4.563 #in2 - The area of crossection of the beam\n",
+ "r = 1.188 #in - radius of the gyration, Extracted from AISC manuals \n",
+ "#b/t- value of the flang \n",
+ "k = (5 -t)/(2*t) #b/t ratio \n",
+ "#AISC, lets check maximum allowable stress for slang\n",
+ "Stressf_all = 23.1 - 0.79*k #ksi The maximum allowable stress in case of flang,AISC\n",
+ "\n",
+ "#web width thickness ratio\n",
+ "k_2 = (5 -2*t)/(t)\n",
+ "if k_2<16:\n",
+ " Stressw_all = 19 #ksi - The allowable stress in case of web width\n",
+ " \n",
+ "#a) Overall buckling investment \n",
+ "k_3 = L/r #slenderness ratio\n",
+ "Stressb_all = 20.2 - 0.216*k_3#ksi The maximum allowable stress in case of Buckling,AISC\n",
+ "p_allow = A*Stressb_all #Kips The allowable concentric load \n",
+ "\n",
+ "#b) Overall buckling investment\n",
+ "L_2 = 60 #in \n",
+ "k_3 = L_2/r #slenderness ratio\n",
+ "Stressb_all_2 = 20.2 - 0.126*k_3#ksi The maximum allowable stress in case of Buckling,AISC\n",
+ "p_allow_2 = A*Stressb_all_2 #Kips The allowable concentric load \n",
+ "\n",
+ "print \"The maximum allowable stress in case of web width\",round(Stressw_all,2),\"Ksi\"\n",
+ "print \"The maximum allowable stress in case of flang\",round(Stressf_all,2),\"Ksi\"\n",
+ "print \"a) The maximum allowable load in case of Buckling\",round(p_allow,2),\"Kips\"\n",
+ "print \"b) The maximum allowable load in case of Buckling\",round(p_allow_2,2),\"Kips\"\n",
+ "\n",
+ "\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum allowable stress in case of web width 19.0 Ksi\n",
+ "The maximum allowable stress in case of flang 17.16 Ksi\n",
+ "a) The maximum allowable load in case of Buckling 75.58 Kips\n",
+ "b) The maximum allowable load in case of Buckling 63.14 Kips\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 11.11 page number 620 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "P = 200.0 #K The force on the beam \n",
+ "L = 15 #ft - The length of the rod\n",
+ "F_y = 50.0 #Ksi \n",
+ "F_a = F_y/(5.0/3) #Ksi -AISC MANUAL ,allowable axial stress if axial force is alone\n",
+ "F_b = F_a #Allowable compressive bending stress\n",
+ "M_1 = 600.0 #k-in - The moment acting on the ends of the rod\n",
+ "M_2 = 800.0 #k-in - the moment acting on the other end of teh rod\n",
+ "B_x = 0.264 #in - Extracted from AISC manual \n",
+ "A = P/F_a + M_2*B_x/F_b #in2- The minimum area \n",
+ "print \"The minimum area is \",round(A,2),\"in2\"\n",
+ "#we will select W10x49 section \n",
+ "A_s = 14.4 #in2 - The area of the section \n",
+ "r_min = 2.54 #in The minimum radius \n",
+ "r_x = 4.35 #in \n",
+ "f_a = P/A_s #Ksi- The computed axial stress\n",
+ "f_b = M_2*B_x/A_s #Computed bending stess\n",
+ "C_c = ((2*(math.pi**2)*E/F_y)**0.5) #Slenderness ratio L/R\n",
+ "C_s = L*12/r_min # Slenderness ratio L/R of the present situation\n",
+ "if C_s <C_c :\n",
+ " print \"The following approch is solvable\"\n",
+ "else: \n",
+ " print \"The caliculation is not possible\"\n",
+ "F_a_1 = 19.3 #Ksi - AISC lets try this\n",
+ "c_m = 0.6 - 0.4*(-M_1/M_2) \n",
+ "F_e = (12*(math.pi**2)*E)/(23*(L*12/r_x)**2) \n",
+ "k = f_a/F_a_1 + c_m*f_b*(1-(f_a/F_e))/F_b #Condition mentioned in AISC\n",
+ "if k>1:\n",
+ " print \"The following W10x49 section is not satisfying our constraints since f_a/F_a_1 + c_m*f_b*(1-(f_a/F_e))/F_b\",round(k,3),\">1\"\n",
+ "else:\n",
+ " print \"The following W10x49 section is satisfying our constraints since f_a/F_a_1 + c_m*f_b*(1-(f_a/F_e))/F_b\",k,\"<1\"\n",
+ " \n",
+ "#trail - 2\n",
+ "#Lets take W10 x 60\n",
+ "A_s = 17.6 #in2 - The area of the section \n",
+ "r_min = 2.57 #in The minimum radius \n",
+ "r_x = 4.39 #in \n",
+ "f_a = P/A_s #Ksi- The computed axial stress\n",
+ "f_b = M_2*B_x/A_s #Computed bending stess\n",
+ "C_c = ((2*(math.pi**2)*E/F_y)**0.5) #Slenderness ratio L/R\n",
+ "C_s = L*12/r_min # Slenderness ratio L/R of the present situation\n",
+ "if C_s <C_c :\n",
+ " print \"The following approch is solvable\"\n",
+ "else: \n",
+ " print \"The caliculation is not possible\"\n",
+ "F_a_1 = 19.3 #Ksi - AISC lets try this\n",
+ "c_m = 0.6 - 0.4*(-M_1/M_2) \n",
+ "F_e = (12*(math.pi**2)*E)/(23*(L*12/r_x)**2) \n",
+ "k = f_a/F_a_1 + c_m*f_b*(1-(f_a/F_e))/F_b #Condition mentioned in AISC\n",
+ "if k>1:\n",
+ " print \"The following W10x49 section is not satisfying our constraints since f_a/F_a_1 + c_m*f_b*(1-(f_a/F_e))/F_b\",round(k,3),\">1\"\n",
+ "else:\n",
+ " print \"The following W10x49 section is satisfying our constraints since f_a/F_a_1 + c_m*f_b*(1-(f_a/F_e))/F_b\",round(k,2),\"<1\"\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimum area is 13.71 in2\n",
+ "The following approch is solvable\n",
+ "The following W10x49 section is not satisfying our constraints since f_a/F_a_1 + c_m*f_b*(1-(f_a/F_e))/F_b 1.09 >1\n",
+ "The following approch is solvable\n",
+ "The following W10x49 section is satisfying our constraints since f_a/F_a_1 + c_m*f_b*(1-(f_a/F_e))/F_b 0.9 <1\n"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter12_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter12_1.ipynb
new file mode 100644
index 00000000..13fb52c7
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter12_1.ipynb
@@ -0,0 +1,405 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:aaf5a5f62a391d916c40aa2d720de6a3e7681d1c9c64ec2fdbeff148819b3c75"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter 12:Energy and Virtual-work Methods"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.1 page number 645 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "#Virtual loading\n",
+ "p_ab = -0.833 #lb The recorded virtual loading\n",
+ "p_bc = + 0.833 #lb The recorded virtual loading\n",
+ "F_ab = 2500 #lb\n",
+ "F_bc = -2500 #lb\n",
+ "l_ab = 60 #in - The length of the rod\n",
+ "l_bc = 60 #in - The length of the rod\n",
+ "A_ab = 0.15 #in2 the areaof ab\n",
+ "A_bc = 0.25 #in2 the areaof bc\n",
+ "E = 30*(10**6) #psi The youngs modulus of the material\n",
+ "#Part_a\n",
+ "e_a =p_ab*l_ab*F_ab/(A_ab*E) + p_bc*l_bc*F_bc/(A_bc*E) #in the deflection\n",
+ "if e_a<0:\n",
+ " print \"a) The deflection is downwards\",round(-e_a,3),\"in\"\n",
+ "else:\n",
+ " print \"a) The deflection is upwards\",round(e_a,3),\"in\"\n",
+ "#part-b\n",
+ "x = 0.125 #Shortening of member Ab\n",
+ "e_b = p_ab*(-x) + p_bc*0 #in - in\n",
+ "if e_b<0:\n",
+ " print \"b) The deflection is downwards\",round(-e_b,3),\"in\"\n",
+ "else:\n",
+ " print \"b) The deflection is upwards\",round(e_b,3),\"in\"\n",
+ "#Part-c\n",
+ "S = 6.5*(10**-6) #Thermal specific heat\n",
+ "T = 120 #F - The cahnge in temperature\n",
+ "e_t = -S*T*l_ab #in - The change in length of member\n",
+ "e_c = p_bc*e_t #in the deflection\n",
+ "if e_c<0:\n",
+ " print \"c) The deflection is downwards\",round(-e_c,3),\"in\"\n",
+ "else:\n",
+ " print \"c) The deflection is upwards\",round(e_c,3),\"in\"\n",
+ "\n",
+ "\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a) The deflection is downwards 0.044 in\n",
+ "b) The deflection is upwards 0.104 in\n",
+ "c) The deflection is downwards 0.039 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.3 page number 648"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "#Virtual loading\n",
+ "#Two parts \n",
+ "#Part -1 \n",
+ "p_ab = 5 #KN The recorded virtual loading\n",
+ "p_bc = -4 #KN The recorded virtual loading\n",
+ "F_ab = 10 #KN\n",
+ "F_bc = -8 #KN\n",
+ "l_ab = 2.5 #mt - The length of the rod\n",
+ "l_bc = 2 #mt - The length of the rod\n",
+ "A_ab = 5*(10**-4) #mt2 the areaof ab\n",
+ "A_bc = 5*(10**-3) #mt2 the areaof bc\n",
+ "E = 70 #Gpa The youngs modulus of the material\n",
+ "e_a =(p_ab*l_ab*F_ab/(A_ab*E) + p_bc*l_bc*F_bc/(A_bc*E))*(10**-6) #KN-m\n",
+ "#Part -2 due to flexure\n",
+ "I = 60*10**6 #mm4 - the moment of inertia \n",
+ "#After solving the integration \n",
+ "e_b = 0.01525 #KN-m\n",
+ "#Total\n",
+ "e = (e_a+e_b)*1 #m\n",
+ "print \"The point C deflects\",round(e,3),\"mt down\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The point C deflects 0.019 mt\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.5 page number 651"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "#Virtual loading Without f_d\n",
+ "p_ab = -0.833 #lb The recorded virtual loading\n",
+ "p_bc = + 0.833 #lb The recorded virtual loading\n",
+ "F_ab = 2500 #lb\n",
+ "F_bc = -2500 #lb\n",
+ "l_ab = 60 #in - The length of the rod\n",
+ "l_bc = 60 #in - The length of the rod\n",
+ "A_ab = 0.15 #in2 the areaof ab\n",
+ "A_bc = 0.25 #in2 the areaof bc\n",
+ "E = 30*(10**6) #psi The youngs modulus of the material\n",
+ "#Part_a\n",
+ "e_a =p_ab*l_ab*F_ab/(A_ab*E) + p_bc*l_bc*F_bc/(A_bc*E) #lb-in the deflection\n",
+ "#With f_d\n",
+ "p_bd = 1 #lb The recorded virtual loading \n",
+ "F_bd = 1 #lb\n",
+ "l_bd = 40 #in - The length of the rod\n",
+ "A_bd = 0.1 #in2 the areaof ab\n",
+ "e_a_1 =p_ab*p_ab*l_ab/(A_ab*E) + p_bc*p_bc*l_bc/(A_bc*E) +p_bd*p_bd*l_bd/(A_bd*E) #lb-in the deflection\n",
+ "#Since the produced defelection should compensate the other one\n",
+ "x_d = e_a/e_a_1\n",
+ "print \"The reaction force at D is\",round(-x_d,2),\"lb\"\n",
+ "\n",
+ "#Part - B\n",
+ "e_b = -x_d*l_bd/(A_bd*E ) #in - The deflection of nodal point B\n",
+ "print\"The deflection of nodal point B\",round(e_b,4),\"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reaction force at D is 1578.98 lb\n",
+ "The deflection of nodal point B 0.0211 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.6 page number 655"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "#Virtual loading\n",
+ "p_ab = -0.833 #lb The recorded virtual loading\n",
+ "p_bc = + 0.833 #lb The recorded virtual loading \n",
+ "l_ab = 60 #in - The length of the rod\n",
+ "l_bc = 60 #in - The length of the rod\n",
+ "A_ab = 0.15 #in2 the areaof ab\n",
+ "A_bc = 0.25 #in2 the areaof bc\n",
+ "E = 30*(10**6) #psi The youngs modulus of the material\n",
+ "K_1 = A_ab*E/l_ab #k/in - Stiffness\n",
+ "K_2 = A_bc*E/l_bc #k/in - Stiffness\n",
+ "#soving for e_1 and e_2 gives a liner euations to solve\n",
+ "# 128*e_1 + 24*e_2 = 0\n",
+ "#24*e_1 + 72*e_2 = -3\n",
+ "#Solving for e_1,e_2\n",
+ "a = np.array([[128,24], [24,72]])\n",
+ "b = np.array([0,-3])\n",
+ "x = np.linalg.solve(a, b)\n",
+ "e_1 = x[0] #in\n",
+ "e_2 = x[1] #in\n",
+ "u_1 = 0.8*e_1 - 0.6*e_2 #Taking each components\n",
+ "F_1 = K_1*u_1*(10**-3) #k The reaction at A Force = stiffness x dislacement \n",
+ "u_2 = 0.8*e_1 + 0.6*e_2 #Taking each components\n",
+ "F_2 = K_2*u_2*(10**-3) #k The reaction at B Force\n",
+ "print \"The reaction at A \",F_1,\"k\"\n",
+ "print \"The reaction at B \",F_2,\"k\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reaction at A 2.5 k\n",
+ "The reaction at B -2.5 k\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.7 page number 655"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Virtual loading\n",
+ "p_ab = -0.833 #lb The recorded virtual loading\n",
+ "p_bc = + 0.833 #lb The recorded virtual loading \n",
+ "l_ab = 60 #in - The length of the rod\n",
+ "l_bc = 60 #in - The length of the rod\n",
+ "A_ab = 0.15 #in2 the areaof ab\n",
+ "A_bc = 0.25 #in2 the areaof bc\n",
+ "E = 30*(10**6) #psi The youngs modulus of the material\n",
+ "K_1 = A_ab*E/l_ab #k/in - Stiffness\n",
+ "K_2 = A_bc*E/l_bc #k/in - Stiffness\n",
+ "p_bd = 1 #lb The recorded virtual loading \n",
+ "F_bd = 1 #lb\n",
+ "l_bd = 40 #in - The length of the rod\n",
+ "A_bd = 0.1 #in2 the areaof ab\n",
+ "K_3 = A_ab*E/l_ab #k/in - Stiffness\n",
+ "#soving for e_1 and e_2 gives a liner euations to solve\n",
+ "# 128*e_1 + 24*e_2 = 0\n",
+ "#24*e_1 + 72*e_2 = -3\n",
+ "#Solving for e_1,e_2\n",
+ "a = np.array([[128,24], [24,147]])\n",
+ "b = np.array([0,-3])\n",
+ "x = np.linalg.solve(a, b)\n",
+ "e_1 = x[0] #in\n",
+ "e_2 = x[1] #in\n",
+ "u_1 = 0.8*e_1 - 0.6*e_2 #Taking each components\n",
+ "F_1 = K_1*u_1*(10**-3) #k The reaction at A Force = stiffness x dislacement \n",
+ "u_2 = 0.8*e_1 + 0.6*e_2 #Taking each components\n",
+ "F_2 = K_2*u_2*(10**-3) #k The reaction at B Force\n",
+ "u_3 = e_2 #Taking each components\n",
+ "F_3 = K_3*u_3*(10**-3) #k The reaction at D Force\n",
+ "print \"The reaction at A \",round(F_1,2),\"k\"\n",
+ "print \"The reaction at B \",round(F_2,2),\"k\"\n",
+ "print \"The reaction at D \",round(F_3,2),\"k\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reaction at A 1.18 k\n",
+ "The reaction at B -1.18 k\n",
+ "The reaction at D -1.58 k\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.8 page number 659"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "#First we will solve part B\n",
+ "u_1 =5 #L/AE, elastic elongation\n",
+ "u_2 =25 #L/AE,elastic elongation\n",
+ "f_1 = u_1#, Units got neutralized , Constitutive relation for elastic bars\n",
+ "f_2 = u_2# Units got neutralized\n",
+ "#u_1 = 0.8*e_1 - 0.6*e_2\n",
+ "#u_2 = 0.8*e_1 + 0.6*e_2\n",
+ "#u = A*e Matric multiplication \n",
+ "A = np.array([[0.8,-0.6],[0.8,0.6]]) #The matrix form of A\n",
+ "F = np.array([[f_1],[f_2]])\n",
+ "P = np.dot((A.T),F) #Nodal forces matrix\n",
+ "print \"b) The vertical component of the nodal force is\",P[1],\"\"\n",
+ "print \"b) The vertical component of the nodal force is\",P[0],\"\"\n",
+ "#Part A\n",
+ "#F_1 = (5/8.0)*P_1 - (5/6.0)*p_2 , From statics\n",
+ "#F_1 = (5/8.0)*P_1 + (5/6.0)*p_2\n",
+ "#F = BP ,Matric multiplication \n",
+ "B = np.array([[(5/8.0),-(5/6.0)],[(5/8.0),(5/6.0)]]) #The matrix form of A\n",
+ "U = np.array([[u_1],[u_2]])\n",
+ "e = P = np.dot((B.T),U) #L/AE, Nodal forces matrix\n",
+ "print \"a) The components of displacement of point B are\",round(e[0],2),\"L/AE and\",round(e[1],2),\"L/AE\" \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "b) The vertical component of the nodal force is [ 12.] \n",
+ "b) The vertical component of the nodal force is [ 24.] \n",
+ "a) The components of displacement of point B are 18.75 L/AE and 16.67 L/AE\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 12.10 page number 667"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "A_1 = 0.125 #in2 , The area of the crossection of AB\n",
+ "A_2 = 0.219 #in2 , The area of the crossection of BC\n",
+ "l_1 = 3*(5**0.5) #in , The length of AB\n",
+ "l_2 = 6*(2**0.5) #in , The length of BC\n",
+ "p = 3 #k , Force acting on the system \n",
+ "E = 10.6*(10**3) #Ksi - youngs modulus of the material\n",
+ "p_1 = (5**0.5)*p/3 #P, The component of p on AB\n",
+ "p_2 = -2*(2**0.5)*p/3 #P, The component of p on AB\n",
+ "\n",
+ "e = p_1*l_1*p_1/(p*E*A_1) + p_2*l_2*p_2/(p*E*A_2) #in, By virtual deflection method \n",
+ "print \"The deflection is\",round(e,3),\"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The deflection is 0.018 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter13.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter13.ipynb
new file mode 100644
index 00000000..eee745f5
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter13.ipynb
@@ -0,0 +1,215 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:996c8013a65a6364550b3850a6d724fb8ccb944aba88d1755142b6b2b68c6a46"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 13: Statically Indeterminate Problems"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.2 page number 693"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#First we will solve without the reaction at middle\n",
+ "#Given\n",
+ "import numpy\n",
+ "l_ab = 1.0 #2L in - The length of the beam\n",
+ "F_D = 1.0 #W lb/in - The force distribution \n",
+ "F = F_D*l_ab #WL - The force applied\n",
+ "#Beause of symmetry the moment caliculations can be neglected\n",
+ "#F_Y = 0\n",
+ "R_A = F/2 #wl - The reactive force at A\n",
+ "R_B = F/2 #wl - The reactive force at B\n",
+ "#EI - The flxure rigidity is constant and 1/EI =1 # k\n",
+ "\n",
+ "#part - A\n",
+ "#section 1--1\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.2L distance \n",
+ "M_1 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "v = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " v[i] = R_A - F_D*l_1[i] \n",
+ " M_1[i] = R_A*l_1[i] - F_D*(l_1[i]**2)/2\n",
+ "# (EI)y'' = M_1[i] we will integrate M_1[i] twice where variable is l_1[i]\n",
+ "#(EI)y'- \n",
+ "\n",
+ "M_1_intg1 = R_A*(l_1[i]**2)/4 - F_D*(l_1[i]**3)/6 - F_D*(l_ab**3)*l_1[i]/24 #integration of x**n = x**n+1/n+1\n",
+ "#(EI)y- Using end conditions for caliculating constants \n",
+ "\n",
+ "M_1_intg2 = R_A*(l_1[i]**3)/12.0 - F_D*(l_1[i]**4)/24.0 + F_D*(l_ab**3)*l_1[i]/24.0 \n",
+ "#Equations \n",
+ "\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.2L distance \n",
+ "M_1_intg2 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "Y = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " M_1_intg2[i] = (l_1[i]**3)/12.0 - (l_1[i]**4)/24.0 - l_1[i]/24.0 # discluding every term for ruling out float values\n",
+ " Y[i] = M_1_intg2[i] #W(l**4)/EI k = 1/EI\n",
+ "Y_min = 16*min(Y)\n",
+ "print \"a) The maximum displacement in y direction is\",16*min(Y),\"W(l**4)/EI \"\n",
+ "print \"a) The maximum deflection occured at\",2*l_1[Y.index(min(Y))],\"L\"\n",
+ "f_bb = 2**3/48.0 #l**3/EI - flexibility coefficient\n",
+ "Reac = - Y_min/f_bb #WL , The reaction at the mid of the bar\n",
+ "print \"The reaction at the mid of the bar\",Reac ,\"WL\"\n",
+ "\n",
+ "#Graphs \n",
+ "Y.extend(Y) #Because of symmetry\n",
+ "import numpy as np\n",
+ "values = Y \n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,22)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "print \"b)The above graph is beam displacement graph\"\n",
+ "print \"b)The minimum occures in the middle from the above graph \"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a) The maximum displacement in y direction is -0.208333333333 W(l**4)/EI \n",
+ "a) The maximum deflection occured at 1.0 L\n",
+ "The reaction at the mid of the bar 1.25 WL\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEACAYAAABCl1qQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8VPWd//HXR0Ai9QJ4AUQQN4CIlouuCtbiaAVisSpr\n1fKrFnBX/UkLSu0qqJWwXbeiv4IFaq03pNpWu7VaSqyQtYx4AV0R5CLhVlCQQkVBVEgkyef3Rw4x\nxElOMhPmzGTez8fjPDjnzPc785kzJ+fNuc2YuyMiIlKfQ6IuQEREMp/CQkREQiksREQklMJCRERC\nKSxERCSUwkJEREKlHBZmVmBmJWa2zsxuq6PN9ODxt82sf1hfM2tvZsVmttbM5ptZ21TrFBGR5KUU\nFmbWApgJFAC9gRFmdkqtNt8Eurt7D+B64JcN6DsBKHb3nsCLwbSIiEQk1T2Ls4D17r7J3fcBTwGX\n1mpzCTAbwN1fB9qaWceQvtV9gn8vS7FOERFJQaph0RnYXGN6SzCvIW2Or6dvB3ffHoxvBzqkWKeI\niKQg1bBo6HeFWAPbfOn5vOr7SPSdJCIiEWqZYv/3gS41prtQtYdQX5sTgjatEsx/PxjfbmYd3X2b\nmXUC/pHoxc1MISIi0kju3pD/wB8g1T2LN4EeZtbNzA4FrgLm1GozB/gegJkNAHYFh5jq6zsHGBmM\njwSeq7uEqh2PoUPvxN1zdpg0aVLkNWTKcLCWxZAhd1SvbzWHhq57qfbPlOWQjUOuL4sD173kpBQW\n7l4O/ACYB7wDPO3uq83sBjO7IWjzPPA3M1sP/AoYU1/f4KnvAQab2VrggmC6Tvn5tzN27OBU3opI\nqHHjhpCff8cB8xqz7qXaXyRZida9xkr1MBTu/hfgL7Xm/arW9A8a2jeY/xFwYUNef+jQHzN2bAHD\nhg1qcM0iydi/js2Y8WNKS1uQl1fRqHUv1f4iyaq57s2bl9xzmHv2HvY3M8/m+ptSPB4nFotFXUZG\n0LKoouXwBS2LL5gZnsQ5C4WFiEgOSTYs9N1QIiISSmEhIiKhFBYiIhJKYSEiIqEUFiIiEkphISIi\noRQWIiISSmEhIiKhFBYiIhJKYSEiIqEUFiIiEkphISIioRQWIiISSmEhIiKhFBYiIhJKYSEiIqEU\nFiIiEkphISIioRQWIiISSmEhIiKhFBYiIhIqpbAws/ZmVmxma81svpm1raNdgZmVmNk6M7strL+Z\nDTazN81sefDv+anUKSIiqUl1z2ICUOzuPYEXg+kDmFkLYCZQAPQGRpjZKSH9PwAudvc+wEjgiRTr\nFBGRFJi7J9/ZrAQ4z923m1lHIO7uvWq1GQhMcveCYHoCgLvf08D+BuwAOrr7vlqPeSr1i4jkGjPD\n3a2x/VLds+jg7tuD8e1AhwRtOgOba0xvCeY1tP/lwJLaQSEiIunTMqyBmRUDHRM8dEfNCXd3M0v0\n3/za8yzBvIT9zexU4B5gcF31FRYWVo/HYjFisVhdTUVEck48Hicej6f8PE1xGCrm7tvMrBOwIMFh\npAFAYY3DUBOBSnefUl9/MzuBqvMYo9x9UR2vr8NQIiKNENVhqDlUnYAm+Pe5BG3eBHqYWTczOxS4\nKuhXZ//gqqgi4La6gkJERNIn1T2L9sDvga7AJuBKd99lZscDD7v7sKDdRcD9QAvgUXf/aUj/O6m6\nMmpdjZcb7O47ar2+9ixERBoh2T2LlMIiagoLEZHGieowlIiI5ACFhYiIhFJYiIhIKIWFiIiEUliI\niEgohYWIiIRSWIiISCiFhYiIhFJYiIhIKIWFiIiEUliIiEgohYWIiIRSWIiISCiFhYiIhFJYiIhI\nKIWFiIiEUliIiEgohYWIiIRSWIiISCiFhYiIhFJYiIhIKIWFiIiEUliIiEiopMPCzNqbWbGZrTWz\n+WbWto52BWZWYmbrzOy2hvY3s65m9qmZ3ZJsjSIi0jRS2bOYABS7e0/gxWD6AGbWApgJFAC9gRFm\ndkoD+08FilKoT0REmkgqYXEJMDsYnw1clqDNWcB6d9/k7vuAp4BLw/qb2WXA34B3UqhPRESaSMsU\n+nZw9+3B+HagQ4I2nYHNNaa3AGfX19/MDgduBS4E/j2F+upUVLSQ6dPnU1bWktatyxk3bgjDhg06\nGC8lGSbbP/tsr1+SF/VnX29YmFkx0DHBQ3fUnHB3NzNP0K72PEswr3b/QmCau+8xM6uvPoDCwsLq\n8VgsRiwWq7d9UdFCbrppHhs23F09b8OGqrejP7rmLds/+2yvX5KXymcfj8eJx+OpF+HuSQ1ACdAx\nGO8ElCRoMwB4ocb0ROC2+voDC4GNwbAT+BAYU0cN3lhDhtzh4F8ahg69s9HPJdkl2z/7bK9fkteU\nn32w3Wz0Nj+VcxZzgJHB+EjguQRt3gR6mFk3MzsUuCroV2d/dx/k7ie5+0nA/cDd7v5ACnUeoKws\n8c5UaWmLpnoJyVDZ/tlne/2SvEz47FMJi3uAwWa2FrggmMbMjjezIgB3Lwd+AMyj6mT10+6+ur7+\nB1vr1uUJ5+flVaTj5SVC2f7ZZ3v9kryM+OyT2R3JlIEkDkPNnfuS5+fffsCuXH7+RJ8796VGP5dk\nl2z/7LO9fkleU372JHkYyqr6Zicz82TqLypayIwZxZSWtiAvr4KxYwfrBGGOyPbPPtvrl+Q11Wdv\nZrh76MVDX+qXi2EhIpKrkg0LfTeUiIiEUliIiEgohYWIiIRSWIiISCiFhYiIhFJYiIhIKIWFiIiE\nUliIiEgohYWIiIRSWIiISCiFhYiIhFJYiIhIKIWFiIiEUliIiOSIsvKypPtmfVi8tvm1qEsQEcl4\nL7/7Mv1+1S/p/lkfFt/+/bcZUzSGj0s/jroUEZGMs3PvTq7/8/WMeGYE/3n+fyb9PFkfFqvGrKKi\nsoLeD/TmmXeeQT+GJCJS9ZPZT698mlMfOJVWh7Ri1ZhVXN778qSfr9n8Ut4r773C9X++nu7tu/OL\nb/6CLkd1ibg6EZFovLvrXcY8P4b3Pn6Phy5+iIFdBlY/lvO/lHdu13NZesNSzjz+TPr/qj8/X/xz\nKioroi5LRCRtyivLmbpoKmc8dAbndjmXJdcvOSAoUtFs9ixqWrNjDTfMvYE9+/bw0Lceol/H5E/q\niIhkgyVbl3D93Otpl9eOBy9+kO7tuydsl+yeRbMMC6g6Xjdr2SwmvjiRkX1HUhgrpE2rNmmuUETk\n4Pr080+5a8Fd/HbFb7l38L1c0+cazOrOgrQfhjKz9mZWbGZrzWy+mbWto12BmZWY2Tozu60h/c2s\nj5ktMrOVZrbczFonUR/X9r+WFTeu4P1P3ue0B05j3vp5yb1ZEZEMVLS2iNMeOI0P937IyjEr+V7f\n79UbFKlIes/CzO4Fdrj7vUEItHP3CbXatADWABcC7wP/C4xw99V19TezlsAS4Gp3X2Fm7YCP3b0y\nQQ117lnUNm/9PG4supGBXQYybeg0jvvKcUm9bxGRqG37dBs3vXATS7Yu4cGLH+TCf7qwwX2jOMF9\nCTA7GJ8NXJagzVnAenff5O77gKeAS0P6DwGWu/sKAHffmSgoGmto96GsHLOSE444gdMeOI1H33qU\nytSfVkQkbSq9koeWPESfX/ahe7vurLhxRaOCIhWp7FnsdPd2wbgBH+2frtHm28BQd78umL4aONvd\nx9bV38xuBk4HjgOOBZ5y9/vqqKHBexY1Ldu2jBuLbqS8spz7h97P17p+rdHPISKSTgvfXcj4eePJ\na5nHg8Me5KsdvprU8yS7Z9Ey5EmLgY4JHrqj5oS7u5kl2mrXnmcJ5tXu3xI4F/hnYC/wopktcfe/\nJqqxsLCwejwWixGLxRK+l5r6dezHq9e+ylMrn2LEMyMY2GUgUy6cQre23UL7ioik04aPNnDr/9zK\nkq1LmHLhFK489cpGnZeIx+PE4/GU60hlz6IEiLn7NjPrBCxw91612gwACt29IJieCFS6+5S6+pvZ\nVcBF7j4q6HMnUOru/y9BDUntWdS0Z98efvbaz/j56z/nutOvY+LXJ3Jk6yNTek4RkVR9XPoxd798\nN48tfYxbBt7CzQNu5rBWh6X8vFGcs5gDjAzGRwLPJWjzJtDDzLqZ2aHAVUG/+vrPB75qZocFJ7vP\nA1alUGe92rRqw4/P+zHLb1zOts+20WtmLx556xHd0CcikSivLOfBNx/k5Jkn89Hej1g5ZiUTvz6x\nSYIiFansWbQHfg90BTYBV7r7LjM7HnjY3YcF7S4C7gdaAI+6+0/r6x889l1gIlWHrIpqX2VVo4aU\n9yxqW7J1CePnjWd32W6mDp3KBSdd0KTPLyJSl+INxfxw/g85ps0xTBs67aDcUKyb8pqQu/PH1X/k\n34v/nT4d+nDf4PvocXSPJn8dERGAkh0l/Gj+j1jz4RruG3wfl5586cG7XyLXvxuqKZkZl/e+nHe+\n/w7ndDmHgY8O5IfzfsjOvTujLk1EmpGP9n7ETX+5ia/P+jrndzuflTeu5LJelx20oEiFwqIeeS3z\nuPVrt7JqzCo++/wzev2iF7944xeUV5ZHXZqIZLF9FfuY/vp0es3sRXllOe+MeYdbzrmF1i0b/WUV\naaPDUI2wYvsKxs8bz9ZPtvKzIT+joHtBRv4PQEQyk7tTtK6IH83/ESe2PZGpQ6Zy6nGnprUGnbNI\nE3dn7tq53Po/t3L0YUczOTaZC066QKEhInVyd4r/Vsyk+CR2l+3mvsH3cVH3iyLZbigs0qyisoKn\nVj7F5Jcm0+mITkyOTSbWLRZJLSKSmdydFze+SGG8kA/3fsik8yZxRe8raHFIi8hqUlhEpLyynN+u\n+C0/WfgTTjjyBCbHJjPoxEGR1iQi0VuwcQGT4pPY/tl27hp0F9857TuRhsR+CouIlVeW8+TyJ/nJ\nwp/QrW03Jscmc27Xc6MuS0TS7KVNLzEpPon3P3mfuwbdxYivjqDlIfV+s1JaKSwyxL6KfTyx/Al+\nsvAndG/fncmxyZzT5ZyoyxKRg+zld19mUnwS7378LncNuovv9vluRoXEfgqLDPN5xefMXjabu1++\nm17H9GJybDJnn3B21GWJSBN7bfNrTIpPYsNHG7hz0J1c0+caWrVoFXVZdVJYZKjPKz5n1tJZ3P3y\n3Zx23GlMjk3mzM5nRl2WiKRo8ZbFTIpPYs2ONdw56E5G9h2Z0SGxn8Iiw5WVl/HY0sf4r1f+i74d\n+lIYK+Sfj//nqMsSkUZ6fcvrFL5UyKp/rOKOr9/B6P6jObTFoVGX1WAKiyxRWl7KI289wpRXp5Df\nLp/xA8Zzcc+LM+IqCRFJrKKygjlr5jBt8TQ27drExHMncm3/azP6juu6KCyyzL6KffzhnT8wdfFU\ndu7dyc0DbmZUv1EcfujhUZcmIoFPyj7hsaWPMf2N6Rzb5ljGDxjPv5zyL1lxuKkuCoss5e68uvlV\npi2exkubXuLa/tcy9qyxdDmqS9SlieSsTbs2MeP1GTz+9uN846RvMH7AeAZ2GRh1WU1CYdEMbNy5\nkemvT2f227MZkj+E8QPG6woqkTRatHkRUxdP5a8b/8rofqMZe9ZYTmx7YtRlNSmFRTOyu2w3j771\nKNPfmE6nwzsxfsB4hp8yPCOv2RbJdvsq9vHM6me4f/H9fLDnA246+yZG9xvNEa2PiLq0g0Jh0QyV\nV5bzp5I/MW3xNLbs3sLYs8byb6f/G0flHRV1aSJZb+fenTz81sPMfGMmJ7U7ifEDxvOtnt9q9heb\nKCyauf99/3+ZtngaL6x/gWv6XMO4s8eR3z4/6rJEss66D9cx/fXp/GbFbxjWcxg3n30zZxx/RtRl\npY3CIkds2b2FmW/M5JG3HqFPhz6M7jeay3tfTptWbaIuTSRjffb5Z/zhnT8wa9ksVn2wiutOv47v\nn/l9Oh/ZOerS0k5hkWPKysuYs2YOs5bNYvGWxVx+yuWM7j+agScM1G9riFB1peEr773C48se548l\nf+Tcrucyqu8ovnXyt7LqJrqmprBIk6KihUyfPp+yspa0bl3OuHFDGDYs2q8kf3/3+zy5/ElmLZuF\n44zqO4rv9f1es/xfUyYu/2ySC8tv88eb+fXbv+bxtx+n1SGtGN1vNFf3uZpOR3SKurSMWP7JhgXu\nnrVDVfnpM3fuS56ff7uDVw/5+bf73LkvpbWOulRWVvpr773m1825ztvd084Lnizwp1c+7Xv37Y26\ntCaR6cs/0zXn5bd3317/3Yrf+ZAnhni7e9r5DX++wRdvXuyVlZVRl1YtU5Z/sN1s/PY2mU6ZMqQ7\nLIYMueOAD3r/MHTonWmtoyE++/wzf+LtJ/yC2Rf40VOO9u8Xfd/ffP/NjPrjaaxsWv6ZqLktv8rK\nSn99y+v+f//8f739lPY++NeD/TfLf+N7Pt8TdWkJZcryTzYskr5w38zaA08DJwKbgCvdfVeCdgXA\n/UAL4BF3n1JffzPLA2YBpwItgV+7+z3J1tmUysoSL67S0sy71K5NqzZc3edqru5zNZt2beLXb/+a\nK/77Cg4/9HBG9RvF1X2u5rivHBd1mY2STcs/EzWX5bft0208ufxJHl/2OKXlpYzqN4qlNyyl61Fd\noy6tXtm+/A9Joe8EoNjdewIvBtMHMLMWwEygAOgNjDCzU0L6fwfA3fsAZwA3mFlGrAWtW5cnnJ+X\nV5HmShqnW9tu3HXeXawft57pF03n7e1v02NGD857/DzuX3w/7+56N+oSGyRbl3+myOblt3HnRqYu\nmsqgWYPoNbMXqz5YxQPDHmDd2HXcOejOjA8KyO7lDyR/GAooAToE4x2BkgRtBgIv1JieAEyorz8w\nFJhD1Z7IMcAaoG0dNTT1Hlq9Eh9znJiVx3z3fL7H55TM8dHPjfZj7j3G+z/Y3/8j/h++fNvyjD1U\n1ZyWfxSyaflVVlb6sr8v88IFhd73l3392HuP9X/907/63DVzs/YcXKYsf5I8DJX01VBmttPd2wXj\nBny0f7pGm28DQ939umD6auBsdx9bX38zexIYArQBbnb3R+qowZOtP1lFRQuZMaOY0tIW5OVVMHbs\n4Ky/mqS8spxX33uVZ0ue5dmSZ2l1SCuG9xrOZb0uY2CXgRxiqeyANq3muPzTKZOXX0VlBYu2LOLZ\n1c/y3JrnqPRKhvcazvBewzmnyznN4s7qTFj+B+XSWTMrpup//bXdAcyuGQ5m9pG7t6/V/3KgoEZY\nXAOc6e7jaoZFzf5BoAwHrgTaAy8DF7n7xgT1+aRJk6qnY7EYsVisAW9b6uLuLNu2rDo4PvjsAy49\n+VKGnzKcC066IKevT5emV1ZexosbX+TZ1c8yZ+0cOh7esfo/Kn079NU9Q00gHo8Tj8erpydPntz0\nYVFvR7MSIObu28ysE7DA3XvVajMAKHT3gmB6IlDp7lPq6m9mDwCvufuTQZ9HqTqU9d8Jakj7nkWu\nWf/Rep5dXRUcq3espqB7AcN7Deei7hc12y9ak4Nrd9lunl/3PM+WPMu89fM47bjTqgNCX2Fz8KX9\npjwzuxf4MNjwT6DqvMKEWm1aUnXO4RvAVuANYIS7r66rv5mNA/q5+7Vm9pWgz1XuvjJBDQqLNPr7\nJ39nzpo5PFvyLK+89wpf7fBVzu92Pud3O59zupzDVw79StQlSgb69PNPefW9V4lvirNg0wJW/mMl\ng04cxPBew7nk5EvocHiHqEvMKVGERXvg90BXDrz09XjgYXcfFrS7iC8unX3U3X8a0r818CjQl6qr\ntR5z95/VUYPCIiJ79u1h0eZF1RuAZduW0a9jP2LdYtXhcVirw6IuUyKwZ98eXtv8Ggs2LmDBpgUs\n376c0zudXr1uDDhhgNaNCOnrPiRSn33+Ga9tfq06PPZvIM7vdj6xbjEGdhlIXsu8qMuUg2Dvvr0s\n2rKIBRsXEH83ztK/L6Vvx77Ve50DuwzUF11mEIWFZJT9hx4WbFpAfFOclf9YyZmdzyR2YozzTzqf\nszufnZU/di9QWl7K4i2Lq/9jsGTrkupDkrFuMb7W5Ws6JJnBFBaS0XaX7f5SePQ8uif9Ovajf8f+\n9OvYj74d+9I2r23UpUoNO/fu5O3tb7P070tZtn0Zy7YtY92H6w4Ih3O7nsvhhx4edanSQAoLySp7\n9+1l5T9WsmzbMpZuW8qybctYvn05x33luAMCpH+n/nQ+orMuoTzI3J0tu7dUfxb7/92xZwd9OvT5\n4vPo2J9TjztVhxSzmMJCsl5FZQXrP1p/wMZq6balVFRW0L9Tf/p16FcdID2P7qnfJE9SeWU5a3as\n+VIwtDqkVfVy7t+pKhy6t++eUTdlSuoUFtIsuTvbPt1WvUHbv3F77+P36HxEZ7q17cZJbU+iW9tu\nVePtqsY7Hd6pWdzxm4yKygq2frKVTbs2sXHXRjbt2lQ9bNy1ka2fbOXEo078UjB0PDzR/bfS3Cgs\nJKeUlZexefdmNu7ceMCGcP/4h3s/pMuRXarC46gDg6Rb2250PLxj1v6PudIr2fbptjrf++bdmzn6\nsKO/eL9HHfjeux7VVXfi5zCFhUgNe/ft5b2P30u4Md24ayM79uzgyNZH0jav7ZeGdnntEs6v+Vhe\ny7ykz6O4O3vL97KrdFfCYefenVXjZYnnf/L5Jxzb5tgvArBWGHY9qqvOKUidFBYijVBRWcHust3s\nLN1Z/0a7LPFje/ftTen1D2t1WINDqvb8I1sfmbOH2CR1CgsREQmVbFhk50FbERFJK4WFiIiEUliI\niEgohYWIiIRSWIiISCiFhYiIhFJYiIhIKIWFiIiEUliIiEgohYWIiIRSWIiISCiFhYiIhFJYiIhI\nKIWFiIiESjoszKy9mRWb2Vozm29mbetoV2BmJWa2zsxuqzH/CjNbZWYVZnZ6rT4Tg/YlZjYk2RpF\nRKRppLJnMQEodveewIvB9AHMrAUwEygAegMjzOyU4OEVwHBgYa0+vYGrgvYFwANmWfr7lyIizUQq\nG+FLgNnB+GzgsgRtzgLWu/smd98HPAVcCuDuJe6+NkGfS4Hfufs+d98ErA+eR0REIpJKWHRw9+3B\n+HagQ4I2nYHNNaa3BPPqc3zQrjF9RETkIGpZ34NmVgx0TPDQHTUn3N3NLNHvmzbVb57W+TyFhYXV\n47FYjFgs1kQvKSKS/eLxOPF4POXnSfo3uM2sBIi5+zYz6wQscPdetdoMAArdvSCYnghUuvuUGm0W\nALe4+1vB9AQAd78nmH4BmOTuryeoQb/BLSLSCFH8BvccYGQwPhJ4LkGbN4EeZtbNzA6l6sT1nATt\nahY+B/iOmR1qZicBPYA3UqhTRERSlEpY3AMMNrO1wAXBNGZ2vJkVAbh7OfADYB7wDvC0u68O2g03\ns83AAKDIzP4S9HkH+H3Q/i/AGO0+iIhEK+nDUJlAh6FERBonisNQIiKSI+q9GkqaXlHRQqZPn09Z\nWUtaty5n3LghDBs2KOqy0ibX33+2y/XPL5ffv8IijYqKFnLTTfPYsOHu6nkbNlRdhZwLK1yuv/9s\nl+ufX66/f9w9a4eq8rPHkCF3OPiXhqFD74y6tLTI9fef7XL982su7z/YbjZ6e6tzFmlUVpZ4R660\ntEWaK4lGrr//bJfrn1+uv3+FRRq1bl2ecH5eXkWaK4lGrr//bJfrn1+uv3+FRRqNGzeE/PwDvimF\n/PzbGTt2cEQVpVeuv/9sl+ufX66/f91nkWZFRQuZMaOY0tIW5OVVMHbs4Nw4ORbI9fef7XL982sO\n7z/Z+ywUFiIiOUQ35YmIyEGjsBARkVAKCxERCaWwEBGRUAoLEREJpbAQEZFQCgsREQmlsBARkVAK\nCxERCaWwEBGRUAoLEREJpbAQEZFQCgsREQmlsBARkVAphYWZtTezYjNba2bzzaxtHe0KzKzEzNaZ\n2W015l9hZqvMrMLMzqgxf7CZvWlmy4N/z0+lThERSU2qexYTgGJ37wm8GEwfwMxaADOBAqA3MMLM\nTgkeXgEMBxYCNX+Y4gPgYnfvA4wEnkixThERSUGqYXEJMDsYnw1clqDNWcB6d9/k7vuAp4BLAdy9\nxN3X1u7g7svcfVsw+Q5wmJm1SrFWERFJUqph0cHdtwfj24EOCdp0BjbXmN4SzGuoy4ElQdCIiEgE\nWoY1MLNioGOChw745XJ3dzNL9BunSf/uqZmdCtwD1PmL6IWFhdXjsViMWCyW7MuJiDQ78XiceDye\n8vOk9BvcZlYCxNx9m5l1Aha4e69abQYAhe5eEExPBCrdfUqNNguAW9z9rRrzTqDqPMgod19Ux+vr\nN7hFRBohqt/gnkPVCWiCf59L0OZNoIeZdTOzQ4Grgn61VRcfXFVVBNxWV1CIiEj6pLpn0R74PdAV\n2ARc6e67zOx44GF3Hxa0uwi4H2gBPOruPw3mDwemA8cAHwNL3f0iM7uTqiur1tV4ucHuvqPW6+fc\nnkVR0UKmT59PWVlLWrcuZ9y4IQwbNihnXl+yW9TrT9SvnwmS3bPA3bN2qCo/d8yd+5Ln59/u4NVD\nfv7tPnfuSznx+pLdol5/on79TBFsNxu/vU2mU6YMuRYWQ4bcccCKvn8YOvTOnHh9yW5Rrz9Rv36m\nSDYs9HUfWaSsLPHFa6WlLXLi9SW7Rb3+RP362U5hkUVaty5POD8vryInXl+yW9TrT9Svn+0UFllk\n3Lgh5OcfcHsL+fm3M3ZsnbehNKvXl+wW9foT9etnu5Suhoparl4NNWNGMaWlLcjLq2Ds2MFpv5ok\nyteX7Bb1+hP162eCZK+GUliIiOSQqG7KExGRHKCwEBGRUKFfJCjNi+5glWym9Tc6CoscUlS0kJtu\nmseGDXdXz9uwoerqEP3BSabT+hstHYbKIdOnzz/gDw1gw4a7mTGjOKKKRBpO62+0FBY5RHewSjbT\n+hsthUUO0R2sks20/kZLYZFDdAerZDOtv9HSTXk5RnewSjbT+ps63cEtIiKhdAe3iIgcNAoLEREJ\npbAQEZFQCgsREQmlsBARkVAKCxERCZV0WJhZezMrNrO1ZjbfzNrW0a7AzErMbJ2Z3VZj/hVmtsrM\nKszs9AT9uprZp2Z2S7I1iohI00hlz2ICUOzuPYEXg+kDmFkLYCZQAPQGRpjZKcHDK4DhwMI6nn8q\nUJRCfTmmJWslAAAEj0lEQVQlHo9HXULG0LKoouXwBS2L1KUSFpcAs4Px2cBlCdqcBax3903uvg94\nCrgUwN1L3H1toic2s8uAvwHvpFBfTtEfwxe0LKpoOXxByyJ1qYRFB3ffHoxvBzokaNMZ2Fxjeksw\nr05mdjhwK1CYQm0iItKE6v3xIzMrBjomeOiAb/NydzezRN+7kcx3cRQC09x9j5k1+pZ0ERE5CNw9\nqQEoAToG452AkgRtBgAv1JieCNxWq80C4PQa0wuBjcGwE/gQGFNHDa5BgwYNGho3JLPNT+VnVecA\nI4Epwb/PJWjzJtDDzLoBW4GrgBEJ2lXvQbh79VdImtkk4BN3fyBRAcl8GZaIiDReKucs7gEGm9la\n4IJgGjM73syKANy9HPgBMI+qk9VPu/vqoN1wM9tM1d5HkZn9JYVaRETkIMrqrygXEZH0yPg7uOu6\nqa9Wm+nB42+bWf9015guYcvCzL4bLIPlZvaqmfWJos50aMh6EbQ708zKzexf0llfOjXwbyRmZkvN\nbKWZxdNcYto04G/kGDN7wcyWBctiVARlHnRm9piZbTezFfW0adx2M9kT3OkYgBbAeqAb0ApYBpxS\nq803geeD8bOBxVHXHeGyGAgcFYwX5PKyqNHur8Bc4PKo645wvWgLrAJOCKaPibruCJdFIfDT/cuB\nqgtoWkZd+0FYFl8H+gMr6ni80dvNTN+zqPOmvhqqbw5099eBtmaW6J6PbBe6LNx9kbt/HEy+DpyQ\n5hrTpSHrBcBY4A/AB+ksLs0asiz+D/CMu28BcPcdaa4xXRqyLP4OHBmMHwl86FXnVpsVd3+ZqqtJ\n69Lo7Wamh0VDbupL1KY5biQbe4PjvwLPH9SKohO6LMysM1Ubil8Gs5rrybmGrBc9gPZmtsDM3jSz\na9JWXXo1ZFk8DJxqZluBt4Gb0lRbpmn0djOVS2fToaF/4LUvoW2OG4YGvyczOx+4FvjawSsnUg1Z\nFvcDE9zdg5s7m+tl1g1ZFq2A04FvAG2ARWa22N3XHdTK0q8hy+J2YJm7x8wsHyg2s77u/slBri0T\nNWq7melh8T7QpcZ0F6oSsL42JwTzmpuGLAuCk9oPAwXuXt9uaDZryLI4A3gq+BKAY4CLzGyfu89J\nT4lp05BlsRnY4e57gb1mthDoCzS3sGjIsjgHuBvA3TeY2UbgZKruCcsljd5uZvphqOqb+szsUKpu\n6qv9xz4H+B6AmQ0AdvkX31nVnIQuCzPrCvwRuNrd10dQY7qELgt3/yd3P8ndT6LqvMWNzTAooGF/\nI38CzjWzFmbWhqoTms3xSzobsixKgAsBgmP0J1P1paW5ptHbzYzes3D3cjPbf1NfC+BRd19tZjcE\nj//K3Z83s2+a2XrgM2B0hCUfNA1ZFsBdQDvgl8H/qPe5+1lR1XywNHBZ5IQG/o2UmNkLwHKgEnjY\n3ZtdWDRwvfgvYJaZvU3Vf5ZvdfePIiv6IDGz3wHnAccENz9PoupwZNLbTd2UJyIioTL9MJSIiGQA\nhYWIiIRSWIiISCiFhYiIhFJYiIhIKIWFiIiEUliIiEgohYWIiIT6/7BdkkWCzUoQAAAAAElFTkSu\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7fad208>"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "b)The above graph is beam displacement graph\n",
+ "b)The minimum occures in the middle from the above graph \n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 13.3 page number 694 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#First we will solve without the reaction at middle\n",
+ "#Given\n",
+ "import numpy\n",
+ "l_ab = 1.0 #2L in - The length of the beam\n",
+ "F_D = 1.0 #W lb/in - The force distribution \n",
+ "F = F_D*l_ab #WL - The force applied\n",
+ "#Beause of symmetry the moment caliculations can be neglected\n",
+ "#F_Y = 0\n",
+ "R_A = F/2 #wl - The reactive force at A\n",
+ "R_B = F/2 #wl - The reactive force at B\n",
+ "#EI - The flxure rigidity is constant and 1/EI =1 # k\n",
+ "\n",
+ "#part - A\n",
+ "#section 1--1\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.2L distance \n",
+ "M_1 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "v = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " v[i] = R_A - F_D*l_1[i] \n",
+ " M_1[i] = R_A*l_1[i] - F_D*(l_1[i]**2)/2\n",
+ "# (EI)y'' = M_1[i] we will integrate M_1[i] twice where variable is l_1[i]\n",
+ "#(EI)y'- \n",
+ "\n",
+ "M_1_intg1 = R_A*(l_1[i]**2)/4 - F_D*(l_1[i]**3)/6 - F_D*(l_ab**3)*l_1[i]/24 #integration of x**n = x**n+1/n+1\n",
+ "#(EI)y- Using end conditions for caliculating constants \n",
+ "\n",
+ "M_1_intg2 = R_A*(l_1[i]**3)/12.0 - F_D*(l_1[i]**4)/24.0 + F_D*(l_ab**3)*l_1[i]/24.0 \n",
+ "#Equations \n",
+ "\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.2L distance \n",
+ "M_1_intg2 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "Y = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " M_1_intg2[i] = (l_1[i]**3)/12.0 - (l_1[i]**4)/24.0 - l_1[i]/24.0 # discluding every term for ruling out float values\n",
+ " Y[i] = M_1_intg2[i] #W(l**4)/EI k = 1/EI\n",
+ "e_1 = 16*min(Y) #WL4/EI - The maximum defection \n",
+ "e_2 = - F_D*((2*l_ab)**3)/24.0 #WL3/EI - The maximum angle\n",
+ "#Caliculating for momentum and force\n",
+ "f_ab = ((2*l_ab)**2)/16.0 #L2/EI \n",
+ "f_bb = ((2*l_ab)**3)/48.0 #L3/EI \n",
+ "f_aa = 2*l_ab/3.0 #L/EI\n",
+ "f_ba = ((l_ab)**2)/4.0 #L2/EI\n",
+ "#F*X = e - Matrix multiplication \n",
+ "#Solving for X\n",
+ "a = np.array([[f_aa,f_ba], [f_ba,f_bb]])\n",
+ "b = np.array([e_2,e_1])\n",
+ "x = np.linalg.solve(a, b)\n",
+ "print \"The reactive moment at A i.e M_A\",x[0],\"WL**2\"\n",
+ "print \"The reactive force at A i.e R_A\",x[1],\"WL\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reactive moment at A i.e M_A -0.0714285714286 WL**2\n",
+ "The reactive force at A i.e R_A -1.14285714286 WL\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter2_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter2_1.ipynb
new file mode 100644
index 00000000..5c92d3ed
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter2_1.ipynb
@@ -0,0 +1,327 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:f3ccf4fb6d13add26a342446f0908b75d3a6a82c442b340e601708c15ec3ca4f"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 2:Axial strains and Deformations in bars "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.1 page number 77"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "l_ob = 2000 #mm - length of rod ob\n",
+ "l_bc = 1000 #mm - length of rod bc\n",
+ "l_cd = 1500 #mm - length of rod cd\n",
+ "p_ob = 100 #kN - Force in rods \n",
+ "p_bc = -150 #KN\n",
+ "p_cd = 50 #KN \n",
+ "A_ob = 1000 #mm2 - Area of rod ob\n",
+ "A_bc = 2000 #mm2 - Area of rod bc \n",
+ "A_cd = 1000 #mm2 - Area of rod cd\n",
+ "E = 200.0 #GPA \n",
+ "# the total deflection is algebraic sums of `deflection in each module \n",
+ "e_1 = p_ob*l_ob/(A_ob*E)\n",
+ "e_2 = p_bc*l_bc/(A_bc*E)\n",
+ "e_3 = p_cd*l_cd/(A_cd*E)\n",
+ "#All units are satisfied \n",
+ "e_total = e_1+ e_2 + e_3\n",
+ "print \"The total deflection is :\",round(e_total,3) ,\"mm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The total deflection is : 1.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.4 page number 80"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "p_app = 3 #Kips - applied force \n",
+ "P_A = 2.23 #Kips \n",
+ "p_B = -2.83 #kips - compressive force\n",
+ "l_ab = 6.71 #inch\n",
+ "l_bc = 8.29 #inch\n",
+ "s_ab = 17.8 #ksi - tensile stress\n",
+ "s_bc = -12.9 #ksi - compressive stress\n",
+ "E = 10.6 * pow(10,3) #ksi -youngs modulus \n",
+ "e_ab = s_ab*l_ab/E\n",
+ "\n",
+ "e_bc = s_bc*l_bc/E\n",
+ "x = e_ab/e_bc #the Ratio of cosines of the deflected angles \n",
+ "# t_1 and t_2 be deflected angles \n",
+ "#t_2 = 180-45-26.6-t_1 the sum of angles is 360\n",
+ "#t_1 = 52.2 degress\n",
+ "import math\n",
+ "e = e_ab/math.acos(math.radians(52.2)) #inch\n",
+ "k = p_app/e # kips/in vertical stiffness of the combination\n",
+ "print \"The vertical stiffness of the combination is\",round(k,3),\"kips/inch\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.0112677358491\n",
+ "The vertical stiffness of the combination is 113.14 kips/inch\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.6 page number 83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "dia = 50 #mm - diameter of aluminium \n",
+ "p = 100 # KN - instant force applid\n",
+ "dia_c = 0.1215 #mm- change in diameter \n",
+ "l_c = 0.219 #mm - change in length\n",
+ "l = 300 #mm - length \n",
+ "strain_dia = dia_c/dia # lateral strain \n",
+ "strain_l = l_c/l #longitudinal strain \n",
+ "po = strain_dia/strain_l # poission ratio \n",
+ "area = 3.14*dia*dia/4 #mm2 area\n",
+ "E = p*l/(area*l_c) #N/mm2 youngs modulus \n",
+ "print \"The lateral strain is:\",strain_dia,\"no units\"\n",
+ "print \"The longitudinal strain is:\",strain_l,\"no units\"\n",
+ "print \"The poissions ratio is:\",po,\"no units\"\n",
+ "print \"Youngs modulus:\",round(E,2),\"N/mm2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The lateral strain is: 0.00243 no units\n",
+ "The longitudinal strain is: 0.00073 no units\n",
+ "The poissions ratio is: 3.32876712329 no units\n",
+ "Youngs modulus: 69.8 N/mm2\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.7 page number 86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "T = 12.9*pow(10,-6) #/F\n",
+ "t = 100.00 # F \n",
+ "e_ab = T*t*l_ab #in-elongation \n",
+ "e_bc = T*t*l_bc #in-elongation\n",
+ "k = e_ab/e_bc # ratio of cosines of deflected angles \n",
+ "# t_1 and t_2 be deflected angles \n",
+ "#t_2 = 180-45-26.6-t_1 the sum of angles is 360\n",
+ "t_1 = 26.6\n",
+ "import math\n",
+ "e = e_ab/math.acos(math.radians(26.6))\n",
+ "print \"The displacement in point B is :\",e ,\"in\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The displacement in point B is : 0.00795578950395 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.11 page number "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "mass = 4 #kg \n",
+ "dist = 1 #mt freely falling distance\n",
+ "l = 1500 #mm length of rod\n",
+ "d = 15 #mm diameter\n",
+ "E = 200 #GPA youngs modulus \n",
+ "k = 4.5 # N/mm stiffness costant\n",
+ "F = mass*9.81# The force applying\n",
+ "Area = 3.14*(d**2)/4 \n",
+ "# Two cases \n",
+ "#youngs modulus \n",
+ "e_y = F*l/(Area*E*pow(10,3))\n",
+ "# stiffness\n",
+ "e_f = F/k \n",
+ "#total\n",
+ "e = e_y +e_f\n",
+ "k = 1+(2/(e*pow(10,-3)))\n",
+ "stress_max_1 = F*(1+pow(k,0.5))/Area\n",
+ "print \"The maximum stress is:\",stress_max_1,\"Mpa\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress is: 3.59377281766 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.12 page number 103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "flex_a = 1#f\n",
+ "flex_b = 2#f\n",
+ "#removing lower support and solving FBD\n",
+ "e = -2 -(2+1)#fp\n",
+ "#e_1 = (2+1+1)*R\n",
+ "#e_1 = -e Making the elongations zero since the both ends are fixed\n",
+ "R = e/(2+1+1.0) #p\n",
+ "print \"The reactions at bottom is\",R,\"p\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The reactions at bottom is -1.25 p\n"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 2.19 page number 113"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "l = 30 #in - The length of the rod\n",
+ "p_1 = 80 #kips - The Force on the end\n",
+ "p_2 = 125 #kips - The force on the other end\n",
+ "A_s = 0.5 #in2 - The crossection of the steel rod\n",
+ "A_a = 0.5 #in2 - The crossection of the aluminium \n",
+ "E_a = 10*(10**6) #psi - The youngs modulus of the aluminium \n",
+ "E_s = 30*(10**6) #psi - The youngs modulus of the steel\n",
+ "#Internally stastically indeterminant \n",
+ "p_a = p_1/4 #From solving we get p_s = 3*P_a\n",
+ "#From material properties point of view \n",
+ "#stress_steel = stress_aluminium\n",
+ "e = p_a*l*(10**3)/(A_a*E_a) #The end deflection \n",
+ "print \"The end deflection is\",e,\"in\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The end deflection is 0.12 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter4_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter4_1.ipynb
new file mode 100644
index 00000000..cf156252
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter4_1.ipynb
@@ -0,0 +1,447 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:9aca5229d39ed9fee3ce40f1f1dab6ba8b884ebc52bfe9bb1467df97ee1f15bb"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 4:Torsion"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.2 page number 183"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "dia = 10 #diameter of shaft(A-C)\n",
+ "c = dia/2 #mm - Radius\n",
+ "T = 30 #N/mm -Torque in the shaft \n",
+ "#Caliculations\n",
+ "\n",
+ "J = 3.14*(dia**4)/32 #mm4\n",
+ "shear_T = T*c*pow(10,3)/J # The torsion shear in the shaft AC\n",
+ "import numpy as np \n",
+ "print \"The maximum shear due to torsion is \",round(shear_T,2),\"Mpa\"\n",
+ "arr_T = np.zeros((3,3))\n",
+ "arr_T[0][1]=round(shear_T,1) #arranging the elements in array\n",
+ "arr_T[1][0]=round(shear_T,1)\n",
+ "print \"stress tensor matrix\",ceil(arr_T),\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum shear due to torsion is 152.87 Mpa\n",
+ "stress tensor matrix [[ 0. 153. 0.]\n",
+ " [ 153. 0. 0.]\n",
+ " [ 0. 0. 0.]]\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.3 page number 184"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "dia_out = 20 #mm- outer diameter of shaft\n",
+ "dia_in = 16 #mm- inner diameter of shaft \n",
+ "c_out = dia_out/2 #mm - outer Radius of shaft \n",
+ "c_in = dia_in/2 #mm - inner radius of shaft \n",
+ "T = 40 #N/mm -Torque in the shaft \n",
+ "#caliculations\n",
+ "\n",
+ "J = 3.14*((dia_out**4)- (dia_in**4))/32 #mm4\n",
+ "shear_T_max = T*c_out*pow(10,3)/J # The maximum torsion shear in the shaft\n",
+ "shear_T_min = T*c_in*pow(10,3)/J # The maximum torsion shear in the shaft\n",
+ "print \"The maximum shear due to torsion is \",round(shear_T_max,2),\"Mpa\"\n",
+ "print \"The minimum shear due to torsion is \",round(shear_T_min,2),\"Mpa\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum shear due to torsion is 43.15 Mpa\n",
+ "The minimum shear due to torsion is 34.52 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.4 page number 187"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "hp = 10 # horse power of motor \n",
+ "f = 30 # given \n",
+ "shear_T = 55 #Mpa - The maximum shearing in the shaft \n",
+ "#caliculations\n",
+ "\n",
+ "T = 119*hp/f # N.m The torsion in the shaft \n",
+ "#j/c=T/shear_T=K\n",
+ "k = T*pow(10,3)/shear_T #mm3\n",
+ "#c3=2K/3.14\n",
+ "c = pow((2*k/3),0.33) #mm - The radius of the shaft \n",
+ "diamter = 2*c #mm - The diameter of the shaft\n",
+ "print \"The Diameter of the shaft used is\",round(diamter,2),\"mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Diameter of the shaft used is 15.26 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.5 page number 188"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "hp = 200 #Horse power\n",
+ "stress_sh = 10000 #psi- shear stress\n",
+ "rpm_1 = 20.0 # The rpm at which this shaft1 operates \n",
+ "rpm_2 = 20000.0 # The rpm at which this shaft2 operates\n",
+ "T_1= hp*63000.0/rpm_1 #in-lb Torsion due to rpm1\n",
+ "T_2= hp*63000/rpm_2 #in-lb Torsion due to rpm1\n",
+ "#caliculations \n",
+ "\n",
+ "#j/c=T/shear_T=K\n",
+ "k_1= T_1/stress_sh #mm3\n",
+ "#c3=2K/3.14\n",
+ "c_1= pow((2*k_1/3),0.33) #mm - The radius of the shaft \n",
+ "diamter_1 = 2*c_1 #mm - The diameter of the shaft\n",
+ "print \"The Diameter of the shaft1 is\",round(diamter_1,2),\"mm\"\n",
+ "\n",
+ "#j/c=T/shear_T=K\n",
+ "k_2= T_2/stress_sh #mm3\n",
+ "#c3=2K/3.14\n",
+ "c_2= pow((2*k_2/3),0.33) #mm - The radius of the shaft \n",
+ "diamter_2 = 2*c_2 #mm - The diameter of the shaft\n",
+ "print \"The Diameter of the shaft2 is\",diamter_2,\"mm\"\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Diameter of the shaft1 is 6.87 mm\n",
+ "The Diameter of the shaft2 is 0.702590481015 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.7 page number 193"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "T_ab = 0 #N.m - torsion in AB \n",
+ "T_bc = 150 #N.m - torsion in BC\n",
+ "T_cd = 150 #N.m - torsion in CD\n",
+ "T_de = 1150 #N.m - torsion in DE\n",
+ "l_ab = 250 #mm - length of AB\n",
+ "l_bc = 200 #mm - length of BC\n",
+ "l_cd = 300 #mm - length of cd \n",
+ "l_de = 500.0 #mm - length of de\n",
+ "d_1 = 25 #mm - outer diameter \n",
+ "d_2 = 50 #mm - inner diameter\n",
+ "G = 80 #Gpa -shear modulus\n",
+ "#Caliculations \n",
+ "\n",
+ "J_ab = 3.14*(d_1**4)/32 #mm4\n",
+ "J_bc = 3.14*(d_1**4)/32 #mm4\n",
+ "J_cd = 3.14*(d_2**4 - d_1**4)/32 #mm4\n",
+ "J_de = 3.14*(d_2**4 - d_1**4)/32 #mm4\n",
+ "rad = T_ab*l_ab/(J_ab*G)+ T_bc*l_bc/(J_bc*G)+ T_cd*l_cd/(J_cd*G)+ T_de*l_de/(J_de*G) # adding the maximum radians roteted in each module\n",
+ "print \"The maximum angle rotated is \",rad,\"radians \" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum angle rotated is 0.0232628450106 radians \n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.9 Pagenumber 196"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given \n",
+ "#its a statistally indeterminant \n",
+ "#we will take of one of the support \n",
+ "#Given \n",
+ "T_ab = 0 #N.m - torsion in AB \n",
+ "T_bc = 150 #N.m - torsion in BC\n",
+ "T_cd = 150 #N.m - torsion in CD\n",
+ "T_de = 1150 #N.m - torsion in DE\n",
+ "l_ab = 250 #mm - length of AB\n",
+ "l_bc = 200 #mm - length of BC\n",
+ "l_cd = 300 #mm - length of cd \n",
+ "l_de = 500.0#mm - length of de\n",
+ "d_1 = 25 #mm - outer diameter \n",
+ "d_2 = 50 #mm - inner diameter\n",
+ "#Caliculations \n",
+ "\n",
+ "J_ab = 3.14*(d_1**4)/32 #mm4\n",
+ "J_bc = 3.14*(d_1**4)/32 #mm4\n",
+ "J_cd = 3.14*(d_2**4 - d_1**4)/32 #mm4\n",
+ "J_de = 3.14*(d_2**4 - d_1**4)/32 #mm4\n",
+ "G = 80 #Gpa -shear modulus\n",
+ "rad = T_ab*l_ab/(J_ab*G)+ T_bc*l_bc/(J_bc*G)+ T_cd*l_cd/(J_cd*G)+ T_de*l_de/(J_de*G) \n",
+ "#now lets consider T_A then the torsion is only T_A\n",
+ "# T_A*(l_ab/(J_ab*G)+ l_bc/(J_bc*G)+ l_cd/(J_cd*G)+ l_de/(J_de*G)) +rad = 0\n",
+ "# since there will be no displacement \n",
+ "T_A =-rad/(l_ab/(J_ab*G)+ l_bc/(J_bc*G)+ l_cd/(J_cd*G)+ l_de/(J_de*G)) #Torsion at A\n",
+ "T_B = 1150 - T_A #n-m F_X = 0 torsion at B\n",
+ "print \"The Torsion at rigid end A is\",round(T_A,2),\"N-m\"\n",
+ "print \"The Torsion at rigid end B is\",round(T_B,2),\"N-m\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Torsion at rigid end A is -141.72 N-m\n",
+ "The Torsion at rigid end B is 1291.72 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 39
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.12 Pagenumber 202"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "dai_bc = 240 #mm- daimeter of '8'bolt circle \n",
+ "dia = dai_bc/8 #Diameter of each bolt\n",
+ "A = 0.25*(dia**2)*3.14 # Area of a bolt\n",
+ "S_allow = 40 #Mpa - The maximum allowable allowable shear stress \n",
+ "P_max = (S_allow)*A #N - The maximum allowable force \n",
+ "D = 120.0 #mm - the distance from central axis \n",
+ "T_allow =P_max*D*8 #N-m The allowable torsion on the 8 bolt combination \n",
+ "print \"The allowable torsion on the 8 bolt combination\",T_allow ,\"N-m\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The allowable torsion on the 8 bolt combination 27129600.0 N-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.15 page number 211"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#AISC MANUALS\n",
+ "#approximated by three narrow tubes \n",
+ "#J = Bbt^3\n",
+ "B = 0.33 # constant mentiones in AISC\n",
+ "#three rods \n",
+ "\n",
+ "#rod_1\n",
+ "t_1 = 0.605 #inch - Thickness \n",
+ "b = 12.0 #inches - width \n",
+ "J_1 = B*b*(t_1**3) #in4 - Torsion constant \n",
+ "\n",
+ "#rod_2\n",
+ "t_2 = 0.605 #inch - Thickness \n",
+ "b = 12 #inches - width \n",
+ "J_2 = B*b*(t_2**3) #in4 - Torsion constant \n",
+ "\n",
+ "#rod_3\n",
+ "t_3 = 0.390 #inch - Thickness \n",
+ "b = 10.91 #inches - width \n",
+ "J_3 = B*b*(t_3**3) #in4 - Torsion constant \n",
+ "\n",
+ "#Equivalent\n",
+ "J_eq = J_1+J_2+J_3 #in4 - Torsion constant \n",
+ "print \"the Equivalent Torsion constant is \",round(J_eq,2), \"in4\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the Equivalent Torsion constant is 1.97 in4\n"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 4.16 page number 214"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "dia_out = 10 #mm- outer diameter of shaft\n",
+ "dia_in = 8 #mm- inner diameter of shaft \n",
+ "c_out = dia_out/2 #mm - outer Radius of shaft \n",
+ "c_in = dia_in/2 #mm - inner radius of shaft \n",
+ "T = 40 #N/mm -Torque in the shaft \n",
+ "#caliculations\n",
+ "\n",
+ "J = 3.14*((dia_out**4)- (dia_in**4))/32 #mm4\n",
+ "shear_T_max = T*c_out*pow(10,3)/J # The maximum torsion shear in the shaft\n",
+ "shear_T_min = T*c_in*pow(10,3)/J # The maximum torsion shear in the shaft\n",
+ "print \"The maximum shear due to torsion is \",round(shear_T_max,2),\"Mpa\"\n",
+ "print \"The minimum shear due to torsion is \",round(shear_T_min,2),\"Mpa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum shear due to torsion is 345.23 Mpa\n",
+ "The minimum shear due to torsion is 276.18 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter5_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter5_1.ipynb
new file mode 100644
index 00000000..089d0b85
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter5_1.ipynb
@@ -0,0 +1,870 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:71148b069e338fd0ffabcfe7f6bd37d7ab47477a297f58633926ede4f66ab53c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Chapter 5:Axial force, Shear and Bending moment "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example5.2 pagenumber 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "L_ab = 0.4 #mt The total length of the rod\n",
+ "M = 200 #N_m - the moment acting on rod\n",
+ "l_1 = 0.1 #mt -moment acting point the distance from 'a'\n",
+ "R_1 = 100 #N - The Force acting \n",
+ "l_2 = 0.2 #mt -R_1 acting point the distance from 'a'\n",
+ "R_2 = 160 #N The Force acting \n",
+ "l_3 = 0.3 #mt -R_2 acting point the distance from 'a'\n",
+ "#caliculations\n",
+ "\n",
+ "#F_X = 0 forces in x directions \n",
+ "R_A_X = 0 # since there are no forces in X-direction \n",
+ "R_B_X = 0\n",
+ "#M_A = 0 momentum at point a is zero\n",
+ "\n",
+ "# M + R_1*l_2 + R_2*l_3 = R_B*L_ab *the moment for a force is FxL\n",
+ "R_B_Y = (M + R_1*l_2 + R_2*l_3)/L_ab\n",
+ "\n",
+ "#M_B= 0 momentum at point b is zero\n",
+ "# R_A_Y*L_ab + M - R_1*l_2 - R_2*0.1 = 0\n",
+ "\n",
+ "R_A_Y = -(M - R_1*l_2 - R_2*0.1)/L_ab\n",
+ " \n",
+ "print \"The X,Y components of reaction force at A is \",R_A_X,\",\",R_A_Y,\"N\"\n",
+ "print \"The X,Y components of reaction force at B is \",R_B_X,\",\",R_B_Y,\"N\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The X,Y components of reaction force at A is 0 , -410.0 N\n",
+ "The X,Y components of reaction force at B is 0 , 670.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.2 page number 233"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "P_Max = 10 #N - the maximum distribution in a triangular distribution\n",
+ "L = 3 #mt the total length of force distribution \n",
+ "L_X = 5 #mt - the horizantal length of the rod\n",
+ "#caliculations \n",
+ "\n",
+ "F_y = P_Max*L*0.5 #N - The force due to triangular distribition \n",
+ "L_com = 2*L /3 #mt - the resultant force acting as a result of distribution acting position \n",
+ "#F_X = 0 forces in x directions\n",
+ "R_A_X = 0 # since there are no forces in X-direction\n",
+ "R_B_X = 0\n",
+ "#M_A = 0 momentum at point a is zero\n",
+ "#F_y*L_com - R_B_Y*L_X = 0\n",
+ "R_B_Y = F_y*L_com/L_X\n",
+ "\n",
+ "#M_B= 0 momentum at point b is zero\n",
+ "#- R_A_Y*L_X = F_y*(L_X-L )\n",
+ "\n",
+ "R_A_Y = - F_y*L/L_X \n",
+ "print \"The X,Y components of reaction force at A is \",R_A_X,\",\",R_A_Y,\"N\"\n",
+ "print \"The X,Y components of reaction force at B is \",R_B_X,\",\",R_B_Y,\"N\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The X,Y components of reaction force at A is 0 , -9.0 N\n",
+ "The X,Y components of reaction force at B is 0 , 6.0 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "\n",
+ "Example 5.3 page number 233\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given\n",
+ "F = 5 #K - force acting on the system\n",
+ "tan = (4/3) # the Tan of the angle of force with x axis\n",
+ "l_ab = 12 #inch - the total length of ab \n",
+ "l = 3 # inch - Distance from 'a'\n",
+ "#caliculation\n",
+ "F_X = 4 #K\n",
+ "F_Y = 3 #k\n",
+ "\n",
+ "#M_A = 0 momentum at point a is zero\n",
+ "# F_X*l- R_B_Y*l_ab = 0 \n",
+ "R_B_Y = F_X*l/l_ab\n",
+ "\n",
+ "#M_B= 0 momentum at point b is zero\n",
+ "# R_A_Y*l_ab - F_X*(l_ab - l)\n",
+ "R_A_Y = F_X*(l_ab - l)/l_ab\n",
+ " \n",
+ "#F_X = 0 forces in x directions\n",
+ "R_A_X = F_Y + R_B_Y \n",
+ "R_B_X = R_B_Y # since the angle is 45 degrees\n",
+ "\n",
+ "#resultants \n",
+ "R_A = pow(R_A_X**2 + R_A_Y**2,0.5)\n",
+ "R_B = pow(R_B_X**2 + R_B_Y**2,0.5)\n",
+ "\n",
+ "print \"The X,Y components and resultant of reaction force at A is \",R_A_X,\",\",R_A_Y,\",\",R_A,\"N\"\n",
+ "print \"The X,Y components and resultant of reaction force at B is \",R_B_X,\",\",R_B_Y,\",\",round(R_B,2),\"N\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The X,Y components and resultant of reaction force at A is 4 , 3 , 5.0 N\n",
+ "The X,Y components and resultant of reaction force at B is 1 , 1 , 1.41 N\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.4 page number 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "P_Max = 10 #N - the maximum distribution in a triangular distribution\n",
+ "L = 3 #mt the total length of force distribution \n",
+ "L_X = 5 #mt - the horizantal length of the rod\n",
+ "#caliculations \n",
+ "\n",
+ "F_y = P_Max*L*0.5 #N - The force due to triangular distribition \n",
+ "L_com = 2*L /3 #mt - the resultant force acting as a result of distribution acting position \n",
+ "#F_X = 0 forces in x directions\n",
+ "R_A_X = 0 # since there are no forces in X-direction\n",
+ "R_B_X = 0\n",
+ "#M_A = 0 momentum at point a is zero\n",
+ "#F_y*L_com - R_B_Y*L_X = 0\n",
+ "R_B_Y = F_y*L_com/L_X\n",
+ "\n",
+ "#M_B= 0 momentum at point b is zero\n",
+ "#- R_A_Y*L_X = F_y*(L_X-L )\n",
+ "\n",
+ "R_A_Y = - F_y*L/L_X\n",
+ "\n",
+ "#For a---a section \n",
+ "l_a = 2 #mt - a---a section from a \n",
+ "l_com_a = 2*l_a/3\n",
+ "v_a = R_A_Y + 0.5*l_a*(10.0*2/3) #*(10*2/3) because the maximum moves\n",
+ "\n",
+ "M_a = (10.0*0.66)*l_a*(0.33) + R_A_Y*l_a \n",
+ "\n",
+ "#For b---b section \n",
+ "\n",
+ "v_b = F_y + R_A_Y #equilabrium conditions\n",
+ "M_b = (F_Y + R_A_Y)*(-1)\n",
+ "\n",
+ "print \"The force and moment in section a--a are\",round(v_a,2),\"KN ,\",M_a,\"KN-m\"\n",
+ "print \"The force and moment in section b--b are\",v_b,\"KN ,\",M_b,\"KN-m\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The force and moment in section a--a are -2.33 KN , -13.644 KN-m\n",
+ "The force and moment in section b--b are 6.0 KN , 6.0 KN-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.5 page number 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#Lets divide the section into two sections \n",
+ "l_ac = 10 # ft -The total length of the rod\n",
+ "R = 5 #k - The applies force at c\n",
+ "tan = 4/3 # The tan of the angle of the force \n",
+ "l_ab = 5 #ft - The distance of applied force from A\n",
+ "R_y = 4 #k,downwards X- component of the force\n",
+ "R_X = 3 #k Y- component of the force , lets consider only Y direction since we are concentrating on the Shears \n",
+ "\n",
+ "#F_Y = 0 forces in Y directions\n",
+ "#R_A +R_B = R_y\n",
+ "#M_c = 0 making the moment zero at point c \n",
+ "#Caliculations \n",
+ "# R_A= R_B*(l_ac - l_ab)/(l_ab) so R_A = R_B\n",
+ "\n",
+ "R_A = R_y/2 #F_Y = 0\n",
+ "R_B = R_y/2\n",
+ "#considering section x--x\n",
+ "l_x = 2 #ft - length of section from A\n",
+ "v_x = R_A #k ,F_X = 0 \n",
+ "M_x = R_A*l_x #k-ft M_c = 0\n",
+ "\n",
+ "#considering section at midpoint t--t\n",
+ "l_t = 2 #ft - length of section from A\n",
+ "v_t = 0 #k ,F_X = 0 \n",
+ "M_t = (R_A)*l_t #k-ft M_c = 0\n",
+ "\n",
+ "##considering section y---y\n",
+ "l_y = 2 #ft - length of section from B\n",
+ "v_y = - R_B #k ,F_X = 0 \n",
+ "M_y = R_B*l_y #k-ft M_c = 0\n",
+ "\n",
+ "#Graph\n",
+ "%matplotlib inline\n",
+ "import math \n",
+ "from matplotlib.pyplot import plot,suptitle,xlabel,ylabel\n",
+ "#Drawing of shear and bending moment diagram\n",
+ "print \"Given problem is for drawing diagram, this diagram is drawn by step by step manner. \"\n",
+ "X = [0,2,4.9999999999999,5,5.00000000000000001,7,10] # For graph precision \n",
+ "\n",
+ "V = [R_A,v_x,v_x,v_t,v_y,v_y,-R_B];\t\t\t#Shear matrix\n",
+ "M = [0,M_x,M_t,M_t,M_t,M_y,0];\t\t\t#Bending moment matrix\n",
+ "plot(X,V);\t\t\t#Shear diagram\n",
+ "plot(X,M,'r');\t\t\t#Bending moment diagram\n",
+ "suptitle( 'Shear and bending moment diagram')\n",
+ "xlabel('X axis')\n",
+ "ylabel( 'Y axis') ;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Given problem is for drawing diagram, this diagram is drawn by step by step manner. \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x87a5ac8>"
+ ]
+ }
+ ],
+ "prompt_number": 42
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.6 pagenumber 243 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "l = 1 #L - Length of the cantilever \n",
+ "F_app = ((2**0.5))*2 #p - force applies \n",
+ "tan = 1 # The angle of force applied\n",
+ "F_app_x = F_app/((2**0.5)) #p The horizantal component of the force , neglected \n",
+ "F_app_y = F_app/((2**0.5)) #p The Vertical component of the force \n",
+ "#F_Y = 0 \n",
+ "R_A = 1 #p\n",
+ "\n",
+ "#Considering section 1-----1\n",
+ "l_1 = 0.5 # The length of the section from one end\n",
+ "v_1 = R_A #F_Y = 0\n",
+ "M_1 = -R_A*l_1 #MAking moment at section 1 = 0\n",
+ "\n",
+ "#considering end of cantilever\n",
+ "l_2 = 1 # The length of the section from one end\n",
+ "v_2 = R_A #F_Y = 0\n",
+ "M_2 = -R_A*l_2#MAking moment at section 1 = 0\n",
+ "\n",
+ "#Graph\n",
+ "%matplotlib inline\n",
+ "import math \n",
+ "from matplotlib.pyplot import plot,suptitle,xlabel,ylabel\n",
+ "#Drawing of shear and bending moment diagram\n",
+ "print \"Given problem is for drawing diagram, this diagram is drawn by step by step manner. \"\n",
+ "X = [0,0.5,1] # For graph precision \n",
+ "\n",
+ "V = [R_A,v_1,v_2 ];\t\t\t#Shear matrix\n",
+ "M = [0,M_1,M_2];\t\t\t#Bending moment matrix\n",
+ "plot(X,V);\t\t\t #Shear diagram\n",
+ "plot(X,M,'r');\t\t\t #Bending moment diagram\n",
+ "suptitle( 'Shear and bending moment diagram')\n",
+ "xlabel('X axis')\n",
+ "ylabel( 'Y axis') ;\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Given problem is for drawing diagram, this diagram is drawn by step by step manner. \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\naEiSOvv/E00dakiohy4AAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8154208>"
+ ]
+ }
+ ],
+ "prompt_number": 128
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.7 page number 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "l_ab = 3 #L - The total length lets say '3L'\n",
+ "R_1 = 1 #p - The force applied at b\n",
+ "R_2 = 1 #p - The force applied at c\n",
+ "l_ab = 1 #L\n",
+ "l_bc = 1 #L \n",
+ "\n",
+ "#Logical step \n",
+ "#Since the system is in symmetry we can avoid moment M = 0 caliculations\n",
+ "\n",
+ "#F_Y = 0 \n",
+ "R_A = (R_1 + R_2)/2\n",
+ "R_B = (R_1 + R_2)/2\n",
+ "\n",
+ "#Lets take '3' sections \n",
+ "#Considering section 1-----1 at 0.5L\n",
+ "l_1 = 0.5 #L - distance of the section from the A\n",
+ "v_1 = R_A #F_Y = 0 \n",
+ "M_1 = R_A*l_1 #MAking moment at section 1 = 0\n",
+ "\n",
+ "#Considering section 2-----2 at 1L\n",
+ "l_2 = 1 #L - distance of the section from the A\n",
+ "v_2 = R_A #F_Y = 0 \n",
+ "M_2 = R_A*l_2 #MAking moment at section 2 = 0\n",
+ "\n",
+ "#Considering section 3-----3 at 1.5L\n",
+ "l_3 = 1.5 #L - distance of the section from the A\n",
+ "v_3 = 0 #F_Y = 0 \n",
+ "M_3 = R_A*l_2 #MAking moment at section 2 = 0 and symmetry \n",
+ "\n",
+ "#GRAPH\n",
+ "#Since the symmetry exists the graphs are also symmetry\n",
+ "%matplotlib inline\n",
+ "import math \n",
+ "from matplotlib.pyplot import plot,suptitle,xlabel,ylabel\n",
+ "#Drawing of shear and bending moment diagram\n",
+ "print \"Given problem is for drawing diagram, this diagram is drawn by step by step manner. \"\n",
+ "X = [0,0.5,1,1.000000001,1.5,1.999999999999,2,2.5,3] # For graph precision \n",
+ "\n",
+ "V = [R_A,v_1,v_2,v_3,v_3,v_3,-v_2,-v_1,-R_B];\t\t\t#Shear matrix\n",
+ "M = [0,M_1,M_2,1,1,1,M_2,M_1,0];\t\t\t#Bending moment matrix\n",
+ "plot(X,V);\t\t\t#Shear diagram\n",
+ "plot(X,M);\t\t\t#Bending moment diagram\n",
+ "suptitle( 'Shear and bending moment diagram')\n",
+ "xlabel('X axis')\n",
+ "ylabel( 'Y axis') ;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Given problem is for drawing diagram, this diagram is drawn by step by step manner. \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x8154240>"
+ ]
+ }
+ ],
+ "prompt_number": 127
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.8 page nmber 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "l_ab = 1.0 #L - The length of the beam\n",
+ "F_D = 1.0 #W - The force distribution \n",
+ "F = F_D*l_ab #WL - The force applied\n",
+ "#Beause of symmetry the moment caliculations can be neglected\n",
+ "#F_Y = 0\n",
+ "R_A = F/2 #wl - The reactive force at A\n",
+ "R_B = F/2 #wl - The reactive force at B\n",
+ "\n",
+ "#considering many sections \n",
+ "\n",
+ "#section 1--1\n",
+ "l_1 = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M_1 = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "v = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " v[i] = R_A - F_D*l_1[i] \n",
+ " M_1[i] = R_A*l_1[i] - F_D*(l_1[i]**2)/2 #M = 0 in the section\n",
+ "print R_A\n",
+ "#Graphs\n",
+ "import numpy as np\n",
+ "values = [0.5,0,-0.5]\n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,3)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "\n",
+ "import numpy as np\n",
+ "values = M_1\n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,11)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.5\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n54oAAAAASUVORK5CYII=\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x87884e0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x9e8f588>"
+ ]
+ }
+ ],
+ "prompt_number": 111
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.9 page number 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "P_Max = 10 #N - the maximum distribution in a triangular distribution\n",
+ "L = 3 #mt the total length of force distribution \n",
+ "L_X = 5 #mt - the horizantal length of the rod\n",
+ "#caliculations \n",
+ "\n",
+ "F_y = P_Max*L*0.5 #N - The force due to triangular distribition \n",
+ "L_com = 2*L /3 #mt - the resultant force acting as a result of distribution acting position \n",
+ "#F_X = 0 forces in x directions\n",
+ "R_A_X = 0 # since there are no forces in X-direction\n",
+ "R_B_X = 0\n",
+ "#M_A = 0 momentum at point a is zero\n",
+ "#F_y*L_com - R_B_Y*L_X = 0\n",
+ "R_B_Y = F_y*L_com/L_X\n",
+ "\n",
+ "#M_B= 0 momentum at point b is zero\n",
+ "#- R_A_Y*L_X = F_y*(L_X-L )\n",
+ "\n",
+ "R_A_Y = - F_y*L/L_X\n",
+ "\n",
+ "#caliculating for some random value\n",
+ "#For a---a section \n",
+ "l_a = 2 #mt - a---a section from a \n",
+ "l_com_a = 2*l_a/3\n",
+ "v_a = R_A_Y + 0.5*l_a*(10.0*2/3) #*(10*2/3) because the maximum moves\n",
+ "\n",
+ "M_a = (10.0*0.66)*l_a*(0.33) + R_A_Y*l_a\n",
+ "\n",
+ "print \"The force and moment in section a--a are\",round(v_a,2),\"KN ,\",M_a,\"KN-m\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The force and moment in section a--a are -2.33 KN , -13.644 KN-m\n"
+ ]
+ }
+ ],
+ "prompt_number": 112
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.13 page number 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "l_ab = 4 #L - The total length lets say '3L'\n",
+ "R_1 = 1 #p - The force applied at b\n",
+ "R_2 = 1 #p - The force applied at c\n",
+ "l_ab = 1 #L\n",
+ "l_bc = 3 #L \n",
+ "\n",
+ "#Logical step \n",
+ "#Since the system is in symmetry we can avoid moment M = 0 caliculations\n",
+ "\n",
+ "#F_Y = 0 \n",
+ "R_A = (R_1 + R_2)/2\n",
+ "R_B = (R_1 + R_2)/2\n",
+ "\n",
+ "#Lets take '3' sections \n",
+ "#Considering section 1-----1 at 0.5L\n",
+ "l_1 = 0.5 #L - distance of the section from the A\n",
+ "v_1 = R_A #F_Y = 0 \n",
+ "M_1 = R_A*l_1 #MAking moment at section 1 = 0\n",
+ "\n",
+ "#Considering section 2-----2 at 1L\n",
+ "l_2 = 1 #L - distance of the section from the A\n",
+ "v_2 = R_A #F_Y = 0 \n",
+ "M_2 = R_A*l_2 #MAking moment at section 2 = 0\n",
+ "\n",
+ "#Considering section 3-----3 at 1.5L\n",
+ "l_3 = 3 #L - distance of the section from the A\n",
+ "v_3 = 0 #F_Y = 0 \n",
+ "M_3 = R_A*l_2 #MAking moment at section 2 = 0 and symmetry \n",
+ "\n",
+ "#GRAPH\n",
+ "#Since the symmetry exists the graphs are also symmetry\n",
+ "%matplotlib inline\n",
+ "import math \n",
+ "from matplotlib.pyplot import plot,suptitle,xlabel,ylabel\n",
+ "#Drawing of shear and bending moment diagram\n",
+ "print \"Given problem is for drawing diagram, this diagram is drawn by step by step manner. \"\n",
+ "X = [0,0.5,1,1.0000001,2,2.9999999999,3,3.5,4] # For graph precision \n",
+ "\n",
+ "V = [R_A,v_1,v_2,v_3,v_3,v_3,-v_2,-v_1,-R_B];\t\t\t#Shear matrix\n",
+ "M = [0,M_1,M_2,M_3,M_3,M_3,M_2,M_1,0];\t\t\t#Bending moment matrix\n",
+ "plot(X,V);\t\t\t#Shear diagram\n",
+ "plot(X,M);\t\t\t#Bending moment diagram\n",
+ "suptitle( 'Shear and bending moment diagram')\n",
+ "xlabel('X axis')\n",
+ "ylabel( 'Y axis') ;"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Given problem is for drawing diagram, this diagram is drawn by step by step manner. \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nzCyX/w/0OTZCPXzVtAAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x9e8f1d0>"
+ ]
+ }
+ ],
+ "prompt_number": 126
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.14 page number 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "l = 1.0 #l - The length of the beam\n",
+ "p = 1.0 #W - The total load applied\n",
+ "#since it is triangular distribution \n",
+ "l_com = 0.66*l#l - The distance of force of action from one end\n",
+ "#F_Y = 0\n",
+ "#R_A + R_B = p\n",
+ "#M_a = 0 Implies that R_B = 2*R_A\n",
+ "R_A = p/3.0\n",
+ "R_B = 2.0*p/3\n",
+ "\n",
+ "#Taking Many sections \n",
+ "\n",
+ "#Section 1----1\n",
+ "l = [0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1] #L taking each section at 0.1L distance \n",
+ "M = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "v = [0,0,0,0,0,0,0,0,0,0,0]\n",
+ "for i in range(10):\n",
+ " v[i] = p*(l[i]**2) - p/3.0\n",
+ " M[i] = p*(l[i]**3)/(3.0)- p*l[i]/3.0\n",
+ "\n",
+ "v[10] = R_B #again concluded Because the value is tearing of \n",
+ "\n",
+ "\n",
+ "#Graph\n",
+ "import numpy as np\n",
+ "values = M\n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,11)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "import numpy as np\n",
+ "values = v\n",
+ "y = np.array(values)\n",
+ "t = np.linspace(0,1,11)\n",
+ "poly_coeff = np.polyfit(t, y, 2)\n",
+ "import matplotlib.pyplot as plt\n",
+ "plt.plot(t, y, 'o')\n",
+ "plt.plot(t, np.poly1d(poly_coeff)(t), '-')\n",
+ "plt.show()\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nY/L8f6G/NIrkiT5JAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x80c3f98>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nbKRBM81FAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0xa487c18>"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 5.16 page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "l = 6.0 #a - length of the rod\n",
+ "F = 1.0 #p - force applies in x direction \n",
+ "d = 1.0 #a \n",
+ "M = 1.0 #pa - torque applies on the rod\n",
+ "l_ab = 4.0 #a application of torque point from A\n",
+ "#M = 0 implies that\n",
+ "R_A = F/6.0 #p - The reaction at A\n",
+ "R_B = - R_A #F_Y = 0\n",
+ "\n",
+ "#Caliculations \n",
+ "\n",
+ "#Taking sections \n",
+ "#Section 1---1\n",
+ "l_1 = 1 #a - the length of the section \n",
+ "M_1 = - R_A*l_1 #M = 0\n",
+ "\n",
+ "#Section 2---2\n",
+ "l_2 = 4 #a - the length of the section \n",
+ "M_2 = - R_A*l_2 #M = 0\n",
+ "\n",
+ "l_4 = 2 #a - the length of the section \n",
+ "M_4 = 1/3.0 #pa #M = 0 '-M' because there is moment couple in between\n",
+ "\n",
+ "\n",
+ "#Section 3---3\n",
+ "l_3 = 1 #a - the length of the section \n",
+ "M_3 = 1/6.0#pa M = 0 '-M' because there is moment couple in between\n",
+ "print R_A\n",
+ "\n",
+ "#GRAPH\n",
+ "#Since the symmetry exists the graphs are also symmetry\n",
+ "%matplotlib inline\n",
+ "import math \n",
+ "from matplotlib.pyplot import plot,suptitle,xlabel,ylabel\n",
+ "#Drawing of shear and bending moment diagram\n",
+ "print \"Given problem is for drawing diagram, this diagram is drawn by step by step manner. \"\n",
+ "X = [0,1,4,4.00001,5,6] # For graph precision \n",
+ "M = [0,M_1,M_2,M_4,M_3,0];\t\t\t#Bending moment matrix\n",
+ "plot(X,M);\t\t\t#Bending moment diagram\n",
+ "suptitle( 'Shear and bending moment diagram')\n",
+ "xlabel('X axis')\n",
+ "ylabel( 'Y axis') ;\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0.166666666667\n",
+ "Given problem is for drawing diagram, this diagram is drawn by step by step manner. \n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "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\nWRkRIwAAAABJRU5ErkJggg==\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x9e65940>"
+ ]
+ }
+ ],
+ "prompt_number": 150
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter6_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter6_1.ipynb
new file mode 100644
index 00000000..a76cd86c
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter6_1.ipynb
@@ -0,0 +1,578 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:6a2b99a338c7d2a71ec20bddeaf4c19ec8da980602f4c9834a7faee562a1e5cc"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 6:Pure Bending and Bending with Axial force "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.3 page number 293"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#Entire area - hallow area\n",
+ "l_e = 60.0 #mm - length of the entire area\n",
+ "b_e = 40 #mm - width of the entire area\n",
+ "l_h = 30 #mm - length of the hallow area\n",
+ "b_h = 20 #mm - width of the hallow area\n",
+ "A_e = l_e*b_e #mm2 - The entire area\n",
+ "A_h = -l_h*b_h #mm2 - The hallow area '-' because its hallow\n",
+ "A_re = A_e + A_h #mm2 resultant area\n",
+ "y_e = l_e/2 # mm com from bottom \n",
+ "y_h = 20+l_h/2 #mm com from bottom \n",
+ "y_com = (A_e*y_e + A_h*y_h)/A_re \n",
+ "#moment of inertia caliculatins - bh3/12 +ad2\n",
+ "I_e = b_e*(l_e**3)/12 + A_e*((y_e-y_com)**2) #Parallel axis theorm\n",
+ "I_h = b_h*(l_h**3)/12 - A_h*((y_h-y_com)**2) #Parallel axis theorm\n",
+ "I_total = I_e - I_h\n",
+ "print \"The moment of inertia of total system is \",I_total,\"mm4\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The moment of inertia of total system is 655000.0 mm4\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.4 page number 295"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "l = 400 #mm - Length \n",
+ "b = 300 #mm - breath \n",
+ "F = 20 #KN _ the force applied on the beam \n",
+ "F_d = 0.75 #KN-m - The force distribution \n",
+ "d = 2 #mt - the point of interest from the free end\n",
+ "#caliculations \n",
+ "#From moment diagram\n",
+ "M = F*d - F_d*d*1\n",
+ "I = b*(l**3)/12 #mm4 - Bending moment diagram \n",
+ "c = l/2 # the stress max at this C\n",
+ "S = I/c #The maximum shear stress \n",
+ "shear_max = M*(10**6)/S #MPA - the maximum stress \n",
+ "print \"The maximum stress at 2 mt is\",round(shear_max,2),\"Mpa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress at 2 mt is 4.81 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.5 pagr number 297"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#We will divide this into three parts\n",
+ "F = 8 #k - force applied\n",
+ "d = 16 #inch -distance\n",
+ "l_1 = 1 #in \n",
+ "l_2 = 3 #in \n",
+ "b_1 = 4 #in \n",
+ "b_2 = 1 #in\n",
+ "A_1 = l_1* b_1 #in2 - area of part_1\n",
+ "y_1 = 0.5 #in com distance from ab\n",
+ "A_2 =l_2*b_2 #in2 - area of part_1\n",
+ "y_2 = 2.5 #in com distance from ab\n",
+ "A_3 = l_2*b_2 #in2 - area of part_1\n",
+ "y_3 = 2.5 #in com distance from ab\n",
+ "\n",
+ "y_net = (A_1*y_1 +A_2*y_2 + A_3*y_3)/(A_1+A_2+A_3) #in - The com of the whole system\n",
+ "c_max = (4-y_net) #in - The maximum distace from com to end\n",
+ "c_min = y_net #in - the minimum distance from com to end\n",
+ "I_1 = b_1*(l_1**3)/12 + A_1*((y_1-y_net)**2) #Parallel axis theorm\n",
+ "I_2 = b_2*(l_2**3)/12 + A_2*((y_2-y_net)**2)\n",
+ "I_3 = b_2*(l_2**3)/12 + A_2*((y_2-y_net)**2)\n",
+ "I_net = I_1 + I_2 + I_3 #in4 - the total moment of inertia\n",
+ "M_c = F*d*c_max \n",
+ "stress_cmax = M_c/I_net #Ksi - The maximum compressive stress\n",
+ "\n",
+ "M_t= F*d*c_min \n",
+ "stress_tmax = M_t/I_net #Ksi - The maximum tensile stress\n",
+ "print \"The maximum tensile stress\",stress_tmax ,\"Ksi\"\n",
+ "print \"The maximum compressive stress\",round(stress_cmax,1) ,\"Ksi\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum tensile stress 16.0 Ksi\n",
+ "The maximum compressive stress 21.6 Ksi\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.8 page number 303"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#Given \n",
+ "#We will divide this into two parts\n",
+ "E_w = 10.0 #Gpa - Youngs modulus of wood\n",
+ "E_s = 200.0 #Gpa - Youngs modulus of steel\n",
+ "M = 30.0 #K.N-m _ applied bending moment \n",
+ "n = E_s/E_w \n",
+ "l_1 = 250 #mm \n",
+ "l_2 = 10 #mm\n",
+ "b_1 = 150.0 #mm\n",
+ "b_2 = 150.0*n #mm\n",
+ "A_1 = l_1* b_1 #mm2 - area of part_1\n",
+ "y_1 = 125.0 #mm com distance from top\n",
+ "A_2 =l_2*b_2 #mm2 - area of part_1\n",
+ "y_2 = 255.0 #mm com distance from top\n",
+ "y_net = (A_1*y_1 +A_2*y_2)/(A_1+A_2) #mm - The com of the whole system from top\n",
+ "I_1 = b_1*(l_1**3)/12.0 + A_1*((y_1-y_net)**2) #Parallel axis theorm\n",
+ "I_2 = b_2*(l_2**3)/12.0 + A_2*((y_2-y_net)**2)\n",
+ "I_net = I_1 + I_2 #mm4 - the total moment of inertia\n",
+ "c_s= y_net # The maximum distance in steel \n",
+ "stress_steel = M*(10.0**6)*c_s/I_net #Mpa - The maximum stress in steel \n",
+ "\n",
+ "c_w= l_1+l_2-y_net # The maximum distance in wood \n",
+ "stress_wood = n*M*(10.0**6)*c_w/I_net #MPa - The maximum stress in wood \n",
+ "\n",
+ "print \"The maximum stress in steel \",round(stress_steel,2) ,\"Mpa\"\n",
+ "print \"The maximum stress in wood\",round(stress_wood,2) ,\"Mpa\" \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress in steel 11.49 Mpa\n",
+ "The maximum stress in wood 97.09 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.9 page number 305"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "M = 50000 #ft-lb , positive bending moment applied\n",
+ "N = 9 # number of steel bars \n",
+ "n = 15 # The ratio of steel to concrete \n",
+ "A_s = 30 #in2 area of steel in concrete\n",
+ "#(10*y)*(y/2) = 30*(20-y)\n",
+ "#y**2 + 6*y -120\n",
+ "#solving quadractic equation \n",
+ "import math\n",
+ "\n",
+ "a = 1\n",
+ "b = 6\n",
+ "c = -120\n",
+ "# calculate the discriminant\n",
+ "d = (b**2) - (4*a*c)\n",
+ "\n",
+ "# find two solutions\n",
+ "sol1 = (-b-math.sqrt(d))/(2*a)\n",
+ "sol2 = (-b+math.sqrt(d))/(2*a)\n",
+ "y = sol2 # Nuetral axis is found\n",
+ "l_1 = y #in- the concrete below nuetral axis is not considered\n",
+ "b_1 = 10 #in - width\n",
+ "A_1 = l_1* b_1 #in2 - area of concrete\n",
+ "y_1 = y/2 #in com of the concrete \n",
+ "y_2 = 20-y #in com of the transformed steel \n",
+ "I_1 = b_1*(l_1**3)/12.0 + A_1*((y_1-y)**2) #in4 parallel axis theorm\n",
+ "I_2 = A_s*((y_2)**2) #in4 first part is neglected\n",
+ "I_net = I_1 + I_2 #in4 - the total moment of inertia\n",
+ "c_c= y #in The maximum distance in concrete \n",
+ "stress_concrete = M*12*c_c/I_net #psi - The maximum stress in concrete \n",
+ "c_s= 20- y \n",
+ "stress_steel =n*M*12*c_s/I_net #psi - The maximum stress in concrete \n",
+ "print \"The maximum stress in concrete \",round(stress_concrete,2) ,\"psi\"\n",
+ "print \"The stress in steel\",round(stress_steel,2) ,\"psi\"\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress in concrete 834.07 psi\n",
+ "The stress in steel 17427.61 psi\n"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "example 6.10 page number 309"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "l = 50.0 #mm - the length of the beam \n",
+ "b = 50.0 #mm - the width of the beam\n",
+ "M = 2083 #Nm\n",
+ "A = l*b #mm2 - The area \n",
+ "#straight beam \n",
+ "I = b*(l**3)/12.0 #mm4 - The moment of inertia of the beam\n",
+ "c_1= l/2 # the distance where the stress is maximum \n",
+ "c_2 = -l/2 # the distance where the stress is maximum \n",
+ "s_1 = I/c_1\n",
+ "s_2 = I/c_2\n",
+ "stress_max_1 = M*(10**3)/s_1 #Mpa - the maximum strss recorded in the crossection\n",
+ "stress_max_2 = M*(10**3)/s_2 #Mpa - the maximum strss recorded in the crossection \n",
+ "print \"The maximum stress upward in straight case is\",stress_max_1,\"Mpa\"\n",
+ "print \"The maximum stress downward in straight case is\",stress_max_2,\"Mpa\"\n",
+ "\n",
+ "#curved beam \n",
+ "import math\n",
+ "r = 250.0 #mm Radius of beam curved \n",
+ "r_0 = r - l/2 # inner radius \n",
+ "r_1 = r + l/2 # outer radius\n",
+ "R = l/(math.log(r_1/r_0)) #mm \n",
+ "e = r - R \n",
+ "stressr_max_1 = M*(10**3)*(R-r_0)/(r_0*A*e)\n",
+ "stressr_max_2 = M*(10**3)*(R-r_1)/(r_1*A*e)\n",
+ "print \"The maximum stress upward in curved case is\",stressr_max_1,\"Mpa\"\n",
+ "print \"The maximum stress downward in curved case is\",stressr_max_2,\"Mpa\"\n",
+ "\n",
+ "#curved beam _2 \n",
+ "import math\n",
+ "r = 75.0 #mm Radius of beam curved \n",
+ "r_0 = r - l/2 # inner radius \n",
+ "r_1 = r + l/2 # outer radius\n",
+ "R = l/(math.log(r_1/r_0)) #mm \n",
+ "e = r - R \n",
+ "stressr_max_1 = M*(10**3)*(R-r_0)/(r_0*A*e)\n",
+ "stressr_max_2 = M*(10**3)*(R-r_1)/(r_1*A*e)\n",
+ "print \"The maximum stress upward in curved case2 is\",stressr_max_1,\"Mpa\"\n",
+ "print \"The maximum stress downward in curved case2 is\",stressr_max_2,\"Mpa\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress upward in straight case is 99.984 Mpa\n",
+ "The maximum stress downward in straight case is -99.984 Mpa\n",
+ "The maximum stress upward in curved case is 107.093207632 Mpa\n",
+ "The maximum stress downward in curved case is -93.6813516989 Mpa\n",
+ "The maximum stress upward in curved case2 is 128.733538525 Mpa\n",
+ "The maximum stress downward in curved case2 is -81.0307692623 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Page number 6.14 page number 318"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given \n",
+ "#from example 6.9\n",
+ "St_ul = 2500 #psi - ultimate strength\n",
+ "st_yl = 40000 #psi _ yielding strength \n",
+ "b = 10 #in - width from example \n",
+ "A = 2 #in2 The area of the steel\n",
+ "d = 20 \n",
+ "t_ul = st_yl*A #ultimate capasity\n",
+ "y = t_ul/(St_ul*b*0.85) #in 0.85 because its customary\n",
+ "M_ul = t_ul*(d-y/2)/12 #ft-lb Plastic moment \n",
+ "print \"The plastic moment of the system is \",M_ul,\"ft-lb\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The plastic moment of the system is 120784.313725 ft-lb\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.15 page number 231"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "#From example 5.8 \n",
+ "W = 4.0 #N/m - The force distribution \n",
+ "L = 3 # m - The length of the force applied\n",
+ "M = W*L/8.0 # KN.m The moment due to force distribution\n",
+ "o = 30 # the angle of force applid to horizantal\n",
+ "l = 150.0 #mm length of the crossection \n",
+ "b = 100.0 #mm - width of the crossection \n",
+ "import math \n",
+ "M_z = M*(math.cos(3.14/6))\n",
+ "M_y = M*(math.sin(math.pi/6))\n",
+ "I_z = b*(l**3)/12.0\n",
+ "I_y = l*(b**3)/12.0\n",
+ "#tanb = I_z /I_y *tan30\n",
+ "b = math.atan(math.radians(I_z*math.tan(3.14/6.0)/I_y ))\n",
+ "print \"The angle at which nuetral axis locates is\",b,\"radians\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The angle at which nuetral axis locates is 0.0226547191205 radians\n"
+ ]
+ }
+ ],
+ "prompt_number": 50
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.16 pagenumber 323"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "M = 10 #KN.m - The moment applied\n",
+ "I_max = 23.95*(10**6) #mm4 - I_z The moment of inertia\n",
+ "I_min = 2.53*(10**6) #mm4 - I_y The moment of inertia\n",
+ "o = 14.34 # degress the principle axis rotated\n",
+ "#Coponents of M in Y,Z direction \n",
+ "M_z = M*(10**6)*math.cos(math.radians(o))\n",
+ "M_y = M*(10**6)*math.sin(math.radians(o))\n",
+ "#tanb = I_z /I_y *tan14.34\n",
+ "b = math.atan((I_max*math.tan(math.radians(o))/I_min ))\n",
+ "B = math.degrees(b) \n",
+ "y_p = 122.9 # mm - principle axis Y cordinate\n",
+ "z_p = -26.95 #mm - principle axis z cordinate\n",
+ "stress_B = - M_z*y_p/I_max + M_y*z_p/I_min #Mpa - Maximum tensile stress\n",
+ "y_f = -65.97 # mm - principle axis Y cordinate\n",
+ "z_f = 41.93 #mm - principle axis z cordinate\n",
+ "stress_f = - M_z*y_f/I_max + M_y*z_f/I_min #Mpa - Maximum compressive stress\n",
+ "print \"The maximum tensile stress\",round(stress_B,2) ,\"Mpa\"\n",
+ "print \"The maximum compressive stress\",round(stress_f,2),\"Mpa\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum tensile stress -76.1 Mpa\n",
+ "The maximum compressive stress 67.73 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 83
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.18 page number 328"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "l = 50 #mm - The length of the beam \n",
+ "b = 50 #mm - The width of the beam \n",
+ "A = l*b #mm2 - The area of the beam \n",
+ "p = 8.33 #KN - The force applied on the beam \n",
+ "stress_max = p*(10**3)/A #Mpa After cutting section A--b\n",
+ "print \"The maximum stress in the beam\",stress_max ,\"Mpa \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress in the beam 3.332 Mpa \n"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 6.24 page number 339"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "M = 10 #KN.m - The moment applied\n",
+ "I_max = 23.95*(10**6) #mm4 - I_z The moment of inertia\n",
+ "I_min = 2.53*(10**6) #mm4 - I_y The moment of inertia\n",
+ "o = 14.34 # degress the principle axis rotated\n",
+ "#Coponents of M in Y,Z direction \n",
+ "M_z = M*(10**6)*math.cos(math.radians(o))\n",
+ "M_y = M*(10**6)*math.sin(math.radians(o))\n",
+ "#tanb = I_z /I_y *tan14.34\n",
+ "b = math.atan((I_max*math.tan(math.radians(o))/I_min ))\n",
+ "B = math.degrees(b) \n",
+ "y_p = 122.9 # mm - principle axis Y cordinate\n",
+ "z_p = -26.95 #mm - principle axis z cordinate\n",
+ "stress_B = - M_z*y_p/I_max + M_y*z_p/I_min #Mpa - Maximum tensile stress\n",
+ "y_f = -65.97 # mm - principle axis Y cordinate\n",
+ "z_f = 41.93 #mm - principle axis z cordinate\n",
+ "stress_f = - M_z*y_f/I_max + M_y*z_f/I_min #Mpa - Maximum compressive stress\n",
+ "#location of nuetral axis To show these stresses are max and minimum \n",
+ "#tanB = MzI_z + MzI_yz/MyI_y +M_YI_yz\n",
+ "I_z = 22.64 *(10**6) #mm4 moment of inertia in Z direction\n",
+ "I_y = 3.84 *(10**6) #mm4 moment of inertia in Y direction\n",
+ "I_yz =5.14 *(10**6) #mm4 moment of inertia in YZ direction \n",
+ "M_y = M #KN.m bending moment in Y dorection \n",
+ "M_z = M #KN.m bending moment in Y dorection \n",
+ "B = math.atan(( M_z*I_yz)/(M_z*I_y )) #radians location on neutral axis\n",
+ "beta = math.degrees(B)\n",
+ "print \"By sketching the line with angle\",round(beta,1),\"degrees The farthest point associated with B and F\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "By sketching the line with angle 53.2 degrees The farthest point associated with B and F\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter7_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter7_1.ipynb
new file mode 100644
index 00000000..05e3cf36
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter7_1.ipynb
@@ -0,0 +1,260 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:88c8946645e4f3f31d0d74d88b4d147ad878a660c1c0e5aff6962c72b58f187c"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "chapter 4:Shear stress in Beams and Related Problems "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.1 page number 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "shear_v = 3000 #N - Transmitted vetical shear \n",
+ "shear_al = 700 #N - The maximum allowable \n",
+ "#We will divide this into two parts\n",
+ "l_1 = 50.0 #mm \n",
+ "l_2 = 200.0 #mm \n",
+ "b_1 = 200.0 #mm \n",
+ "b_2 = 50.0 #mm\n",
+ "A_1 = l_1* b_1 #mm2 - area of part_1\n",
+ "y_1 = 25.0 #mm com distance \n",
+ "A_2 =l_2*b_2 #mm2 - area of part_1\n",
+ "y_2 = 150.0 #in com distance \n",
+ "y_net = (A_1*y_1 +A_2*y_2)/(A_1+A_2) #mm - The com of the whole system\n",
+ "c_max = (4-y_net) #mm - The maximum distace from com to end\n",
+ "c_min = y_net #mm - the minimum distance from com to end\n",
+ "I_1 = b_1*(l_1**3)/12 + A_1*((y_1-y_net)**2) #Parallel axis theorm\n",
+ "I_2 = b_2*(l_2**3)/12 + A_2*((y_2-y_net)**2)\n",
+ "I_net = I_1 + I_2 #mm4 - the total moment of inertia\n",
+ "Q = A_1*(-y_1+y_net) #mm3\n",
+ "q = shear_v*Q/I_net #N/mm - Shear flow\n",
+ "d = shear_al/q # The space between the nails \n",
+ "print \"The minimal space between the nails \",round(d,0) ,\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimal space between the nails 42.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.2 pagenumber 365"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "l = 6 #m -length of the beam \n",
+ "p = 3 #KN-m _ the load applied\n",
+ "R_a = l*p/2 #KN -The reaction at a, Since the system is symmetry \n",
+ "R_b = l*p/2 #KN -The reaction at b \n",
+ "l_s = 10 #mm - The length of the screw \n",
+ "shear_al = 2 #KN - The maximum load the screw can take \n",
+ "I = 2.36*(10**9) #mm2 The moment of inertia of the whole system\n",
+ "#We will divide this into two parts\n",
+ "l_1 = 50.0 #mm \n",
+ "l_2 = 50.0 #mm \n",
+ "b_1 = 100.0 #mm \n",
+ "b_2 = 200.0 #mm\n",
+ "A_1 = l_1* b_1 #in2 - area of part_1\n",
+ "y_1 = 200.0 #mm com distance \n",
+ "A_2 =l_2*b_2 #mm2 - area of part_1\n",
+ "y_2 = 225.0 #in com distance\n",
+ "Q = 2*A_1*y_1 + A_2*y_2 # mm3 For the whole system\n",
+ "q = R_a*Q*(10**3)/I #N/mm The shear flow \n",
+ "d = shear_al*(10**3)/q #mm The space between the nails\n",
+ "print \"The minimal space between the nails \",round(d,0),\"mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The minimal space between the nails 123.0 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.6 page number 376"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "#we will divide this into two equal parts and other part\n",
+ "l = 10.0 # in - The height \n",
+ "t = 0.1 # in - The width\n",
+ "b = 5.0 #mm- The width of the above part \n",
+ "A = t* b #in2 - area of part\n",
+ "y_net = l/2 # The com of the system \n",
+ "y_1 = l # The position of teh com of part_2\n",
+ "I_1 = t*(l**3)/12 #in4 The moment of inertia of part 1\n",
+ "I_2 = 2*A*((y_1-y_net)**2) #in4 The moment of inertia of part 2 \n",
+ "I = I_1 + I_2 #in4 The moment of inertia \n",
+ "e = (b**2)*(l**2)*t/(4*I) #in the formula of channels\n",
+ "l_sc = e - t/2 #in- The shear centre \n",
+ "print \"The shear centre from outside vertical face is \",l_sc ,\"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The shear centre from outside vertical face is 1.825 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.8 page number 387"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "dia = 10.0 #mm - The diameter of the cylinder \n",
+ "c = dia/2 #mm - the radius of the cylinder \n",
+ "A = 3.14*(c**2) #mm2 The area of the crossection \n",
+ "y = 4*c/(3*3.14) #mm The com of cylinder \n",
+ "I = 3.14*(c**4)/4 #mm4 - The moment of inertia of the cylinder\n",
+ "j = 3.14*(dia**4)/32 #mm4\n",
+ "T = 20.0 #N.m - The torque \n",
+ "V = 250.0 #N - The shear \n",
+ "M = 25.0 #N-m The bending moment \n",
+ "Q = A*y/2 #mm\n",
+ "stress_dmax = 4*V/(3*A) #V*Q/(I*d) #Mpa The direct maximum stress\n",
+ "stress_tmax = T*c*(10**3)/j #-Mpa The torsion maximum stress\n",
+ "stress_total = stress_dmax + stress_tmax #Mpa The total stress\n",
+ "print \"The direct maximum stress\",round(stress_dmax,2),\"Mpa\"\n",
+ "print \"The torsion maximum stress\",round(stress_tmax,2),\"Mpa\"\n",
+ "print \"The total stress\",round(stress_total,2),\"Mpa\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " The direct maximum stress 4.25 Mpa\n",
+ "The torsion maximum stress 101.91 Mpa\n",
+ "The total stress 106.16 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 7.9 page number 393"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "dia = 15 #mm - The diameter of the rod\n",
+ "h = 0.5 #mt - The freely falling height \n",
+ "A = 3.14*(dia**2)/4 #mm2 The area of the crossection\n",
+ "E = 200 #Gpa -Youngs modulus\n",
+ "L = 750 #mm - The total length of the rod\n",
+ "G = 80 #gpa - Shear modulus \n",
+ "N = 10 #number of live coils\n",
+ "d = 5 #mm the diameter of live coil \n",
+ "m = 3 # the mass of freely falling body\n",
+ "H = 500 #mm -from mass to spring \n",
+ "F= m*9.81 #Kg the force due to that mass\n",
+ "#e = e_rod + e_spr\n",
+ "#e_rod\n",
+ "e_rod = p*L*(10**-3)/(A*E) #mm The elongation due to freely falling body\n",
+ "#e_spr\n",
+ "e_spr = 64*F*(dia**3)*N*(10**-3)/(G*(d**4)) #mm The elongation due to spring\n",
+ "e = e_rod + e_spr #mm The total elongation \n",
+ "p_dyn =F*(1+pow((1+(2*H/e)),0.5))\n",
+ "Stress_max = p_dyn/A #MPa - The maximum stress in the system \n",
+ "print \"The maximum stress in the system \",round(Stress_max,2),\"Mpa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress in the system 4.84 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter8_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter8_1.ipynb
new file mode 100644
index 00000000..fb95b611
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter8_1.ipynb
@@ -0,0 +1,332 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:bed4afe1f989fb55f213b8e274b88cbf3d61242768410ad03d4984a97542fc14"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 8:Transformation of stress and strain and Yield and Fracture criteria "
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.1 page number 405 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "o = 22.5 #degrees , The angle of infetisimal wedge \n",
+ "A = 1 #mm2 The area of the element \n",
+ "A_ab = 1*(math.cos(radians(o))) #mm2 - The area corresponds to AB\n",
+ "A_bc = 1*(math.sin(radians(o))) #mm2 - The area corresponds to BC\n",
+ "S_1 = 3 #MN The stresses applying on the element \n",
+ "S_2 = 2 #MN\n",
+ "S_3 = 2 #MN\n",
+ "S_4 = 1 #MN \n",
+ "F_1 = S_1*A_ab # The Forces obtained by multiplying stress by their areas \n",
+ "F_2 = S_2*A_ab\n",
+ "F_3 = S_3*A_bc\n",
+ "F_4 = S_4*A_bc\n",
+ "#sum of F_N = 0 equilibrim in normal direction \n",
+ "N = (F_1-F_3)*(math.cos(radians(o))) + (F_4 - F_2)*(math.sin(radians(o)))\n",
+ "\n",
+ "#sum of F_s = 0 equilibrim in tangential direction \n",
+ "\n",
+ "S = (F_2-F_4)*(math.cos(radians(o))) + (F_1 - F_3)*(math.sin(radians(o)))\n",
+ "\n",
+ "Stress_Normal = N/A #Mpa - The stress action in normal direction on AB\n",
+ "Stress_tan = S/A #Mpa - The stress action in tangential direction on AB\n",
+ "print \"The stress action in normal direction on AB\",round(Stress_Normal,2),\"Mpa\"\n",
+ "print \"The stress action in tangential direction on AB\",round(Stress_tan,2),\"Mpa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stress action in normal direction on AB 1.29 Mpa\n",
+ "The stress action in tangential direction on AB 2.12 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.2 page number 413"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "o = -22.5 #degrees , The angle of infetisimal wedge \n",
+ "A = 1 #mm2 The area of the element \n",
+ "A_ab = 1*(math.cos(radians(o))) #mm2 - The area corresponds to AB\n",
+ "A_bc = 1*(math.sin(radians(o))) #mm2 - The area corresponds to BC\n",
+ "S_1 = 3.0 #MN The stresses applying on the element \n",
+ "S_2 = 2.0 #MN\n",
+ "S_3 = 2.0 #MN\n",
+ "S_4 = 1.0 #MN\n",
+ "#Caliculations \n",
+ "\n",
+ "F_1 = S_1*A_ab # The Forces obtained by multiplying stress by their areas \n",
+ "F_2 = S_2*A_ab\n",
+ "F_3 = S_3*A_bc\n",
+ "F_4 = S_4*A_bc\n",
+ "#sum of F_N = 0 equilibrim in normal direction \n",
+ "N = (F_1-F_3)*(math.cos(radians(o))) + (F_4 - F_2)*(math.sin(radians(o)))\n",
+ "\n",
+ "#sum of F_s = 0 equilibrim in tangential direction \n",
+ "\n",
+ "S = (F_2-F_4)*(math.cos(radians(o))) + (F_1 - F_3)*(math.sin(radians(o)))\n",
+ "\n",
+ "Stress_Normal = N/A #Mpa - The stress action in normal direction on AB\n",
+ "Stress_tan = S/A #Mpa - The stress action in tangential direction on AB\n",
+ "print \"a) The stress action in normal direction on AB\",round(Stress_Normal,2),\"Mpa\"\n",
+ "print \"a) The stress action in tangential direction on AB\",round(Stress_tan,2),\"Mpa\"\n",
+ "\n",
+ "#Part- b\n",
+ "\n",
+ "S_max = (S_4+S_1)/2 + (((((S_4-S_1)/2)**2) + S_3**2)**0.5) #Mpa - The maximum stress\n",
+ "S_min = (S_4+S_1)/2.0 - (((((S_4-S_1/2))**2) + S_3**2)**0.5) #Mpa - The minumum stress\n",
+ "k = 0.5*math.atan(S_3/((S_1-S_4)/2)) #radians The angle of principle axis\n",
+ "k_1 = math.degrees(k)\n",
+ "k_2 = k_1+90 #The principle plane angles\n",
+ "print \"b) The principle stress \",round(S_max,1),\"Mpa tension\"\n",
+ "print \"b) The principle stress \",round(S_min,2),\"Mpa compression\"\n",
+ "print \"b) The principle plane angles are\",round(k_1,0),\",\",round(k_2,0),\"degrees\"\n",
+ "\n",
+ "#part-c\n",
+ "#The maximum shear stress case\n",
+ "t_xy = (((((S_4-S_1)/2)**2) + S_3**2)**0.5) #Mpa - The maximum shear stress case\n",
+ "K = 0.5*math.atan((-(S_1-S_4)/(2*S_3))) #radians The angle of principle axis\n",
+ "K_0 = math.degrees(K)\n",
+ "if K_0<0:\n",
+ " K_1 = K_0+90\n",
+ "else:\n",
+ " K_1 = K_0\n",
+ "K_2 = K_1+90 #PRinciple plain angles\n",
+ "T_xy = -((S_1-S_4)/2)*(math.sin(radians(2*K_1))) + ((S_4+S_1)/2)*(math.cos(radians(2*K_1))) # Shear stress\n",
+ "print \"c) The maximum shear is \",round(T_xy,2),\"Mpa\" \n",
+ "S_mat_a = array([round(S_max,1),round(S_min,1),0]) #MPa maximum stress matrix\n",
+ "S_mat_b = array([(S_4+S_1)/2,round(T_xy,2),round(T_xy,2),(S_4+S_1)/2]) #MPa maximum stress matrix at maximum shear\n",
+ "print \"a)\",S_mat_a,\"Mpa\"\n",
+ "print \"b)\",S_mat_b,\"Mpa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a) The stress action in normal direction on AB 4.12 Mpa\n",
+ "a) The stress action in tangential direction on AB 0.71 Mpa\n",
+ "b) The maximum stress 4.2 Mpa tension\n",
+ "b) The minumum stress -0.06 Mpa compression\n",
+ "b) The principle plane angles are 32.0 , 122.0 degrees\n",
+ "c) The maximum shear is -2.24 Mpa\n",
+ "a) [ 4.2 -0.1 0. ] Mpa\n",
+ "b) [ 2. -2.24 -2.24 2. ] Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.3 page number 421"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "S_x = -2 #Mpa _ the noraml stress in x direction\n",
+ "S_y = 4 #Mpa _ the noraml stress in Y direction\n",
+ "c = (S_x + S_y)/2 #Mpa - The centre of the mohr circle \n",
+ "point_x = -2 #The x coordinate of a point on mohr circle\n",
+ "point_y = 4 #The y coordinate of a point on mohr circle\n",
+ "Radius = pow((point_x-c)**2 + point_y**2,0.5) # The radius of the mohr circle\n",
+ "S_1 = Radius +1#MPa The principle stress\n",
+ "S_2 = -Radius +1 #Mpa The principle stress\n",
+ "S_xy_max = Radius #Mpa The maximum shear stress\n",
+ "print \"The principle stresses are\",S_1 ,\"Mpa\",S_2,\"Mpa\"\n",
+ "print \"The maximum shear stress\",S_xy_max,\"Mpa\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The principle stresses are 6.0 Mpa -4.0 Mpa\n",
+ "The maximum shear stress 5.0 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.4 page number 423"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "import math \n",
+ "S_x = 3.0 #Mpa _ the noraml stress in x direction\n",
+ "S_y = 1.0 #Mpa _ the noraml stress in Y direction\n",
+ "c = (S_x + S_y)/2 #Mpa - The centre of the mohr circle \n",
+ "point_x = 1 #The x coordinate of a point on mohr circle\n",
+ "point_y = 3 #The y coordinate of a point on mohr circle\n",
+ "#Caliculations \n",
+ "\n",
+ "Radius = pow((point_x-c)**2 + point_y**2,0.5) # The radius of the mohr circle\n",
+ "#22.5 degrees line is drawn \n",
+ "o = 22.5 #degrees \n",
+ "a = 71.5 - 2*o #Degrees, from diagram \n",
+ "stress_n = c + Radius*math.sin(math.degrees(o)) #Mpa The normal stress on the plane \n",
+ "stress_t = Radius*math.cos(math.degrees(o)) #Mpa The tangential stress on the plane\n",
+ "print \"The normal stress on the 221/2 plane \",round(stress_n,2),\"Mpa\"\n",
+ "print \"The tangential stress on the 221/2 plane \",round(stress_t,2),\"Mpa\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The normal stress on the 221/2 plane 4.82 Mpa\n",
+ "The tangential stress on the 221/2 plane 1.43 Mpa\n"
+ ]
+ }
+ ],
+ "prompt_number": 84
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.7 page number 437"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "e_x = -500 #10-6 m/m The contraction in X direction\n",
+ "e_y = 300 #10-6 m/m The contraction in Y direction\n",
+ "e_xy = -600 #10-6 m/m discorted angle\n",
+ "centre = (e_x + e_y)/2 #10-6 m/m \n",
+ "point_x = -500 #The x coordinate of a point on mohr circle\n",
+ "point_y = 300 #The y coordinate of a point on mohr circle\n",
+ "Radius = 500 #10-6 m/m - from mohr circle\n",
+ "e_1 = Radius +centre #MPa The principle strain\n",
+ "e_2 = -Radius +centre #Mpa The principle strain\n",
+ "k = math.atan(300.0/900) # from geometry\n",
+ "k_1 = math.degrees(k)\n",
+ "print \"The principle strains are\",e_1,\"um/m\",e_2,\"um/m\"\n",
+ "print \"The angle of principle plane\",round(k_1,2) ,\"degrees\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The principle strains are 400 um/m -600 um/m\n",
+ "The angle of principle plane 18.43 degrees\n"
+ ]
+ }
+ ],
+ "prompt_number": 87
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 8.8 page number 441"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "e_0 = -500 #10-6 m/m \n",
+ "e_45 = 200 #10-6 m/m \n",
+ "e_90 = 300 #10-6 m/m\n",
+ "E = 200 #Gpa - youngs modulus of steel \n",
+ "v = 0.3 # poissions ratio \n",
+ "#Caliculations \n",
+ "\n",
+ "e_xy = 2*e_45 - (e_0 +e_90 ) #10-6 m/m from equation 8-40 in text\n",
+ "# from example 8.7\n",
+ "e_x = -500 #10-6 m/m The contraction in X direction\n",
+ "e_y = 300 #10-6 m/m The contraction in Y direction\n",
+ "e_xy = -600 #10-6 m/m discorted angle\n",
+ "centre = (e_x + e_y)/2 #10-6 m/m \n",
+ "point_x = -500 #The x coordinate of a point on mohr circle\n",
+ "point_y = 300 #The y coordinate of a point on mohr circle\n",
+ "Radius = 500 #10-6 m/m - from mohr circle\n",
+ "e_1 = Radius +centre #MPa The principle strain\n",
+ "e_2 = -Radius +centre #Mpa The principle strain\n",
+ "\n",
+ "stress_1 = E*(10**-3)*(e_1+v*e_2)/(1-v**2) #Mpa the stress in this direction \n",
+ "stress_2 = E*(10**-3)*(e_2+v*e_1)/(1-v**2) #Mpa the stress in this direction \n",
+ "print\"The principle stresses are \",round(stress_1,2),\"Mpa\",round(stress_2,2),\"MPa\" "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The principle stresses are 48.35 Mpa -105.49 MPa\n"
+ ]
+ }
+ ],
+ "prompt_number": 91
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter9_1.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter9_1.ipynb
new file mode 100644
index 00000000..64ddecc8
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/chapter9_1.ipynb
@@ -0,0 +1,246 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:cfde82eb2eac726301e92e1b27c27d3628db6f9b0e8b5d7b0cd15017ca0006f7"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 9:Elastic stress analysis and design"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.4 pagenumber 465"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given \n",
+ "b = 40.0 #mm - The width of the beam crossection\n",
+ "h = 300.0 #mm - The length of the beam crossection \n",
+ "V = 40.0 #KN - The shear stress in teh crossection\n",
+ "M = 10.0 #KN-m - The bending moment on K----K crossection \n",
+ "c = h/2 #mm -The position at which maximum stress occurs on the crossection\n",
+ "I = b*(h**3)/12 #mmm4 - the moment of inertia \n",
+ "#Caliculations \n",
+ "\n",
+ "stress_max_1 = M*c*(10**6)/I #The maximum stress occurs at the end\n",
+ "stress_max_2 = -M*c*(10**6)/I #The maximum stress occurs at the end\n",
+ "y = 140 #mm The point of interest, the distance of element from com\n",
+ "n = y/(c) # The ratio of the distances from nuetral axis to the elements\n",
+ "stress_L_1 = n*stress_max_1 #The normal stress on elements L--L\n",
+ "stress_L_2 = -n*stress_max_1 #The normal stress on elements L--L\n",
+ "x = 10 #mm The length of the element\n",
+ "A = b*x #mm3 The area of the element \n",
+ "y_1 = y+x/2 # the com of element from com of whole system\n",
+ "stress_xy = V*A*y_1*(10**3)/(I*b) #Mpa - The shear stress on the element \n",
+ "#stresses acting in plane 30 degrees \n",
+ "o = 60 #degrees - the plane angle\n",
+ "stress_theta = stress_L_1/2 + stress_L_1*(math.cos(math.radians(o)))/2 - stress_xy*(math.sin(math.radians(o))) #Mpa by direct application of equations\n",
+ "stress_shear = -stress_L_1*(math.sin(math.radians(o)))/2 - stress_xy*(math.cos(math.radians(o))) #Mpa Shear stress\n",
+ " \n",
+ "print \"a)The principle stresses are \",round(stress_max_1,2),\"MPa,\",round(stress_max_2,2),\"Mpa\"\n",
+ "print \"b)The stresses on inclines plane \",round(stress_theta,2),\"Mpa noraml, \",round(stress_shear,2),\"Mpa shear \""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a)The principle stresses are 16.67 MPa, -16.67 Mpa\n",
+ "b)The stresses on inclines plane 11.11 Mpa noraml, -7.06 Mpa shear \n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.5 page number 476"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "M = 10 #KN-m moment\n",
+ "v = 8.0 #KN - shear Stress \n",
+ "stress_allow = 8 #MPa - The maximum allowable stress\n",
+ "shear_allow_per = 1.4 #Mpa - The allowable stress perpendicular to grain\n",
+ "stress_allow_shear = 0.7 #MPa - The maximum allowable shear stress\n",
+ "#Caliculations \n",
+ "\n",
+ "S = M*(10**6)/stress_allow #mm3 \n",
+ "#lets arbitarly assume h = 2b\n",
+ "#S = b*(h**2)/6\n",
+ "h = pow(12*S,0.333) #The depth of the beam\n",
+ "b = h/2 #mm The width of the beam\n",
+ "A = h*b #mm2 The area of the crossection , assumption\n",
+ "stress_shear = 3*v*(10**3)/(2*A) #Mpa The strear stress \n",
+ "if stress_shear<stress_allow_shear:\n",
+ " print \"The stress developed \",round(stress_shear,2),\" is in allowable ranges for \",round(A,2),\"mm2 area\"\n",
+ "else:\n",
+ " print \"The stress developed\",stress_shear,\" is in non allowable ranges\",A,\"area\"\n",
+ "Area_allow = v*(10**3)/shear_allow_per #mm - the allowable area\n",
+ "print \"The minimum area is \",Area_allow ,\"mm2\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The stress developed 0.4 is in allowable ranges for 30077.85 mm2 area\n",
+ "The minimum area is 5714.28571429 mm2\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 36,
+ "text": [
+ "8.0"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.6 page number 478"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "stress_allow = 24 #ksi - The maximum allowable stress\n",
+ "stress_allow_shear = 14.5 #ksi- The maximum allowable shear stress\n",
+ "M_max = 36 #k-ft The maximum moment\n",
+ "l = 16 #in-The length of the rod\n",
+ "w = 2 #k/ft - The force distribution on the rod\n",
+ "R_A = 6.4 #k - The reaction at A\n",
+ "R_B = 25.6 #k - the reaction at B\n",
+ "v_max = R_B-l*w #kips the maximum stress, from diagram\n",
+ "#W8x24 is used from the appendix table 3 and 4 \n",
+ "l =0.245 #in - W8x24 crossesction length\n",
+ "#Caliculations \n",
+ "\n",
+ "stress_xy = v_max/A #ksi the approximate shear stress \n",
+ "if stress_xy < stress_allow_shear:\n",
+ " print \"W8x24 gives the allowable ranges of shear stress\"\n",
+ "else:\n",
+ " print \"W8x24 doesnot gives the allowable ranges of shear stress\"\n",
+ "k = 7.0/8 #in the distance from the outer face of the flange to the webfillet\n",
+ "#at+kt should not exceed 0.75 of yeild stress\n",
+ "#a1t+2kt should not exceed 0.75 of yeild stress\n",
+ "Stress_yp = 36 #Ksi - The yeild stress\n",
+ "t = 0.245 #in thickness of the web\n",
+ "#support a \n",
+ "a = R_A/(0.75*Stress_yp*t)-k #in lengths of the bearings\n",
+ "#support b\n",
+ "a_1 = R_B/(0.75*Stress_yp*t)-2*k #in lengths of the bearings\n",
+ "print \"lengths of the bearing at A \",round(a,3),\"in\"\n",
+ "print \"lengths of the bearing at B\",round(a_1,3),\"in\"\n",
+ " \n",
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "W8x24 gives the allowable ranges of shear stress\n",
+ "lengths of the bearing at A 0.092 in\n",
+ "lengths of the bearing at B 2.12 in\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 44,
+ "text": [
+ "0.875"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 9.8 page number 483"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#given \n",
+ "hp = 63000 #horse power\n",
+ "T = hp*20*(10**-3)/63 #k-in the torsion implies due to horse power\n",
+ "stress_allow_shear = 6 #ksi- The maximum allowable shear stress\n",
+ "M_ver = 6.72/2 #k-in the vertical component of the moment \n",
+ "M_hor = 9.10 #k-in the horizantal component of the moment \n",
+ "#Caliculations \n",
+ "\n",
+ "M = pow(((M_ver**2)+(M_hor**2)),0.5) #K-in The resultant \n",
+ "d = pow((16*(((M**2)+(T**2))**0.5)/(stress_allow_shear*3.14)),0.333) #in, The suggested diameter from derivation\n",
+ "print \"The suggested diameter is\",round(d,2),\"in\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The suggested diameter is 2.66 in\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/charpter_3_2.ipynb b/Engineering_Mechanics_of_Solids_by_Popov_E_P/charpter_3_2.ipynb
new file mode 100644
index 00000000..d6d687b7
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/charpter_3_2.ipynb
@@ -0,0 +1,289 @@
+{
+ "metadata": {
+ "name": "",
+ "signature": "sha256:2f0c9cb537209e742ab15685141324ee1ed15f7e17522fe250536619498277f1"
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chaper 3:Generalized hooke's law, Pressure vessels and Thick walled cylinders"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.1 page number 141"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "th = 8 #mm - thickness \n",
+ "G = 0.64 #N/mm2 -shear modulus\n",
+ " \n",
+ "a = 40 #mm length\n",
+ "b = 20 #mm width \\\n",
+ "Area = a*b #mm2\n",
+ "e = randn() # lets say any random vale\n",
+ "strain = e/th # strain in shearing case\n",
+ "#caliculations\n",
+ "\n",
+ "stress =G*strain\n",
+ "F = stress*Area\n",
+ "#stiffness = froce/displacement\n",
+ "k = F/e #N/mm\n",
+ "print \"the stiffness constant is \",k,\"N/mm\"\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "the stiffness constant is 64.0 N/mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.2 page number 149\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "a = 50 #mm - length of a cube\n",
+ "E = 200 # Gpa - the youngs modulus \n",
+ "v = 0.25 # no units- poissions ratio \n",
+ "pressure = 200 # Mpa - pressure acting on all sides \n",
+ "#pressure is a compressive stress \n",
+ "S_x = -200 # Gpa - The stress in X direction \n",
+ "S_y = -200 # Gpa - The stress in Y direction\n",
+ "S_z = -200 # Gpa - The stress in Z direction\n",
+ "#Caliculations\n",
+ "\n",
+ "e = S_x*pow(10,-3)/E - v*S_y*pow(10,-3)/E-v*S_z*pow(10,-3)/E#mm - considering all three directions \n",
+ "x = e*a #mmThe change in the dimension between parallel faces\n",
+ "print \"The change in the dimension between parallel faces is \",x,\"mm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The change in the dimension between parallel faces is -0.025 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.3 page number 154"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "R = 1000 # mm - radius of the cylinder \n",
+ "t = 10 #mm - thickness of the cylinder\n",
+ "p_in = 0.80 #Mpa- Internal pressure \n",
+ "E = 200 #Mpa- youngs modulus \n",
+ "v = 0.25 # poission ratio\n",
+ "#caliculations\n",
+ "\n",
+ "Stress_1 = p_in*R/t #Mpa -Hoop stress #From derived expressions \n",
+ "Stress_2 = p_in*R/(2*t) #Mpa- Longitudinal stress \n",
+ "e = Stress_1*pow(10,-3)/E-v*Stress_2*pow(10,-3)/E\n",
+ "dia_change = e*R #mm- The change in daimeter of the cylinder \n",
+ "print \"The Hoop stress is \",Stress_1,\"mm\"\n",
+ "print \"The longitudinal stress is \",Stress_2, \"mm\"\n",
+ "print \"The change in daimeter of the cylinder is\",dia_change,\"mm\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Hoop stress is 80.0 mm\n",
+ "The longitudinal stress is 40.0 mm\n",
+ "The change in daimeter of the cylinder is 0.35 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.4 page number 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "R = 1000 #mm - radius of the cylinder\n",
+ "th = 10 #mm - thickness of the cylinder\n",
+ "E = 200 #Mpa- youngs modulus \n",
+ "v = 0.25 # poission ratio\n",
+ "#caliculations\n",
+ "\n",
+ "Stress_1 = p_in*R/(2*t) #Mpa -Hoop stress #From derived expressions \n",
+ "Stress_2 = p_in*R/(2*t) #Mpa- Longitudinal stress\n",
+ "# Hoop stress and Longitudinal stress are same in this case\n",
+ "e = Stress_1*pow(10,-3)/E-v*Stress_2*pow(10,-3)/E\n",
+ "dia_change = e*R #mm- The change in daimeter of the cylinder\n",
+ "print \"The maximum stress is \",Stress_2, \"mm\"\n",
+ "print \"The change in daimeter of the cylinder is\",dia_change,\"mm\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The maximum stress is 40.0 mm\n",
+ "The change in daimeter of the cylinder is 0.15 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.5 page number 156"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "p_in = 0.7 #Mpa - internal pressure \n",
+ "n_bolts = 20 # number of bolts \n",
+ "dia = 650 #mm - bolt circle diameter \n",
+ "stress_allow = 125 #mm Maximum alowable stress\n",
+ "Stress_conc = 2 #stress concentration\n",
+ "d = 25 #mm \n",
+ "#caliculations\n",
+ "\n",
+ "F = p_in*3.14*pow(((dia-2*d)/2),2)*pow(10,6) #N\n",
+ "F_each = F/n_bolts #N- force per each Bolt\n",
+ "A = Stress_conc*F_each/(stress_allow*pow(10,-6)) #mm2 The bolt area \n",
+ "Bolt_dia = 2*pow((round(A,3)/3.14),0.5)*pow(10,-7) #mm the bolt daimeter\n",
+ "print \"The diameter of each bolt is\",Bolt_dia,\"mm\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The diameter of each bolt is 1.41985914794 mm\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 3.6 page number 166"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Given\n",
+ "r_1 = randn()# let r_1 is a random number \n",
+ "t = 0.1*r_1 #Thickness\n",
+ "r_2 = r_1+t #Outer Radius\n",
+ "#caliculations\n",
+ "\n",
+ "stress_1_a= ((r_1**2)/((r_2**2)-(r_1**2)))*(1+((r_2**2)/(r_1**2)))#p -r =r_2\n",
+ "stress_2_a= ((r_1**2)/((r_2**2)-(r_1**2)))*(1+((r_2**2)/(r_2**2)))#p -r =r_1\n",
+ "stress_avg_a=(stress_1_a+stress_2_a)/2 #p\n",
+ "print \"The average stress in case a is\",stress_avg_a,\"p\"\n",
+ "\n",
+ "#Case-B\n",
+ "#Given\n",
+ "r_1 = randn()# let r_1 is a random number \n",
+ "r_2_b= 4*r_1 \n",
+ "#caliculations\n",
+ "\n",
+ "stress_1_b = ((r_1**2)/((r_2_b**2)-(r_1**2)))*(1+((r_2_b**2)/(r_1**2)))#p -r =r_2\n",
+ "stress_2_b= ((r_1**2)/((r_2_b**2)-(r_1**2)))*(1+((r_2_b**2)/(r_2_b**2)))#p -r =r_1\n",
+ "stress_avg_b=(stress_1_b+stress_2_b)/2 #p\n",
+ "print \"The average stress in case b is\",stress_2_b,\"p\"\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The average stress in case a is 10.0238095238 p\n",
+ "The average stress in case b is 0.133333333333 p\n"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/1.JPG b/Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/1.JPG
new file mode 100644
index 00000000..2d79b817
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/1.JPG
Binary files differ
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/2.JPG b/Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/2.JPG
new file mode 100644
index 00000000..473e7e14
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/2.JPG
Binary files differ
diff --git a/Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/3.JPG b/Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/3.JPG
new file mode 100644
index 00000000..c23995b4
--- /dev/null
+++ b/Engineering_Mechanics_of_Solids_by_Popov_E_P/screenshots/3.JPG
Binary files differ
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter1_.ipynb b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter1_.ipynb
new file mode 100644
index 00000000..3f776b26
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter1_.ipynb
@@ -0,0 +1,1324 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 1 : Interference"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 1 , Page number 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Fringe width in Youngs Double Slit Experiment is Beta= 0.5890 *10**-3 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=0.5 #Distance from Screen\n",
+ "d=0.5 #Distance between parallel slits\n",
+ "lambdaa=5890 #Wavelength\n",
+ "\n",
+ "#Calculations\n",
+ "Beta=(D*lambdaa)/(d)/10**4\n",
+ "\n",
+ "#Result\n",
+ "print\"The Fringe width in Youngs Double Slit Experiment is Beta= %1.4f\" %Beta,\"*10**-3 m\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 2 , Page number 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Double slit separation 2d= 5.1 mu m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=2 #Distance from screen\n",
+ "lambdaa=5100 #Wavelength\n",
+ "Beta=0.02 #Fringe Width\n",
+ "x=10 #No. of fringes\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "d=(x*D*lambdaa)/Beta/10**6\n",
+ "\n",
+ "#Result\n",
+ "print\"The Double slit separation 2d=\",d,\"mu m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 3 , Page number 241"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelength lamda=0.5890 *10**-6 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=1 #Distance from screen\n",
+ "Beta=0.31*10**-3 #Fringe Width\n",
+ "d=1.9*10**-3 #Slit separation\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "lambdaa=(Beta*d*10**6)/D\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelength lamda=%0.4f\"%lambdaa,\"*10**-6 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 4 , Page number 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The position of the 10th fringe is 1.178 *10**-4 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=0.04 #Distance from screen\n",
+ "Lambdaa=5890*10**-10 #Wavelength\n",
+ "d=2*10**-3 #Slit separation\n",
+ "n=10 #No. of fringes\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "x10=(n*D*lambdaa*10**-2)/d\n",
+ "\n",
+ "#Result\n",
+ "print\"The position of the 10th fringe is\",x10,\"*10**-4 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 5 , Page number 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The position of the 10th fringe is 5 *10**-4 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=0.8 #Distance from screen\n",
+ "Lambdaa=5890*10**-10 #Wavelength\n",
+ "Beta=9.424*10**-4 #Fringe Width\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "d=(D*lambdaa*10**-2)/Beta\n",
+ "\n",
+ "#Result\n",
+ "print\"The position of the 10th fringe is %i\"%d,\"*10**-4 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 6 , Page number 242"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Fringe width observed at a distance of 1m from BP is 37.2 *10**-5 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=1.1 #Distance from screen\n",
+ "Lambdaa=5900*10**-10 #Wavelength\n",
+ "d=0.00174 #Fringe separation\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Beta=(D*lambdaa*10**-1)/d\n",
+ "\n",
+ "#Result\n",
+ "print\"The Fringe width observed at a distance of 1m from BP is %1.1f\"%Beta,\"*10**-5 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 7 , Page number 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Angle of prism at the vertex is is 177 deg 17.8 min\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=2 #Distance from screen\n",
+ "Lambdaa=5890*10**-10 #Wavelength\n",
+ "mu=1.5 #refractive index of glass\n",
+ "a=0.25 #distance from slit\n",
+ "Beta=0.2*10**-3 #Fringe width\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "alpha=(D*lambdaa*180*10**-6)/(2*a*(mu-1)*Beta*3.14)\n",
+ "A=(180-2*(round(alpha,2)))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Angle of prism at the vertex is is %i\"%A,\"deg 17.8 min\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 8 , Page number 243"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelength is 5872.5 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D=1 #Distance from screen\n",
+ "mu=1.5 #refractive index of glass\n",
+ "a=0.5 #distance from slit\n",
+ "Beta=0.0135*10**-2 #Fringe width\n",
+ "alpha=0.0087 #angleof prism\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "lambdaa=(Beta*2*a*(mu-1)*alpha*10**10)/D\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelength is\",lambdaa,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 9 , Page number 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The fringe width would become 0.116 mm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=0.75 #slit separation\n",
+ "Beta=0.087*10**-3 #Fringe width\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Beta2=Beta*10**3/d\n",
+ "\n",
+ "#Result\n",
+ "print\"The fringe width would become \",Beta2,\"mm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 10 , Page number 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The wavelength is 5875 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=7.5*10**-4 #slit separation\n",
+ "Beta=0.094*10**-2 #Fringe width\n",
+ "D=1.2 #Distance from Screen\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "lambdaa=(Beta*d*10**10)/D\n",
+ "\n",
+ "#Result\n",
+ "print\"The wavelength is %i\"%lambdaa,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 11 , Page number 245"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Fringe width is 1.625 *10**-4 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=3.6125*10**-3 #slit separation\n",
+ "D=1 #Distance from Screen\n",
+ "lambdaa=5870*10**-10 #Wavelength\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Beta=(D*lambdaa*10**4)/d\n",
+ "\n",
+ "#Result\n",
+ "print\"The Fringe width is\",round(Beta,3),\"*10**-4 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 12 , Page number 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The wavelength is 5850 *10**-10 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "d=0.3*10**-2 #slit separation\n",
+ "D=1 #Distance from Screen\n",
+ "Beta=0.0195*10**-2 #Wavelength\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "lambdaa=(Beta*d*10**10)/D\n",
+ "\n",
+ "#Result\n",
+ "print\"The wavelength is %i\"%lambdaa,\"*10**-10 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 13 , Page number 246"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The number of fringes would be 67\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n1=62 #fringes\n",
+ "lambdaa1=5893*10**-10 #Wavelength 1\n",
+ "lambdaa2=5461*10**-10 #Wavelength 2\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "n2=(n1*lambdaa1)/lambdaa2\n",
+ "\n",
+ "#Result\n",
+ "print\"The number of fringes would be %i\"%round(n2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 14 , Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The refractive index is 1.52\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5.46*10**-7 #Wavelength\n",
+ "t=6.3*10**-6 #thickness\n",
+ "\n",
+ "#Calculations\n",
+ "mu=((6*lambdaa)/t)+1\n",
+ "\n",
+ "#Result\n",
+ "print\"The refractive index is \",mu"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 15 , Page number 247"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The refractive index is 6.71 mu m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "s=2.143*10**-3\n",
+ "mu=1.542 #refractive index\n",
+ "lambdaa=5893*10**-10 #Wavelength\n",
+ "Beta=0.347*10**-3\n",
+ "\n",
+ "#Calculations\n",
+ "t=(s*lambdaa*10**6)/(Beta*(mu-1))\n",
+ "\n",
+ "#Result\n",
+ "print\"The refractive index is \",round(t,2),\"mu m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 16 , Page number 248"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The number of dark bands seen betwween 4000 A and 5000A is 12\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mu=1.4 #Refractive index\n",
+ "cosr=0.8631\n",
+ "t=0.01*10**-3 #thickness\n",
+ "lambda1=4000*10**-10 #Wavelength 1\n",
+ "lambda2=5000*10**-10 #Wavelength 2\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "n1=(2*mu*t*cosr)/lambda1\n",
+ "n2=(2*mu*t*cosr)/lambda2\n",
+ "deln=round(n1)-round(n2)\n",
+ "\n",
+ "#Result\n",
+ "print\"The number of dark bands seen betwween 4000 A and 5000A is %i\"%deln"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 17 , Page number 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Thickness is 0.0017 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mu=1.33 #Refractive index\n",
+ "cosr=0.7989\n",
+ "lambda1=6.1*10**-5 #Wavelength 1\n",
+ "lambda2=6*10**-5 #Wavelength 2\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "t=(lambda1*lambda2*10**-5)/(2*mu*cosr*(lambda1-lambda2)*10**-5)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Thickness is \",round(t,4),\" cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 18 , Page number 249"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Thickness is 1.667 mu m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=8 #number of fringes\n",
+ "lambdaa=5893*10**-10 #Wavelength\n",
+ "mu=1.5 #Refractive index\n",
+ "cosr=(2*math.sqrt(2))/3\n",
+ "#Calculations\n",
+ "t=(n*lambdaa*10**6)/(2*mu*cosr)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Thickness is \",round(t,3),\" mu m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 19 , Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The order of interference of dark band is 6 \n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mu=4/3 #refractive index\n",
+ "t=1.5 #thickness\n",
+ "cosr=0.7603\n",
+ "lambdaa=5*10**-7 #Wavelength\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "n=(2*mu*t*cosr*10**-6)/lambdaa\n",
+ "\n",
+ "#Result\n",
+ "print\"The order of interference of dark band is %i \"%n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 20 , Page number 250"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "For n=0 Lambda is 26600.0\n",
+ "For n=1 Lambda is 8866\n",
+ "For n=2 Lambda is 5320.0\n",
+ "Out of these only 5320.0 lies in the visible range for n=2\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mu=1.33 #refractive index\n",
+ "n1=0\n",
+ "n2=1\n",
+ "n3=2\n",
+ "t=5*10**-7 #thickness\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "lambda1=(4*mu*t*10**10)/(2*n1+1)\n",
+ "lambda2=(4*mu*t*10**10)/(2*n2+1)\n",
+ "lambda3=(4*mu*t*10**10)/(2*n3+1)\n",
+ "\n",
+ "#Result\n",
+ "print\"For n=0 Lambda is\",lambda1 #The answer given in the book is 26000 however it is mathematically incorrect\n",
+ "print\"For n=1 Lambda is %i\"%lambda2 #The answer given in the book is 8666 however it is mathematically incorrect\n",
+ "print\"For n=2 Lambda is\",lambda3 # The answer given in the book is 5200 however it is mathematically incorrect\n",
+ "print\"Out of these only\",lambda3,\"lies in the visible range for n=2\" "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 21 , Page number 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelength is 6875 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=100 #radius\n",
+ "D25=0.8 #Diameter of the 25th ring\n",
+ "D5=0.3 #Diameter of the 5th ring\n",
+ "p=20 \n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "lambdaa=((D25**2)-(D5**2))*10**8/(4*20*100)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelength is %i\"%lambdaa,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 22 , Page number 251"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Thickness is 2.946 cm\n",
+ "The Radius is 106.1 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=10 #no. of ring\n",
+ "D10=0.5 #Diameter of the 10th ring\n",
+ "lambdaa=5893*10**-8 #Wavelength\n",
+ " \n",
+ "#Calculations\n",
+ "R=(D10**2)/(4*10*5893*10**-8)\n",
+ "t=(D10**2)*10**4/(8*R)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Thickness is\",round(t,3),\"cm\"\n",
+ "print\"The Radius is\",round(R,1),\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 23 , Page number 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Diameter of the nth dark ring is 1.129 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=59 #no. of ring\n",
+ "lambdaa=6*10**-7 #Wavelength\n",
+ "R=0.9 #Radius\n",
+ " \n",
+ "#Calculations\n",
+ "D59=math.sqrt(4*R*n*lambdaa)*10**2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Diameter of the nth dark ring is\",round(D59,3),\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 24 , Page number 252"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Diameter of the 20th dark ring is 0.908 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=20 #no. of ring\n",
+ "lambdaaR=0.0103 #Wavelength*R\n",
+ " \n",
+ "#Calculations\n",
+ "D20=math.sqrt(4*n*lambdaaR)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Diameter of the 20th dark ring is\",round(D20,3),\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 25 , Page number 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Radius is 12.25 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "D3=10**-2\n",
+ "lambdaa=5890*10**-10\n",
+ "\n",
+ " \n",
+ "#Calculations\n",
+ "R=(D3*math.sqrt(3))*10**-2/(24*lambdaa)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Radius is\",round(R,2),\"m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 26 , Page number 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelength is 5760 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=8 #no. of ring\n",
+ "D8=0.72*10**-2 #Diameter of the 8th ring\n",
+ "R=3 #Radius\n",
+ "\n",
+ " \n",
+ "#Calculations\n",
+ "lambdaa=(D8**2)*10**10/((2*(2*n-1))*R)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelength is %i\"%lambdaa,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 27 , Page number 253"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Velocity in the liquid is 2.08 *10**10 m/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**10 #Speed of Light in Vacuum\n",
+ "mu=1.44 #Refractive Index\n",
+ "\n",
+ "#Calculations\n",
+ "u=c*10**-10/mu\n",
+ "\n",
+ "#Result\n",
+ "print\"The Velocity in the liquid is\",round(u,2),\"*10**10 m/s\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 27 , Page number 254"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Distance between 5th and 15th Dark ring is 0.0085 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5400*10**-10 #Wavelength\n",
+ "n1=5\n",
+ "n2=15\n",
+ "R=100 #Radius of both rings\n",
+ "\n",
+ "#Calculations\n",
+ "r5=math.sqrt((R*n1*lambdaa)/2)\n",
+ "r15=math.sqrt((R*n2*lambdaa)/2)\n",
+ "d=round(r15,4)-round(r5,4)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Distance between 5th and 15th Dark ring is\",d,\"m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 29 , Page number 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Refractive Index is 1.5\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=0.0025 #Distance moved\n",
+ "t=0.005 #thickness of mica sheet\n",
+ "\n",
+ "#Calculations\n",
+ "mu=((l/t)+1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Refractive Index is\",mu"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 30 , Page number 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelength is 5896 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=0.02948*10**-3 #Distance moved\n",
+ "n=100 #number of fringes\n",
+ "\n",
+ "#Calculations\n",
+ "lambdaa=(2*l)*10**10/n\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelength is %i\"%lambdaa,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 31 , Page number 255"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Distance by which the mirror moved is 2893953 *10**-10 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa1=5896 #Wavelength1\n",
+ "lambdaa2=5890 #Wavelength2\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "l=(lambdaa1*lambdaa2)/(2*(lambdaa1-lambdaa2))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Distance by which the mirror moved is %i\"%l,\"*10**-10 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 32 , Page number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Difference between two wavelengths is 5.9 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5893*10**-10 #Wavelength\n",
+ "l=0.2945*10**-3 #Distance by which mirror is displaced\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "dellambdaa=(lambdaa**2)*10**10/(2*l)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Difference between two wavelengths is \",round(dellambdaa,1),\"Angstrom\""
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter2_1.ipynb b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter2_1.ipynb
new file mode 100644
index 00000000..1f094d6a
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter2_1.ipynb
@@ -0,0 +1,681 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 1 : Diffraction\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 1 , Page number 256"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Total Linear Width of central maxima is 1.2 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=6*10**-3 #Angular Width\n",
+ "D=1 #Distance of Screen\n",
+ "\n",
+ "#Calculations\n",
+ "Totalangularwidth=2*theta\n",
+ "tlw=Totalangularwidth*D*10**2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Total Linear Width of central maxima is\",tlw,\"cm\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 2 , Page number 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelength is 5600 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "e=0.14 #width of the slit\n",
+ "y=1.6 #Distance of center of dark band from middle of central bright band\n",
+ "n=2 #no. of dark band\n",
+ "D=2 #Distance from the slit\n",
+ "\n",
+ "#Calculations\n",
+ "lambdaa=((e*y)/(D*n))*10**5\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelength is %i\"%lambdaa,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 3 , Page number 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Width of the slit is 0.0001 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5000*10**-8 #Wavelength\n",
+ "theta=30 #Angular Width\n",
+ "\n",
+ "#Calculations\n",
+ "thetarad=math.radians(theta)\n",
+ "sinetheta=math.sin(thetarad)\n",
+ "e=(lambdaa)/(sinetheta)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Width of the slit is \",e,\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 4 , Page number 257"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelength is 5000 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "y=5*10**-3 #First Minima\n",
+ "D=2 #Distance of screen\n",
+ "e=0.2*10**-3 #Slit width\n",
+ "\n",
+ "#Calculations\n",
+ "lambdaa=((e*y)/D)*10**10\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelength is %i\"%lambdaa,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 6 , Page number 258"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelengths are 6250 Angstrom & 5000 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "y=0.005 #First Minima\n",
+ "D=1 #Distance of screen\n",
+ "e=0.5*10**-2 #Slit width\n",
+ "\n",
+ "#Calculations\n",
+ "yd=(y/D)\n",
+ "sinyd=(math.sin(yd))\n",
+ "lambdaa1=((e*sinyd)/4)*10**9\n",
+ "lambdaa2=((e*sinyd)/5)*10**9\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelengths are %4.0f\" %lambdaa1,\"Angstrom & %4.0f\"%lambdaa2,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 7 , Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelength is 5000 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=2 #order of spectral line\n",
+ "theta=30 #Angular Width\n",
+ "invde=5000 #Inverse of diffraction element\n",
+ "\n",
+ "#Calculations\n",
+ "thetarad=math.radians(theta)\n",
+ "sinetheta=math.sin(thetarad)\n",
+ "lambdaa=((sinetheta)/(n*invde))*10**8\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelength is %i\"%lambdaa,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 8 , Page number 259"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Angular Difference is 46.7 Degrees\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5000*10**-8 #Wavelength\n",
+ "invde=6000 #Diffraction element inverse\n",
+ "\n",
+ "#Calculations\n",
+ "sinetheta1=lambdaa*invde\n",
+ "sinetheta3=lambdaa*invde*3\n",
+ "theta1=math.degrees(math.asin(sinetheta1))\n",
+ "theta3=math.degrees(math.asin(sinetheta3))\n",
+ "deltheta=theta3-theta1\n",
+ "\n",
+ "#Result\n",
+ "print\"The Angular Difference is %2.1f\"%deltheta,\"Degrees\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 9 , Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The orders visible would be 19\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5000*10**-8 #Wavelength\n",
+ "invde=(2620/2.54) #Diffraction element inverse\n",
+ "\n",
+ "#Calculations\n",
+ "n=(1/(lambdaa*invde))\n",
+ "#Result\n",
+ "print\"The orders visible would be %i\"%n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 10 , Page number 260"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 60,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The orders visible will be from 3 to 6 order Spectrum\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa1=4000*10**-8 #Wavelength1\n",
+ "lambdaa2=7000*10**-8 #Wavelength2\n",
+ "invde=4000 #Diffraction element inverse\n",
+ "\n",
+ "#Calculations\n",
+ "n1=(1/(lambdaa1*invde))\n",
+ "n2=(1/(lambdaa2*invde))\n",
+ "#Result\n",
+ "print\"The orders visible will be from %i\"%n2,\"to %i\"%n1,\"order Spectrum\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 12 , Page number 262"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " The number of line cm in grating is 5000.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5000*10**-8 #Wavelength\n",
+ "theta=30 #Angular Width\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "thetarad=(math.radians(theta))\n",
+ "invde=((2*lambdaa)/(math.sin(thetarad)))**-1\n",
+ "\n",
+ "#Result\n",
+ "print\" The number of line cm in grating is\",invde"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 13 , Page number 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " The grating element is 0.00032 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=6000*10**-8 #Wavelength\n",
+ "sinetheta=(3/4) #Angular Width\n",
+ "n=4\n",
+ "\n",
+ "#Calculations\n",
+ "gratingele=((n*lambdaa)/sinetheta)\n",
+ "#Result\n",
+ "print\" The grating element is\",gratingele,\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 14 , Page number 263"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 85,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " The Angle of Diffraction is 2.06 degrees\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=6000*10**-8 #Wavelength\n",
+ "n=3\n",
+ "invde=200 #inverse of diffraction element\n",
+ "\n",
+ "#Calculations\n",
+ "sinetheta=(n*lambdaa*invde)\n",
+ "thetarad=math.asin(sinetheta)\n",
+ "theta=math.degrees(thetarad)\n",
+ "#Result\n",
+ "print\" The Angle of Diffraction is %1.2f\"%theta,\"degrees\"\n",
+ "\n",
+ "#Note:The second part of problem is theoretical and hence is not solved"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 15 , Page number 264"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 101,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " The difference between the two wavelengths is 86.6 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5000*10**-10 #Wavelength\n",
+ "theta=30 #Angular Width\n",
+ "dtheta=0.01\n",
+ "\n",
+ "#Calculations\n",
+ "thetarad=(math.radians(theta))\n",
+ "dlambda=((lambdaa*math.cos(thetarad))/(math.sin(thetarad)))*10**8\n",
+ "\n",
+ "#Result\n",
+ "print\" The difference between the two wavelengths is %2.1f\"%dlambda,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 16 , Page number 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 104,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " The Maximum resolving power is 100000 or 10**5\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5000*10**-8 #Wavelength\n",
+ "N=40000 #Grating lines\n",
+ "de=12.5*10**-5 #Diffraction element\n",
+ "\n",
+ "#Calculations\n",
+ "RPmax=((de*N)/lambdaa)\n",
+ "\n",
+ "#Result\n",
+ "print\" The Maximum resolving power is %i\"%RPmax,\"or 10**5\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 17 , Page number 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 107,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " The Minimum number of lines in the grating are 491\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5890 #Wavelength\n",
+ "dlambdaa=6 #Difference in wavelengths\n",
+ "n=2 #order\n",
+ "\n",
+ "#Calculations\n",
+ "N=((lambdaa)/(n*dlambdaa))\n",
+ "\n",
+ "#Result\n",
+ "print\" The Minimum number of lines in the grating are %3.0f\"%N"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 18 , Page number 265"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 112,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " (a)The resolving power in second order is 120000\n",
+ " (b) The smallest wavelength that can be resolved in the 3rd order in 5896 Angstrom wavelength region is 0.0328 Angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5896 #Wavelength\n",
+ "N=60000 #Total Number of lines in 10 cm\n",
+ "n1=2 #order\n",
+ "n2=3 #order\n",
+ "\n",
+ "#Calculations\n",
+ "RP=n1*N\n",
+ "dlambda=((lambdaa)/(n2*N))\n",
+ "\n",
+ "#Result\n",
+ "print\" (a)The resolving power in second order is\",RP\n",
+ "print\" (b) The smallest wavelength that can be resolved in the 3rd order in 5896 Angstrom wavelength region is %0.4f\"%dlambda,\"Angstrom\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter3_1.ipynb b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter3_1.ipynb
new file mode 100644
index 00000000..f8c7c735
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter3_1.ipynb
@@ -0,0 +1,624 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 3 : Polarization"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 1 , Page number 266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Angle of polarization is 33 Degrees\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mu=1.54 #refractive index of glass\n",
+ "\n",
+ "#Calculations\n",
+ "ip=math.degrees(math.atan(1.54))\n",
+ "r=90-ip\n",
+ "\n",
+ "#Result\n",
+ "print\"The Angle of polarization is %2.0f\"%r,\"Degrees\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 2 , Page number 266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Angle of polarization is 1.7321 Degrees\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "ip=60 #Angle of incidence\n",
+ "\n",
+ "#Calculations\n",
+ "mu=math.tan(math.radians(ip))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Angle of polarization is %1.4f\"%mu,\"Degrees\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 3 , Page number 266"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Angle of Refraction is 49.11 Degrees\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "muwater=0.8660 #Refractive index of water\n",
+ "\n",
+ "#Calculations\n",
+ "ip=math.degrees(math.atan(muwater))\n",
+ "r=90-ip\n",
+ "\n",
+ "#Result\n",
+ "print\"The Angle of Refraction is %2.2f\"%r,\"Degrees\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 4 , Page number 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The thickness of the crystal is 0.003 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=6000*10**-10 #Wavelength\n",
+ "muo=1.55 #Refractive index of ordinary rays\n",
+ "mue=1.54 #Refractive index of extra ordinary rays\n",
+ "\n",
+ "#Calculations\n",
+ "t=((lambdaa)/(2*(muo-mue)))*10**2\n",
+ "\n",
+ "#Result\n",
+ "print\"The thickness of the crystal is \",t,\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 5 , Page number 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The thickness of the crystal is 0.00147325 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5893*10**-10 #Wavelength\n",
+ "muo=1.54 #Refractive index of ordinary rays\n",
+ "mue=1.53 #Refractive index of extra ordinary rays\n",
+ "\n",
+ "#Calculations\n",
+ "t=((lambdaa)/(4*(muo-mue)))*10**2\n",
+ "\n",
+ "#Result\n",
+ "print\"The thickness of the crystal is \",t,\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 6 , Page number 267"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The thickness of the crystal is 0.00268 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5893*10**-10 #Wavelength\n",
+ "muo=1.551 #Refractive index of ordinary rays\n",
+ "mue=1.54 #Refractive index of extra ordinary rays\n",
+ "\n",
+ "#Calculations\n",
+ "t=((lambdaa)/(2*(muo-mue)))*10**2\n",
+ "\n",
+ "#Result\n",
+ "print\"The thickness of the crystal is %0.5f\"%t,\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 7 , Page number 268"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Amount of optical rotation produced is 198 degrees\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=4000*10**-10 #Wavelength\n",
+ "mul=1.55821 #Refractive index of left landed\n",
+ "mur=1.55810 #Refractive index of right landed\n",
+ "t=2*10**-3 #thickness\n",
+ "\n",
+ "#Calculations\n",
+ "orot=math.degrees((2*3.14*(t*(mul-mur)))/lambdaa)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Amount of optical rotation produced is %3.0f\"%orot,\"degrees\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 8 , Page number 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Amount of optical rotation produced is 1.152 pi radians\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5000*10**-10 #Wavelength\n",
+ "muo=1.5418 #Refractive index of ordinary rays\n",
+ "mue=1.5508 #Refractive index of extra ordinary rays\n",
+ "t=0.032*10**-3 #thickness\n",
+ "\n",
+ "#Calculations\n",
+ "orot=((2*(t*(mue-muo)))/lambdaa)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Amount of optical rotation produced is\",orot,\"pi radians\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 9 , Page number 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Specific rotation of sugar solution is 65 degree/(dm/(gm/cc))\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=6.5 #rotation of plane\n",
+ "l=2 #length\n",
+ "c=0.05 #concentration\n",
+ "\n",
+ "#Calculations\n",
+ "s=(theta/(l*c))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Specific rotation of sugar solution is %i\"%s,\"degree/(dm/(gm/cc))\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 10 , Page number 269"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Concentration of sugar solution is, 0.1 gm/cc\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta=12 #rotation of plane\n",
+ "l=2 #length\n",
+ "s=60 #Specific rotation\n",
+ "\n",
+ "#Calculations\n",
+ "c=(theta/(l*s))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Concentration of sugar solution is,\",c,\"gm/cc\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 11 , Page number 270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Mass of sugar dissolved in 2 liter of water for optical rotation 24 deg is 213.3 gm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta1=12 #rotation of plane\n",
+ "l1=2 #length\n",
+ "theta2=24 #rotation of plane\n",
+ "l2=3 #length\n",
+ "c1=0.08 #Concentration\n",
+ "\n",
+ "#Calculations\n",
+ "s=((theta1)/(l1*c1))\n",
+ "c2=((theta2)/(s*l2))\n",
+ "Ms=10*10*10*c2\n",
+ "Ms2=Ms*2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Mass of sugar dissolved in 2 liter of water for optical rotation 24 deg is %3.1f\"%Ms2,\"gm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 12 , Page number 270"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Difference in RI is 8.4 *10**-5\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5086*10**-7 #Wavelength\n",
+ "s=29.73 #Specific rotation\n",
+ "\n",
+ "#Calculations\n",
+ "delmu=((s*lambdaa)/180)*10**5\n",
+ "\n",
+ "#Result\n",
+ "print\"The Difference in RI is %1.1f\"%delmu,\"*10**-5\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 13 , Page number 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Concentation of sugar solution is 6.5 degree\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta1=13 #rotation of plane\n",
+ "l1=2 #length\n",
+ "l2=3 #Length\n",
+ "s=6.5 #Specific rotation\n",
+ "\n",
+ "#Calculations\n",
+ "theta=s*l2*(1/3)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Concentation of sugar solution is \",theta,\"degree\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 14 , Page number 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Length will be 35 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta1=35 #rotation of plane\n",
+ "s=100 #Specific rotation\n",
+ "c=0.1 #Concentration\n",
+ "\n",
+ "#Calculations\n",
+ "l=((theta1)/(s*c))*10\n",
+ "\n",
+ "#Result\n",
+ "print\"The Length will be %i\"%l,\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 15 , Page number 271"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "percentage of purity of sample 93.75 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta1=9.9 #rotation of plane\n",
+ "l=2 #Length\n",
+ "c=0.08 #Concentration\n",
+ "s2=66 #specific rotation\n",
+ "\n",
+ "#Calculations\n",
+ "s1=((theta1)/(l*c))\n",
+ "pis=((s2-s1)/s2)*100\n",
+ "pps=100-pis\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "print\"percentage of purity of sample\",pps,\"%\""
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter4&5_1.ipynb b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter4&5_1.ipynb
new file mode 100644
index 00000000..04a4ba5b
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter4&5_1.ipynb
@@ -0,0 +1,237 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 4 & 5 : Fiber Optics and Laser"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 1 , Page number 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) The critical angle is :80.63 degrees\n",
+ "(b) The Fractional refractive index is :0.013\n",
+ "(c) The Acceptance angle is :0.244 Radians\n",
+ "(d) The Numerical Apperture is :0.242\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "muclad=1.48 #Refractive index of claddings\n",
+ "mucore=1.5 #Refractive index of core\n",
+ "\n",
+ "#Calculations\n",
+ "thetac=math.degrees(math.asin(muclad/mucore))\n",
+ "fri=(mucore-muclad)/mucore\n",
+ "aa=(math.sqrt((mucore**2)-(muclad**2)))\n",
+ "NA=math.sin(aa)\n",
+ "#Result\n",
+ "print\"(a) The critical angle is :%2.2f\"%thetac,\"degrees\"\n",
+ "print\"(b) The Fractional refractive index is :%1.3f\"%fri\n",
+ "print\"(c) The Acceptance angle is :%1.3f\"%aa,\"Radians\"\n",
+ "print\"(d) The Numerical Apperture is :%1.3f\"%NA"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 2 , Page number 273"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) The V number is 40.64\n",
+ "(b) The number of modes are 412.81\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=25*10**-6 #core radius\n",
+ "lambdaa=0.85*10**-6 #Wavelength\n",
+ "NA=0.22 #Numerical Aperture\n",
+ "\n",
+ "#Calculations\n",
+ "V=((2*3.14*a*0.22)/lambdaa)\n",
+ "N=((V**2)/4)\n",
+ "\n",
+ "#Result\n",
+ "print\"(a) The V number is %2.2f\"%V\n",
+ "print\"(b) The number of modes are %3.2f\"%N\n",
+ "\n",
+ "#Note: The answer in the book is wrongly stated as 40.66 and 413.31"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 3 , Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The coherence length of the laser beam is 100000.0 m or 10**5 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8\n",
+ "delf=3000 #Bandwidth\n",
+ "\n",
+ "#Calculations\n",
+ "lc=(c/delf)\n",
+ "\n",
+ "#Result\n",
+ "print\"The coherence length of the laser beam is\",lc,\"m or 10**5 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 4 , Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The transverse coherence length is 0.005 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5*10**-5 #Wavelength\n",
+ "theta=32 #Angle subtended by the sun at the slit\n",
+ "\n",
+ "#Calculations\n",
+ "l=((lambdaa*60*180)/(theta*3.14))\n",
+ "\n",
+ "#Result\n",
+ "print\"The transverse coherence length is %1.3f\"%l,\"cm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 5 , Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Degree of Monochromaticity is 18 *10**-6\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "lambdaa=5400*10**-10 #Wavelength\n",
+ "tc=10**-10 #coherence time\n",
+ "c=3*10**-8 \n",
+ "\n",
+ "#Calculations\n",
+ "dom=((lambdaa)/(tc*c))*10**-10\n",
+ "\n",
+ "#Result\n",
+ "print\"The Degree of Monochromaticity is %2.0f\"%dom,\"*10**-6\""
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter6_1.ipynb b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter6_1.ipynb
new file mode 100644
index 00000000..62f70106
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter6_1.ipynb
@@ -0,0 +1,274 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 6 : Simple Harmonic Motion"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 1 , Page number 274"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The time taken to move from one end of its path to 0.025m from mean position is 1 sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "W=(3.14/3) #Angular frequency in radian\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "t=((3.14)/(3*W))\n",
+ "\n",
+ "#Result\n",
+ "print\"The time taken to move from one end of its path to 0.025m from mean position is %i\"%t,\"sec\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 2 , Page number 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Maximum Velocity is 0.012 m/sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "T=31.4 #Time Period\n",
+ "A=0.06 #Amplitude\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "W=((2*3.14)/T)\n",
+ "Vmax=W*A\n",
+ "\n",
+ "#Result\n",
+ "print\"The Maximum Velocity is\",Vmax,\"m/sec\"\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 3 , Page number 275"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Time Period of Oscillation for the other body is 0.28 sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "m=8 #mass\n",
+ "g=9.8 #acceleration due to gravity\n",
+ "x=0.32 #Stretched spring deviation\n",
+ "m2=0.5 #mass of the other body\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "k=((m*g)/x)\n",
+ "T=((2*3.14)*math.sqrt(m2/k))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Time Period of Oscillation for the other body is %0.2f\"%T,\"sec\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 5 , Page number 276"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Time Interval is 14.67 sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Q=10**4 #Quality Factor\n",
+ "f=250 #Frequency\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Tau=((Q)/(2*3.14*f))\n",
+ "t=((math.log(10,10)*20)/(0.4342944819*3.14))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Time Interval is %2.2f\"%t,\"sec\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 6 , Page number 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Time in which the amplitude decreases is 5.3 sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Q=2000 #Quality Factor\n",
+ "f=240 #Frequency\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Tau=((Q)/(2*3.14*f))\n",
+ "t=4*Tau\n",
+ "\n",
+ "#Result\n",
+ "print\"The Time in which the amplitude decreases is %1.1f\"%t,\"sec\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 7 , Page number 277"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Value of A/Amax is 0.71\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "A=50/1.4 #Amplitude which is A=(50f/1.4*W**2)\n",
+ "Amax=50 #Max Amplitude which is Amax=(50f/W**2)\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "Rat=A/Amax\n",
+ "\n",
+ "#Result\n",
+ "print\"The Value of A/Amax is %0.2f\"%Rat"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter7_1.ipynb b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter7_1.ipynb
new file mode 100644
index 00000000..0ef73a18
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter7_1.ipynb
@@ -0,0 +1,402 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 7 : Dielectric "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 1 , Page number 278"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Magnitude of E for a plane wave in free space is 376.5\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E0=8.86*10**-12\n",
+ "mu0=4*3.14*10**-7\n",
+ "H=1\n",
+ "\n",
+ "#Calculations\n",
+ "E=H*(math.sqrt(mu0/E0))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Magnitude of E for a plane wave in free space is %3.1f\"%E"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 2 , Page number 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Impedence of the Medium is 266.2\n",
+ "The Peak Magnetic Field Intensity is 0.188 A/m\n",
+ "The Velocity of the wave is 2.12 *10**8 m/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "mu0=4*3.14*10**-7\n",
+ "mur=1\n",
+ "Er=2\n",
+ "E0=8.86*10**-12\n",
+ "E01=5\n",
+ "c=3*10**8\n",
+ "\n",
+ "#Calculations\n",
+ "Z=math.sqrt((mu0*mur)/(E0*Er))\n",
+ "H0=(E01/Z)*10\n",
+ "v=((c)/math.sqrt(mur*Er))*10**-8\n",
+ "\n",
+ "#Result\n",
+ "print\"The Impedence of the Medium is %3.1f\"%Z\n",
+ "print\"The Peak Magnetic Field Intensity is %1.3f\"%H0,\"A/m\"\n",
+ "print\"The Velocity of the wave is %1.2f\"%v,\"*10**8 m/s\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 3 , Page number 279"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Wavelength is 0.001 m or 10**-3 m\n",
+ "The Amplitude of the oscillating magnetic field is 1.67 *10**-7 T\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "c=3*10**8\n",
+ "f=3*10**11\n",
+ "E0=50\n",
+ "\n",
+ "#Calculations\n",
+ "lambdaa=(c/f)\n",
+ "B0=(E0/c)*10**7\n",
+ "\n",
+ "#Result\n",
+ "print\"The Wavelength is\",lambdaa,\"m or 10**-3 m\"\n",
+ "print\"The Amplitude of the oscillating magnetic field is %1.2f\"%B0,\"*10**-7 T\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 4 , Page number 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Average solar energy incident on earth is 1.92 cal/cm**2/min\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "R=1.5*10**11 #Average distance between sun & Earth\n",
+ "P=3.8*10**26 #Power Radiated by sun\n",
+ "\n",
+ "\n",
+ "#Calculations\n",
+ "S=((P*60)/(4*3.14*(R**2)*4.2*100))*10**-2\n",
+ "\n",
+ "#Result\n",
+ "print\"The Average solar energy incident on earth is %1.2f\"%S,\"cal/cm**2/min\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 5 , Page number 280"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Amplitude of Electric field is 1026 V/m\n",
+ "The Amplitude of Magnetic field per turn is 2.73 A-turn/m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "S=2 #solar energy\n",
+ "EH=1400\n",
+ "Z=376.6\n",
+ "\n",
+ "#Calculations\n",
+ "E=math.sqrt(EH*Z)\n",
+ "H=math.sqrt(EH/Z)\n",
+ "E0=E*math.sqrt(2)\n",
+ "H0=H*math.sqrt(2)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Amplitude of Electric field is %i\"%E0,\"V/m\"\n",
+ "print\"The Amplitude of Magnetic field per turn is %1.2f\"%H0,\"A-turn/m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 6 , Page number 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Intensity of Electric field is 86.58 V/m\n",
+ "The Intensity of Magnetic Field is 0.230 A-turn/m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "EH=(1000/(16*3.14))\n",
+ "Z=376.6\n",
+ "\n",
+ "#Calculations\n",
+ "E=math.sqrt(EH*Z)\n",
+ "H=math.sqrt(EH/Z)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Intensity of Electric field is %2.2f\"%E,\"V/m\"\n",
+ "print\"The Intensity of Magnetic Field is %0.3f\"%H,\"A-turn/m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 7 , Page number 281"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Intensity of Electric field is 75 Ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "Er=2.22 #Dielectric Constant\n",
+ "D=3.87 #Outer Diameter\n",
+ "d=0.6 #Inner Diameter\n",
+ "\n",
+ "from numpy.lib.scimath import logn\n",
+ "from math import e\n",
+ "\n",
+ "#Calculations\n",
+ "Z=((60/math.sqrt(Er))*logn(e,(D/d)))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Intensity of Electric field is %i\"%Z,\"Ohm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 8 , Page number 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Characteristic Impedence is 74.64 Ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "C=70*10**-12 #Cable Capacitance\n",
+ "L=0.39*10**-6 #Cable Inductance\n",
+ "\n",
+ "#Calculations\n",
+ "Z0=(math.sqrt(L/C))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Characteristic Impedence is %2.2f\"%Z0,\"Ohm\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 9 , Page number 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Dielectric Constant of the insulation used is 2.6\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "VF=0.62 #Velocity Factor of coaxial Cable\n",
+ "\n",
+ "#Calculations\n",
+ "Er=(1/(VF**2))\n",
+ "\n",
+ "#Result\n",
+ "print\"The Dielectric Constant of the insulation used is %1.1f\"%Er"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter8_1.ipynb b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter8_1.ipynb
new file mode 100644
index 00000000..f0adbe2b
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter8_1.ipynb
@@ -0,0 +1,197 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 8 : Electromagnetic Theory"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 1 , Page number 282"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Dipole Moment induced in each Helium atom is 0.244 *10**-38 Coul-m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.000074\n",
+ "E=100\n",
+ "E0=8.854*10**-12\n",
+ "n=0.268*10**26\n",
+ "\n",
+ "#Calculations\n",
+ "p=(k-1)*E0*E\n",
+ "P=(p/n)*10**38\n",
+ "\n",
+ "#Result\n",
+ "print\"The Dipole Moment induced in each Helium atom is %1.3f\"%P,\"*10**-38 Coul-m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 2 , Page number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The Electrical Susceptibility is 0.000074\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=1.000074\n",
+ "#Calculations\n",
+ "X=(k-1)\n",
+ "\n",
+ "#Result\n",
+ "print\"The Electrical Susceptibility is %0.6f\"%X\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 3 , Page number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) The Value of Er is 5\n",
+ "(b) The Net Dipole Moment is 0.0002 coul-m or 2*10**-4 coul-m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "E=1*10**-4\n",
+ "D=5*10**-4\n",
+ "V=0.5\n",
+ "P=4*10**-4\n",
+ "\n",
+ "#Calculations\n",
+ "Er=(D/E)\n",
+ "NDM=P*V\n",
+ "\n",
+ "#Result\n",
+ "print\"(a) The Value of Er is %i\"%Er\n",
+ "print\"(b) The Net Dipole Moment is \",NDM,\"coul-m or 2*10**-4 coul-m\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 4 , Page number 283"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) The Polarization in the Dielectric is 17.71 *10**-6 coul/m**2\n",
+ "(b) The Displacement Current Density is 26.56 *10**-6 coul/m**2\n",
+ "(c) The Energy Density is 13.281 J/m**3\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "k=3\n",
+ "E0=8.854*10**-12\n",
+ "E=10**6\n",
+ "\n",
+ "#Calculations\n",
+ "P=(E0*(k-1)*E)*10**6\n",
+ "D=(E0*k*E)*10**6\n",
+ "Ed=0.5*E0*k*(E**2)\n",
+ "\n",
+ "#Result\n",
+ "print\"(a) The Polarization in the Dielectric is %2.2f\"%P,\"*10**-6 coul/m**2\"\n",
+ "print\"(b) The Displacement Current Density is %2.2f\"%D,\"*10**-6 coul/m**2\"\n",
+ "print\"(c) The Energy Density is\",Ed,\"J/m**3\"\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter9_1.ipynb b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter9_1.ipynb
new file mode 100644
index 00000000..49a8b300
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/Chapter9_1.ipynb
@@ -0,0 +1,194 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 9 : Special Theory of Relativity"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 1 , Page number 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Change in length in diameter= 6.37 *10**-2 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "l=2*6371 #Diameter of earth\n",
+ "v=30 #velocity\n",
+ "c=3*10**5 #velocity of light\n",
+ "\n",
+ "#Calculations\n",
+ "dell=(l*v**2)/(2*c**2)/10**-5\n",
+ "\n",
+ "#Result\n",
+ "print\"Change in length in diameter=\",round(dell,2),\"*10**-2 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 2 , Page number 284"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The minimum speed v= 0.99999996247 c\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delt=10 #time duration at earth\n",
+ "delt1=1/365 \n",
+ "\n",
+ "#Calculations\n",
+ "v=math.sqrt(1-(delt1/delt)**2)\n",
+ "\n",
+ "#Result\n",
+ "print\"The minimum speed v= \",v,\"c\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 3 , Page number 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(1) The time taken on earth (t) = 21.05 year\n",
+ "(2) The time taken on spaceship (t1) = 6.53 year\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "L0=20 #The distance of the star\n",
+ "v=0.95 #velocity\n",
+ "\n",
+ "#Calculations\n",
+ "t=L0/v\n",
+ "L=L0*math.sqrt(1-v**2)\n",
+ "L=round(L,1)\n",
+ "t1=(L*3*10**8)/(v*3*10**8)\n",
+ "\n",
+ "#Result\n",
+ "print\"(1) The time taken on earth (t) = \",round(t,2),\"year\"\n",
+ "print\"(2) The time taken on spaceship (t1) = \",round(t1,2),\"year\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example number 4 , Page number 285"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(1) The height will be same and the length(L0) = 6.25 m\n",
+ "(2) The time elapsed on his friend's watch(t1) = 8.0 sec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "L=5 #Lenth\n",
+ "v=0.6 #velocity\n",
+ "t=10 #time\n",
+ "\n",
+ "#Calculations\n",
+ "L0=L/math.sqrt(1-v**2)\n",
+ "t1=t*math.sqrt(1-v**2)\n",
+ "\n",
+ "#Result\n",
+ "print\"(1) The height will be same and the length(L0) = \",L0,\"m\"\n",
+ "print\"(2) The time elapsed on his friend's watch(t1) = \",t1,\"sec\""
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(1)_1.png b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(1)_1.png
new file mode 100644
index 00000000..e7bfcc51
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(1)_1.png
Binary files differ
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(2)_1.png b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(2)_1.png
new file mode 100644
index 00000000..0f3e8d1a
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(2)_1.png
Binary files differ
diff --git a/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(3)_1.png b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(3)_1.png
new file mode 100644
index 00000000..f66a8b73
--- /dev/null
+++ b/Engineering_Physics_by_Prabir_K_Basu_&_Hrishikesh_Dhasmana/screenshots/Screenshot_(3)_1.png
Binary files differ
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_1_Circuit_Configuration_for_Linear_Integrated_Ciruits.ipynb b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_1_Circuit_Configuration_for_Linear_Integrated_Ciruits.ipynb
new file mode 100644
index 00000000..40471853
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_1_Circuit_Configuration_for_Linear_Integrated_Ciruits.ipynb
@@ -0,0 +1,607 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 1: Circuit Configuration for Linear Integrated Ciruits"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1 Page No:1.81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "adm= -1482.0\n",
+ "acm= -0.222\n",
+ "cmrr= 76.4838188131 db\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "rc=50000;#ohm\n",
+ "re=100000;#ohm\n",
+ "rs=10000;#ohm\n",
+ "rp=50000;#ohm\n",
+ "beta0=2000;\n",
+ "r0=400000;#ohm\n",
+ "\n",
+ "\n",
+ "\n",
+ "#determine adm,acm,cmrr\n",
+ "#calculation\n",
+ "rc1=(rc*r0)/(rc+r0);\n",
+ "adm=(-(beta0*rc1)/(rs+rp))#differential mode gain\n",
+ "acm=(-(beta0*rc1)/(rs+rp+2*re*(beta0+1e0)))#common mode gain\n",
+ "import math\n",
+ "cmrr=20*(math.log10((1+((2*re*(beta0+1))/(rs+rp)))))#common mode rejection ratio\n",
+ "\n",
+ "#result\n",
+ "print 'adm=',round(adm,3);\n",
+ "print 'acm=',round(acm,3);\n",
+ "print 'cmrr=',cmrr,'db'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2 Page No:1.83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "maximum peak amplitude at 100khz 3.185 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=0.000001;#volt/sec\n",
+ "freq=100000;\n",
+ "vsat=12;\n",
+ "baw=100000;\n",
+ "#determine vx\n",
+ "\n",
+ "#calculation\n",
+ "vx=2*(1/(sr*2*3.14*freq))\n",
+ "\n",
+ "#result\n",
+ "print 'maximum peak amplitude at 100khz',round(vx,3),'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3 Page No: 1.84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "slew rate= 5 volt/μsec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "V=20;\n",
+ "t=4;\n",
+ "#determine slew rate\n",
+ "#calculation\n",
+ "w=V/t\n",
+ "#result\n",
+ "print'slew rate=',w,'volt/μsec'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4 Page No: 1.84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "max frequency of input is 79617.8343949 hz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "a=50;\n",
+ "vi=20e-3;\n",
+ "sr=0.5e6;\n",
+ "#determine max frequency\n",
+ "#calculation\n",
+ "vm=a*vi;\n",
+ "freq=sr/(2*3.14*vm)\n",
+ "#result\n",
+ "print 'max frequency of input is ',freq,'hz'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5 Page No: 1.84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "max peak to peak input signal 0.398089171975 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=0.5e6;\n",
+ "freq=40e3;\n",
+ "a=10;\n",
+ "#determine max peak to peak input signal\n",
+ "#calculation\n",
+ "vm=sr/(2*3.14*freq);\n",
+ "vm=2*vm;\n",
+ "v1=vm/a\n",
+ "#result\n",
+ "print'max peak to peak input signal ',v1,'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6 Page No: 1.85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "noise 0.0063247 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "adm=400;\n",
+ "cmrr=50;\n",
+ "vin1=50e-3;\n",
+ "vin2=60e-3;\n",
+ "vnoise=5e-3;\n",
+ "#calculation\n",
+ "v0=(vin2-vin1)*adm;\n",
+ "acm=adm/316.22;\n",
+ "v1=vnoise*acm\n",
+ "print'noise ',round(v1,7),'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7 Page No: 1.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "time to change from 0 t0 15 4e-07 sec\n",
+ "slew rate 1.5 volt/μsec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=35e6;#volt/sec\n",
+ "vsat=15;#volt\n",
+ "#determine time to change from 0 to 15V\n",
+ "#calculation\n",
+ "c=100e-12;#farad\n",
+ "i=150e-6;#A\n",
+ "w=vsat/sr\n",
+ "w1=i/c;\n",
+ "#result\n",
+ "print'time to change from 0 t0 15 ',round(w,7),'sec'\n",
+ "print'slew rate',w1/1000000,'volt/μsec'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8 Page No: 1.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "bandwidth 21231.4225053 hz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=2e6;#v/sec\n",
+ "vsat=15;#volt\n",
+ "#determine bandwidth \n",
+ "#calculation\n",
+ "\n",
+ "bw=sr/(2*3.14*vsat)\n",
+ "#result\n",
+ "print'bandwidth ',bw,'hz'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9 Page No: 1.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output offset 3.0 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "iin=30e-9;#A\n",
+ "a=1e5;\n",
+ "rin=1000;#ohm\n",
+ "#determine output offset voltage\n",
+ "#calculation\n",
+ "vid=iin*rin;\n",
+ "v0=a*vid\n",
+ "#result\n",
+ "print'output offset ',v0,'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10 Page No: 1.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "input offset current 4e-06 A\n",
+ "input base current 2.4e-05 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "inb1=22e-6;#A\n",
+ "inb2=26e-6;#A\n",
+ "#determine input offset current input base current\n",
+ "#calculation\n",
+ "i1=inb2-inb1\n",
+ "i2=(inb2+inb1)/2\n",
+ "#result\n",
+ "print'input offset current ',i1,'A'\n",
+ "print'input base current ',i2,'A'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 11 Page No: 1.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "input base current 8e-08 A\n",
+ "input offset current 2e-08 A\n",
+ "input offset 2.0 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "inb2=90e-9;#A\n",
+ "inb1=70e-9;#A\n",
+ "a=1e5;\n",
+ "#determine input offset current\n",
+ "#calculation\n",
+ "i1=(inb2+inb1)/2\n",
+ "i2=inb2-inb1\n",
+ "v1=((inb2-inb1)*1000)*a\n",
+ "print'input base current ',i1,'A'\n",
+ "print'input offset current ',i2,'A'\n",
+ "print'input offset ',v1,'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12 Page No: 1.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage cmrr 100 0.051 V\n",
+ "output voltage cmrr 200 0.051 V\n",
+ "output voltage cmrr 450 0.05 V\n",
+ "output voltage cmrr 105 0.051 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "vin1=150e-6;#volt\n",
+ "vin2=100e-6;#volt\n",
+ "a=1000;\n",
+ "from array import array\n",
+ "cmrr=array('i',[100,200,450,105])\n",
+ "#determine output voltage\n",
+ "#calculation\n",
+ "vc=(vin1+vin2)/2;\n",
+ "vd=(vin1-vin2);\n",
+ "j=0;\n",
+ "while j<=3 :v0=(a*vd*(1+(vc/(cmrr[j]*vd)))) ;print 'output voltage cmrr ',cmrr[j],' ',round(v0,3),'V';j=j+1;\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13 Page No: 1.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 0.003 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "rin=100e3;#ohm\n",
+ "rf1=900e3;#ohm\n",
+ "vc=1;#volt\n",
+ "cmrr=70;\n",
+ "#determine the output voltage\n",
+ "#calculation\n",
+ "v0=(1+(rf1/rin))*vc/3160\n",
+ "print 'output voltage ',round(v0,3),'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14 Page No: 1.89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "input voltage 0.08 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=0.5e6;#volt/sec\n",
+ "a=50;\n",
+ "freq=20e3;#hz\n",
+ "#determine max peak to peak voltage\n",
+ "#calculation\n",
+ "v1=sr/(2*3.14*freq*a)\n",
+ "print'input voltage ',round(v1,3),'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 15 Page No: 1.90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "max frequency 26.539 Khz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=50e6;#volt/sec\n",
+ "rin=2;\n",
+ "vimax=10;\n",
+ "#determine max frequency\n",
+ "#calculation\n",
+ "vm=vimax*(1+rin);\n",
+ "freq=sr/(2*3.14*vm)/10e3;\n",
+ "print 'max frequency ',round(freq,3),'Khz'\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_1_Circuit_Configuration_for_Linear_Integrated_Ciruits_1.ipynb b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_1_Circuit_Configuration_for_Linear_Integrated_Ciruits_1.ipynb
new file mode 100644
index 00000000..40471853
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_1_Circuit_Configuration_for_Linear_Integrated_Ciruits_1.ipynb
@@ -0,0 +1,607 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter 1: Circuit Configuration for Linear Integrated Ciruits"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1 Page No:1.81"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "adm= -1482.0\n",
+ "acm= -0.222\n",
+ "cmrr= 76.4838188131 db\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "rc=50000;#ohm\n",
+ "re=100000;#ohm\n",
+ "rs=10000;#ohm\n",
+ "rp=50000;#ohm\n",
+ "beta0=2000;\n",
+ "r0=400000;#ohm\n",
+ "\n",
+ "\n",
+ "\n",
+ "#determine adm,acm,cmrr\n",
+ "#calculation\n",
+ "rc1=(rc*r0)/(rc+r0);\n",
+ "adm=(-(beta0*rc1)/(rs+rp))#differential mode gain\n",
+ "acm=(-(beta0*rc1)/(rs+rp+2*re*(beta0+1e0)))#common mode gain\n",
+ "import math\n",
+ "cmrr=20*(math.log10((1+((2*re*(beta0+1))/(rs+rp)))))#common mode rejection ratio\n",
+ "\n",
+ "#result\n",
+ "print 'adm=',round(adm,3);\n",
+ "print 'acm=',round(acm,3);\n",
+ "print 'cmrr=',cmrr,'db'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 2 Page No:1.83"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "maximum peak amplitude at 100khz 3.185 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=0.000001;#volt/sec\n",
+ "freq=100000;\n",
+ "vsat=12;\n",
+ "baw=100000;\n",
+ "#determine vx\n",
+ "\n",
+ "#calculation\n",
+ "vx=2*(1/(sr*2*3.14*freq))\n",
+ "\n",
+ "#result\n",
+ "print 'maximum peak amplitude at 100khz',round(vx,3),'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 3 Page No: 1.84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "slew rate= 5 volt/μsec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "V=20;\n",
+ "t=4;\n",
+ "#determine slew rate\n",
+ "#calculation\n",
+ "w=V/t\n",
+ "#result\n",
+ "print'slew rate=',w,'volt/μsec'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 4 Page No: 1.84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "max frequency of input is 79617.8343949 hz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "a=50;\n",
+ "vi=20e-3;\n",
+ "sr=0.5e6;\n",
+ "#determine max frequency\n",
+ "#calculation\n",
+ "vm=a*vi;\n",
+ "freq=sr/(2*3.14*vm)\n",
+ "#result\n",
+ "print 'max frequency of input is ',freq,'hz'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 5 Page No: 1.84"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "max peak to peak input signal 0.398089171975 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=0.5e6;\n",
+ "freq=40e3;\n",
+ "a=10;\n",
+ "#determine max peak to peak input signal\n",
+ "#calculation\n",
+ "vm=sr/(2*3.14*freq);\n",
+ "vm=2*vm;\n",
+ "v1=vm/a\n",
+ "#result\n",
+ "print'max peak to peak input signal ',v1,'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Example 6 Page No: 1.85"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "noise 0.0063247 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "adm=400;\n",
+ "cmrr=50;\n",
+ "vin1=50e-3;\n",
+ "vin2=60e-3;\n",
+ "vnoise=5e-3;\n",
+ "#calculation\n",
+ "v0=(vin2-vin1)*adm;\n",
+ "acm=adm/316.22;\n",
+ "v1=vnoise*acm\n",
+ "print'noise ',round(v1,7),'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 7 Page No: 1.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "time to change from 0 t0 15 4e-07 sec\n",
+ "slew rate 1.5 volt/μsec\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=35e6;#volt/sec\n",
+ "vsat=15;#volt\n",
+ "#determine time to change from 0 to 15V\n",
+ "#calculation\n",
+ "c=100e-12;#farad\n",
+ "i=150e-6;#A\n",
+ "w=vsat/sr\n",
+ "w1=i/c;\n",
+ "#result\n",
+ "print'time to change from 0 t0 15 ',round(w,7),'sec'\n",
+ "print'slew rate',w1/1000000,'volt/μsec'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 8 Page No: 1.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "bandwidth 21231.4225053 hz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=2e6;#v/sec\n",
+ "vsat=15;#volt\n",
+ "#determine bandwidth \n",
+ "#calculation\n",
+ "\n",
+ "bw=sr/(2*3.14*vsat)\n",
+ "#result\n",
+ "print'bandwidth ',bw,'hz'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 9 Page No: 1.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output offset 3.0 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "iin=30e-9;#A\n",
+ "a=1e5;\n",
+ "rin=1000;#ohm\n",
+ "#determine output offset voltage\n",
+ "#calculation\n",
+ "vid=iin*rin;\n",
+ "v0=a*vid\n",
+ "#result\n",
+ "print'output offset ',v0,'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 10 Page No: 1.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "input offset current 4e-06 A\n",
+ "input base current 2.4e-05 A\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "inb1=22e-6;#A\n",
+ "inb2=26e-6;#A\n",
+ "#determine input offset current input base current\n",
+ "#calculation\n",
+ "i1=inb2-inb1\n",
+ "i2=(inb2+inb1)/2\n",
+ "#result\n",
+ "print'input offset current ',i1,'A'\n",
+ "print'input base current ',i2,'A'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 11 Page No: 1.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "input base current 8e-08 A\n",
+ "input offset current 2e-08 A\n",
+ "input offset 2.0 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "inb2=90e-9;#A\n",
+ "inb1=70e-9;#A\n",
+ "a=1e5;\n",
+ "#determine input offset current\n",
+ "#calculation\n",
+ "i1=(inb2+inb1)/2\n",
+ "i2=inb2-inb1\n",
+ "v1=((inb2-inb1)*1000)*a\n",
+ "print'input base current ',i1,'A'\n",
+ "print'input offset current ',i2,'A'\n",
+ "print'input offset ',v1,'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 12 Page No: 1.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage cmrr 100 0.051 V\n",
+ "output voltage cmrr 200 0.051 V\n",
+ "output voltage cmrr 450 0.05 V\n",
+ "output voltage cmrr 105 0.051 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "vin1=150e-6;#volt\n",
+ "vin2=100e-6;#volt\n",
+ "a=1000;\n",
+ "from array import array\n",
+ "cmrr=array('i',[100,200,450,105])\n",
+ "#determine output voltage\n",
+ "#calculation\n",
+ "vc=(vin1+vin2)/2;\n",
+ "vd=(vin1-vin2);\n",
+ "j=0;\n",
+ "while j<=3 :v0=(a*vd*(1+(vc/(cmrr[j]*vd)))) ;print 'output voltage cmrr ',cmrr[j],' ',round(v0,3),'V';j=j+1;\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 13 Page No: 1.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 0.003 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "rin=100e3;#ohm\n",
+ "rf1=900e3;#ohm\n",
+ "vc=1;#volt\n",
+ "cmrr=70;\n",
+ "#determine the output voltage\n",
+ "#calculation\n",
+ "v0=(1+(rf1/rin))*vc/3160\n",
+ "print 'output voltage ',round(v0,3),'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 14 Page No: 1.89"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "input voltage 0.08 V\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=0.5e6;#volt/sec\n",
+ "a=50;\n",
+ "freq=20e3;#hz\n",
+ "#determine max peak to peak voltage\n",
+ "#calculation\n",
+ "v1=sr/(2*3.14*freq*a)\n",
+ "print'input voltage ',round(v1,3),'V'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 15 Page No: 1.90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "max frequency 26.539 Khz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "sr=50e6;#volt/sec\n",
+ "rin=2;\n",
+ "vimax=10;\n",
+ "#determine max frequency\n",
+ "#calculation\n",
+ "vm=vimax*(1+rin);\n",
+ "freq=sr/(2*3.14*vm)/10e3;\n",
+ "print 'max frequency ',round(freq,3),'Khz'\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_2_Applications_Of_Operational_Amplifier.ipynb b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_2_Applications_Of_Operational_Amplifier.ipynb
new file mode 100644
index 00000000..7106978b
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_2_Applications_Of_Operational_Amplifier.ipynb
@@ -0,0 +1,871 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#Chapter 2 Applications Of Operational Amplifier"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 1 pagenumber 2.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 100.0 kohm\n",
+ "R2= 10 kohm\n",
+ "R3= 1 kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "Rf=10;#ohm\n",
+ "gain1=0.1;\n",
+ "gain2=1;\n",
+ "gain3=10;\n",
+ "#determine r1,r1,r3 \n",
+ "\n",
+ "print 'R1=',Rf/gain1,'kohm';\n",
+ "print 'R2=',Rf/gain2,'kohm';\n",
+ "print 'R3=',Rf/gain3,'kohm';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 2 pagenumber 2.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 3.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "v1=5;#volt\n",
+ "v2=2;#volt\n",
+ "rf1=10e3;#ohm\n",
+ "r1=10e3;#ohm\n",
+ "#determine output voltage\n",
+ "v0=-((-v1*rf1/r1)-(-v2*rf1/r1));#output voltage\n",
+ "print 'output voltage ',v0,'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 4 pagenumber 2.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "switch off gain 1.0\n",
+ "switch on gain -2.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=10e3;#ohm\n",
+ "rf1=20e3;#ohm\n",
+ "r2=5e3;#ohm\n",
+ "#determine gain of amplifier\n",
+ "a1=1+rf1/r1;#gain\n",
+ "a2=-rf1/r1;\n",
+ "print 'switch off gain ',a1+a2;\n",
+ "print 'switch on gain',a2;"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 5 pagenumber 2.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 6.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "v1=2;#volt\n",
+ "v2=3;#volt\n",
+ "r1=1e3;#ohm\n",
+ "rf1=5e3;#ohm\n",
+ "r2=8e3;#ohm\n",
+ "#determine output voltage\n",
+ "v11=v2*r2/(r2+r1);#output voltage\n",
+ "print 'output voltage ',(1+rf1/r1)*(v2-v1),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 6 pagenumber 2.90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "gain amplifer 4.5\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=2e3;#ohm\n",
+ "rf1=8e3;#ohm\n",
+ "A=45;\n",
+ "#determine gain\n",
+ "a=1+(rf1/r1)\n",
+ "gain=A/(1+A/a);\n",
+ "print 'gain amplifer ',gain\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 7 pagenumber 2.91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "commom mode rejection ratio 929.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=1e3;#ohm\n",
+ "r2=100e3;#ohm\n",
+ "rf1=90e3;#ohm\n",
+ "#determine cmrr\n",
+ "ac=10e3/(r1+r2);#common mode gain\n",
+ "ad=(rf1+r1*((r2)/(r1+r2)*2))/r1;#differential mode gaih\n",
+ "print 'commom mode rejection ratio ',ad/ac#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 8 pagenumber 2.92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output current -4.0 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "ii1=2e-3;#A\n",
+ "rf1=2e3;#ohm\n",
+ "r0=2e3;#ohm\n",
+ "#determine output current\n",
+ "i0=-(ii1+(ii1*rf1)/r0)#output current\n",
+ "\n",
+ "print 'output current',i0*1e3,'mA'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 10 pagenumber 2.94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage -0.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "v1=5;#volt\n",
+ "v2=2;#volt\n",
+ "r1=10e3;#ohm\n",
+ "rf1=r1;#ohm\n",
+ "#determine output voltage\n",
+ "v01=-v1*(rf1/r1);#output voltage\n",
+ "v0=-(rf1/r1)*(v01+v1)\n",
+ "\n",
+ "print 'output voltage ',v0,'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 11 pagenumber 2.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage -5.0 v1 + 2.0 v2\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "rf1=10e3;#ohm\n",
+ "r1=2e3;#ohm\n",
+ "r2=5e3;#ohm\n",
+ "#determine output voltage\n",
+ "print 'output voltage ',-rf1/r1,'v1 +',rf1/r2,'v2'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 13 pagenumber 2.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 1.592 Kohm\n",
+ "Ri= 10 Kohm\n",
+ "Rf= 5.76 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=1e3;#hz\n",
+ "c=0.1e-6;#farad\n",
+ "#determine rf ri r1\n",
+ "r1=1/(2*3.14*freq*c)\n",
+ "print 'R1=',round(r1/1e3,3),'Kohm'\n",
+ "print 'Ri= 10 Kohm'\n",
+ "ri=10e3;\n",
+ "rf=(1.576-1)*ri;\n",
+ "print 'Rf=',rf/1000,'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 14 pagenumber 2.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 796.0 ohm\n",
+ "R2= 9.0 ohm\n",
+ "R3= 32.0 ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fc=3e3;#hz\n",
+ "q=30;\n",
+ "af=20;\n",
+ "c=0.1e-6;#farad\n",
+ "#determine r1 r2 r3\n",
+ "r1=q/(2*3.14*fc*c*af)\n",
+ "r2=q/(2*3.14*fc*c*(2*q*q-af))\n",
+ "r3=q/(3.14*fc*c)/1e3;\n",
+ "print 'R1=',round(r1),'ohm'\n",
+ "print 'R2=',round(r2),'ohm'\n",
+ "print 'R3=',round(r3),'ohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 15 pagenumber 2.98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R= 11.0 Kohm\n",
+ "Rf1= 66.0 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fc=1.5e3;#hz\n",
+ "c=0.01e-6;#farad\n",
+ "r1=33e3;#ohm\n",
+ "#determine rf1\n",
+ "r=1/(2*3.14*fc*c)\n",
+ "rf1=2*r1\n",
+ "print 'R= ',round(r/1e3),'Kohm'\n",
+ "print 'Rf1=',round(rf1/1e3),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 16 pagenumber 2.99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 3.18 Kohm\n",
+ "R2= 723.8 ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "f1=500;#hz\n",
+ "f2=2.2e3;#hz\n",
+ "a=5;\n",
+ "c=0.1e-6;#farad\n",
+ "rf1=10e3;#ohm\n",
+ "#determine r1 r2\n",
+ "r1=1/(2*3.14*f1*c)\n",
+ "r2=1/(2*3.14*f2*c)\n",
+ "print 'R1=',round(r1/1000,2),'Kohm'\n",
+ "print 'R2=',round(r2,1),'ohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 17 pagenumber 2.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Vin 0.1 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "R=100e3;#ohm\n",
+ "IB=1e-6;#A\n",
+ "Vt=25e-3;#volt\n",
+ "v0=0;#volt\n",
+ "#determine Vin\n",
+ "Vin=(v0*2.3*Vt)+(R*IB);#input voltage\n",
+ "print \"Vin \",round(Vin,3),\" volt\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 18 pagenumber 2.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 1885.0 Kohm\n",
+ "R2= 29 ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=100;#hz\n",
+ "c=0.1e-6;#farad\n",
+ "#determine r1 r2\n",
+ "r2=29;#assume\n",
+ "r1=((0.065/(freq*c))*10)*r2\n",
+ "print 'R1=',round(r1/1e3,3),'Kohm'\n",
+ "print 'R2= 29 ohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 19 pagenumber 2.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 10.0 Kohm\n",
+ "Rf1= 5.0 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=15.9e3;#hz\n",
+ "a=1.5;\n",
+ "#determine rf1 r1\n",
+ "c=0.001e-6;#farad\n",
+ "r1=1/(2*3.14*freq*c)\n",
+ "rf1=(a-1)*(1/(2*3.14*freq*c))#feedback resistance\n",
+ "print 'R=',round(r1/1e3,1),'Kohm'\n",
+ "print'Rf=',round(rf1/1e3,1),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 20 pagenumber 2.103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 14.7 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "v1=2;#volt\n",
+ "v2=3;#volt\n",
+ "v3=6;#volt\n",
+ "v4=8;#volt\n",
+ "rf1=50e3;#ohm\n",
+ "r1=40e3;#ohm\n",
+ "r2=25e3;#ohm\n",
+ "r3=10e3;#ohm\n",
+ "r4=20e3;#ohm\n",
+ "#determine output voltage\n",
+ "v0x=-(v1*rf1/r1)-(v2*rf1/r2);\n",
+ "vn=12e3*v3/(r3+12e3)+(7.5e3*v4/(r4+7.5e3));\n",
+ "v0y=(1+rf1/(r1*r2/(r1+r2)))*vn;\n",
+ "print 'output voltage ',round(v0x+v0y,1),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 22 pagenumber 2.105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage -25 volt\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0xa347f60>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#given\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, text, xlabel, ylabel, show, axes, title, gca\n",
+ "from numpy import arange, nditer\n",
+ "rc1=1;\n",
+ "vi=5;#volt\n",
+ "c=1e-6;#farad\n",
+ "r=1e6;#ohm\n",
+ "#determine output voltage\n",
+ "v0=-(1/rc1)*(vi*5)#output voltage\n",
+ "from array import array\n",
+ "x=array('f',[0,1,2,3,4,5,6])\n",
+ "y=array('f',[0,-5,-10,-15,-20,-25,-30])\n",
+ "plot(x,y) \n",
+ "title(\"Example 22\")\n",
+ "xlabel(\"t in seconds\")\n",
+ "ylabel(\"output voltage in volts\")\n",
+ "print 'output voltage ',v0,'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 23 paenumber 2.106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 0.01 -0.414 volt\n",
+ "output voltage 0.1 -0.474 volt\n",
+ "output voltage 1.0 -0.533 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "from array import array\n",
+ "vi=array('f',[10e-3,100e-3,1]);\n",
+ "r1=1e3;#ohm\n",
+ "i1=10e-13;#A\n",
+ "#determine output voltage\n",
+ "w=0;\n",
+ "import math\n",
+ "while w<3 : v0=-(0.02571)*(math.log(vi[w]/(i1*r1))); print'output voltage',round(vi[w],3),round(v0,3),'volt'; w=w+1;#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 24 pagenumber 2.107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 0.067 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "k1=1.38e-23;#j/k\n",
+ "t1=298;#k\n",
+ "q=1.6e-19;#columb\n",
+ "vi=10e-3;#volt\n",
+ "ri=10e3;#ohm\n",
+ "#determine output voltage\n",
+ "import math\n",
+ "v0=-(k1*t1/q)*0.4343*math.log(vi/ri)/2.303;#output voltage\n",
+ "print 'output voltage ',round(v0,3),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 25 pagenumber 2.108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 14751.04 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "rf1=10e3;#ohm\n",
+ "vi=1e-2;#volt\n",
+ "#determine output voltage\n",
+ "import math\n",
+ "v0=math.exp(-vi/26e-3)*rf1*2.167;#output voltage\n",
+ "print'output voltage ',round(v0,2),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 26 pagenumber 2.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "quality factor 3.333\n",
+ "lower frequency 1291.781 hz\n",
+ "upper frequency 1741.781 hz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=1.5e3;#hz\n",
+ "bw=450;#hz\n",
+ "#determine qualityfactor f1 f2\n",
+ "q=freq/bw;#quality factor\n",
+ "import math\n",
+ "f1=freq*math.sqrt(1+(1/(4*q*q)))-freq/(2*q);#lower frequency\n",
+ "f2=freq*math.sqrt(1+(1/(4*q*q)))+bw/2;#upper frequency\n",
+ "print'quality factor ',round(q,3)\n",
+ "print'lower frequency ',round(f1,3),'hz'\n",
+ "print'upper frequency ',round(f2,3),'hz'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Exammple 27 pagenumber 2.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rf 7.962 Kohm\n",
+ "R1 796.178 ohm\n",
+ "Cf 0.01 μfarad\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=200;#hz\n",
+ "vi=2;#volt\n",
+ "c1=0.1e-6;#farad\n",
+ "freqb=2000;#hz\n",
+ "#determine cf1 rf1 r1\n",
+ "rf1=1/(2*3.14*freq*c1);#feedback resistance\n",
+ "r1=1/(2*3.14*c1*freqb);#input resistance\n",
+ "cf1=r1*c1/rf1;#feedback capacitance\n",
+ "print'Rf ',round(rf1/1e3,3),' Kohm'\n",
+ "print'R1 ',round(r1,3),'ohm'\n",
+ "print'Cf ',round(cf1*1e6,3),' μfarad'#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_2_Applications_Of_Operational_Amplifier_1.ipynb b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_2_Applications_Of_Operational_Amplifier_1.ipynb
new file mode 100644
index 00000000..7106978b
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_2_Applications_Of_Operational_Amplifier_1.ipynb
@@ -0,0 +1,871 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#Chapter 2 Applications Of Operational Amplifier"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 1 pagenumber 2.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 100.0 kohm\n",
+ "R2= 10 kohm\n",
+ "R3= 1 kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "Rf=10;#ohm\n",
+ "gain1=0.1;\n",
+ "gain2=1;\n",
+ "gain3=10;\n",
+ "#determine r1,r1,r3 \n",
+ "\n",
+ "print 'R1=',Rf/gain1,'kohm';\n",
+ "print 'R2=',Rf/gain2,'kohm';\n",
+ "print 'R3=',Rf/gain3,'kohm';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 2 pagenumber 2.86"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 3.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "v1=5;#volt\n",
+ "v2=2;#volt\n",
+ "rf1=10e3;#ohm\n",
+ "r1=10e3;#ohm\n",
+ "#determine output voltage\n",
+ "v0=-((-v1*rf1/r1)-(-v2*rf1/r1));#output voltage\n",
+ "print 'output voltage ',v0,'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 4 pagenumber 2.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "switch off gain 1.0\n",
+ "switch on gain -2.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=10e3;#ohm\n",
+ "rf1=20e3;#ohm\n",
+ "r2=5e3;#ohm\n",
+ "#determine gain of amplifier\n",
+ "a1=1+rf1/r1;#gain\n",
+ "a2=-rf1/r1;\n",
+ "print 'switch off gain ',a1+a2;\n",
+ "print 'switch on gain',a2;"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 5 pagenumber 2.87"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 6.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "v1=2;#volt\n",
+ "v2=3;#volt\n",
+ "r1=1e3;#ohm\n",
+ "rf1=5e3;#ohm\n",
+ "r2=8e3;#ohm\n",
+ "#determine output voltage\n",
+ "v11=v2*r2/(r2+r1);#output voltage\n",
+ "print 'output voltage ',(1+rf1/r1)*(v2-v1),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 6 pagenumber 2.90"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "gain amplifer 4.5\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=2e3;#ohm\n",
+ "rf1=8e3;#ohm\n",
+ "A=45;\n",
+ "#determine gain\n",
+ "a=1+(rf1/r1)\n",
+ "gain=A/(1+A/a);\n",
+ "print 'gain amplifer ',gain\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 7 pagenumber 2.91"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "commom mode rejection ratio 929.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=1e3;#ohm\n",
+ "r2=100e3;#ohm\n",
+ "rf1=90e3;#ohm\n",
+ "#determine cmrr\n",
+ "ac=10e3/(r1+r2);#common mode gain\n",
+ "ad=(rf1+r1*((r2)/(r1+r2)*2))/r1;#differential mode gaih\n",
+ "print 'commom mode rejection ratio ',ad/ac#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 8 pagenumber 2.92"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output current -4.0 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "ii1=2e-3;#A\n",
+ "rf1=2e3;#ohm\n",
+ "r0=2e3;#ohm\n",
+ "#determine output current\n",
+ "i0=-(ii1+(ii1*rf1)/r0)#output current\n",
+ "\n",
+ "print 'output current',i0*1e3,'mA'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 10 pagenumber 2.94"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage -0.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "v1=5;#volt\n",
+ "v2=2;#volt\n",
+ "r1=10e3;#ohm\n",
+ "rf1=r1;#ohm\n",
+ "#determine output voltage\n",
+ "v01=-v1*(rf1/r1);#output voltage\n",
+ "v0=-(rf1/r1)*(v01+v1)\n",
+ "\n",
+ "print 'output voltage ',v0,'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 11 pagenumber 2.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage -5.0 v1 + 2.0 v2\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "rf1=10e3;#ohm\n",
+ "r1=2e3;#ohm\n",
+ "r2=5e3;#ohm\n",
+ "#determine output voltage\n",
+ "print 'output voltage ',-rf1/r1,'v1 +',rf1/r2,'v2'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 13 pagenumber 2.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 1.592 Kohm\n",
+ "Ri= 10 Kohm\n",
+ "Rf= 5.76 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=1e3;#hz\n",
+ "c=0.1e-6;#farad\n",
+ "#determine rf ri r1\n",
+ "r1=1/(2*3.14*freq*c)\n",
+ "print 'R1=',round(r1/1e3,3),'Kohm'\n",
+ "print 'Ri= 10 Kohm'\n",
+ "ri=10e3;\n",
+ "rf=(1.576-1)*ri;\n",
+ "print 'Rf=',rf/1000,'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 14 pagenumber 2.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 796.0 ohm\n",
+ "R2= 9.0 ohm\n",
+ "R3= 32.0 ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fc=3e3;#hz\n",
+ "q=30;\n",
+ "af=20;\n",
+ "c=0.1e-6;#farad\n",
+ "#determine r1 r2 r3\n",
+ "r1=q/(2*3.14*fc*c*af)\n",
+ "r2=q/(2*3.14*fc*c*(2*q*q-af))\n",
+ "r3=q/(3.14*fc*c)/1e3;\n",
+ "print 'R1=',round(r1),'ohm'\n",
+ "print 'R2=',round(r2),'ohm'\n",
+ "print 'R3=',round(r3),'ohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 15 pagenumber 2.98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R= 11.0 Kohm\n",
+ "Rf1= 66.0 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fc=1.5e3;#hz\n",
+ "c=0.01e-6;#farad\n",
+ "r1=33e3;#ohm\n",
+ "#determine rf1\n",
+ "r=1/(2*3.14*fc*c)\n",
+ "rf1=2*r1\n",
+ "print 'R= ',round(r/1e3),'Kohm'\n",
+ "print 'Rf1=',round(rf1/1e3),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 16 pagenumber 2.99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 3.18 Kohm\n",
+ "R2= 723.8 ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "f1=500;#hz\n",
+ "f2=2.2e3;#hz\n",
+ "a=5;\n",
+ "c=0.1e-6;#farad\n",
+ "rf1=10e3;#ohm\n",
+ "#determine r1 r2\n",
+ "r1=1/(2*3.14*f1*c)\n",
+ "r2=1/(2*3.14*f2*c)\n",
+ "print 'R1=',round(r1/1000,2),'Kohm'\n",
+ "print 'R2=',round(r2,1),'ohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 17 pagenumber 2.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Vin 0.1 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "R=100e3;#ohm\n",
+ "IB=1e-6;#A\n",
+ "Vt=25e-3;#volt\n",
+ "v0=0;#volt\n",
+ "#determine Vin\n",
+ "Vin=(v0*2.3*Vt)+(R*IB);#input voltage\n",
+ "print \"Vin \",round(Vin,3),\" volt\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 18 pagenumber 2.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 1885.0 Kohm\n",
+ "R2= 29 ohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=100;#hz\n",
+ "c=0.1e-6;#farad\n",
+ "#determine r1 r2\n",
+ "r2=29;#assume\n",
+ "r1=((0.065/(freq*c))*10)*r2\n",
+ "print 'R1=',round(r1/1e3,3),'Kohm'\n",
+ "print 'R2= 29 ohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 19 pagenumber 2.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1= 10.0 Kohm\n",
+ "Rf1= 5.0 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=15.9e3;#hz\n",
+ "a=1.5;\n",
+ "#determine rf1 r1\n",
+ "c=0.001e-6;#farad\n",
+ "r1=1/(2*3.14*freq*c)\n",
+ "rf1=(a-1)*(1/(2*3.14*freq*c))#feedback resistance\n",
+ "print 'R=',round(r1/1e3,1),'Kohm'\n",
+ "print'Rf=',round(rf1/1e3,1),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 20 pagenumber 2.103"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 14.7 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "v1=2;#volt\n",
+ "v2=3;#volt\n",
+ "v3=6;#volt\n",
+ "v4=8;#volt\n",
+ "rf1=50e3;#ohm\n",
+ "r1=40e3;#ohm\n",
+ "r2=25e3;#ohm\n",
+ "r3=10e3;#ohm\n",
+ "r4=20e3;#ohm\n",
+ "#determine output voltage\n",
+ "v0x=-(v1*rf1/r1)-(v2*rf1/r2);\n",
+ "vn=12e3*v3/(r3+12e3)+(7.5e3*v4/(r4+7.5e3));\n",
+ "v0y=(1+rf1/(r1*r2/(r1+r2)))*vn;\n",
+ "print 'output voltage ',round(v0x+v0y,1),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 22 pagenumber 2.105"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage -25 volt\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0xa347f60>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#given\n",
+ "%matplotlib inline\n",
+ "from matplotlib.pyplot import plot, text, xlabel, ylabel, show, axes, title, gca\n",
+ "from numpy import arange, nditer\n",
+ "rc1=1;\n",
+ "vi=5;#volt\n",
+ "c=1e-6;#farad\n",
+ "r=1e6;#ohm\n",
+ "#determine output voltage\n",
+ "v0=-(1/rc1)*(vi*5)#output voltage\n",
+ "from array import array\n",
+ "x=array('f',[0,1,2,3,4,5,6])\n",
+ "y=array('f',[0,-5,-10,-15,-20,-25,-30])\n",
+ "plot(x,y) \n",
+ "title(\"Example 22\")\n",
+ "xlabel(\"t in seconds\")\n",
+ "ylabel(\"output voltage in volts\")\n",
+ "print 'output voltage ',v0,'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 23 paenumber 2.106"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 0.01 -0.414 volt\n",
+ "output voltage 0.1 -0.474 volt\n",
+ "output voltage 1.0 -0.533 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "from array import array\n",
+ "vi=array('f',[10e-3,100e-3,1]);\n",
+ "r1=1e3;#ohm\n",
+ "i1=10e-13;#A\n",
+ "#determine output voltage\n",
+ "w=0;\n",
+ "import math\n",
+ "while w<3 : v0=-(0.02571)*(math.log(vi[w]/(i1*r1))); print'output voltage',round(vi[w],3),round(v0,3),'volt'; w=w+1;#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 24 pagenumber 2.107"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 0.067 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "k1=1.38e-23;#j/k\n",
+ "t1=298;#k\n",
+ "q=1.6e-19;#columb\n",
+ "vi=10e-3;#volt\n",
+ "ri=10e3;#ohm\n",
+ "#determine output voltage\n",
+ "import math\n",
+ "v0=-(k1*t1/q)*0.4343*math.log(vi/ri)/2.303;#output voltage\n",
+ "print 'output voltage ',round(v0,3),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 25 pagenumber 2.108"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 14751.04 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "rf1=10e3;#ohm\n",
+ "vi=1e-2;#volt\n",
+ "#determine output voltage\n",
+ "import math\n",
+ "v0=math.exp(-vi/26e-3)*rf1*2.167;#output voltage\n",
+ "print'output voltage ',round(v0,2),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 26 pagenumber 2.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "quality factor 3.333\n",
+ "lower frequency 1291.781 hz\n",
+ "upper frequency 1741.781 hz\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=1.5e3;#hz\n",
+ "bw=450;#hz\n",
+ "#determine qualityfactor f1 f2\n",
+ "q=freq/bw;#quality factor\n",
+ "import math\n",
+ "f1=freq*math.sqrt(1+(1/(4*q*q)))-freq/(2*q);#lower frequency\n",
+ "f2=freq*math.sqrt(1+(1/(4*q*q)))+bw/2;#upper frequency\n",
+ "print'quality factor ',round(q,3)\n",
+ "print'lower frequency ',round(f1,3),'hz'\n",
+ "print'upper frequency ',round(f2,3),'hz'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Exammple 27 pagenumber 2.109"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rf 7.962 Kohm\n",
+ "R1 796.178 ohm\n",
+ "Cf 0.01 μfarad\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=200;#hz\n",
+ "vi=2;#volt\n",
+ "c1=0.1e-6;#farad\n",
+ "freqb=2000;#hz\n",
+ "#determine cf1 rf1 r1\n",
+ "rf1=1/(2*3.14*freq*c1);#feedback resistance\n",
+ "r1=1/(2*3.14*c1*freqb);#input resistance\n",
+ "cf1=r1*c1/rf1;#feedback capacitance\n",
+ "print'Rf ',round(rf1/1e3,3),' Kohm'\n",
+ "print'R1 ',round(r1,3),'ohm'\n",
+ "print'Cf ',round(cf1*1e6,3),' μfarad'#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters.ipynb b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters.ipynb
new file mode 100644
index 00000000..8136593e
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters.ipynb
@@ -0,0 +1,815 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#Chapter 4 Analog to Digital and Digital to Analog converters"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 1 pagenumber 4.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 5.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "z='0101';\n",
+ "n=4;\n",
+ "vof=15;#volt\n",
+ "#determine v0\n",
+ "r=vof/(pow(2,n)-1);\n",
+ "v0=r*int(z,2);#output voltage\n",
+ "print 'output voltage ',round(v0,3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 2 pagenumber 4.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output offset 5.1 volt\n",
+ "output voltage 3.84 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r=20e-3;\n",
+ "z='11000000';\n",
+ "n=8;\n",
+ "#determine output voltage output offset voltage\n",
+ "vof=r*(pow(2,n)-1);#output offsetvoltage\n",
+ "v0=r*int(z,2);#output voltage\n",
+ "print 'output offset ',round(vof,3),'volt';\n",
+ "print 'output voltage ',round(v0,3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 3 pagenumber 4.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 0111 = 2331.0 milivolt\n",
+ "output voltage 1111 = 4995.0 milivolt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=4;\n",
+ "import numpy as np\n",
+ "z=np.array(['0111','1111']);\n",
+ "vref=5;#volt\n",
+ "#determine v0\n",
+ "r=vref*pow(10,3)/(pow(2,n)-1)\n",
+ "i=0;\n",
+ "while i<2 : v0=r*int(z[i],2); print'output voltage ',z[i],' = ',round(v0),'milivolt';i=i+1;\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 4 pagenumber 4.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "full scale output voltage 31.77 volt\n",
+ "Resolution 0.03 %\n",
+ "output voltage 15.24 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=12;\n",
+ "r=8e-3;#volt\n",
+ "z='011101110001';\n",
+ "#determine output voltage\n",
+ "vof=r*pow(2,n)-1;\n",
+ "v0=r*int(z,2);#output voltage\n",
+ "r=r*1e2/vof;\n",
+ "print'full scale output voltage',round(vof,2),'volt';\n",
+ "print'Resolution',round(r,2),'%';\n",
+ "print'output voltage ',round(v0,3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 5 pagenumber 4.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "minumum number of bits 16384\n",
+ "minmum voltage 610.0 μvolt\n",
+ "quantization error 176.0 μvolt\n",
+ "sampling rate 5.0 Khz\n",
+ "aperture time 0.01 μsecond\n",
+ "converter 84 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fs=1e3;#hz\n",
+ "r=0.01;\n",
+ "vref=10;#volt\n",
+ "#determine n vmin rms fs1 t1 z\n",
+ "r=0.01/100;\n",
+ "n=14;\n",
+ "print'minumum number of bits ',pow(2,14);\n",
+ "vm=vref*pow(10,6)/pow(2,n);#minmum voltage\n",
+ "print'minmum voltage ',round(vm),'μvolt';\n",
+ "import math\n",
+ "eq=vref/(pow(2,n)*2*math.sqrt(3));#quantization error\n",
+ "print'quantization error ',round(eq*pow(10,6)),'μvolt';\n",
+ "fs1=5*fs;#sampling rate\n",
+ "print'sampling rate ',fs1/1e3,'Khz';\n",
+ "t1=1/(2*3.14*fs*pow(2,n));#aperture time\n",
+ "print'aperture time ',round(t1*pow(10,6),3),'μsecond';#error in book\n",
+ "print'converter ',6*n,'dB';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 6 pagenumber 4.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R = 5.0 Kohm\n",
+ "I at 1100 = 1.4 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "vref=10;#volt\n",
+ "Is=1.875e-3;#A\n",
+ "#determine R I\n",
+ "n=4;\n",
+ "v0=vref*pow(10,3)/pow(2,n)*(1*pow(2,(n-1))+1*pow(2,(n-2))+1*pow(2,(n-3))+1*pow(2,(n-4)));\n",
+ "r=v0/((Is)*pow(10,6));\n",
+ "print'R = ',round(r,3),' Kohm';\n",
+ "v0=vref*pow(10,3)/pow(2,n)*(1*pow(2,(n-1))+1*pow(2,(n-2)));\n",
+ "print'I at 1100 = ',round(v0/pow(10,3)/r,3),'mA';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 7 pagenumber 4.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "N= 6.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "vmin=1e-3;#volt\n",
+ "vref=10;#volt\n",
+ "q=0.01;\n",
+ "#determine n\n",
+ "import math\n",
+ "n=math.log10(((0.5)/0.01)+1)/math.log10(2);\n",
+ "print'N= ',round(n);\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
+ "source": [
+ "##Example 8 pagenumber 4.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R in percent 0.392 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=8;\n",
+ "#determine R\n",
+ "r=1*100e0/(pow(2,n)-1);\n",
+ "print'R in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 9 pagenumber 4.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution in percent 3.0 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=5;\n",
+ "#determine resolution\n",
+ "r=1*100/(pow(2,n)-1);#Resolution\n",
+ "print'Resolution in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 10 pagenumber 4.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "minimum voltage each bit 300.0 milivolt\n",
+ "output voltage at 100110 = 12.063 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import numpy as np\n",
+ "z=np.array(['111111','100110']);\n",
+ "vref1=20;#volt\n",
+ "#determine output voltage\n",
+ "e=1*pow(10,3)/int(z[0],2)*vref1;#minimum voltage\n",
+ "print'minimum voltage each bit ',round(e,3),'milivolt';\n",
+ "e=int(z[1],2)*1e0/int(z[0],2)*vref1;#output voltage\n",
+ "print'output voltage at ',z[1],' = ',round(e,3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 11 pagenumber 4.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution 0.02 volt\n",
+ "Resolution in percent 0.024 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "n=12;\n",
+ "vref1=50e0;#volt\n",
+ "vref2=-50e0;#volt\n",
+ "#determine Resolution\n",
+ "r=float((vref1-vref2)/(pow(2,n)-(1)));\n",
+ "print'Resolution ',round(r,2),'volt';\n",
+ "r=1*1e2/(pow(2,n)-(1));\n",
+ "print'Resolution in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 12 pagenumber 4.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution 19.55 milivolt\n",
+ "Resolution in percent 0.098 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=10e0;\n",
+ "vref1=-10e0;#volt\n",
+ "vref2=10e0;#volt\n",
+ "#determine Resolution \n",
+ "r=(vref2-vref1)/(pow(2,n)-(1));#Resolution\n",
+ "print'Resolution ',round(r*1e3,2),'milivolt';\n",
+ "r=100/(pow(2,n)-(1));\n",
+ "print'Resolution in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 13 pagenumber 4.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution in percent 0.024 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=12e0;\n",
+ "#determine Resolution \n",
+ "r=1/(pow(2,n)-(1));\n",
+ "r=r*100;#Resolution\n",
+ "print'Resolution in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 14 pagenumber 4.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "change in voltage 178.0 milivolt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=7;\n",
+ "vmax=25.4;#volt\n",
+ "#determine voltage \n",
+ "r=1*pow(10,3)/(pow(2,n)-1);\n",
+ "print'change in voltage ',round(r*vmax),'milivolt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 15 pagenumber 4.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "N = 11.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r=5e-3;#volt\n",
+ "vref=8;#volt \n",
+ "#determine N\n",
+ "import math\n",
+ "n=math.log10(1/(r/vref)+(1))/math.log10(2);\n",
+ "print'N =',round(n);\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 16 pagenumber 4.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "conversion time = 9.0 μs\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fs=1e6;#hz\n",
+ "n=8;\n",
+ "#determine conversion time\n",
+ "tc=(1/fs)*(n+1);\n",
+ "print'conversion time = ',round(tc*pow(10,6),(3)),'μs';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 17 pagenumber 4.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 1000.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "vref=10;#volt\n",
+ "vin=100e-3;#volt\n",
+ "#determine output voltage\n",
+ "v0=vref*vin/pow(10,-3);#output voltage\n",
+ "print'output voltage ',round(v0),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 18 pagenumber 4.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution of 1th 62.5 μA\n",
+ "Output current 937.5 μA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=4;\n",
+ "z='1111';\n",
+ "r=10e3;#ohm\n",
+ "r1=20e3;#ohm\n",
+ "vref=10;#volt\n",
+ "#determine Resolution output current\n",
+ "r=((1)*pow(10,6)/pow(2,n))*vref/r;#Resolution\n",
+ "print'Resolution of 1th ',round(r,3),'μA';\n",
+ "iout=r*int(z,2);#Output current\n",
+ "print'Output current ',round(iout,3),'μA';#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 19 pagenumber 4.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "minimum input voltage 39.0 milivolt\n",
+ "input voltage at 1s 10.0 volt\n",
+ "decimal at 5.2 volt = 0b10000101\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=8;\n",
+ "vref=10;#volt\n",
+ "#determine input voltage\n",
+ "vmin=vref*pow(10,3)/pow(2,n);#minimum input voltage\n",
+ "print'minimum input voltage ',round(vmin,3),'milivolt';\n",
+ "vif=vref-vmin/pow(10,3);#input voltage\n",
+ "print'input voltage at 1s ',round(vif,3),'volt';\n",
+ "vin=5.2;\n",
+ "D=vin/vmin;D=133;z=bin(D);\n",
+ "print'decimal at ',round(vin,3),'volt = ',z;\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 20 pagenumber 4.46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage at 01 = 2.5 volt\n",
+ "output voltage at 0111 = 4.37 volt\n",
+ "output voltage at 10111100 = 7.36 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "vref=10;#volt\n",
+ "import numpy as np\n",
+ "z=np.array(['01','0111','10111100']);\n",
+ "n=2;\n",
+ "#determine output voltage\n",
+ "v0=vref*1e0/pow(2,2);#output voltage\n",
+ "print'output voltage at ',z[0],' = ',round(v0,3),'volt';\n",
+ "n=4\n",
+ "v0=vref*1e0*(1*pow(10,3)/pow(2,2)+1*pow(10,3)/pow(2,3)+1*pow(10,3)/pow(2,4));#output voltage\n",
+ "print'output voltage at ',z[1],' = ',round(v0/pow(10,3),3),'volt';\n",
+ "v0=vref*(1*pow(10,3)*1e0/2+1*pow(10,3)/pow(2,3)+1*pow(10,3)/pow(2,4)+1*pow(10,3)/pow(2,5)+1*pow(10,3)/pow(2,6)+1*pow(10,3)/pow(2,8));\n",
+ "print'output voltage at ',z[2],' = ',round(v0/pow(10,3),3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 21 pagenumber 4.46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage at 0110 = 3.75 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=4;\n",
+ "z='0110';\n",
+ "vref=10e0;\n",
+ "#determine output voltage\n",
+ "v0=vref*(1*pow(10,3)/pow(2,2)+1*pow(10,3)/pow(2,3));#output voltage\n",
+ "print'output voltage at ',z,' = ',round(v0/pow(10,3),3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 22 pagenumber 4.47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SNRmax = 61.96 dB\n",
+ "ENOB = 9.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=10;\n",
+ "vfs=10.24;#volt\n",
+ "distortion=56;#dB\n",
+ "#determine ENOB SNRmax\n",
+ "import math\n",
+ "q=vfs/(pow(2,n)*math.sqrt(12));\n",
+ "snrmax=(6.02*n+1.76);\n",
+ "print'SNRmax = ',round(snrmax,3),'dB';\n",
+ "en=(distortion-1.76)/6.02;\n",
+ "print'ENOB = ',round(en);\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters_1.ipynb b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters_1.ipynb
new file mode 100644
index 00000000..8136593e
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters_1.ipynb
@@ -0,0 +1,815 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#Chapter 4 Analog to Digital and Digital to Analog converters"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 1 pagenumber 4.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 5.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "z='0101';\n",
+ "n=4;\n",
+ "vof=15;#volt\n",
+ "#determine v0\n",
+ "r=vof/(pow(2,n)-1);\n",
+ "v0=r*int(z,2);#output voltage\n",
+ "print 'output voltage ',round(v0,3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 2 pagenumber 4.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output offset 5.1 volt\n",
+ "output voltage 3.84 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r=20e-3;\n",
+ "z='11000000';\n",
+ "n=8;\n",
+ "#determine output voltage output offset voltage\n",
+ "vof=r*(pow(2,n)-1);#output offsetvoltage\n",
+ "v0=r*int(z,2);#output voltage\n",
+ "print 'output offset ',round(vof,3),'volt';\n",
+ "print 'output voltage ',round(v0,3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 3 pagenumber 4.38"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 0111 = 2331.0 milivolt\n",
+ "output voltage 1111 = 4995.0 milivolt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=4;\n",
+ "import numpy as np\n",
+ "z=np.array(['0111','1111']);\n",
+ "vref=5;#volt\n",
+ "#determine v0\n",
+ "r=vref*pow(10,3)/(pow(2,n)-1)\n",
+ "i=0;\n",
+ "while i<2 : v0=r*int(z[i],2); print'output voltage ',z[i],' = ',round(v0),'milivolt';i=i+1;\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 4 pagenumber 4.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "full scale output voltage 31.77 volt\n",
+ "Resolution 0.03 %\n",
+ "output voltage 15.24 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=12;\n",
+ "r=8e-3;#volt\n",
+ "z='011101110001';\n",
+ "#determine output voltage\n",
+ "vof=r*pow(2,n)-1;\n",
+ "v0=r*int(z,2);#output voltage\n",
+ "r=r*1e2/vof;\n",
+ "print'full scale output voltage',round(vof,2),'volt';\n",
+ "print'Resolution',round(r,2),'%';\n",
+ "print'output voltage ',round(v0,3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 5 pagenumber 4.39"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "minumum number of bits 16384\n",
+ "minmum voltage 610.0 μvolt\n",
+ "quantization error 176.0 μvolt\n",
+ "sampling rate 5.0 Khz\n",
+ "aperture time 0.01 μsecond\n",
+ "converter 84 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fs=1e3;#hz\n",
+ "r=0.01;\n",
+ "vref=10;#volt\n",
+ "#determine n vmin rms fs1 t1 z\n",
+ "r=0.01/100;\n",
+ "n=14;\n",
+ "print'minumum number of bits ',pow(2,14);\n",
+ "vm=vref*pow(10,6)/pow(2,n);#minmum voltage\n",
+ "print'minmum voltage ',round(vm),'μvolt';\n",
+ "import math\n",
+ "eq=vref/(pow(2,n)*2*math.sqrt(3));#quantization error\n",
+ "print'quantization error ',round(eq*pow(10,6)),'μvolt';\n",
+ "fs1=5*fs;#sampling rate\n",
+ "print'sampling rate ',fs1/1e3,'Khz';\n",
+ "t1=1/(2*3.14*fs*pow(2,n));#aperture time\n",
+ "print'aperture time ',round(t1*pow(10,6),3),'μsecond';#error in book\n",
+ "print'converter ',6*n,'dB';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 6 pagenumber 4.40"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R = 5.0 Kohm\n",
+ "I at 1100 = 1.4 mA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "vref=10;#volt\n",
+ "Is=1.875e-3;#A\n",
+ "#determine R I\n",
+ "n=4;\n",
+ "v0=vref*pow(10,3)/pow(2,n)*(1*pow(2,(n-1))+1*pow(2,(n-2))+1*pow(2,(n-3))+1*pow(2,(n-4)));\n",
+ "r=v0/((Is)*pow(10,6));\n",
+ "print'R = ',round(r,3),' Kohm';\n",
+ "v0=vref*pow(10,3)/pow(2,n)*(1*pow(2,(n-1))+1*pow(2,(n-2)));\n",
+ "print'I at 1100 = ',round(v0/pow(10,3)/r,3),'mA';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 7 pagenumber 4.41"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "N= 6.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "vmin=1e-3;#volt\n",
+ "vref=10;#volt\n",
+ "q=0.01;\n",
+ "#determine n\n",
+ "import math\n",
+ "n=math.log10(((0.5)/0.01)+1)/math.log10(2);\n",
+ "print'N= ',round(n);\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
+ "source": [
+ "##Example 8 pagenumber 4.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R in percent 0.392 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=8;\n",
+ "#determine R\n",
+ "r=1*100e0/(pow(2,n)-1);\n",
+ "print'R in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 9 pagenumber 4.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution in percent 3.0 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=5;\n",
+ "#determine resolution\n",
+ "r=1*100/(pow(2,n)-1);#Resolution\n",
+ "print'Resolution in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 10 pagenumber 4.42"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "minimum voltage each bit 300.0 milivolt\n",
+ "output voltage at 100110 = 12.063 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import numpy as np\n",
+ "z=np.array(['111111','100110']);\n",
+ "vref1=20;#volt\n",
+ "#determine output voltage\n",
+ "e=1*pow(10,3)/int(z[0],2)*vref1;#minimum voltage\n",
+ "print'minimum voltage each bit ',round(e,3),'milivolt';\n",
+ "e=int(z[1],2)*1e0/int(z[0],2)*vref1;#output voltage\n",
+ "print'output voltage at ',z[1],' = ',round(e,3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 11 pagenumber 4.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution 0.02 volt\n",
+ "Resolution in percent 0.024 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "import math\n",
+ "n=12;\n",
+ "vref1=50e0;#volt\n",
+ "vref2=-50e0;#volt\n",
+ "#determine Resolution\n",
+ "r=float((vref1-vref2)/(pow(2,n)-(1)));\n",
+ "print'Resolution ',round(r,2),'volt';\n",
+ "r=1*1e2/(pow(2,n)-(1));\n",
+ "print'Resolution in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 12 pagenumber 4.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution 19.55 milivolt\n",
+ "Resolution in percent 0.098 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=10e0;\n",
+ "vref1=-10e0;#volt\n",
+ "vref2=10e0;#volt\n",
+ "#determine Resolution \n",
+ "r=(vref2-vref1)/(pow(2,n)-(1));#Resolution\n",
+ "print'Resolution ',round(r*1e3,2),'milivolt';\n",
+ "r=100/(pow(2,n)-(1));\n",
+ "print'Resolution in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 13 pagenumber 4.43"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution in percent 0.024 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=12e0;\n",
+ "#determine Resolution \n",
+ "r=1/(pow(2,n)-(1));\n",
+ "r=r*100;#Resolution\n",
+ "print'Resolution in percent ',round(r,3),'%';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 14 pagenumber 4.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "change in voltage 178.0 milivolt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=7;\n",
+ "vmax=25.4;#volt\n",
+ "#determine voltage \n",
+ "r=1*pow(10,3)/(pow(2,n)-1);\n",
+ "print'change in voltage ',round(r*vmax),'milivolt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 15 pagenumber 4.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "N = 11.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r=5e-3;#volt\n",
+ "vref=8;#volt \n",
+ "#determine N\n",
+ "import math\n",
+ "n=math.log10(1/(r/vref)+(1))/math.log10(2);\n",
+ "print'N =',round(n);\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 16 pagenumber 4.44"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "conversion time = 9.0 μs\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fs=1e6;#hz\n",
+ "n=8;\n",
+ "#determine conversion time\n",
+ "tc=(1/fs)*(n+1);\n",
+ "print'conversion time = ',round(tc*pow(10,6),(3)),'μs';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 17 pagenumber 4.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage 1000.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "vref=10;#volt\n",
+ "vin=100e-3;#volt\n",
+ "#determine output voltage\n",
+ "v0=vref*vin/pow(10,-3);#output voltage\n",
+ "print'output voltage ',round(v0),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 18 pagenumber 4.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resolution of 1th 62.5 μA\n",
+ "Output current 937.5 μA\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=4;\n",
+ "z='1111';\n",
+ "r=10e3;#ohm\n",
+ "r1=20e3;#ohm\n",
+ "vref=10;#volt\n",
+ "#determine Resolution output current\n",
+ "r=((1)*pow(10,6)/pow(2,n))*vref/r;#Resolution\n",
+ "print'Resolution of 1th ',round(r,3),'μA';\n",
+ "iout=r*int(z,2);#Output current\n",
+ "print'Output current ',round(iout,3),'μA';#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 19 pagenumber 4.45"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "minimum input voltage 39.0 milivolt\n",
+ "input voltage at 1s 10.0 volt\n",
+ "decimal at 5.2 volt = 0b10000101\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=8;\n",
+ "vref=10;#volt\n",
+ "#determine input voltage\n",
+ "vmin=vref*pow(10,3)/pow(2,n);#minimum input voltage\n",
+ "print'minimum input voltage ',round(vmin,3),'milivolt';\n",
+ "vif=vref-vmin/pow(10,3);#input voltage\n",
+ "print'input voltage at 1s ',round(vif,3),'volt';\n",
+ "vin=5.2;\n",
+ "D=vin/vmin;D=133;z=bin(D);\n",
+ "print'decimal at ',round(vin,3),'volt = ',z;\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 20 pagenumber 4.46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage at 01 = 2.5 volt\n",
+ "output voltage at 0111 = 4.37 volt\n",
+ "output voltage at 10111100 = 7.36 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "vref=10;#volt\n",
+ "import numpy as np\n",
+ "z=np.array(['01','0111','10111100']);\n",
+ "n=2;\n",
+ "#determine output voltage\n",
+ "v0=vref*1e0/pow(2,2);#output voltage\n",
+ "print'output voltage at ',z[0],' = ',round(v0,3),'volt';\n",
+ "n=4\n",
+ "v0=vref*1e0*(1*pow(10,3)/pow(2,2)+1*pow(10,3)/pow(2,3)+1*pow(10,3)/pow(2,4));#output voltage\n",
+ "print'output voltage at ',z[1],' = ',round(v0/pow(10,3),3),'volt';\n",
+ "v0=vref*(1*pow(10,3)*1e0/2+1*pow(10,3)/pow(2,3)+1*pow(10,3)/pow(2,4)+1*pow(10,3)/pow(2,5)+1*pow(10,3)/pow(2,6)+1*pow(10,3)/pow(2,8));\n",
+ "print'output voltage at ',z[2],' = ',round(v0/pow(10,3),3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 21 pagenumber 4.46"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "output voltage at 0110 = 3.75 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=4;\n",
+ "z='0110';\n",
+ "vref=10e0;\n",
+ "#determine output voltage\n",
+ "v0=vref*(1*pow(10,3)/pow(2,2)+1*pow(10,3)/pow(2,3));#output voltage\n",
+ "print'output voltage at ',z,' = ',round(v0/pow(10,3),3),'volt';\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 22 pagenumber 4.47"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SNRmax = 61.96 dB\n",
+ "ENOB = 9.0\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "n=10;\n",
+ "vfs=10.24;#volt\n",
+ "distortion=56;#dB\n",
+ "#determine ENOB SNRmax\n",
+ "import math\n",
+ "q=vfs/(pow(2,n)*math.sqrt(12));\n",
+ "snrmax=(6.02*n+1.76);\n",
+ "print'SNRmax = ',round(snrmax,3),'dB';\n",
+ "en=(distortion-1.76)/6.02;\n",
+ "print'ENOB = ',round(en);\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_5_Special_Integrated_Circuits.ipynb b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_5_Special_Integrated_Circuits.ipynb
new file mode 100644
index 00000000..e51854b5
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_5_Special_Integrated_Circuits.ipynb
@@ -0,0 +1,468 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "#Chapter 5 Special Integrated Circuits"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 1 pagenumber 5.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 72.0 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "w=8e-3;#second\n",
+ "c1=0.1e-6;#farad\n",
+ "#determine r1\n",
+ "r1=w/(1.11*c1);\n",
+ "print'R1 ',round(r1/1e3),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 2 pagenumber 5.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "frequency 9.667 Khz\n",
+ "dutycycle 0.667\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "ra=5e3;#ohm\n",
+ "rb=ra;\n",
+ "c1=0.01e-6;#farad\n",
+ "#determine frequency dutycycle\n",
+ "freq=1.45/((ra+2*rb)*c1);#frequency\n",
+ "w=(ra+rb)/(ra+2*rb);#dutycycle\n",
+ "print'frequency ',round(freq/1e3,3),'Khz'\n",
+ "print'dutycycle ',round(w,3)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 3 pagenumber 5.96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ra 3.625 Kohm\n",
+ "Rb 1.813 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=2e3;#hz\n",
+ "w=0.75;\n",
+ "c1=0.1e-6;#farad\n",
+ "#determine ra rb\n",
+ "#for 0.75 dutycycle rb=0.5*ra\n",
+ "ra=1.45/freq*(1/(c1*2));\n",
+ "rb=0.5*round(ra);\n",
+ "print'Ra ',round(ra/1e3,3),'Kohm'\n",
+ "print'Rb ',round(rb/1e3,3),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 4 pagenumber 5.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "on time 0.062 milisecond\n",
+ "tof 0.047 milisecond\n",
+ "frequency 9.177 Khz\n",
+ "duty cycle 0.139\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "ra=2.2e3;#ohm\n",
+ "rb=6.8e3;#ohm\n",
+ "c1=0.01e-6;#farad\n",
+ "#determine ontime offtime frequency dutycycle\n",
+ "t1=0.69*(ra+rb)*c1;#on time\n",
+ "t2=0.69*rb*c1;#tof\n",
+ "freq=1.45/((ra+2*rb)*c1);#frequency\n",
+ "w=ra/(ra+2*rb);#duty cycle\n",
+ "print'on time ',round(t1*1e3,3),'milisecond'\n",
+ "print'tof ',round(t2*1e3,3),'milisecond'\n",
+ "print'frequency ',round(freq/1e3,3),'Khz'\n",
+ "print'duty cycle ',round(w,3)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 5 pagenumber 5.98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ra 2.854 Mohm\n",
+ "Rb 2.943 Mohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "t1=4;#second\n",
+ "t2=2;#second\n",
+ "c1=1e-6;#farad\n",
+ "#detemine ra rb\n",
+ "t12=t1+t2;\n",
+ "w=t1/t12;\n",
+ "#ra=0.97*rb\n",
+ "rb=(t1/(0.69*c1))/(1+0.97);\n",
+ "ra=0.97*rb;\n",
+ "print'Ra ',round(ra/1e6,3),'Mohm'\n",
+ "print'Rb ',round(rb/1e6,3),'Mohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 6 pagenumber 5.99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 540.5 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "t1=6;#second\n",
+ "c1=10e-6;#farad\n",
+ "#determine r1\n",
+ "r1=t1/(1.11*c1);\n",
+ "print'R1 ',round(r1/1e3,1),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 7 pagenumber 5.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "rms voltage 1.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "en=20e-9;#volt/sqrt(z)\n",
+ "fce=20;#hz\n",
+ "inw=0.5e-12;#A/sqrt(hz)\n",
+ "fci=20e3\n",
+ "#determine voltage current spectraldensities rmsnoise\n",
+ "r1=r1;\n",
+ "import math\n",
+ "en=math.pow(fce*math.log(fci/fce)+(fci-fce),en);\n",
+ "print'rms voltage ',round(en,3),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 7 pagenumber 5.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "voltage 12.167 nanovolt/sqrt(hz)\n",
+ "current 0.001 nA/sqrt(hz)\n",
+ "rms voltage 1.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=9*1e3;#ohm\n",
+ "k1=1.38*1e-23;\n",
+ "t1=298;#k\n",
+ "#determine voltage current spectraldensities rmsnoise\n",
+ "r1=r1;\n",
+ "import math\n",
+ "er=math.sqrt(4e0*k1*t1*r1);#voltage\n",
+ "i1=er/r1;#current\n",
+ "er12=1/er;\n",
+ "w=20e3-20;\n",
+ "er1=math.pow(w,er*1e0);#rms voltage\n",
+ "print'voltage ',round(er*1e9,3),'nanovolt/sqrt(hz)'\n",
+ "print'current ',round(i1*1e9,3),'nA/sqrt(hz)'\n",
+ "print'rms voltage ',round(er1,3),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Example 8 pagenumber 5.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "voltage 12.167 nanovolt\n",
+ "current 1.352 pA\n",
+ "rms voltage 0.9 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=9e3;#ohm\n",
+ "k1=1.38*1e-23\n",
+ "t1=298;#kelvin\n",
+ "#determine voltage current spectraldensities rmsnoise\n",
+ "r1=r1;\n",
+ "import math\n",
+ "er=math.sqrt(4*k1*t1*r1);#voltage\n",
+ "i1=er/r1;#current\n",
+ "er12=1/er;\n",
+ "w=20e3-20;#width constant\n",
+ "er1=r1/10e3;#rms voltage\n",
+ "print'voltage ',round(er*1e9,3),'nanovolt';\n",
+ "print'current ',round(i1*1e12,3),'pA';\n",
+ "print'rms voltage ',round(er1,3),'volt';#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 9 pagenumber 5.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "signal to noise id 1.0 = 61.933 dB\n",
+ "signal to noise id 0.001 = 31.933 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fh=2e6;#hz\n",
+ "id=[1e-6,1e-9];\n",
+ "i=0;\n",
+ "import math\n",
+ "while i<2 :\n",
+ " In=math.sqrt(2*1.602e-19*id[i]*fh);\n",
+ " print'signal to noise id ',round((id[i]*1e6),3),' = ',round(20*math.log10(id[i]/In),3),'dB';\n",
+ " i=i+1;\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 10 pagenumber 5.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "rms voltage 1257.142 μvolt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=100e3;#ohm\n",
+ "rf=250e3;#ohm\n",
+ "r3=70e3;#ohm\n",
+ "fce=200;#hz\n",
+ "fci=2e3;#hz\n",
+ "ft=1e6;#hz\n",
+ "enw=20e-9;\n",
+ "inw=0.5e-12;\n",
+ "f1=0.1;\n",
+ "#determine RMS voltage\n",
+ "import math\n",
+ "fa=ft/(1+(rf/r1));\n",
+ "rn=r1*rf/(r1+rf);\n",
+ "p=fce*math.log(fa/f1)+1.57*fa-f1;\n",
+ "q=(r3*r3+rn*rn)*(fci*math.log(fa/f1)+1.5*fa-f1);\n",
+ "r=1.65e-20*(r3+rn)*(1.57*fa-f1);\n",
+ "en=(1+rf/r1)*(enw*enw+p+inw*inw*q+r);\n",
+ "\n",
+ "print'rms voltage ',round(math.sqrt(en),3),'μvolt';#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_5_Special_Integrated_Circuits_1.ipynb b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_5_Special_Integrated_Circuits_1.ipynb
new file mode 100644
index 00000000..e51854b5
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/Chapter_5_Special_Integrated_Circuits_1.ipynb
@@ -0,0 +1,468 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "#Chapter 5 Special Integrated Circuits"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 1 pagenumber 5.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 72.0 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "w=8e-3;#second\n",
+ "c1=0.1e-6;#farad\n",
+ "#determine r1\n",
+ "r1=w/(1.11*c1);\n",
+ "print'R1 ',round(r1/1e3),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 2 pagenumber 5.95"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "frequency 9.667 Khz\n",
+ "dutycycle 0.667\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "ra=5e3;#ohm\n",
+ "rb=ra;\n",
+ "c1=0.01e-6;#farad\n",
+ "#determine frequency dutycycle\n",
+ "freq=1.45/((ra+2*rb)*c1);#frequency\n",
+ "w=(ra+rb)/(ra+2*rb);#dutycycle\n",
+ "print'frequency ',round(freq/1e3,3),'Khz'\n",
+ "print'dutycycle ',round(w,3)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 3 pagenumber 5.96"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ra 3.625 Kohm\n",
+ "Rb 1.813 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "freq=2e3;#hz\n",
+ "w=0.75;\n",
+ "c1=0.1e-6;#farad\n",
+ "#determine ra rb\n",
+ "#for 0.75 dutycycle rb=0.5*ra\n",
+ "ra=1.45/freq*(1/(c1*2));\n",
+ "rb=0.5*round(ra);\n",
+ "print'Ra ',round(ra/1e3,3),'Kohm'\n",
+ "print'Rb ',round(rb/1e3,3),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 4 pagenumber 5.97"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "on time 0.062 milisecond\n",
+ "tof 0.047 milisecond\n",
+ "frequency 9.177 Khz\n",
+ "duty cycle 0.139\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "ra=2.2e3;#ohm\n",
+ "rb=6.8e3;#ohm\n",
+ "c1=0.01e-6;#farad\n",
+ "#determine ontime offtime frequency dutycycle\n",
+ "t1=0.69*(ra+rb)*c1;#on time\n",
+ "t2=0.69*rb*c1;#tof\n",
+ "freq=1.45/((ra+2*rb)*c1);#frequency\n",
+ "w=ra/(ra+2*rb);#duty cycle\n",
+ "print'on time ',round(t1*1e3,3),'milisecond'\n",
+ "print'tof ',round(t2*1e3,3),'milisecond'\n",
+ "print'frequency ',round(freq/1e3,3),'Khz'\n",
+ "print'duty cycle ',round(w,3)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 5 pagenumber 5.98"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Ra 2.854 Mohm\n",
+ "Rb 2.943 Mohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "t1=4;#second\n",
+ "t2=2;#second\n",
+ "c1=1e-6;#farad\n",
+ "#detemine ra rb\n",
+ "t12=t1+t2;\n",
+ "w=t1/t12;\n",
+ "#ra=0.97*rb\n",
+ "rb=(t1/(0.69*c1))/(1+0.97);\n",
+ "ra=0.97*rb;\n",
+ "print'Ra ',round(ra/1e6,3),'Mohm'\n",
+ "print'Rb ',round(rb/1e6,3),'Mohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 6 pagenumber 5.99"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "R1 540.5 Kohm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "t1=6;#second\n",
+ "c1=10e-6;#farad\n",
+ "#determine r1\n",
+ "r1=t1/(1.11*c1);\n",
+ "print'R1 ',round(r1/1e3,1),'Kohm'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 7 pagenumber 5.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "rms voltage 1.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "en=20e-9;#volt/sqrt(z)\n",
+ "fce=20;#hz\n",
+ "inw=0.5e-12;#A/sqrt(hz)\n",
+ "fci=20e3\n",
+ "#determine voltage current spectraldensities rmsnoise\n",
+ "r1=r1;\n",
+ "import math\n",
+ "en=math.pow(fce*math.log(fci/fce)+(fci-fce),en);\n",
+ "print'rms voltage ',round(en,3),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 7 pagenumber 5.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "voltage 12.167 nanovolt/sqrt(hz)\n",
+ "current 0.001 nA/sqrt(hz)\n",
+ "rms voltage 1.0 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=9*1e3;#ohm\n",
+ "k1=1.38*1e-23;\n",
+ "t1=298;#k\n",
+ "#determine voltage current spectraldensities rmsnoise\n",
+ "r1=r1;\n",
+ "import math\n",
+ "er=math.sqrt(4e0*k1*t1*r1);#voltage\n",
+ "i1=er/r1;#current\n",
+ "er12=1/er;\n",
+ "w=20e3-20;\n",
+ "er1=math.pow(w,er*1e0);#rms voltage\n",
+ "print'voltage ',round(er*1e9,3),'nanovolt/sqrt(hz)'\n",
+ "print'current ',round(i1*1e9,3),'nA/sqrt(hz)'\n",
+ "print'rms voltage ',round(er1,3),'volt'\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Example 8 pagenumber 5.100"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "voltage 12.167 nanovolt\n",
+ "current 1.352 pA\n",
+ "rms voltage 0.9 volt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=9e3;#ohm\n",
+ "k1=1.38*1e-23\n",
+ "t1=298;#kelvin\n",
+ "#determine voltage current spectraldensities rmsnoise\n",
+ "r1=r1;\n",
+ "import math\n",
+ "er=math.sqrt(4*k1*t1*r1);#voltage\n",
+ "i1=er/r1;#current\n",
+ "er12=1/er;\n",
+ "w=20e3-20;#width constant\n",
+ "er1=r1/10e3;#rms voltage\n",
+ "print'voltage ',round(er*1e9,3),'nanovolt';\n",
+ "print'current ',round(i1*1e12,3),'pA';\n",
+ "print'rms voltage ',round(er1,3),'volt';#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example 9 pagenumber 5.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "signal to noise id 1.0 = 61.933 dB\n",
+ "signal to noise id 0.001 = 31.933 dB\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "fh=2e6;#hz\n",
+ "id=[1e-6,1e-9];\n",
+ "i=0;\n",
+ "import math\n",
+ "while i<2 :\n",
+ " In=math.sqrt(2*1.602e-19*id[i]*fh);\n",
+ " print'signal to noise id ',round((id[i]*1e6),3),' = ',round(20*math.log10(id[i]/In),3),'dB';\n",
+ " i=i+1;\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example 10 pagenumber 5.101"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "rms voltage 1257.142 μvolt\n"
+ ]
+ }
+ ],
+ "source": [
+ "#given\n",
+ "r1=100e3;#ohm\n",
+ "rf=250e3;#ohm\n",
+ "r3=70e3;#ohm\n",
+ "fce=200;#hz\n",
+ "fci=2e3;#hz\n",
+ "ft=1e6;#hz\n",
+ "enw=20e-9;\n",
+ "inw=0.5e-12;\n",
+ "f1=0.1;\n",
+ "#determine RMS voltage\n",
+ "import math\n",
+ "fa=ft/(1+(rf/r1));\n",
+ "rn=r1*rf/(r1+rf);\n",
+ "p=fce*math.log(fa/f1)+1.57*fa-f1;\n",
+ "q=(r3*r3+rn*rn)*(fci*math.log(fa/f1)+1.5*fa-f1);\n",
+ "r=1.65e-20*(r3+rn)*(1.57*fa-f1);\n",
+ "en=(1+rf/r1)*(enw*enw+p+inw*inw*q+r);\n",
+ "\n",
+ "print'rms voltage ',round(math.sqrt(en),3),'μvolt';#error in book\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_1Circuit_Configuration_for_Linear_Integrated_Ciruits.png b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_1Circuit_Configuration_for_Linear_Integrated_Ciruits.png
new file mode 100644
index 00000000..e7cd82b6
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_1Circuit_Configuration_for_Linear_Integrated_Ciruits.png
Binary files differ
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_2_Applications_Of_Operational_Amplifier.png b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_2_Applications_Of_Operational_Amplifier.png
new file mode 100644
index 00000000..6a3c582f
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_2_Applications_Of_Operational_Amplifier.png
Binary files differ
diff --git a/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters.png b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters.png
new file mode 100644
index 00000000..1bd71d3a
--- /dev/null
+++ b/Linear_Integrated_Circuits_by_T._R._Ganesh_Babu/screenshots/Chapter_4_Analog_to_Digital_and_Digital_to_Analog_converters.png
Binary files differ
diff --git a/The_Theory_of_Machines_by_T._Bevan/README.txt b/The_Theory_of_Machines_by_T._Bevan/README.txt
new file mode 100644
index 00000000..391ca0f7
--- /dev/null
+++ b/The_Theory_of_Machines_by_T._Bevan/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Sachin Naik
+Course: be
+College/Institute/Organization: ITSource Technologies Ltd.
+Department/Designation: Telecom Engineer
+Book Title: The Theory of Machines
+Author: T. Bevan
+Publisher: Dorling
+Year of publication: 2005
+Isbn: 81-239-0874-1
+Edition: 3rd \ No newline at end of file
diff --git a/Thermal_Engineering_by_S._l._Somasundaram/README.txt b/Thermal_Engineering_by_S._l._Somasundaram/README.txt
new file mode 100644
index 00000000..6431b870
--- /dev/null
+++ b/Thermal_Engineering_by_S._l._Somasundaram/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Hrituraj
+Course: btech
+College/Institute/Organization: Govind Ballabh Pant Engineering College, Pauri Garhwal
+Department/Designation: ME
+Book Title: Thermal Engineering
+Author: S. l. Somasundaram
+Publisher: New Age International, New Delhi
+Year of publication: 2005
+Isbn: 81-224-0979-2
+Edition: 5 \ No newline at end of file
diff --git a/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt b/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt
new file mode 100644
index 00000000..3a5894e0
--- /dev/null
+++ b/_Nuclear_Chemistry_through_Problems_by__H._J._Arnikar_and_N._S._Rajurkar/README.txt
@@ -0,0 +1,10 @@
+Contributed By: Raj Phani
+Course: btech
+College/Institute/Organization: vellore institute of technology(vit)
+Department/Designation: ece
+Book Title: Nuclear Chemistry through Problems
+Author: H. J. Arnikar and N. S. Rajurkar
+Publisher: New Age International, New Delhi
+Year of publication: 2015
+Isbn: 9788122438161
+Edition: 2 \ No newline at end of file
diff --git a/sample_notebooks/ebbygeorge/ch1_1.ipynb b/sample_notebooks/ebbygeorge/ch1_1.ipynb
new file mode 100644
index 00000000..f3fb0ef6
--- /dev/null
+++ b/sample_notebooks/ebbygeorge/ch1_1.ipynb
@@ -0,0 +1,63 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Chapter no. 1: General Introduction"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Example 1.1 Page no.8"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ionization current is 0.0 amp \n"
+ ]
+ }
+ ],
+ "source": [
+ "#Initialisation of variables\n",
+ "C=20/(9*10^11)#converting cms to farads\n",
+ "F=154-100#fall in potential\n",
+ "R=F/60#rate of fall in potential\n",
+ "I=C*R#ionization current\n",
+ "print 'ionization current is ',round(I),' amp '#correction applied\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}