diff options
author | FOSSEE Git User | 2017-08-22 19:33:31 +0530 |
---|---|---|
committer | FOSSEE Git User | 2017-08-22 19:33:31 +0530 |
commit | dce2a9bed55eda4718cb590b90783652b6847c3b (patch) | |
tree | 76e74a69fd3cff9b9412b16da5a244b281629cf3 /Engineering_Mechanics_Statics_and_Dynamics_by_Hibbeler_and_Gupta/Chapter_2.ipynb | |
parent | 16d89ed8065e3385dfda78f9516fa8934431fdd6 (diff) | |
parent | d34b2ae7e5e6051f7c87531ebc73b154b082d05b (diff) | |
download | Python-Textbook-Companions-master.tar.gz Python-Textbook-Companions-master.tar.bz2 Python-Textbook-Companions-master.zip |
Diffstat (limited to 'Engineering_Mechanics_Statics_and_Dynamics_by_Hibbeler_and_Gupta/Chapter_2.ipynb')
-rw-r--r-- | Engineering_Mechanics_Statics_and_Dynamics_by_Hibbeler_and_Gupta/Chapter_2.ipynb | 1058 |
1 files changed, 1058 insertions, 0 deletions
diff --git a/Engineering_Mechanics_Statics_and_Dynamics_by_Hibbeler_and_Gupta/Chapter_2.ipynb b/Engineering_Mechanics_Statics_and_Dynamics_by_Hibbeler_and_Gupta/Chapter_2.ipynb new file mode 100644 index 00000000..8b8efd6a --- /dev/null +++ b/Engineering_Mechanics_Statics_and_Dynamics_by_Hibbeler_and_Gupta/Chapter_2.ipynb @@ -0,0 +1,1058 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 2 : Force Vectors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.1 Page No. 20" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Resultant Force F_R = 213 N\n", + "theta = 39.8 degrees\n", + "phi = 54.8 degrees\n" + ] + } + ], + "source": [ + "#Example 2.1\n", + "import math\n", + "\n", + "# The parallelogram law of addition is shown in Fig.2-10b\n", + "\n", + "# F_R is determined using law of cosines\n", + "\n", + "#Calculation\n", + "F_R = math.sqrt((100**(2))+(150**(2))-2*100*150*math.cos(115*math.pi/180)) #[Newton]\n", + "\n", + "#Result\n", + "print\"Resultant Force F_R = \",int(round(F_R)),\"N\"\n", + "\n", + "# Angle theta is determined by law of sines\n", + "\n", + "#Calculation\n", + "theta = math.asin(150*0.9063/212.6) #[Radians]\n", + "\n", + "#Result\n", + "print \"theta = \",(round(math.degrees(theta),1)),\"degrees\"\n", + "\n", + "#The direction of phi as masured from horizontal is given by\n", + "phi = 39.8 + 15.0 #[Degrees]\n", + "print\"phi = \",phi,\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.2 Page No. 21" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F_x = 1532 N\n", + "F_y = 1285 N\n", + "F_x_dash = 1769 N\n", + "F_y = 2170 N\n" + ] + } + ], + "source": [ + "# Example 2.2\n", + "import math\n", + "\n", + "# Variable Declaration\n", + "F = 2000 #[newton]\n", + "# In each case parallelogram law is used to resolve F into its two components\n", + "\n", + "# Part(a)\n", + "# The vector addition F = F_x + F_y is shown in fig2-11b\n", + "# Calculation\n", + "F_x = F*math.cos(40*math.pi/180) #[Newton]\n", + "F_y = F*math.sin(40*math.pi/180) #[Newton]\n", + "\n", + "# Result\n", + "print\"F_x = \",int((F_x)),\"N\"\n", + "print\"F_y = \",int((F_y)),\"N\"\n", + "\n", + "# Part(b)\n", + "# The vector addition F = F_x_dash + F_y is shown in fig2-11b\n", + "# Calculation\n", + "F_x_dash = F*math.sin(50*math.pi/180)/math.sin(60*math.pi/180) #[Newton]\n", + "F_y = F*math.sin(70*math.pi/180)/math.sin(60*math.pi/180) #[Newton]\n", + "\n", + "# Result\n", + "print\"F_x_dash = \",int((F_x_dash)),\"N\"\n", + "print\"F_y = \",int((F_y)),\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.3 Page No. 22" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "theta = 76.1 degrees\n" + ] + } + ], + "source": [ + "# Example 2.3\n", + "import math\n", + "from __future__ import division\n", + "\n", + "# The angle phi can be determined using law of cosines\n", + "\n", + "# Calculation\n", + "phi = math.asin((400/500)*math.sin(60*math.pi/180)) #[Radians]\n", + "phi = math.degrees(phi) #[Degrees]\n", + "theta = 180-60-phi #[Degrees]\n", + "\n", + "# Result\n", + "print\"theta = \",round(theta,1),\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.4 Page No. 23" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Part(a)\n", + "F1 = 653 N\n", + "F2 = 446 N\n", + "\n", + "Part(b)\n", + "F1 = 940 N\n", + "F2 = 342 N\n" + ] + } + ], + "source": [ + "# Example 2.4\n", + "import math\n", + "\n", + "# Part(a) Refer fig 2-13b\n", + "# Using parallelogram law\n", + "\n", + "# Calculation\n", + "F1 = 1000*math.sin(30*math.pi/180)/math.sin(130*math.pi/180) #[Newton]\n", + "F2 = 1000*math.sin(20*math.pi/180)/math.sin(130*math.pi/180) #[Newton]\n", + "\n", + "# Result\n", + "print\"Part(a)\"\n", + "print\"F1 = \",int(round(F1,0)),\"N\"\n", + "print\"F2 = \",int(round(F2,0)),\"N\\n\"\n", + "\n", + "# Part(b) Refer fig 2-13d\n", + "\n", + "# Calculation\n", + "F1 = 1000*math.sin(70*math.pi/180) #[Newton]\n", + "F2 = 1000*math.cos(70*math.pi/180) #[Newton]\n", + "\n", + "# Result\n", + "print\"Part(b)\"\n", + "print\"F1 = \",int(round(F1,0)),\"N\"\n", + "print\"F2 = \",int(round(F2,0)),\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.5 Page No. 31" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F1_x = -100 N\n", + "F1_y = 173 N\n", + "F2_x = 240 N\n", + "F2_y = 100 N\n" + ] + } + ], + "source": [ + "# Example 2.5\n", + "import math\n", + "# F1_x acts in -x direction and F1_y acts in +y direction Refer fig 2-17b\n", + "\n", + "# Calculation\n", + "F1_x = -200*math.sin(30*math.pi/180) #[Newton]\n", + "F1_y = 200*math.cos(30*math.pi/180) #[Newton]\n", + "\n", + "# Result\n", + "print\"F1_x = \",int(round(F1_x,0)),\"N\"\n", + "print\"F1_y = \",int(round(F1_y,0)),\"N\"\n", + "\n", + "# F2 is resolved into its x and y components Refer fig 2-17c\n", + "\n", + "# Calculation\n", + "F2_x = 260*(12/13) #[Newton]\n", + "F2_y = 260*(5/13) #[Newton]\n", + "\n", + "# Result\n", + "print\"F2_x = \",int(round(F2_x,0)),\"N\"\n", + "print\"F2_y = \",int(round(F2_y,0)),\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.6 Page No. 32" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FR_x = 236.8 N\n", + "FR_y = 582.8 N\n", + "FR = 629 N\n", + "Theta = 67.9 degrees\n" + ] + } + ], + "source": [ + "# Example 2.6\n", + "import math\n", + "\n", + "# Variable Declaration\n", + "F1 = 600 #[Newton]\n", + "F2 = 400 #[Newton]\n", + "\n", + "# We resolve each force into x and y components Refer fig 2-18b\n", + "# Let FR be resultant force\n", + "# Let FR_x be resultant force along x direction\n", + "# Let FR_y be resultant force along y direction\n", + "\n", + "# Calculation\n", + "FR_x = F1*math.cos(30*math.pi/180) - F2*math.sin(45*math.pi/180) #[Newton]\n", + "FR_y = F1*math.sin(30*math.pi/180) + F2*math.cos(45*math.pi/180) #[Newton]\n", + "FR = math.sqrt(round(FR_x,1)**(2)+round(FR_y,1)**(2)) #[Newton]\n", + "theta = math.atan(round(FR_y,1)/round(FR_x,1)) #[Radians]\n", + "theta = math.degrees(theta) #[Degrees]\n", + "\n", + "# Result\n", + "print\"FR_x = \",round(FR_x,1),\"N\"\n", + "print\"FR_y = \",round(FR_y,1),\"N\"\n", + "print\"FR = \",int(round(FR,0)),\"N\"\n", + "print\"Theta = \",round(theta,1),\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Ex 2.7 Page No. 33" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F_R_x = -383.2 N\n", + "F_R_y = 296.8 N\n", + "F_R = 485 N\n", + "Theta = 37.8 degrees\n" + ] + } + ], + "source": [ + "# Example 2.7\n", + "import math\n", + "from __future__ import division\n", + "\n", + "# Variable Declaration\n", + "F1 = 400 #[Newton]\n", + "F2 = 250 #[Newton]\n", + "F3 = 200 #[Newton]\n", + "\n", + "# We resolve each force into x and y components Refer fig 2-18b\n", + "# Let F_R be resultant force\n", + "# Let F_R_x be resultant force along x direction\n", + "# Let F_R_y be resultant force along y direction\n", + "\n", + "# Calculation\n", + "F_R_x = -F1 + F2*math.sin(45*math.pi/180) - F3*(4/5) #[Newton]\n", + "F_R_y = F2*math.cos(45*math.pi/180) + F3*(3/5) #[Newton]\n", + "F_R = math.sqrt(round(F_R_x,1)**(2)+round(F_R_y,1)**(2)) #[Newton]\n", + "theta = math.atan(abs(round(F_R_y,1)/round(F_R_x,1))) #[Radians]\n", + "theta = math.degrees(theta) #[Degrees]\n", + "\n", + "# Result\n", + "print\"F_R_x = \",round(F_R_x,1),\"N\"\n", + "print\"F_R_y = \",round(F_R_y,1),\"N\"\n", + "print\"F_R = \",int(round(F_R,0)),\"N\"\n", + "print\"Theta = \",round(theta,1),\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.8 Page No. 41" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "cos_alpha = +/- 0.5\n", + "F = 100 N\n" + ] + } + ], + "source": [ + "# Example 2.8\n", + "import math\n", + "\n", + "# Variable declaration\n", + "beta = 60 #[Degrees]\n", + "gamma = 45 #[Degrees]\n", + "f = 100 #[Newton]\n", + "\n", + "# Calculation\n", + "cos_alpha = math.sqrt(1-(math.cos(beta*math.pi/180)**(2))-(math.cos(gamma*math.pi/180)**(2))) #[Radians]\n", + "alpha1 = math.degrees(math.acos(+cos_alpha)) #[Degrees]\n", + "alpha2 = math.degrees(math.acos(-cos_alpha)) #[Degrees]\n", + "Fx = f*math.cos(alpha1*math.pi/180) #[Newton]\n", + "Fy = f*math.cos(beta*math.pi/180) #[Newton]\n", + "Fz = f*math.cos(gamma*math.pi/180) #[Newton]\n", + "F = math.sqrt(round(Fx**(2),1)+round(Fy**(2),1)+round(Fz**(2),1)) #[Newton]\n", + "\n", + "# Result\n", + "print\"cos_alpha = +/-\",(cos_alpha)\n", + "print\"F = \",int(F),\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Ex 2.9 Page No. 42" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Resultant Force FR = 191.0 N\n", + "alpha = 74.8 degrees\n", + "beta = 102.1 degrees\n", + "gamma = 19.5 degrees\n" + ] + } + ], + "source": [ + "# Example 2.9\n", + "import math\n", + "from __future__ import division\n", + "\n", + "# Variable declaration\n", + "\n", + "F1_x = 0 #[Newton]\n", + "F1_y = 60 #[Newton]\n", + "F1_z = 80 #[Newton]\n", + "F2_x = 50 #[Newton]\n", + "F2_y = -100 #[Newton]\n", + "F2_z = 100 #[Newton]\n", + "\n", + "# Calculation\n", + "FR_x = F1_x + F2_x #[Newton]\n", + "FR_y = F1_y + F2_y #[Newton]\n", + "FR_z = F1_z + F2_z #[Newton]\n", + "\n", + "# Let F_R be resultant force\n", + "FR = round(math.sqrt(FR_x**(2)+FR_y**(2)+FR_z**(2)),1)\n", + "\n", + "# The coordinate direction angles alpha,beta and gamma are determined from components of unit vector along direction of F_R\n", + "cos_alpha = FR_x/FR\n", + "cos_beta = FR_y/FR\n", + "cos_gamma = FR_z/FR\n", + "alpha = round(math.degrees(math.acos(cos_alpha)),1) #[Degrees]\n", + "beta = round(math.degrees(math.acos(cos_beta)),1) #[Degrees]\n", + "gamma = round(math.degrees(math.acos(cos_gamma)),1) #[Degrees]\n", + "\n", + "# Result\n", + "print\"Resultant Force FR = \",(FR),\"N\"\n", + "print\"alpha = \",(alpha),\"degrees\"\n", + "print\"beta = \",(beta),\"degrees\"\n", + "print\"gamma = \",(gamma),\"degrees\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.10 Page No. 43" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F1_x = 354 N\n", + "F1_y = 354 N\n", + "F1_z = 866 N\n", + "F1 = 1000 N\n", + "\n", + "F2_x = 1.06 kN\n", + "F2_y = 1.837 kN\n", + "F2_z = 2.121 kN\n", + "F2 = 3000 N\n" + ] + } + ], + "source": [ + "# Example 2.10\n", + "import math\n", + "\n", + "# For F1\n", + "\n", + "# Calculation\n", + "F1_z = int(round(1000*math.sin(60*math.pi/180),0)) #[Newton]\n", + "F1_dash = int(round(1000*math.cos(60*math.pi/180),0)) #[Newton]\n", + "F1_x = int(round(F1_dash*math.cos(45*math.pi/180),0)) #[Newton]\n", + "F1_y = int(round(F1_dash*math.sin(45*math.pi/180),0)) #[Newton]\n", + "\n", + "# F1_y has direction defined by -j\n", + "F1 = int(round(math.sqrt(F1_x**(2)+(-F1_y)**(2)+F1_z**(2)),0)) #[Newton]\n", + "\n", + "# u1 is unit vector along F1\n", + "u1_x = round(F1_x/F1,3)\n", + "u1_y = round(F1_y/F1,3)\n", + "u1_z = round(F1_z/F1,3)\n", + "alpha1 = round(math.degrees(math.acos(u1_x)),1) #[Degrees]\n", + "betaa1 = round(math.degrees(math.acos(u1_y)),1) #[Degrees]\n", + "gamma1 = round(math.degrees(math.acos(u1_z)),1) #[Degrees]\n", + "\n", + "# Result\n", + "print\"F1_x = \",F1_x,\"N\"\n", + "print\"F1_y = \",F1_y,\"N\"\n", + "print\"F1_z = \",F1_z,\"N\"\n", + "print\"F1 = \",F1,\"N\\n\"\n", + "\n", + "# For F2\n", + "\n", + "# Calculation\n", + "F2_z = int(round(3000*math.sin(45*math.pi/180),0)) #[Newton]\n", + "F2_dash = int(round(3000*math.cos(45*math.pi/180),0)) #[Newton]\n", + "F2_x = int(round(F2_dash*math.sin(30*math.pi/180),0)) #[Newton]\n", + "F2_y = int(round(F2_dash*math.cos(30*math.pi/180),0)) #[Newton]\n", + "\n", + "# F2_z has direction defined by -k\n", + "F2 = int(round(math.sqrt(F2_x**(2)+F2_y**(2)+(-F2_z)**(2)),-1)) #[Newton]\n", + "\n", + "# u1 is unit vector along F1\n", + "\n", + "u2_x = round(F2_x/F2,3)\n", + "u2_y = round(F2_y/F2,3)\n", + "u2_z = round(F2_z/F2,3)\n", + "alpha2 = round(math.degrees(math.acos(u2_x)),1) #[Degrees]\n", + "betaa2 = round(math.degrees(math.acos(u2_y)),1) #[Degrees]\n", + "gamma2 = round(math.degrees(math.acos(u2_z)),1) #[Degrees]\n", + "\n", + "# Result\n", + "print\"F2_x = \",F2_x/1000,\"kN\"\n", + "print\"F2_y = \",F2_y/1000,\"kN\"\n", + "print\"F2_z = \",F2_z/1000,\"kN\"\n", + "print\"F2 = \",F2,\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.11 Page No. 44" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "alpha2 = 107.6 degrees\n", + "beta2 = 21.8 degrees\n", + "gamma2 = 77.6 degrees\n" + ] + } + ], + "source": [ + "# Example 2.11\n", + "import math\n", + "\n", + "# Variable declaration\n", + "\n", + "F1 = 300 #[Newton]\n", + "F2 = 700 #[Newton]\n", + "FR = 800 #[Newton]\n", + "alpha1 = 45 #[Degrees]\n", + "beta1 = 60 #[Degrees]\n", + "gamma1 = 120 #[Degrees]\n", + "\n", + "# Calculation\n", + "F1_x = round(F1*math.cos(alpha1*math.pi/180),1) #[Newton]\n", + "F1_y = round(F1*math.cos(beta1*math.pi/180),1) #[Newton]\n", + "F1_z = round(F1*math.cos(gamma1*math.pi/180),1) #[Newton]\n", + "\n", + "# FR acts along +y axis\n", + "FR_x = 0 #[Newton]\n", + "FR_y = 800 #[Newton]\n", + "FR_z = 0 #[Newton]\n", + "\n", + "# FR = F1 + F2\n", + "# F2 = FR - F1\n", + "F2_x = FR_x - F1_x #[Newton]\n", + "F2_y = FR_y - F1_y #[Newton]\n", + "F2_z = FR_z - F1_z #[Newton]\n", + "alpha2 = round(math.degrees(math.acos(F2_x/F2)),1) #[Degrees]\n", + "beta2 = round(math.degrees(math.acos(F2_y/F2)),1) #[Degrees]\n", + "gamma2 = round(math.degrees(math.acos(F2_z/F2)),1) #[Degrees]\n", + "\n", + "# Result\n", + "print\"alpha2 = \",(alpha2),\"degrees\"\n", + "print\"beta2 = \",(beta2),\"degrees\"\n", + "print\"gamma2 = \",(gamma2),\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.12 Page No. 49" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "alpha = 115.4 degrees\n", + "beta = 73.4 degrees\n", + "gamma = 31.0 degrees\n" + ] + } + ], + "source": [ + "# Example 2.12\n", + "import math\n", + "from __future__ import division\n", + "\n", + "# Variable Declaration\n", + "A_x = 1 #[meters]\n", + "A_y = 0 #[meters]\n", + "A_z = -3 #[meters]\n", + "B_x = -2 #[meters]\n", + "B_y = 2 #[meters]\n", + "B_z = 3 #[meters]\n", + "\n", + "# Calculation\n", + "# r = B - A\n", + "r_x = B_x - A_x #[meters]\n", + "r_y = B_y - A_y #[meters]\n", + "r_z = B_z - A_z #[meters]\n", + "r = math.sqrt(r_x**(2)+r_y**(2)+r_z**(2))\n", + "\n", + "# Assume u to be a unit vector along r\n", + "u_x = r_x/r\n", + "u_y = r_y/r\n", + "u_z = r_z/r\n", + "alpha = round(math.degrees(math.acos(u_x)),1) #[Degrees]\n", + "beta = round(math.degrees(math.acos(u_y)),1) #[Degrees]\n", + "gamma = round(math.degrees(math.acos(u_z)),1) #[Degrees]\n", + "\n", + "# Result\n", + "print\"alpha = \",(alpha),\"degrees\"\n", + "print\"beta = \",(beta),\"degrees\"\n", + "print\"gamma = \",(gamma),\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Ex 2.13 Page No. 51" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F_x = 30.0 N\n", + "F_y = -20.0 N\n", + "F_z = -60.0 N\n", + "alpha = 64.6 degrees\n", + "beta = 106.6 degrees\n", + "gamma = 149.0 degrees\n" + ] + } + ], + "source": [ + "# Example 2.13\n", + "import math\n", + "from __future__ import division\n", + "\n", + "# Variable Declaration\n", + "A_x = 0 #[meters]\n", + "A_y = 0 #[meters]\n", + "A_z = 8 #[meters]\n", + "B_x = 3 #[meters]\n", + "B_y = -2 #[meters]\n", + "B_z = 2 #[meters]\n", + "\n", + "# Calculation\n", + "# r = B - A\n", + "r_x = B_x - A_x #[meters]\n", + "r_y = B_y - A_y #[meters]\n", + "r_z = B_z - A_z #[meters]\n", + "r = math.sqrt(r_x**(2)+r_y**(2)+r_z**(2))\n", + "\n", + "# Assume u to be a unit vector along r\n", + "u_x = r_x/r\n", + "u_y = r_y/r\n", + "u_z = r_z/r\n", + "\n", + "# Since F = 70 N and direction is specified by u\n", + "F_x = 70 * u_x #[Newton]\n", + "F_y = 70 * u_y #[Newton]\n", + "F_z = 70 * u_z #[Newton]\n", + "alpha = round(math.degrees(math.acos(u_x)),1) #[Degrees]\n", + "beta = round(math.degrees(math.acos(u_y)),1) #[Degrees]\n", + "gamma = round(math.degrees(math.acos(u_z)),1) #[Degrees]\n", + "\n", + "# Result\n", + "print\"F_x = \",(F_x),\"N\"\n", + "print\"F_y = \",(F_y),\"N\"\n", + "print\"F_z = \",(F_z),\"N\"\n", + "print\"alpha = \",(alpha),\"degrees\"\n", + "print\"beta = \",(beta),\"degrees\"\n", + "print\"gamma = \",(gamma),\"degrees\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.14 Page No. 52" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "F_x = 313.5 N\n", + "F_y = 129.8 N\n", + "F_z = -367.3 N\n", + "F = 500.0 N\n" + ] + } + ], + "source": [ + "# Example 2.14\n", + "import math\n", + "from __future__ import division\n", + "\n", + "# Variable Declaration\n", + "A_x = 0 #[meters]\n", + "A_y = 0 #[meters]\n", + "A_z = 2 #[meters]\n", + "B_x = 1.707 #[meters]\n", + "B_y = 0.707 #[meters]\n", + "B_z = 0 #[meters]\n", + "\n", + "# Calculation\n", + "# r = B - A\n", + "r_x = B_x - A_x #[meters]\n", + "r_y = B_y - A_y #[meters]\n", + "r_z = B_z - A_z #[meters]\n", + "r = math.sqrt(r_x**(2)+r_y**(2)+r_z**(2))\n", + "\n", + "# Assume u to be a unit vector along r\n", + "u_x = r_x/r\n", + "u_y = r_y/r\n", + "u_z = r_z/r\n", + "\n", + "# Since F = 500 N and direction is specified by u\n", + "F_x = round(500 * u_x,1) #[Newton]\n", + "F_y = round(500 * u_y,1) #[Newton]\n", + "F_z = round(500 * u_z,1) #[Newton]\n", + "F = round(math.sqrt(F_x**(2)+F_y**(2)+F_z**(2)),1) #[Newton]\n", + "\n", + "# Result\n", + "print\"F_x = \",(F_x),\"N\"\n", + "print\"F_y = \",(F_y),\"N\"\n", + "print\"F_z = \",(F_z),\"N\"\n", + "print\"F = \",(F),\"N\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Ex 2.15 Page No. 53" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FR = 217.0 N\n" + ] + } + ], + "source": [ + "# Example 2.15\n", + "import math\n", + "from __future__ import division\n", + "\n", + "# Variable Declaration\n", + "FAB = 100 #[Newton]\n", + "FAC = 120 #[Newton]\n", + "A_x = 0 #[meters]\n", + "A_y = 0 #[meters]\n", + "A_z = 4 #[meters]\n", + "B_x = 4 #[meters]\n", + "B_y = 0 #[meters]\n", + "B_z = 0 #[meters]\n", + "C_x = 4 #[meters]\n", + "C_y = 2 #[meters]\n", + "C_z = 0 #[meters]\n", + "\n", + "# Calculation(FAB)\n", + "rAB_x = B_x - A_x #[meters]\n", + "rAB_y = B_y - A_y #[meters]\n", + "rAB_z = B_z - A_z #[meters]\n", + "rAB = round(math.sqrt(rAB_x**(2)+rAB_y**(2)+rAB_z**(2)),2)\n", + "FAB_x = round(FAB*(rAB_x/rAB),1) #[Newton]\n", + "FAB_y = round(FAB*(rAB_y/rAB),1) #[Newton]\n", + "FAB_z = round(FAB*(rAB_z/rAB),1) #[Newton]\n", + "\n", + "# Calculation(FAC)\n", + "rAC_x = C_x - A_x #[meters]\n", + "rAC_y = C_y - A_y #[meters]\n", + "rAC_z = C_z - A_z #[meters]\n", + "rAC = round(math.sqrt(rAC_x**(2)+rAC_y**(2)+rAC_z**(2)),2)\n", + "FAC_x = round(FAC*(rAC_x/rAC),1) #[Newton]\n", + "FAC_y = round(FAC*(rAC_y/rAC),1) #[Newton]\n", + "FAC_z = round(FAC*(rAC_z/rAC),1) #[Newton]\n", + "\n", + "# FR = FAB + FAC\n", + "FR_x = FAB_x + FAC_x #[Newton]\n", + "FR_y = FAB_y + FAC_y #[Newton]\n", + "FR_z = FAB_z + FAC_z #[Newton]\n", + "FR = round(math.sqrt(FR_x**(2)+FR_y**(2)+FR_z**(2)),0)\n", + "print\"FR = \",(FR),\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.16 Page No. 61" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FAB = 257.1 N\n", + "FAB_x = 73.5 N\n", + "FAB_y = 220.4 N\n", + "FAB_z = 110.2 N\n", + "Fp = 155.0 N\n" + ] + } + ], + "source": [ + "# Example 2.16\n", + "import math\n", + "\n", + "# Variable Declaration\n", + "rB_x = 2 #[meters]\n", + "rB_y = 6 #[meters]\n", + "rB_z = 3 #[meters]\n", + "F_x = 0 #[Newton]\n", + "F_y = 300 #[Newton]\n", + "F_z = 0 #[Newton]\n", + "\n", + "# Calculation\n", + "F = math.sqrt(F_x**(2)+F_y**(2)+F_z**(2)) #[Newton]\n", + "# Let uB be unit vector defining direction of AB\n", + "rB = math.sqrt(rB_x**(2)+rB_y**(2)+rB_z**(2)) #[meters]\n", + "uB_x = rB_x/rB\n", + "uB_y = rB_y/rB\n", + "uB_z = rB_z/rB\n", + "\n", + "# The magnitude of component of F along AB is equal to dot product of F and unit vector uB \n", + "FAB = round(F_x*uB_x + F_y*uB_y + F_z*uB_z,1) #[Newton]\n", + "\n", + "# Expressing FAB in Cartesian form\n", + "FAB_x = round(FAB*uB_x,1) #[Newton]\n", + "FAB_y = round(FAB*uB_y,1) #[Newton]\n", + "FAB_z = round(FAB*uB_z,1) #[Newton]\n", + "FAB = round(math.sqrt(FAB_x**(2)+FAB_y**(2)+FAB_z**(2)),1) #[Newton]\n", + "\n", + "# Let Fp be perpendicular component\n", + "Fp_x = F_x - FAB_x #[Newton]\n", + "Fp_y = F_y - FAB_y #[Newton]\n", + "Fp_z = F_z - FAB_z #[Newton]\n", + "Fp = round(math.sqrt(F**(2)-FAB**(2)),0) #[Newton]\n", + "\n", + "# Result\n", + "print\"FAB = \",(FAB),\"N\"\n", + "print\"FAB_x = \",(FAB_x),\"N\"\n", + "print\"FAB_y = \",(FAB_y),\"N\"\n", + "print\"FAB_z = \",(FAB_z),\"N\"\n", + "print\"Fp = \",(Fp),\"N\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ex 2.17 Page No. 62" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "theta = 42.4 degrees\n", + "FBA = 59.1 N\n", + "Fp = 53.9 N\n" + ] + } + ], + "source": [ + "# Example 2.17\n", + "import math\n", + "from __future__ import division\n", + "\n", + "# Variable Declaration\n", + "F = 80 #[Newton]\n", + "A_x = 0\n", + "A_y = 1\n", + "A_z = 0\n", + "B_x = 2\n", + "B_y = 3\n", + "B_z = -1\n", + "C_x = 2\n", + "C_y = 0\n", + "C_z = 0\n", + "\n", + "# Calculation\n", + "rBA_x = A_x - B_x \n", + "rBA_y = A_y - B_y\n", + "rBA_z = A_z - B_z\n", + "rBC_x = C_x - B_x \n", + "rBC_y = C_y - B_y\n", + "rBC_z = C_z - B_z\n", + "rBA = round(math.sqrt(rBA_x**(2)+rBA_y**(2)+rBA_z**(2)),2)\n", + "rBC = round(math.sqrt(rBC_x**(2)+rBC_y**(2)+rBC_z**(2)),2)\n", + "theta = round(math.degrees(math.acos((rBA_x*rBC_x+rBA_y*rBC_y+rBA_z*rBC_z)/(rBA*rBC))),1)\n", + "\n", + "# let uBA be unit vector along BA\n", + "uBA_x = rBA_x/rBA\n", + "uBA_y = rBA_y/rBA\n", + "uBA_z = rBA_z/rBA\n", + "F_x = round(F*(rBC_x/rBC),2) #[Newton]\n", + "F_y = round(F*(rBC_y/rBC),2) #[Newton]\n", + "F_z = round(F*(rBC_z/rBC),2) #[Newton]\n", + "\n", + "# FBA = F.uBA\n", + "FBA = round(F_x*uBA_x + F_y*uBA_y + F_z*uBA_z,1) #[Newton]\n", + "\n", + "# Since theta was calculated FBA can be calculated by FBA = F*cos(theta)\n", + "# Let Fp be perpendicular component\n", + "Fp = round(F*math.sin(theta*math.pi/180),1) #[Newton]\n", + "\n", + "# Result\n", + "print\"theta = \",(theta),\"degrees\"\n", + "print\"FBA = \",(FBA),\"N\"\n", + "print\"Fp = \",(Fp),\"N\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python [default]", + "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.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} |