(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.2' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 18268, 579]*) (*NotebookOutlinePosition[ 24759, 729]*) (* CellTagsIndexPosition[ 23388, 700]*) (*WindowFrame->Normal*) Notebook[{ Cell["Higher-Order Ordinary Differential Equations", "Title"], Cell[CellGroupData[{ Cell["Background: Another example of for Forward Differencing", "Subtitle"], Cell[TextData[{ "Recall how we used forward finite differencing to simulate the behavior of \ a function that changed proportional to its current size in Lecture 19. \ Consider now a function that changes \"", StyleBox["how fast it changes", FontSlant->"Italic"], "\" proportional to its current change and its current value--in other \ words its current acceleration is proportional to its velocity and to its \ size:" }], "Text"], Cell["Let's work out how to find a finite differencing function:", "Text"], Cell["This is the current change or approximation to velocity", "Text"], Cell[BoxData[ \(CurrentChangePerDelta[F_, \ i_, \ \[CapitalDelta]_]\ := \ \(F[i + 1]\ - \ F[i]\)\/\ \[CapitalDelta]\)], "Input", CellTags->{ "mmtag:21:foward_differencing__higher_order_ODEs", "mmtag:21:foward_differencing__example_function"}], Cell["\<\ This is the current change in change or approximation to \ acceleration\ \>", "Text"], Cell[BoxData[ \(CurrentChangeinCurrentChangeperDelta[F_, \ i_, \ \[CapitalDelta]_]\ := \ \ \[IndentingNewLine]Simplify[\(CurrentChangePerDelta[F, i + 1, \ \[CapitalDelta]]\ - \ CurrentChangePerDelta[F, i, \[CapitalDelta]]\)\/\ \[CapitalDelta]]\)], "Input", CellTags->{ "mmtag:21:discrete_approximation_to_derivative", "mmtag:21:derivatives__discrete_approximation"}], Cell["\<\ Our model is that the acceleration is proportional to size of the \ current function and its velocity, let these proportions be: -\[Alpha] and -\ \[Beta]\ \>", "Text"], Cell[BoxData[ \(DifferenceRelation\ = \ CurrentChangeinCurrentChangeperDelta[F, i, \[CapitalDelta]]\ == \ \(-\[Beta]\)\ \ CurrentChangePerDelta[F, i, \[CapitalDelta]] - \ \[Alpha]\ F[i]\)], "Input", CellTags->{ "mmtag:21:derivatives__discrete_approximation_second_derivative", "mmtag:21:second_derivatives__discrete_approximation"}], Cell["Solve this for the \"latest\" values", "Text"], Cell[BoxData[ \(ForDiffSol\ = \ Solve[DifferenceRelation, F[i + 2]] // Flatten\)], "Input"], Cell["Replace to find the form of the solution", "Text"], Cell[BoxData[ \(ForDiffSolV2\ = \ ForDiffSol /. i \[Rule] \ j - 2\)], "Input"], Cell["\<\ Notice that this forward differnce needs TWO consectutive past \ values before it can calculate the current value, create a function to \ Appends the current value to a list by using the last two values:\ \>", "Text"], Cell["\<\ The fact that TWO consecutive values are needed is not surprising. \ Because this iteration procedure is giving an approximation to the solution \ of a second-order ODE, we need to make a numerical approximation to a second \ derivative. THREE points\[LongDash]the two consecutive ones and the current \ one\[LongDash]are needed to do this. (If only two points were used, you could \ only compute the slope of the straight line connecting the points; if three \ points are used, a circle can be fit to the three points and the inverse of \ its radius gives the curvature.)\ \>", "Subsubsection"], Cell[BoxData[ \(GrowList[ ValuesList_List, \ \[CapitalDelta]_\ , \ \[Alpha]_\ , \ \[Beta]_]\ := Module[{Minus1 = ValuesList[\([\(-1\)]\)], \ Minus2\ = \ ValuesList[\([\(-2\)]\)]}, \[IndentingNewLine]Append[ ValuesList, \[IndentingNewLine]2*Minus1\ - \ Minus2\ + \ \[CapitalDelta]\ *\((\[Beta]*\((Minus2\ - \ Minus1)\)\ - \[Alpha]*\[CapitalDelta]* Minus2)\)]]\)], "Input"], Cell[BoxData[ \(result\ = \ GrowList[{1, 1}, .001, 1, .1]\)], "Input"], Cell[BoxData[ \(result\ = \ GrowList[result, .001, 1, .1]\)], "Input"], Cell["\<\ Generate a sequence of length 20 from initial values {1,1} for \ \[CapitalDelta]=0.001, \[Alpha]=1, \[Beta]=0.1\ \>", "Text"], Cell[BoxData[ \(Nest[GrowList[#, .001, 1, .1] &, {1, 1}, 20]\)], "Input"], Cell["\<\ Visualize results (it takes about 45 seconds to visualize 20000 \ iterations)\ \>", "Text"], Cell[BoxData[ \(ListPlot[Nest[GrowList[#, .001, 1, .1] &, {1, 1}, 20000]]\)], "Input"], Cell[TextData[{ "Change parameters for Growth Function (this example shows that the \ numerical solution ", StyleBox["does not converge", FontSlant->"Italic"], " to the accurate solution):" }], "Text"], Cell[BoxData[ \(ListPlot[Nest[GrowList[#, 0.01, 0.5, 0] &, {1, 1}, 20000]]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ General Solution to the Second-Order Linear Homogeneous ODEs with \ Constant Coefficients\ \>", "Subtitle"], Cell["\<\ Analysis of basis solutions to y'' + \[Beta]y' + \[Gamma]y = 0 in \ terms of constant coefficients \[Beta] and \[Gamma]\ \>", "Text", CellTags->"mmtag:21:second_order_odes__characterizing_solution_behavior"], Cell[CellGroupData[{ Cell["First write a general expression for this homogeneous ODE:", \ "Subsubsection"], Cell[BoxData[ \(TheODE[function_, \ var_]\ := \ D[function[var], {var, 2}]\ + \ \[Beta]\ D[function[var], var]\ + \ \[Gamma]\ function[var]\)], "Input"], Cell[BoxData[ \(TheODE[y, x]\)], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["\<\ Guess a solution and substitute it into the left-hand side of the \ ODE:\ \>", "Subsubsection"], Cell[BoxData[ \(TheGuess[x_]\ := \ Exp[\[Lambda]\ x]\)], "Input"], Cell[BoxData[ \(TheODE[TheGuess, x]\)], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["\<\ This will be a solution when the resulting quadratic expression in \ \[Lambda] is equal to 0:\ \>", "Subsubsection"], Cell[BoxData[ \(\[Lambda]Solution\ = \ Solve[TheODE[TheGuess, x] \[Equal] 0, \[Lambda]]\)], "Input"] }, Open ]], Cell["The two roots \[Lambda]+ and \[Lambda]+ are:", "Subsubsection", CellTags-> "mmtag:21:second_order_odes__general solution_for_constant_coefficients"], Cell[BoxData[ \({\[Lambda]Minus, \[Lambda]Plus} = \ \[Lambda] /. \[Lambda]Solution\)], \ "Input"], Cell[BoxData[ \(GeneralSolution[x_]\ := \ C[LPlus]\ Exp[\[Lambda]Plus\ x]\ + \ \ C[ LMinus]\ Exp[\[Lambda]Minus\ x]\)], "Input"], Cell[BoxData[ \(TheODE[GeneralSolution, z]\)], "Input"], Cell[BoxData[ \(Simplify[TheODE[GeneralSolution, z]]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ Graphical Characterization of General Solution to the Second Order \ ODE with Constant Coefficients\ \>", "Subtitle"], Cell[BoxData[ \(Reduce[\[Lambda]Plus \[Element] \ Reals\ && \ \ \[Lambda]Minus\ \[Element] \ Reals, {\[Beta], \[Gamma]}, Reals]\)], "Input"], Cell[TextData[{ "Assuming that \[Beta] and \[Gamma] are real, the solutions can be \ characterized by the roots of the quadratic equation. That is, our solution \ is known to be ", Cell[BoxData[ \(TraditionalForm\`e\^\[Lambda]t\)]], ": the solution monotonically grows or shrinks in time if the roots are \ real-positive or real-negative. The condition that the roots are real is \ \[Gamma] <", Cell[BoxData[ \(TraditionalForm\`\(\(\ \)\(\[Beta]\^2\)\)\/4\)]], "If the roots have an imaginary part, the solutions can oscillate. Whether \ the oscillation amplitudes grow or shrink depends on whether the real part of \ \[Lambda] is positive or negative." }], "Text"], Cell["\<\ We now do some calculations to make an annotated map on the \[Beta]\ \[Dash]\[Gamma] plane of solution scenarios for the \[Lambda] values:\ \>", \ "Subsubsection"], Cell[BoxData[ \(CplexReal\ = \ Plot[\[Beta]^2/4, {\[Beta], \(-1\), 1}, AxesLabel \[Rule] {"\<\[Beta]\>", "\<\[Gamma]\>"}]\)], "Input", CellTags->"mmtag:21:graphics__building_piece_by_piece"], Cell[BoxData[ \(CplexRealAnnote\ = Show[CplexReal, Graphics[ Text["\", {0.25, 0.25}, {\(-1\), 1}]], Graphics[Text["\", {0.75, 0.05}]]]\)], "Input"], Cell[TextData[{ "If the roots complex, then the sign of the real part is determined only by \ the sign of \[Beta]; i.e., \[Lambda] = ", Cell[BoxData[ \(TraditionalForm\`\(-\[Beta]\)\/2\)]], "\[PlusMinus] ", Cell[BoxData[ FormBox[ SqrtBox[ RowBox[{ FormBox[\(\((\[Beta]\/2)\)\^2\), "TraditionalForm"], "-", " ", "\[Gamma]"}]], TraditionalForm]]] }], "Text"], Cell[BoxData[ \(CplexPosNeg\ = ParametricPlot[{0, t}, {t, 0, .25}, PlotStyle \[Rule] {Thickness[0.015], Hue[0]}, DisplayFunction \[Rule] Identity]\)], "Input"], Cell[BoxData[ \(CplexPosNegAnnote\ = \ Show[CplexPosNeg, Graphics[ Text[StyleForm["\", FontColor \[Rule] Hue[0]], {\(- .5\), 0.15}, {\(-1\), 1}]], Graphics[ Text[StyleForm["\", FontColor \[Rule] Hue[0]], { .5, 0.15}, {1, 1}]], DisplayFunction \[Rule] $DisplayFunction]\)], "Input"], Cell[BoxData[ \(CplexPlot\ = Show[CplexRealAnnote, CplexPosNegAnnote]\)], "Input"], Cell["\<\ Find the conditions where the real roots are positive and/or \ negative\ \>", "Text"], Cell[BoxData[ \(Reduce[{\[Lambda]Plus\ > 0, \[Lambda]Minus > 0}]\)], "Input", CellTags->"mmtag:21:Reduce[]"], Cell[BoxData[ \(AnnotePosRealRoots\ = Graphics[Text[ StyleForm["\", FontColor \[Rule] Hue[ .6]], {\(-1.0\), 0.025}, {\(-1\), 0}]]\)], "Input"], Cell[BoxData[ \(Reduce[{\[Lambda]Plus\ > 0, \[Lambda]Minus < 0}]\)], "Input"], Cell[BoxData[{ \(MixedRealRoots\ = \ Plot[0, {t, \(-1\), 1}, PlotStyle \[Rule] {Hue[0.6], Thickness[0.015]}, DisplayFunction \[Rule] Identity]\), "\[IndentingNewLine]", \(AnnoteMixedRealRoots\ = Show[MixedRealRoots, Graphics[ Text[StyleForm["\", FontColor \[Rule] Hue[ .6]], {0.2, \(-0.1\)}, {\(-1\), 0}]], DisplayFunction \[Rule] $DisplayFunction]\)}], "Input"], Cell[BoxData[ \(Reduce[{\[Lambda]Plus\ < 0, \[Lambda]Minus < 0}]\)], "Input"], Cell[BoxData[ \(AnnoteNegRealRoots\ = Graphics[Text[ StyleForm["\", FontColor \[Rule] Hue[ .6]], {1.0, 0.025}, {1, 0}]]\)], "Input"], Cell[BoxData[ \(Show[CplexPlot, AnnotePosRealRoots, AnnoteMixedRealRoots, AnnoteNegRealRoots]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ Determination of the Specific Solution for Particular Boundary \ Values\ \>", "Subtitle"], Cell[TextData[{ "Second order ODEs require that ", StyleBox["two", FontWeight->"Bold"], " conditions be specified to generate a particular solution." }], "Text", CellTags->"mmtag:21:second_order_odes__using_boundary_values"], Cell["\<\ Example of y(0) = 0 and y(L)=1 The general solution will have the form:\ \>", "Subsubtitle"], Cell[BoxData[ \(GeneralSolution[x_]\ := \ CPlus\ Exp[\[Lambda]Plus\ x]\ + \ CMinus\ Exp[\[Lambda]Minus\ x]\)], "Input"], Cell[TextData[{ "Apply the two boundary conditions and solve the resulting equations for \ constants ", StyleBox["CPlus", FontWeight->"Bold"], " and ", StyleBox["CMinus", FontWeight->"Bold"], ":" }], "Subsubsection"], Cell[BoxData[ \(SolutionOne\ = \ Solve[{GeneralSolution[0] == 0, GeneralSolution[L] == 1}, {CPlus, CMinus}]\)], "Input"], Cell["Write the resulting solution:", "Subsubsection"], Cell[BoxData[ \(SpecificSolutionOne\ = \ Simplify[GeneralSolution[x] /. SolutionOne]\)], "Input"], Cell["\<\ Second example with different form of boundary condition: y(0) = 1 \ and y'(0)=0\ \>", "Text"], Cell[BoxData[ \(DGen\ = \ D[GeneralSolution[x], x]\)], "Input"], Cell["Now the constants CPlus and CMinus are found by solving:", \ "Subsubsection"], Cell[BoxData[ \(SolutionTwo\ = \ Solve[{GeneralSolution[0] \[Equal] 1, \((DGen /. x \[Rule] 0)\) \[Equal] 0}, {CPlus, CMinus}]\)], "Input"], Cell["And the new solution is:", "Subsubsection"], Cell[BoxData[ \(SpecificSolutionTwo\ = \ Simplify[GeneralSolution[x] /. SolutionTwo]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ Example of Higher-Order equation and Visualization of Solutions: The Beam Equation\ \>", "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell["Visualizing Beam Deflections:", "Text"], Cell["\<\ Set up the ODE solution (we will specify a unit beam stiffness) EI \ = 1\ \>", "Text"], Cell[BoxData[ \(BeamEquation[y_\ , x_\ , \ w_, \ BC1_\ , \ BC2_]\ := \ DSolve[Flatten[{\(y''''\)[x]\ == \ w[x], \ BC1, \ BC2}], y[x], x] // Flatten\)], "Input", CellTags->"mmtag:21:beam_equation"], Cell["Set up some typical boundary conditions:", "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}], Cell[BoxData[{ \(Clamp[y_\ , \ x_\ , \ position_, \ slope_]\ := \ {y[x]\ == \ position, \ \(y'\)[x]\ == \ slope}\), "\[IndentingNewLine]", \(PointLoad[y_, \ x_, \ position_, \ moment_]\ := \ {y[x] \[Equal] \ position, \ \(y''\)[x]\ \[Equal] \ moment}\), "\[IndentingNewLine]", \(FreeEnd[y_\ , \ x_]\ := \ {\(y''\)[x] \[Equal] 0, \ \(y'''\)[x] \[Equal] 0}\)}], "Input"], Cell[BoxData[ \(noload[x_]\ := \ 0\)], "Input"], Cell[BoxData[ \(BeamEquation[y, x, noload, Clamp[y, 0, 0, 0], PointLoad[y, 1, \(- .1\), 0]]\)], "Input", CellTags->"mmtag:21:beams__general_solutions_for_deflection"], Cell["Clamped Beam, loaded at the end", "Text"], Cell[BoxData[ RowBox[{"Plot", "[", RowBox[{ RowBox[{"Evaluate", "[", "\[IndentingNewLine]", StyleBox[\(y[x] /. BeamEquation[y, x, noload, Clamp[y, 0, 0, 0], PointLoad[y, 1, \(- .25\), 0]]\), FontColor->RGBColor[1, 0, 0]], "\[IndentingNewLine]", "]"}], ",", \({x, 0, 1}\), ",", \(PlotRange \[Rule] {\(-0.5\), 0.5}\), ",", \(AspectRatio \[Rule] 1\)}], "]"}]], "Input", CellTags->{ "mmtag:21:beams__clamped_and_loaded", "mmtag:21:beams__clamped_both_ends_with_point_load"}], Cell[BoxData[ RowBox[{\(BeamViz[DistLoadx_, \ BC1_, \ BC2_]\), " ", ":=", " ", "\[IndentingNewLine]", RowBox[{"Plot", "[", RowBox[{ RowBox[{"Evaluate", "[", "\[IndentingNewLine]", StyleBox[\(y[x] /. BeamEquation[y, x, DistLoadx, BC1, BC2]\), FontColor->RGBColor[1, 0, 0]], StyleBox["]", FontColor->RGBColor[1, 0, 0]]}], "\[IndentingNewLine]", ",", \({x, 0, 1}\), ",", \(PlotRange \[Rule] {\(-0.5\), 0.5}\), ",", \(AspectRatio \[Rule] 1\), ",", \(PlotStyle -> {Thickness[0.03], Hue[0]}\)}], "]"}]}]], "Input"], Cell["Clamped Beam, Free end, unit applied load", "Text"], Cell[BoxData[ \(unitload[x_]\ := \ 1\)], "Input"], Cell[BoxData[ \(BeamViz[unitload, Clamp[y, 0, 0, 0], FreeEnd[y, 1]]\)], "Input"], Cell["Clamped Beam, Point load at end, Point load at Middle", "Text"], Cell[BoxData[ \(midload[x_]\ := \ \(-10\) DiracDelta[x\ - \ 1/2]\)], "Input"], Cell[BoxData[ \(BeamViz[midload, Clamp[y, 0, 0, 0], PointLoad[y, 1, 0, 0]]\)], "Input"], Cell["Point Loaded on both ends, loaded in the middle as above", "Text"], Cell[BoxData[ \(BeamViz[midload, PointLoad[y, 0, 0, 0], PointLoad[y, 1, 0, 0]]\)], "Input"], Cell["\<\ Point Loaded on both ends, with linear distributed load positive at \ left and negative at right\ \>", "Text", CellTags->{ "mmtag:21:beams__point_loads_and_distributed_loads", "mmtag:21:beams__distributed_loads"}], Cell[BoxData[ \(testload[x_]\ := 500*\((1/2\ - \ x)\)\)], "Input"], Cell[BoxData[ \(BeamViz[testload, PointLoad[y, 0, 0, 0], PointLoad[y, 1, 0, 0]]\)], "Input"], Cell["Clamped on both ends, with a \"box\" placed at x = 3/4", "Text"], Cell[BoxData[ \(boxload[ x_]\ := \(-500\)*\((UnitStep[x - \((3/4 - 1/8)\)]\ - \ UnitStep[x - \((3/4 + 1/8)\)])\)\)], "Input"], Cell[BoxData[ \(Plot[boxload[x], {x, 0, 1}]\)], "Input"], Cell[BoxData[ \(BeamViz[boxload, Clamp[y, 0, 0, 0], Clamp[y, 1, 0, 0]]\)], "Input"] }, Closed]] }, FrontEndVersion->"5.2 for Macintosh", ScreenRectangle->{{4, 1280}, {0, 832}}, ScreenStyleEnvironment->"Presentation", CellGrouping->Manual, WindowSize->{1000, 800}, WindowMargins->{{Automatic, 447}, {Automatic, 122}}, WindowTitle->"Lecture 21 MIT 3.016 (Fall 2006) \[Copyright] W. Craig Carter \ 2003-2006", PrintingCopies->1, PrintingPageRange->{1, Automatic}, ShowSelection->True, ShowCellLabel->False, CellLabelAutoDelete->True, StyleDefinitions -> "3016_Carter.nb" ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{ "mmtag:21:foward_differencing__higher_order_ODEs"->{ Cell[2514, 72, 266, 6, 73, "Input", CellTags->{ "mmtag:21:foward_differencing__higher_order_ODEs", "mmtag:21:foward_differencing__example_function"}]}, "mmtag:21:foward_differencing__example_function"->{ Cell[2514, 72, 266, 6, 73, "Input", CellTags->{ "mmtag:21:foward_differencing__higher_order_ODEs", "mmtag:21:foward_differencing__example_function"}]}, "mmtag:21:discrete_approximation_to_derivative"->{ Cell[2881, 85, 390, 8, 94, "Input", CellTags->{ "mmtag:21:discrete_approximation_to_derivative", "mmtag:21:derivatives__discrete_approximation"}]}, "mmtag:21:derivatives__discrete_approximation"->{ Cell[2881, 85, 390, 8, 94, "Input", CellTags->{ "mmtag:21:discrete_approximation_to_derivative", "mmtag:21:derivatives__discrete_approximation"}]}, "mmtag:21:derivatives__discrete_approximation_second_derivative"->{ Cell[3455, 101, 380, 7, 68, "Input", CellTags->{ "mmtag:21:derivatives__discrete_approximation_second_derivative", "mmtag:21:second_derivatives__discrete_approximation"}]}, "mmtag:21:second_derivatives__discrete_approximation"->{ Cell[3455, 101, 380, 7, 68, "Input", CellTags->{ "mmtag:21:derivatives__discrete_approximation_second_derivative", "mmtag:21:second_derivatives__discrete_approximation"}]}, "mmtag:21:second_order_odes__characterizing_solution_behavior"->{ Cell[6501, 189, 220, 4, 59, "Text", CellTags-> "mmtag:21:second_order_odes__characterizing_solution_behavior"]}, "mmtag:21:second_order_odes__general solution_for_constant_coefficients"->{ Cell[7624, 235, 158, 2, 55, "Subsubsection", CellTags-> "mmtag:21:second_order_odes__general \ solution_for_constant_coefficients"]}, "mmtag:21:graphics__building_piece_by_piece"->{ Cell[9381, 289, 213, 4, 47, "Input", CellTags->"mmtag:21:graphics__building_piece_by_piece"]}, "mmtag:21:Reduce[]"->{ Cell[11051, 341, 115, 2, 47, "Input", CellTags->"mmtag:21:Reduce[]"]}, "mmtag:21:second_order_odes__using_boundary_values"->{ Cell[12453, 387, 237, 6, 59, "Text", CellTags->"mmtag:21:second_order_odes__using_boundary_values"]}, "mmtag:21:beam_theory"->{ Cell[14135, 453, 194, 5, 146, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}]}, "mmtag:21:fourth_order_odes__beam_theory"->{ Cell[14135, 453, 194, 5, 146, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}]}, "mmtag:21:beam_equation"->{ Cell[14479, 467, 220, 4, 47, "Input", CellTags->"mmtag:21:beam_equation"]}, "mmtag:21:beam_boundary_conditions"->{ Cell[14702, 473, 158, 3, 59, "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}]}, "mmtag:21:boundary_conditions__for_beams"->{ Cell[14702, 473, 158, 3, 59, "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}]}, "mmtag:21:beams__general_solutions_for_deflection"->{ Cell[15369, 492, 179, 3, 47, "Input", CellTags->"mmtag:21:beams__general_solutions_for_deflection"]}, "mmtag:21:beams__clamped_and_loaded"->{ Cell[15601, 499, 582, 13, 89, "Input", CellTags->{ "mmtag:21:beams__clamped_and_loaded", "mmtag:21:beams__clamped_both_ends_with_point_load"}]}, "mmtag:21:beams__clamped_both_ends_with_point_load"->{ Cell[15601, 499, 582, 13, 89, "Input", CellTags->{ "mmtag:21:beams__clamped_and_loaded", "mmtag:21:beams__clamped_both_ends_with_point_load"}]}, "mmtag:21:beams__point_loads_and_distributed_loads"->{ Cell[17458, 550, 232, 6, 59, "Text", CellTags->{ "mmtag:21:beams__point_loads_and_distributed_loads", "mmtag:21:beams__distributed_loads"}]}, "mmtag:21:beams__distributed_loads"->{ Cell[17458, 550, 232, 6, 59, "Text", CellTags->{ "mmtag:21:beams__point_loads_and_distributed_loads", "mmtag:21:beams__distributed_loads"}]} } *) (*CellTagsIndex CellTagsIndex->{ {"mmtag:21:foward_differencing__higher_order_ODEs", 19212, 604}, {"mmtag:21:foward_differencing__example_function", 19443, 609}, {"mmtag:21:discrete_approximation_to_derivative", 19673, 614}, {"mmtag:21:derivatives__discrete_approximation", 19898, 619}, {"mmtag:21:derivatives__discrete_approximation_second_derivative", 20141, \ 624}, {"mmtag:21:second_derivatives__discrete_approximation", 20398, 629}, {"mmtag:21:second_order_odes__characterizing_solution_behavior", 20664, \ 634}, {"mmtag:21:second_order_odes__general solution_for_constant_coefficients", \ 20871, 638}, {"mmtag:21:graphics__building_piece_by_piece", 21071, 643}, {"mmtag:21:Reduce[]", 21201, 646}, {"mmtag:21:second_order_odes__using_boundary_values", 21339, 649}, {"mmtag:21:beam_theory", 21479, 652}, {"mmtag:21:fourth_order_odes__beam_theory", 21666, 656}, {"mmtag:21:beam_equation", 21836, 660}, {"mmtag:21:beam_boundary_conditions", 21963, 663}, {"mmtag:21:boundary_conditions__for_beams", 22167, 668}, {"mmtag:21:beams__general_solutions_for_deflection", 22380, 673}, {"mmtag:21:beams__clamped_and_loaded", 22534, 676}, {"mmtag:21:beams__clamped_both_ends_with_point_load", 22761, 681}, {"mmtag:21:beams__point_loads_and_distributed_loads", 22988, 686}, {"mmtag:21:beams__distributed_loads", 23196, 691} } *) (*NotebookFileOutline Notebook[{ Cell[1754, 51, 61, 0, 116, "Title"], Cell[CellGroupData[{ Cell[1840, 55, 75, 0, 72, "Subtitle"], Cell[1918, 57, 442, 9, 140, "Text"], Cell[2363, 68, 74, 0, 59, "Text"], Cell[2440, 70, 71, 0, 59, "Text"], Cell[2514, 72, 266, 6, 73, "Input", CellTags->{ "mmtag:21:foward_differencing__higher_order_ODEs", "mmtag:21:foward_differencing__example_function"}], Cell[2783, 80, 95, 3, 59, "Text"], Cell[2881, 85, 390, 8, 94, "Input", CellTags->{ "mmtag:21:discrete_approximation_to_derivative", "mmtag:21:derivatives__discrete_approximation"}], Cell[3274, 95, 178, 4, 86, "Text"], Cell[3455, 101, 380, 7, 68, "Input", CellTags->{ "mmtag:21:derivatives__discrete_approximation_second_derivative", "mmtag:21:second_derivatives__discrete_approximation"}], Cell[3838, 110, 52, 0, 59, "Text"], Cell[3893, 112, 103, 2, 47, "Input"], Cell[3999, 116, 56, 0, 59, "Text"], Cell[4058, 118, 83, 1, 47, "Input"], Cell[4144, 121, 227, 4, 86, "Text"], Cell[4374, 127, 605, 9, 139, "Subsubsection"], Cell[4982, 138, 475, 8, 110, "Input"], Cell[5460, 148, 77, 1, 47, "Input"], Cell[5540, 151, 77, 1, 47, "Input"], Cell[5620, 154, 135, 3, 59, "Text"], Cell[5758, 159, 79, 1, 47, "Input"], Cell[5840, 162, 101, 3, 59, "Text"], Cell[5944, 167, 92, 1, 47, "Input"], Cell[6039, 170, 211, 6, 86, "Text"], Cell[6253, 178, 91, 1, 47, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[6381, 184, 117, 3, 110, "Subtitle"], Cell[6501, 189, 220, 4, 59, "Text", CellTags->"mmtag:21:second_order_odes__characterizing_solution_behavior"], Cell[CellGroupData[{ Cell[6746, 197, 85, 1, 55, "Subsubsection"], Cell[6834, 200, 179, 3, 47, "Input"], Cell[7016, 205, 45, 1, 47, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[7098, 211, 105, 3, 55, "Subsubsection"], Cell[7206, 216, 70, 1, 47, "Input"], Cell[7279, 219, 52, 1, 47, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[7368, 225, 126, 3, 55, "Subsubsection"], Cell[7497, 230, 112, 2, 47, "Input"] }, Open ]], Cell[7624, 235, 158, 2, 55, "Subsubsection", CellTags-> "mmtag:21:second_order_odes__general solution_for_constant_coefficients"], Cell[7785, 239, 101, 2, 47, "Input"], Cell[7889, 243, 153, 3, 47, "Input"], Cell[8045, 248, 59, 1, 47, "Input"], Cell[8107, 251, 69, 1, 47, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[8213, 257, 127, 3, 110, "Subtitle"], Cell[8343, 262, 168, 3, 47, "Input"], Cell[8514, 267, 688, 14, 192, "Text"], Cell[9205, 283, 173, 4, 55, "Subsubsection"], Cell[9381, 289, 213, 4, 47, "Input", CellTags->"mmtag:21:graphics__building_piece_by_piece"], Cell[9597, 295, 228, 5, 89, "Input"], Cell[9828, 302, 420, 12, 153, "Text"], Cell[10251, 316, 190, 4, 68, "Input"], Cell[10444, 322, 416, 9, 131, "Input"], Cell[10863, 333, 87, 1, 47, "Input"], Cell[10953, 336, 95, 3, 59, "Text"], Cell[11051, 341, 115, 2, 47, "Input", CellTags->"mmtag:21:Reduce[]"], Cell[11169, 345, 207, 5, 68, "Input"], Cell[11379, 352, 82, 1, 47, "Input"], Cell[11464, 355, 458, 9, 152, "Input"], Cell[11925, 366, 82, 1, 47, "Input"], Cell[12010, 369, 184, 4, 68, "Input"], Cell[12197, 375, 117, 2, 47, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[12351, 382, 99, 3, 110, "Subtitle"], Cell[12453, 387, 237, 6, 59, "Text", CellTags->"mmtag:21:second_order_odes__using_boundary_values"], Cell[12693, 395, 102, 3, 52, "Subsubtitle"], Cell[12798, 400, 141, 3, 47, "Input"], Cell[12942, 405, 234, 9, 55, "Subsubsection"], Cell[13179, 416, 143, 3, 47, "Input"], Cell[13325, 421, 54, 0, 55, "Subsubsection"], Cell[13382, 423, 109, 2, 47, "Input"], Cell[13494, 427, 105, 3, 59, "Text"], Cell[13602, 432, 68, 1, 47, "Input"], Cell[13673, 435, 83, 1, 55, "Subsubsection"], Cell[13759, 438, 175, 4, 47, "Input"], Cell[13937, 444, 49, 0, 55, "Subsubsection"], Cell[13989, 446, 109, 2, 47, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[14135, 453, 194, 5, 146, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[14332, 460, 45, 0, 59, "Text"], Cell[14380, 462, 96, 3, 59, "Text"], Cell[14479, 467, 220, 4, 47, "Input", CellTags->"mmtag:21:beam_equation"], Cell[14702, 473, 158, 3, 59, "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}], Cell[14863, 478, 448, 9, 89, "Input"], Cell[15314, 489, 52, 1, 47, "Input"], Cell[15369, 492, 179, 3, 47, "Input", CellTags->"mmtag:21:beams__general_solutions_for_deflection"], Cell[15551, 497, 47, 0, 59, "Text"], Cell[15601, 499, 582, 13, 89, "Input", CellTags->{ "mmtag:21:beams__clamped_and_loaded", "mmtag:21:beams__clamped_both_ends_with_point_load"}], Cell[16186, 514, 633, 12, 110, "Input"], Cell[16822, 528, 57, 0, 59, "Text"], Cell[16882, 530, 54, 1, 47, "Input"], Cell[16939, 533, 84, 1, 47, "Input"], Cell[17026, 536, 69, 0, 59, "Text"], Cell[17098, 538, 83, 1, 47, "Input"], Cell[17184, 541, 91, 1, 47, "Input"], Cell[17278, 544, 72, 0, 59, "Text"], Cell[17353, 546, 102, 2, 47, "Input"], Cell[17458, 550, 232, 6, 59, "Text", CellTags->{ "mmtag:21:beams__point_loads_and_distributed_loads", "mmtag:21:beams__distributed_loads"}], Cell[17693, 558, 72, 1, 47, "Input"], Cell[17768, 561, 103, 2, 47, "Input"], Cell[17874, 565, 70, 0, 59, "Text"], Cell[17947, 567, 152, 3, 47, "Input"], Cell[18102, 572, 60, 1, 47, "Input"], Cell[18165, 575, 87, 1, 47, "Input"] }, Closed]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)