(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 7.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 83352, 2208] NotebookOptionsPosition[ 68121, 1826] NotebookOutlinePosition[ 75875, 2009] CellTagsIndexPosition[ 74802, 1987] WindowTitle->Lecture 21 MIT 3.016 (Fall 2010) \251 W. Craig Carter \ 2003--2010 WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell["Higher-Order Ordinary Differential Equations", "Title"], Cell[CellGroupData[{ Cell["Forward Differencing Equations for Second-Order Iteration", "Subtitle", CellChangeTimes->{{3.4040579786728697`*^9, 3.4040580217586727`*^9}, { 3.404130767214149*^9, 3.404130782402891*^9}, 3.404130820283976*^9}, CellTags->{"mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"} ], 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[ RowBox[{ RowBox[{"ChangePer\[CapitalDelta]", "[", RowBox[{"F_", ",", " ", "i_", ",", " ", "\[CapitalDelta]_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"F", "[", RowBox[{"i", "+", "1"}], "]"}], " ", "-", " ", RowBox[{"F", "[", "i", "]"}]}], ")"}], "/", "\[CapitalDelta]"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{{3.4040483710297737`*^9, 3.404048378671357*^9}, { 3.40404866859547*^9, 3.404048678608042*^9}, 3.4040487523900003`*^9}, 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[ RowBox[{ RowBox[{"ChangeofChangeper\[CapitalDelta]", "[", RowBox[{"F_", ",", " ", "i_", ",", " ", "\[CapitalDelta]_"}], "]"}], " ", ":=", " ", "\[IndentingNewLine]", RowBox[{"Simplify", "[", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"ChangePer\[CapitalDelta]", "[", RowBox[{"F", ",", RowBox[{"i", "+", "1"}], ",", "\[CapitalDelta]"}], "]"}], "/", "\[CapitalDelta]"}], " ", "-", " ", RowBox[{"ChangePer\[CapitalDelta]", "[", RowBox[{"F", ",", "i", ",", "\[CapitalDelta]"}], "]"}]}], ")"}], "]"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{{3.404048384928782*^9, 3.404048414347522*^9}, { 3.404048697704968*^9, 3.4040487062573147`*^9}, 3.4040487523901463`*^9}, 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[ RowBox[{"DifferenceRelation", " ", "=", " ", RowBox[{ RowBox[{"ChangeofChangeper\[CapitalDelta]", "[", RowBox[{"F", ",", "i", ",", "\[CapitalDelta]"}], "]"}], " ", "==", " ", RowBox[{ RowBox[{ RowBox[{"-", "\[Beta]"}], " ", RowBox[{"ChangePer\[CapitalDelta]", "[", RowBox[{"F", ",", "i", ",", "\[CapitalDelta]"}], "]"}]}], "-", " ", RowBox[{"\[Alpha]", " ", RowBox[{"F", "[", "i", "]"}]}]}]}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{{3.404048421770378*^9, 3.404048429995098*^9}, 3.404048752390356*^9}, CellTags->{ "mmtag:21:derivatives__discrete_approximation_second_derivative", "mmtag:21:second_derivatives__discrete_approximation"}], Cell["Solve this for the \"latest\" values", "Text"], Cell[BoxData[ RowBox[{"ForDiffSol", " ", "=", RowBox[{"Collect", "[", " ", RowBox[{ RowBox[{"Solve", "[", RowBox[{"DifferenceRelation", ",", RowBox[{"F", "[", RowBox[{"i", "+", "2"}], "]"}]}], "]"}], ",", "\[CapitalDelta]"}], "]"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{3.4040487523904667`*^9, 3.404048873010358*^9}], Cell["Replace to find the form of the solution", "Text", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{3.404048752390565*^9}], Cell[BoxData[ RowBox[{"ForDiffSolV2", " ", "=", " ", RowBox[{"ForDiffSol", "/.", RowBox[{"i", "\[Rule]", " ", RowBox[{"j", "-", "2"}]}]}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellChangeTimes->{3.404048752390623*^9}] }, Closed]], Cell[CellGroupData[{ Cell["Iteration Explicit Sequences of Second-Order Equations", "Subtitle", CellChangeTimes->{{3.4040579786728697`*^9, 3.4040580217586727`*^9}, { 3.404130797506815*^9, 3.404130850922843*^9}, {3.404157413543581*^9, 3.404157414798788*^9}}, CellTags->{"mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"} ], Cell["\<\ We write a function that takes two values (the current, and its antecedent) \ and uses a discrete step \[CapitalDelta] to push the solution into the \ future. This method uses the current value to estimate the right-hand-side; \ so it is an Explicit method.\ \>", "Text", CellChangeTimes->{{3.4041572944669733`*^9, 3.4041573173262873`*^9}, { 3.4041573483020077`*^9, 3.404157424030252*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"GrowList", "[", RowBox[{ "ValuesList_List", ",", " ", "\[CapitalDelta]_", " ", ",", " ", "\[Alpha]_", " ", ",", " ", "\[Beta]_"}], "]"}], " ", ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Minus1", "=", RowBox[{"ValuesList", "[", RowBox[{"[", RowBox[{ RowBox[{"-", "1"}], ",", "2"}], "]"}], "]"}]}], ",", " ", RowBox[{"Minus2", " ", "=", " ", RowBox[{"ValuesList", "[", RowBox[{"[", RowBox[{ RowBox[{"-", "2"}], ",", "2"}], "]"}], "]"}]}], ",", " ", RowBox[{"LastX", " ", "=", " ", RowBox[{"ValuesList", "[", RowBox[{"[", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "]"}], "]"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Append", "[", RowBox[{"ValuesList", ",", RowBox[{"{", RowBox[{ RowBox[{"LastX", " ", "+", " ", "\[CapitalDelta]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"2", "*", "Minus1"}], " ", "-", " ", "Minus2", " ", "+", " ", RowBox[{"\[CapitalDelta]", " ", "*", RowBox[{"(", RowBox[{ RowBox[{"\[Beta]", "*", RowBox[{"(", RowBox[{"Minus2", " ", "-", " ", "Minus1"}], ")"}]}], " ", "-", RowBox[{"\[Alpha]", "*", "\[CapitalDelta]", "*", "Minus2"}]}], ")"}]}]}]}], "}"}]}], "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.403969302841082*^9, 3.403969309854683*^9}, { 3.403969420719049*^9, 3.403969452198596*^9}, 3.403969529029578*^9, { 3.403969585646823*^9, 3.403969587782474*^9}, {3.403969839504239*^9, 3.403969947655221*^9}}], 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.)\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"InitVals", " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{".001", ",", "1"}], "}"}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.403970151094852*^9, 3.403970163190291*^9}}], Cell[BoxData[ RowBox[{"result", " ", "=", " ", RowBox[{"GrowList", "[", RowBox[{"InitVals", ",", ".001", ",", "1", ",", ".1"}], "]"}]}]], "Input", CellChangeTimes->{{3.403969969092568*^9, 3.403969989364542*^9}, { 3.403970168003728*^9, 3.403970172316164*^9}}], Cell["\<\ Generate a sequence of length 20 from initial values {1,1} for \ \[CapitalDelta]=0.001, \[Alpha]=1, \[Beta]=0.1\ \>", "Text"], Cell[BoxData[ RowBox[{"result", " ", "=", " ", RowBox[{"GrowList", "[", RowBox[{"result", ",", ".001", ",", "1", ",", ".1"}], "]"}]}]], "Input"], Cell["\<\ Using NestWhile, we can grow the list until the accumulation of the discrete \ steps reaches a particular value.\ \>", "Text", CellChangeTimes->{{3.404157462339581*^9, 3.4041574939742823`*^9}}], Cell[BoxData[ RowBox[{"NestWhile", "[", RowBox[{ RowBox[{ RowBox[{"GrowList", "[", RowBox[{"#", ",", ".001", ",", "1", ",", ".1"}], "]"}], "&"}], ",", "InitVals", ",", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"Last", "[", "#", "]"}], "[", RowBox[{"[", "1", "]"}], "]"}], " ", "<", " ", "0.02"}], ")"}], "&"}]}], "]"}]], "Input", CellChangeTimes->{{3.403970091661742*^9, 3.403970129456791*^9}, { 3.40397018593372*^9, 3.403970222125555*^9}}] }, Closed]], Cell[CellGroupData[{ Cell["Visualizing Second-Order Iteration", "Subtitle", CellChangeTimes->{{3.4040579786728697`*^9, 3.4040580217586727`*^9}, { 3.404130836482511*^9, 3.404130862075419*^9}}, CellTags->{"mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"} ], Cell["\<\ Visualize results out to x=50 (takes about 24 seconds to visualize )\ \>", "Text", CellChangeTimes->{ 3.403970268812797*^9, {3.403970411190496*^9, 3.403970421667239*^9}, { 3.403970738060301*^9, 3.403970760659677*^9}, {3.403970961933358*^9, 3.403970966979323*^9}}], Cell[BoxData[ RowBox[{"ListPlot", "[", RowBox[{"NestWhile", "[", RowBox[{ RowBox[{ RowBox[{"GrowList", "[", RowBox[{"#", ",", ".001", ",", "2", ",", ".1"}], "]"}], "&"}], ",", "InitVals", ",", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"Last", "[", "#", "]"}], "[", RowBox[{"[", "1", "]"}], "]"}], " ", "<", " ", "50"}], ")"}], "&"}]}], "]"}], "]"}]], "Input", CellChangeTimes->{{3.403970247022811*^9, 3.403970299326908*^9}, { 3.4039703444956827`*^9, 3.4039703816852922`*^9}, {3.403970427369946*^9, 3.4039704301570253`*^9}, {3.4039707163426943`*^9, 3.403970716596879*^9}, { 3.403970838439776*^9, 3.403970843989319*^9}, {3.403970929360795*^9, 3.4039709295570803`*^9}, 3.403970972758696*^9, 3.403971019502727*^9}], 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[ RowBox[{"ListPlot", "[", RowBox[{"NestWhile", "[", RowBox[{ RowBox[{ RowBox[{"GrowList", "[", RowBox[{"#", ",", "0.01", ",", "2", ",", "0"}], "]"}], "&"}], ",", "InitVals", ",", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"Last", "[", "#", "]"}], "[", RowBox[{"[", "1", "]"}], "]"}], " ", "<", "50"}], ")"}], "&"}]}], "]"}], "]"}]], "Input", CellChangeTimes->{{3.403970670083267*^9, 3.403970724292832*^9}, { 3.403970987461317*^9, 3.403970987581687*^9}, {3.403971059143887*^9, 3.403971077541724*^9}, {3.403971115390448*^9, 3.403971167437023*^9}}] }, Closed]], Cell[CellGroupData[{ Cell["\<\ \"Textbook\" Solutions to Second-Order Homogenous ODEs with Constant \ Coefficients\ \>", "Subtitle", CellChangeTimes->{{3.4040579786728697`*^9, 3.4040580217586727`*^9}, { 3.4041311329497213`*^9, 3.404131189762949*^9}}, CellTags->{"mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"} ], Cell["\<\ We write a general form for the left-hand-side of the homogeneous ODE with \ constant coefficients \[Beta] and \[Gamma].\ \>", "Text", CellChangeTimes->{{3.404157564737463*^9, 3.404157595662319*^9}, { 3.404157630696868*^9, 3.404157643926241*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"TheODE", "[", RowBox[{"function_", ",", " ", "var_"}], "]"}], " ", ":=", " ", RowBox[{ RowBox[{"D", "[", RowBox[{ RowBox[{"function", "[", "var", "]"}], ",", RowBox[{"{", RowBox[{"var", ",", "2"}], "}"}]}], "]"}], " ", "+", " ", RowBox[{"\[Beta]", " ", RowBox[{"D", "[", RowBox[{ RowBox[{"function", "[", "var", "]"}], ",", "var"}], "]"}]}], " ", "+", " ", RowBox[{"\[Gamma]", " ", RowBox[{"function", "[", "var", "]"}]}]}]}]], "Input"], Cell[BoxData[ RowBox[{"TheODE", "[", RowBox[{"y", ",", "x"}], "]"}]], "Input"], Cell["\<\ Guess a solution and substitute it into the left-hand side of the ODE:\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"TheGuess", "[", "x_", "]"}], " ", ":=", " ", RowBox[{"Exp", "[", RowBox[{"\[Lambda]", " ", "x"}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{"TheODE", "[", RowBox[{"TheGuess", ",", "x"}], "]"}]], "Input"], Cell["\<\ This will be a solution when the resulting quadratic expression in \[Lambda] \ is equal to 0:\ \>", "Text"], Cell[BoxData[ RowBox[{"\[Lambda]Solution", " ", "=", " ", RowBox[{"Solve", "[", RowBox[{ RowBox[{ RowBox[{"TheODE", "[", RowBox[{"TheGuess", ",", "x"}], "]"}], "\[Equal]", "0"}], ",", "\[Lambda]"}], "]"}]}]], "Input"], Cell["\<\ Set the two solutions to \[Lambda]Minus and \[Lambda]Plus \ \>", "Text", CellChangeTimes->{{3.4041576629506903`*^9, 3.404157692710548*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"{", RowBox[{"\[Lambda]Minus", ",", "\[Lambda]Plus"}], "}"}], "=", " ", RowBox[{"\[Lambda]", "/.", "\[Lambda]Solution"}]}]], "Input"], Cell["\<\ The linear combination of the two solutiions is the general solution, here we \ set the two arbitrary constants.\ \>", "Text", CellChangeTimes->{{3.4041576629506903`*^9, 3.4041577384703197`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"GenSol", "[", "x_", "]"}], " ", ":=", " ", RowBox[{ RowBox[{ RowBox[{"C", "[", "LPlus", "]"}], " ", RowBox[{"Exp", "[", RowBox[{"\[Lambda]Plus", " ", "x"}], "]"}]}], " ", "+", " ", RowBox[{ RowBox[{"C", "[", "LMinus", "]"}], " ", RowBox[{"Exp", "[", RowBox[{"\[Lambda]Minus", " ", "x"}], "]"}]}]}]}]], "Input", CellChangeTimes->{3.404050120966679*^9}], Cell[BoxData[ RowBox[{"TheODE", "[", RowBox[{"GenSol", ",", "z"}], "]"}]], "Input", CellChangeTimes->{3.404050121012952*^9}], Cell["\<\ This will demonstate that our general solution is, in fact, a solution.\ \>", "Text", CellChangeTimes->{{3.4041576629506903`*^9, 3.4041577725344467`*^9}}], Cell[BoxData[ RowBox[{"Simplify", "[", RowBox[{"TheODE", "[", RowBox[{"GenSol", ",", "z"}], "]"}], "]"}]], "Input", CellChangeTimes->{3.404050121047971*^9}] }, Closed]], Cell[CellGroupData[{ Cell["Building a Visualization of Solution Behavior ", "Subtitle", CellChangeTimes->{{3.4040579786728697`*^9, 3.4040580217586727`*^9}, { 3.404132734821547*^9, 3.404132778187248*^9}}, CellTags->{"mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"} ], 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[ FormBox[ SuperscriptBox["e", "\[Lambda]t"], TraditionalForm]]], ": 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[ FormBox[ FractionBox[ RowBox[{" ", SuperscriptBox["\[Beta]", "2"]}], "4"], TraditionalForm]]], "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. We will calculate conditions that will \ indicate the nature of solutions: if the solution is complex, the imaginary \ part will determine the frequency of the oscillatory solutions. In all cases, \ the sign of the real part will indicate whether the amplitude will grow \ exponentially (and become unbounded) or shrink asymptotically towards zero." }], "Text", CellChangeTimes->{{3.4041582302117977`*^9, 3.40415823687842*^9}, { 3.4041582669522743`*^9, 3.404158422710504*^9}}], Cell[BoxData[ RowBox[{"RealsCond", "=", RowBox[{"Reduce", "[", RowBox[{ RowBox[{ RowBox[{"\[Lambda]Plus", "\[Element]", " ", "Reals"}], " ", "&&", " ", RowBox[{"\[Lambda]Minus", " ", "\[Element]", " ", "Reals"}]}], ",", RowBox[{"{", RowBox[{"\[Beta]", ",", "\[Gamma]"}], "}"}], ",", "Reals"}], "]"}]}]], "Input", CellChangeTimes->{{3.4039713789426603`*^9, 3.403971381709115*^9}}], Cell["The Complex and Real Domains", "Section", CellChangeTimes->{{3.404050625624914*^9, 3.404050634653472*^9}}], Cell["\<\ We use RealsCond and RegionPlot to indicate domain where solutions are real \ or complex.\ \>", "Text", CellChangeTimes->{{3.404158434304228*^9, 3.404158449902413*^9}, { 3.404158502806835*^9, 3.404158512934308*^9}}], Cell[BoxData[ RowBox[{"CplexReal", " ", "=", " ", RowBox[{"RegionPlot", "[", RowBox[{"RealsCond", ",", RowBox[{"{", RowBox[{"\[Beta]", ",", RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"\[Gamma]", ",", RowBox[{"-", "0.25"}], ",", "0.5"}], "}"}], ",", RowBox[{"AxesLabel", "\[Rule]", RowBox[{"{", RowBox[{"\"\<\[Beta]\>\"", ",", "\"\<\[Gamma]\>\""}], "}"}]}], ",", RowBox[{"PlotStyle", "\[Rule]", " ", RowBox[{"{", RowBox[{ RowBox[{"Lighter", "[", "Blue", "]"}], ",", RowBox[{"Opacity", "[", "0.5", "]"}]}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.403971316215013*^9, 3.403971326064714*^9}, { 3.40397138832689*^9, 3.403971447365576*^9}, {3.4039715587105713`*^9, 3.403971576353634*^9}, 3.40397167299938*^9, {3.4041586282369633`*^9, 3.404158647857428*^9}}, CellTags->"mmtag:21:graphics__building_piece_by_piece"], Cell["\<\ Annotate the regions and update the assignment to a new combined graphic.\ \>", "Text", CellChangeTimes->{{3.404160358340131*^9, 3.404160390118641*^9}}], Cell[BoxData[ RowBox[{"CplexReal", "=", RowBox[{"Show", "[", RowBox[{"CplexReal", ",", RowBox[{"Graphics", "[", RowBox[{"Text", "[", RowBox[{"\"\\"", ",", RowBox[{"{", RowBox[{"0", ",", "0.4"}], "}"}]}], "]"}], "]"}], ",", RowBox[{"Graphics", "[", RowBox[{"Text", "[", RowBox[{"\"\\"", ",", RowBox[{"{", RowBox[{"0.0", ",", RowBox[{"-", "0.2"}]}], "}"}]}], "]"}], "]"}]}], "]"}]}]], "Input", CellChangeTimes->{ 3.404131590039321*^9, {3.404131620159514*^9, 3.404131644069322*^9}, { 3.404158768877901*^9, 3.404158791187377*^9}}], Cell["The Sign of the Real Part of Complex Solutions", "Section", CellChangeTimes->{{3.404050625624914*^9, 3.404050634653472*^9}, { 3.4040507073753653`*^9, 3.40405072215762*^9}}], 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[ FormBox[ FractionBox[ RowBox[{"-", "\[Beta]"}], "2"], TraditionalForm]]], "\[PlusMinus] ", Cell[BoxData[ FormBox[ SqrtBox[ RowBox[{ FormBox[ SuperscriptBox[ RowBox[{"(", FractionBox["\[Beta]", "2"], ")"}], "2"], TraditionalForm], "-", " ", "\[Gamma]"}]], TraditionalForm]]] }], "Text"], Cell[BoxData[ RowBox[{"CplexPosNeg", " ", "=", RowBox[{"ParametricPlot", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "t"}], "}"}], ",", RowBox[{"{", RowBox[{"t", ",", "0", ",", ".5"}], "}"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"Thickness", "[", "0.015", "]"}], ",", RowBox[{"Hue", "[", "0", "]"}], ",", RowBox[{"Opacity", "[", "0.3", "]"}]}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.403971709377019*^9, 3.403971727197195*^9}, { 3.403973340750929*^9, 3.40397335887955*^9}}], Cell[BoxData[ RowBox[{"CplexPosNeg", "=", RowBox[{"Show", "[", RowBox[{"CplexPosNeg", ",", RowBox[{"Graphics", "[", RowBox[{"Text", "[", RowBox[{ RowBox[{"StyleForm", "[", RowBox[{"\"\\"", ",", RowBox[{"FontColor", "\[Rule]", RowBox[{"Hue", "[", "0", "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", ".5"}], ",", "0.3"}], "}"}]}], "]"}], "]"}], ",", RowBox[{"Graphics", "[", RowBox[{"Text", "[", RowBox[{ RowBox[{"StyleForm", "[", RowBox[{"\"\\"", ",", RowBox[{"FontColor", "\[Rule]", RowBox[{"Hue", "[", "0", "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{".5", ",", "0.3"}], "}"}]}], "]"}], "]"}]}], "]"}]}]], "Input",\ CellChangeTimes->{ 3.4039717461468353`*^9, {3.403973498665214*^9, 3.403973508599579*^9}, 3.404051242299016*^9, {3.404131682045767*^9, 3.4041317324965982`*^9}, { 3.404131785456423*^9, 3.404131833726253*^9}}], Cell[BoxData[ RowBox[{"CplexPlot", " ", "=", RowBox[{"Show", "[", RowBox[{"CplexReal", ",", "CplexPosNeg"}], "]"}]}]], "Input", CellChangeTimes->{{3.40413185942409*^9, 3.40413186487574*^9}}], Cell["Real Solutions, Both Positive or Both Negative", "Section", CellChangeTimes->{{3.404050625624914*^9, 3.404050634653472*^9}, { 3.4040507073753653`*^9, 3.40405072215762*^9}, {3.40405087891922*^9, 3.404050912630282*^9}, 3.404050950149899*^9}], Cell["\<\ Find the conditions where the real roots are positive and/or negative\ \>", "Text"], Cell[BoxData[ RowBox[{"RealRootsPosCond", "=", RowBox[{"Reduce", "[", RowBox[{"{", RowBox[{ RowBox[{"\[Lambda]Plus", " ", ">", "0"}], ",", RowBox[{"\[Lambda]Minus", ">", "0"}]}], "}"}], "]"}]}]], "Input", CellChangeTimes->{{3.4039717777986727`*^9, 3.403971810380336*^9}, { 3.403972359732477*^9, 3.403972360388439*^9}}, CellTags->"mmtag:21:Reduce[]"], Cell[BoxData[ RowBox[{"RealRootsPos", "=", RowBox[{"RegionPlot", "[", RowBox[{"RealRootsPosCond", ",", RowBox[{"{", RowBox[{"\[Beta]", ",", RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"\[Gamma]", ",", RowBox[{"-", "0.25"}], ",", "0.5"}], "}"}], ",", RowBox[{"AxesLabel", "\[Rule]", RowBox[{"{", RowBox[{"\"\<\[Beta]\>\"", ",", "\"\<\[Gamma]\>\""}], "}"}]}], ",", RowBox[{"PlotStyle", "\[Rule]", " ", RowBox[{"{", RowBox[{ RowBox[{"Darker", "[", "Yellow", "]"}], ",", RowBox[{"Opacity", "[", "0.5", "]"}]}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.403971868992156*^9, 3.40397188711771*^9}, { 3.403972236015613*^9, 3.4039722635775223`*^9}, {3.403972363421776*^9, 3.403972369086135*^9}, {3.40397308992846*^9, 3.403973105410879*^9}, { 3.403973176240859*^9, 3.4039731773468933`*^9}, {3.4040512571620893`*^9, 3.404051278864976*^9}, {3.4041315501915607`*^9, 3.4041315539736567`*^9}}], Cell[BoxData[ RowBox[{"RealRootsPos", "=", " ", RowBox[{"Show", "[", RowBox[{"RealRootsPos", ",", RowBox[{"Graphics", "[", RowBox[{"Text", "[", RowBox[{ RowBox[{"StyleForm", "[", RowBox[{"\"\\"", ",", RowBox[{"FontColor", "\[Rule]", RowBox[{"Hue", "[", ".6", "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.7"}], ",", "0.025"}], "}"}]}], "]"}], "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.4041319538620234`*^9, 3.40413203444833*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"AnnotePosRealRoots", "=", RowBox[{"Graphics", "[", RowBox[{"Text", "[", RowBox[{ RowBox[{"Style", "[", RowBox[{"\"\\"", ",", RowBox[{"FontColor", "\[Rule]", RowBox[{"Hue", "[", "0.6", "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1."}], ",", "0.025"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "0"}], "}"}]}], "]"}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.403972281535795*^9, 3.403972309771626*^9}}], Cell[BoxData[ RowBox[{"RealRootsNegCond", "=", RowBox[{"Reduce", "[", RowBox[{"{", RowBox[{ RowBox[{"\[Lambda]Plus", " ", "<", "0"}], ",", RowBox[{"\[Lambda]Minus", "<", "0"}]}], "}"}], "]"}]}]], "Input", CellChangeTimes->{{3.403972834207224*^9, 3.403972842028891*^9}}], Cell[BoxData[ RowBox[{"RealRootsNeg", "=", RowBox[{"RegionPlot", "[", RowBox[{"RealRootsNegCond", ",", RowBox[{"{", RowBox[{"\[Beta]", ",", RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"\[Gamma]", ",", RowBox[{"-", "0.25"}], ",", "0.5"}], "}"}], ",", RowBox[{"AxesLabel", "\[Rule]", RowBox[{"{", RowBox[{"\"\<\[Beta]\>\"", ",", "\"\<\[Gamma]\>\""}], "}"}]}], ",", RowBox[{"PlotStyle", "\[Rule]", " ", RowBox[{"{", RowBox[{ RowBox[{"Darker", "[", "Orange", "]"}], ",", RowBox[{"Opacity", "[", "0.5", "]"}]}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.404132153664034*^9, 3.404132183671528*^9}}], Cell[BoxData[ RowBox[{"RealRootsNeg", "=", RowBox[{"Show", "[", RowBox[{"RealRootsNeg", ",", RowBox[{"Graphics", "[", RowBox[{"Text", "[", RowBox[{ RowBox[{"StyleForm", "[", RowBox[{"\"\\"", ",", RowBox[{"FontColor", "\[Rule]", RowBox[{"Hue", "[", ".6", "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"0.7", ",", "0.025"}], "}"}]}], "]"}], "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.404132229032901*^9, 3.4041322687267637`*^9}}], Cell["Real Solutions, Opposite Signs", "Section", CellChangeTimes->{{3.404050625624914*^9, 3.404050634653472*^9}, { 3.4040507073753653`*^9, 3.40405072215762*^9}, {3.40405087891922*^9, 3.4040509540296707`*^9}}], Cell[BoxData[ RowBox[{"MixedRealRootsCond", "=", RowBox[{"Reduce", "[", RowBox[{"{", RowBox[{ RowBox[{"\[Lambda]Plus", " ", ">", "0"}], ",", RowBox[{"\[Lambda]Minus", "<", "0"}]}], "}"}], "]"}]}]], "Input", CellChangeTimes->{{3.403972316572653*^9, 3.403972333540903*^9}}], Cell[BoxData[ RowBox[{"MixedRealRoots", "=", RowBox[{"RegionPlot", "[", RowBox[{"MixedRealRootsCond", ",", RowBox[{"{", RowBox[{"\[Beta]", ",", RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"\[Gamma]", ",", RowBox[{"-", "0.25"}], ",", "0.5"}], "}"}], ",", RowBox[{"AxesLabel", "\[Rule]", RowBox[{"{", RowBox[{"\"\<\[Beta]\>\"", ",", "\"\<\[Gamma]\>\""}], "}"}]}], ",", RowBox[{"PlotStyle", "\[Rule]", " ", RowBox[{"{", RowBox[{ RowBox[{"Darker", "[", "Blue", "]"}], ",", RowBox[{"Opacity", "[", "0.5", "]"}]}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.403972347065838*^9, 3.403972348879671*^9}, { 3.403972438083735*^9, 3.403972528727645*^9}, {3.4039731945929613`*^9, 3.403973208445218*^9}, {3.4039734622886963`*^9, 3.4039734661112127`*^9}, 3.4040513534034023`*^9, {3.40413231807953*^9, 3.404132320061309*^9}}], Cell[BoxData[ RowBox[{"MixedRealRoots", "=", RowBox[{"Show", "[", RowBox[{"MixedRealRoots", ",", RowBox[{"Graphics", "[", RowBox[{"Text", "[", RowBox[{ RowBox[{"StyleForm", "[", RowBox[{"\"\\"", ",", RowBox[{"FontColor", "\[Rule]", RowBox[{"RGBColor", "[", RowBox[{"0", ",", "0", ",", ".5"}], "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"0.0", ",", RowBox[{"-", "0.05"}]}], "}"}]}], "]"}], "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.404132338863638*^9, 3.404132447189349*^9}, { 3.404132618255727*^9, 3.4041326186373863`*^9}}], Cell["Put it all together for a complete graphic....", "Text", CellChangeTimes->{{3.4041604600797453`*^9, 3.404160471350613*^9}}], Cell[BoxData[ RowBox[{"Show", "[", RowBox[{ "CplexPlot", ",", "RealRootsPos", ",", "MixedRealRoots", ",", "RealRootsNeg", ",", RowBox[{"ImageSize", "\[Rule]", " ", "Large"}]}], "]"}]], "Input", CellChangeTimes->{{3.403973220679001*^9, 3.403973254364835*^9}, { 3.4041324787432747`*^9, 3.404132564423402*^9}}] }, Closed]], Cell[CellGroupData[{ Cell["\<\ Solving for Boundary Conditions for Second-Order Homogenous ODEs with \ Constant Coefficients\ \>", "Subtitle", CellChangeTimes->{{3.4040579786728697`*^9, 3.4040580217586727`*^9}, { 3.404132883541546*^9, 3.4041329056569853`*^9}}, CellTags->{"mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"} ], Cell[TextData[{ "Second order ODEs require that ", StyleBox["two", FontWeight->"Bold"], " conditions to generate a particular solution." }], "Text", CellChangeTimes->{3.404051595151366*^9}, CellTags->"mmtag:21:second_order_odes__using_boundary_values"], Cell[BoxData[ RowBox[{ RowBox[{"GenSol", "[", "x", "]"}], " "}]], "Input", CellChangeTimes->{{3.403973647580564*^9, 3.4039736549782343`*^9}, 3.404050106680336*^9}], Cell["Example of y(0) = 0 and y(L)=1: ", "Text", CellChangeTimes->{{3.4039736744116383`*^9, 3.403973676939837*^9}, 3.404051577319717*^9}], Cell[BoxData[ RowBox[{"SolutionOne", " ", "=", " ", RowBox[{"Solve", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"GenSol", "[", "0", "]"}], "==", "0"}], ",", RowBox[{ RowBox[{"GenSol", "[", "L", "]"}], "==", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"C", "[", "LPlus", "]"}], ",", RowBox[{"C", "[", "LMinus", "]"}]}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.403973681989828*^9, 3.403973694229568*^9}, { 3.404050106769782*^9, 3.404050106836025*^9}}], Cell["Write the resulting solution:", "Text"], Cell[BoxData[ RowBox[{"SpecificSolutionOne", " ", "=", " ", RowBox[{"Simplify", "[", RowBox[{ RowBox[{"GenSol", "[", "x", "]"}], "/.", "SolutionOne"}], "]"}]}]], "Input", CellChangeTimes->{{3.40397373483892*^9, 3.403973751620963*^9}, 3.4040501069483547`*^9}], Cell["Second example: y(0) = 1 and y'(0)=0", "Text", CellChangeTimes->{{3.404051612839905*^9, 3.4040516234304256`*^9}}], Cell[BoxData[ RowBox[{"DGen", " ", "=", " ", RowBox[{"D", "[", RowBox[{ RowBox[{"GenSol", "[", "x", "]"}], ",", "x"}], "]"}]}]], "Input", CellChangeTimes->{3.4040501060787487`*^9}], Cell["Now the constants CPlus and CMinus are found by solving:", "Text"], Cell[BoxData[ RowBox[{"SolutionTwo", " ", "=", " ", RowBox[{"Solve", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"GenSol", "[", "0", "]"}], "\[Equal]", "1"}], ",", RowBox[{ RowBox[{"(", RowBox[{"DGen", "/.", RowBox[{"x", "\[Rule]", "0"}]}], ")"}], "\[Equal]", "0"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"C", "[", "LPlus", "]"}], ",", RowBox[{"C", "[", "LMinus", "]"}]}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.4039737780935507`*^9, 3.40397378834953*^9}, 3.404050106165372*^9}], Cell[BoxData[ RowBox[{"SpecificSolutionTwo", " ", "=", " ", RowBox[{"Simplify", "[", RowBox[{ RowBox[{"GenSol", "[", "x", "]"}], "/.", "SolutionTwo"}], "]"}]}]], "Input", CellChangeTimes->{3.404050106265745*^9}] }, Closed]], Cell[CellGroupData[{ Cell["Higher-Order ODEs: the Beam Equation", "Subtitle", CellChangeTimes->{{3.4040579786728697`*^9, 3.4040580217586727`*^9}, { 3.404132924373351*^9, 3.404132945251289*^9}}, CellTags->{"mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"} ], Cell["\<\ Set up the ODE solution (we will specify a unit beam stiffness) EI = 1\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"BeamEquation", "[", RowBox[{ "y_", " ", ",", "x_", " ", ",", " ", "w_", ",", " ", "BC1_", " ", ",", " ", "BC2_"}], "]"}], " ", ":=", " ", RowBox[{"DSolve", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y", "''''"}], "[", "x", "]"}], " ", "==", " ", RowBox[{"w", "[", "x", "]"}]}], ",", " ", "BC1", ",", " ", "BC2"}], "}"}], ",", RowBox[{"y", "[", "x", "]"}], ",", "x"}], "]"}]}]], "Input", CellChangeTimes->{{3.403973859104129*^9, 3.403973864047433*^9}, 3.4041337012964582`*^9}, CellTags->"mmtag:21:beam_equation"], Cell["Functions for Typical Boundary Conditions and Beam Loading", "Section", CellChangeTimes->{{3.404050625624914*^9, 3.404050634653472*^9}, { 3.404056663960409*^9, 3.404056683302492*^9}}], Cell["Set up some typical boundary conditions:", "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}], Cell["A clamp fixes the position and the angle of a beam", "Text", CellChangeTimes->{{3.4040568255310917`*^9, 3.404056846110716*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Clamp", "[", RowBox[{ "y_", " ", ",", " ", "x_", " ", ",", " ", "position_", ",", " ", "slope_"}], "]"}], " ", ":=", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"y", "[", "x", "]"}], " ", "==", " ", "position"}], ",", " ", RowBox[{ RowBox[{ RowBox[{"y", "'"}], "[", "x", "]"}], " ", "==", " ", "slope"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.404056582984764*^9, 3.404056583593527*^9}}], Cell["\<\ The position of a beam and the applied moment (or torque) is applied with a \ Knob\ \>", "Text", CellChangeTimes->{{3.4040568255310917`*^9, 3.404056846110716*^9}, { 3.404056932176161*^9, 3.4040569679505053`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"Knob", "[", RowBox[{"y_", ",", " ", "x_", ",", " ", "position_", ",", " ", "moment_"}], "]"}], " ", ":=", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"y", "[", "x", "]"}], "\[Equal]", " ", "position"}], ",", " ", RowBox[{ RowBox[{ RowBox[{"y", "''"}], "[", "x", "]"}], " ", "\[Equal]", " ", "moment"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.404056589178163*^9, 3.40405659670462*^9}, 3.404056768627199*^9, 3.4040569218950872`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"FreeBeam", "[", RowBox[{"y_", " ", ",", " ", "x_"}], "]"}], " ", ":=", " ", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y", "''"}], "[", "x", "]"}], "\[Equal]", "0"}], ",", " ", RowBox[{ RowBox[{ RowBox[{"y", "'''"}], "[", "x", "]"}], "\[Equal]", "0"}]}], "}"}]}]], "Input", CellChangeTimes->{ 3.404056600599069*^9, {3.404056982296232*^9, 3.40405700633838*^9}}], Cell["Set up some typical beam loads", "Text", CellChangeTimes->{{3.404057075088255*^9, 3.404057079782341*^9}}, CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}], Cell[BoxData[ RowBox[{ RowBox[{"noload", "[", "x_", "]"}], " ", ":=", " ", "0"}]], "Input"], Cell["\<\ A unit load is a force of 1/length applied over the beam length\ \>", "Text", CellChangeTimes->{{3.404057092375943*^9, 3.4040571244463577`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"unitload", "[", "x_", "]"}], " ", ":=", " ", "1"}]], "Input"], Cell["midload appliec a fixed load at x=1/2.", "Text", CellChangeTimes->{{3.404057092375943*^9, 3.4040571639903517`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"midload", "[", "x_", "]"}], " ", ":=", " ", RowBox[{ RowBox[{"-", "10"}], RowBox[{"DiracDelta", "[", RowBox[{"x", " ", "-", " ", RowBox[{"1", "/", "2"}]}], "]"}]}]}]], "Input"], Cell["\<\ Boxload simulaties a \"box\" of a fixed width and weight per unit width \ placed at x\ \>", "Text", CellChangeTimes->{{3.404057173070973*^9, 3.404057214614525*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"boxload", "[", RowBox[{"x_", ",", "pos_", ",", "width_", ",", "mag_"}], "]"}], " ", ":=", " ", RowBox[{"Piecewise", "[", RowBox[{"{", RowBox[{"{", RowBox[{"mag", ",", RowBox[{ RowBox[{"pos", "-", RowBox[{"width", "/", "2"}]}], " ", "\[LessEqual]", " ", "x", " ", "\[LessEqual]", " ", RowBox[{"pos", "+", RowBox[{"width", "/", "2"}]}]}]}], "}"}], "}"}], "]"}]}]], "Input", CellChangeTimes->{{3.403974092430908*^9, 3.403974123584766*^9}, { 3.4039742118208313`*^9, 3.40397421645437*^9}, {3.4039794809094057`*^9, 3.403979578463236*^9}, {3.4039834677285347`*^9, 3.403983501662943*^9}, { 3.4039837194807253`*^9, 3.403983729023281*^9}}], Cell["\<\ Simulated linearly decreasing distributed load (pushes up when x<1/2; down \ for x > 1/2)\ \>", "Text", CellChangeTimes->{{3.404057346461339*^9, 3.4040574141985273`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"linearload", "[", "x_", "]"}], " ", ":=", RowBox[{"500", "*", RowBox[{"(", RowBox[{ RowBox[{"1", "/", "2"}], " ", "-", " ", "x"}], ")"}]}]}]], "Input", CellChangeTimes->{{3.404057424299982*^9, 3.404057446377264*^9}}], Cell[BoxData[ RowBox[{"BeamEquation", "[", RowBox[{"y", ",", "x", ",", "noload", ",", RowBox[{"Clamp", "[", RowBox[{"y", ",", "0", ",", "0", ",", "0"}], "]"}], ",", RowBox[{"Knob", "[", RowBox[{"y", ",", "1", ",", RowBox[{"-", ".1"}], ",", "0"}], "]"}]}], "]"}]], "Input", CellChangeTimes->{3.404056745057735*^9, 3.404056921931946*^9}, CellTags->"mmtag:21:beams__general_solutions_for_deflection"] }, Closed]], Cell[CellGroupData[{ Cell["Visualizing Solutions to the Beam Equation", "Subtitle", CellChangeTimes->{{3.4040579786728697`*^9, 3.4040580217586727`*^9}}, CellTags->{"mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"} ], Cell[BoxData[ RowBox[{"Plot", "[", RowBox[{ RowBox[{"Evaluate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"y", "[", "x", "]"}], "/.", RowBox[{"BeamEquation", "[", RowBox[{"y", ",", "x", ",", "noload", ",", RowBox[{"Clamp", "[", RowBox[{"y", ",", "0", ",", "0", ",", "0"}], "]"}], ",", RowBox[{"Knob", "[", RowBox[{"y", ",", "1", ",", RowBox[{"-", ".25"}], ",", "0"}], "]"}]}], "]"}]}], "\[IndentingNewLine]", "]"}], ",", RowBox[{"{", RowBox[{"x", ",", "0", ",", "1"}], "}"}]}], "]"}]], "Input", CellChangeTimes->{{3.4039739571082487`*^9, 3.403973990993685*^9}, { 3.4039740283486853`*^9, 3.4039740351185837`*^9}, 3.4040567480973473`*^9, 3.404056921963841*^9, 3.4040584281816063`*^9}, CellTags->{ "mmtag:21:beams__clamped_and_loaded", "mmtag:21:beams__clamped_both_ends_with_point_load"}], Cell[CellGroupData[{ Cell["BeamViz: Visualization Function", "Section", CellChangeTimes->{{3.404050625624914*^9, 3.404050634653472*^9}, { 3.404056663960409*^9, 3.404056683302492*^9}, {3.40405846651301*^9, 3.404058496855036*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"BeamViz", "[", RowBox[{"DistLoadx_", ",", " ", "BC1_", ",", " ", "BC2_"}], "]"}], " ", ":=", " ", "\[IndentingNewLine]", RowBox[{"Plot", "[", RowBox[{ RowBox[{"Evaluate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"y", "[", "x", "]"}], "/.", RowBox[{"BeamEquation", "[", RowBox[{"y", ",", "x", ",", "DistLoadx", ",", "BC1", ",", "BC2"}], "]"}]}], "]"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"x", ",", "0", ",", "1"}], "}"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "0.5"}], ",", "0.5"}], "}"}]}], ",", RowBox[{"AspectRatio", "\[Rule]", "1"}], ",", RowBox[{"PlotStyle", "->", RowBox[{"{", RowBox[{ RowBox[{"Thickness", "[", "0.03", "]"}], ",", RowBox[{"Hue", "[", "0", "]"}]}], "}"}]}]}], "]"}]}]], "Input"] }, Open ]], Cell["\<\ Unit load pushing up, a clamp at the left and a free left end: This is a \ first-order model for the deflection of an airplane wing.\ \>", "Text", CellChangeTimes->{{3.404160557470574*^9, 3.404160616190679*^9}}], Cell[BoxData[ RowBox[{"BeamViz", "[", RowBox[{"unitload", ",", RowBox[{"Clamp", "[", RowBox[{"y", ",", "0", ",", "0", ",", "0"}], "]"}], ",", RowBox[{"FreeBeam", "[", RowBox[{"y", ",", "1"}], "]"}]}], "]"}]], "Input", CellChangeTimes->{3.40405700636802*^9}], Cell["\<\ Fixed Knobs that rotate freely at both ends, load: Approximates the \ defllection of a sieve loaded by shearing flow.\ \>", "Text", CellChangeTimes->{{3.404160642246656*^9, 3.404160695510709*^9}, { 3.404160758166914*^9, 3.404160816327072*^9}}], Cell[BoxData[ RowBox[{"BeamViz", "[", RowBox[{"linearload", ",", RowBox[{"Knob", "[", RowBox[{"y", ",", "0", ",", "0", ",", "0"}], "]"}], ",", RowBox[{"Knob", "[", RowBox[{"y", ",", "1", ",", "0", ",", "0"}], "]"}]}], "]"}]], "Input", CellChangeTimes->{{3.4040567619814653`*^9, 3.404056764816052*^9}, { 3.404056921998982*^9, 3.404056922000217*^9}, 3.4040574464066277`*^9}], Cell["\<\ A box of width 1/8 sitting at x=3/4 for a double cantilever beam.\ \>", "Text", CellChangeTimes->{{3.404160825666051*^9, 3.404160863614676*^9}}], Cell[BoxData[ RowBox[{"BeamViz", "[", RowBox[{ RowBox[{ RowBox[{"boxload", "[", RowBox[{"#", ",", RowBox[{"3", "/", "4"}], ",", RowBox[{"1", "/", "8"}], ",", RowBox[{"-", "500"}]}], "]"}], "&"}], ",", RowBox[{"Clamp", "[", RowBox[{"y", ",", "0", ",", "0", ",", "0"}], "]"}], ",", RowBox[{"Clamp", "[", RowBox[{"y", ",", "1", ",", "0", ",", "0"}], "]"}]}], "]"}]], "Input", CellChangeTimes->{{3.4039833803582697`*^9, 3.4039833963677*^9}, { 3.403983529815988*^9, 3.403983537758374*^9}, {3.403983568512022*^9, 3.403983574206933*^9}, 3.403983604360421*^9, {3.403983652841289*^9, 3.403983657431078*^9}, {3.4039837403681993`*^9, 3.403983741446888*^9}}], Cell["\<\ A point load at the center of a beam clamped at the left and sitting on a \ pinned point at the right.\ \>", "Text", CellChangeTimes->{{3.4041608729585123`*^9, 3.404160910725638*^9}}], Cell[BoxData[ RowBox[{"BeamViz", "[", RowBox[{"midload", ",", RowBox[{"Clamp", "[", RowBox[{"y", ",", "0", ",", "0", ",", "0"}], "]"}], ",", RowBox[{"Knob", "[", RowBox[{"y", ",", "1", ",", "0", ",", "0"}], "]"}]}], "]"}]], "Input", CellChangeTimes->{{3.4041330568074303`*^9, 3.4041330728247843`*^9}}], Cell["\<\ A load applied to the center with balancing loads applied at the ends: Three \ Point Loading\ \>", "Text", CellChangeTimes->{{3.404160928979248*^9, 3.404160962278829*^9}}], Cell[BoxData[ RowBox[{"BeamViz", "[", RowBox[{"midload", ",", RowBox[{"Knob", "[", RowBox[{"y", ",", "0", ",", "0", ",", "0"}], "]"}], ",", RowBox[{"Knob", "[", RowBox[{"y", ",", "1", ",", "0", ",", "0"}], "]"}]}], "]"}]], "Input", CellChangeTimes->{{3.404133103567479*^9, 3.404133110316896*^9}}] }, Closed]], Cell[CellGroupData[{ Cell["Frivolous Visualization Example: the Diving Board Beam", "Subtitle", CellChangeTimes->{{3.4040579786728697`*^9, 3.4040580217586727`*^9}, { 3.40413314398139*^9, 3.404133169547336*^9}, {3.40413324842177*^9, 3.404133252123309*^9}}, CellTags->{"mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"} ], Cell["\<\ We wish to simulate the deflection of a diving board as a diver walks toward \ the end. A diving board may be modeled as beam with constant cross-section. \ The boundary conditions are that the board is clamped at the beginning; has a \ pivot located somewhere near the center; and the \"diving\" end . For \ \"competitive\" diving boards, the pivot point is adjustable. Here we fix the \ pivot at x=1/2.\ \>", "Text", CellChangeTimes->{{3.404161065449853*^9, 3.404161218038829*^9}, { 3.404161853465405*^9, 3.404161889982593*^9}}], Cell["\<\ This next function is a silly little graphic for the walking diver.\ \>", "Text", CellChangeTimes->{{3.4041618961270027`*^9, 3.404161929262616*^9}}], Cell[CellGroupData[{ Cell["Graphics Functions for Animating Board and Diver", "Section", CellChangeTimes->{{3.404226367618346*^9, 3.404226380068212*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"humanbean", "[", "theta_", "]"}], " ", ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"redtheta", "=", RowBox[{"N", "[", RowBox[{ RowBox[{"Pi", "/", "8"}], " ", RowBox[{"Sin", "[", "theta", "]"}]}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"Pink", ",", "\[IndentingNewLine]", RowBox[{"Rotate", "[", RowBox[{ RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0.05"}], "}"}], ",", RowBox[{"{", RowBox[{"0.005", ",", "0.05"}], "}"}]}], "]"}], ",", "redtheta", ",", RowBox[{"{", RowBox[{"0", ",", "0.1"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Rotate", "[", RowBox[{ RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0.125"}], "}"}], ",", RowBox[{"{", RowBox[{"0.004", ",", "0.035"}], "}"}]}], "]"}], ",", RowBox[{"2", "redtheta"}], ",", RowBox[{"{", RowBox[{"0", ",", "0.16"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Darker", "[", "Pink", "]"}], ",", RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0.12"}], "}"}], ",", RowBox[{"{", RowBox[{".015", ",", ".05"}], "}"}]}], "]"}], ",", RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0.17"}], "}"}], ",", "0.015"}], "]"}], ",", " ", "\[IndentingNewLine]", RowBox[{"Rotate", "[", RowBox[{ RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0.05"}], "}"}], ",", RowBox[{"{", RowBox[{"0.005", ",", "0.05"}], "}"}]}], "]"}], ",", RowBox[{"-", "redtheta"}], ",", RowBox[{"{", RowBox[{"0", ",", "0.1"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Rotate", "[", RowBox[{ RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0.125"}], "}"}], ",", RowBox[{"{", RowBox[{"0.004", ",", "0.035"}], "}"}]}], "]"}], ",", RowBox[{ RowBox[{"-", "2"}], "redtheta"}], ",", RowBox[{"{", RowBox[{"0", ",", "0.16"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"Darker", "[", "Red", "]"}], ",", RowBox[{"Rectangle", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "0.015"}], ",", "0.06"}], "}"}], ",", RowBox[{"{", RowBox[{"0.015", ",", "0.09"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Darker", "[", "Red", "]"}], ",", RowBox[{"Text", "[", RowBox[{"\"\\"", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.009"}], ",", ".075"}], "}"}], ",", RowBox[{"BaseStyle", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"FontSize", "\[Rule]", " ", "3"}], ",", RowBox[{"FontFamily", "\[Rule]", " ", "\"\\""}]}], "}"}]}], ",", RowBox[{"Background", "\[Rule]", " ", "Gray"}]}], "]"}]}], "\[IndentingNewLine]", "}"}]}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.404047417735198*^9, 3.404047430611937*^9}, { 3.404047463320863*^9, 3.4040474735559797`*^9}, {3.4040476316853647`*^9, 3.4040476397080936`*^9}, {3.4040517839652042`*^9, 3.4040517973822308`*^9}, {3.404051880069675*^9, 3.404051966339123*^9}, 3.404052037700362*^9, 3.4040520745187063`*^9, {3.404052121661758*^9, 3.404052124283449*^9}, {3.404152485502989*^9, 3.404152490436757*^9}, { 3.404154556146174*^9, 3.4041545924379253`*^9}, 3.4041548015373497`*^9, { 3.404154841771433*^9, 3.4041548720617847`*^9}, {3.404154962764028*^9, 3.404154978461852*^9}, {3.404155064196905*^9, 3.404155224318141*^9}, { 3.404155277541028*^9, 3.404155313072905*^9}, {3.4041553686314917`*^9, 3.4041553854860697`*^9}}], Cell[BoxData[ RowBox[{"Manipulate", "[", RowBox[{ RowBox[{ RowBox[{"diver", "=", RowBox[{"humanbean", "[", "t", "]"}]}], ";", RowBox[{"Graphics", "[", RowBox[{"Translate", "[", RowBox[{"diver", ",", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}]}], "]"}], "]"}]}], ",", RowBox[{"{", RowBox[{"t", ",", "0", ",", "10"}], "}"}]}], "]"}]], "Input", CellChangeTimes->{{3.404043723146236*^9, 3.404043731913836*^9}, { 3.40404389733515*^9, 3.404043897605579*^9}, {3.404044073775161*^9, 3.404044095142148*^9}, {3.404044626823515*^9, 3.404044653827107*^9}, { 3.4040447209761953`*^9, 3.404044754455085*^9}}], Cell["\<\ The general solution for this beam equation is a bit complicated. We \ approximate the diver's force with a Delta-function. To get a solution, we \ have to match boundary conditions at the center-pivot. If the diver is to \ the left of the pivot, we use the implied slope at the pivot as input to the \ slope at the pivot for the beam to the right of the pivot. If the diver is \ to the right of the pivot, we allow the slope to be an undetermined \ parameter, and then enforce that the shear force is continous across the \ pivot. The result is a fairly involved piece-wise function.\ \>", "Text", CellChangeTimes->{{3.404161937953208*^9, 3.404162181398971*^9}}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"board", "[", "loc_", "]"}], " ", ":=", " ", RowBox[{ RowBox[{"board", "[", "loc", "]"}], " ", "=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ "yleft", ",", "midslope", ",", "yright", ",", "y", ",", "mund"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"yleft", "=", RowBox[{"yright", "=", "0"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ "0", " ", "\[LessEqual]", " ", "loc", " ", "\[LessEqual]", " ", "0.4999"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"yleft", "=", RowBox[{ RowBox[{"y", "[", "x", "]"}], "/.", RowBox[{"Flatten", "[", RowBox[{"DSolve", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y", "''''"}], "[", "x", "]"}], "==", RowBox[{ RowBox[{"-", "8"}], RowBox[{"DiracDelta", "[", RowBox[{"x", "-", "loc"}], "]"}]}]}], ",", RowBox[{ RowBox[{"y", "[", "0", "]"}], "\[Equal]", "0"}], ",", " ", RowBox[{ RowBox[{ RowBox[{"y", "'"}], "[", "0", "]"}], "\[Equal]", "0"}], ",", " ", RowBox[{ RowBox[{"y", "[", RowBox[{"1", "/", "2"}], "]"}], "\[Equal]", "0"}], ",", RowBox[{ RowBox[{ RowBox[{"y", "''"}], "[", RowBox[{"1", "/", "2"}], "]"}], "\[Equal]", "0"}]}], "}"}], ",", RowBox[{"y", "[", "x", "]"}], ",", "x"}], "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"midslope", " ", "=", " ", RowBox[{ RowBox[{"D", "[", RowBox[{"yleft", ",", "x"}], "]"}], "/.", RowBox[{"x", "\[Rule]", RowBox[{"1", "/", "2"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"yright", "=", " ", RowBox[{ RowBox[{"y", "[", "x", "]"}], "/.", RowBox[{"Flatten", "[", RowBox[{"DSolve", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y", "''''"}], "[", "x", "]"}], "\[Equal]", "0"}], ",", RowBox[{ RowBox[{ RowBox[{"y", "''"}], "[", "1", "]"}], "\[Equal]", "0"}], ",", " ", RowBox[{ RowBox[{ RowBox[{"y", "'''"}], "[", "1", "]"}], "\[Equal]", "0"}], ",", " ", RowBox[{ RowBox[{"y", "[", RowBox[{"1", "/", "2"}], "]"}], "\[Equal]", "0"}], ",", RowBox[{ RowBox[{ RowBox[{"y", "'"}], "[", RowBox[{"1", "/", "2"}], "]"}], "\[Equal]", "midslope"}]}], "}"}], ",", RowBox[{"y", "[", "x", "]"}], ",", "x"}], "]"}], "]"}]}]}]}]}], "\[IndentingNewLine]", "]"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ "0.5001", "\[LessEqual]", " ", "loc", " ", "\[LessEqual]", " ", "1"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"yright", "=", " ", RowBox[{ RowBox[{"y", "[", "x", "]"}], "/.", RowBox[{"Flatten", "[", RowBox[{"DSolve", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y", "''''"}], "[", "x", "]"}], "==", RowBox[{ RowBox[{"-", "8"}], RowBox[{"DiracDelta", "[", RowBox[{"x", "-", "loc"}], "]"}]}]}], ",", RowBox[{ RowBox[{ RowBox[{"y", "''"}], "[", "1", "]"}], "\[Equal]", "0"}], ",", " ", RowBox[{ RowBox[{ RowBox[{"y", "'''"}], "[", "1", "]"}], "\[Equal]", "0"}], ",", " ", RowBox[{ RowBox[{"y", "[", RowBox[{"1", "/", "2"}], "]"}], "\[Equal]", "0"}], ",", RowBox[{ RowBox[{ RowBox[{"y", "'"}], "[", RowBox[{"1", "/", "2"}], "]"}], "\[Equal]", "mund"}]}], "}"}], ",", RowBox[{"y", "[", "x", "]"}], ",", "x"}], "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"midslope", " ", "=", " ", RowBox[{ RowBox[{"D", "[", RowBox[{"yright", ",", "x"}], "]"}], "/.", RowBox[{"x", "\[Rule]", RowBox[{"1", "/", "2"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"yleft", "=", RowBox[{ RowBox[{"y", "[", "x", "]"}], "/.", RowBox[{"Flatten", "[", RowBox[{"DSolve", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"y", "''''"}], "[", "x", "]"}], "\[Equal]", "0"}], ",", RowBox[{ RowBox[{"y", "[", "0", "]"}], "\[Equal]", "0"}], ",", " ", RowBox[{ RowBox[{ RowBox[{"y", "'"}], "[", "0", "]"}], "\[Equal]", "0"}], ",", " ", RowBox[{ RowBox[{"y", "[", RowBox[{"1", "/", "2"}], "]"}], "\[Equal]", "0"}], ",", RowBox[{ RowBox[{ RowBox[{"y", "'"}], "[", RowBox[{"1", "/", "2"}], "]"}], "\[Equal]", "mund"}]}], "}"}], ",", RowBox[{"y", "[", "x", "]"}], ",", "x"}], "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"midslope", " ", "=", " ", RowBox[{"mund", "/.", RowBox[{"Flatten", "[", RowBox[{"Solve", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"D", "[", RowBox[{"yleft", ",", RowBox[{"{", RowBox[{"x", ",", "2"}], "}"}]}], "]"}], "/.", RowBox[{"x", "\[Rule]", RowBox[{"1", "/", "2"}]}]}], ")"}], "\[Equal]", " ", RowBox[{"(", RowBox[{ RowBox[{"D", "[", RowBox[{"yright", ",", RowBox[{"{", RowBox[{"x", ",", "2"}], "}"}]}], "]"}], "/.", RowBox[{"x", "\[Rule]", RowBox[{"1", "/", "2"}]}]}], ")"}]}], ",", "mund"}], "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"yleft", "=", " ", RowBox[{"yleft", "/.", RowBox[{"{", RowBox[{"mund", "\[Rule]", " ", "midslope"}], "}"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"yright", " ", "=", " ", RowBox[{"yright", "/.", RowBox[{"{", RowBox[{"mund", "\[Rule]", "midslope"}], "}"}]}]}]}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Piecewise", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"yleft", ",", RowBox[{"0", " ", "<", " ", "x", " ", "<", RowBox[{"1", "/", "2"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"yright", ",", RowBox[{ RowBox[{"1", "/", "2"}], "<", "x", " ", "\[LessEqual]", " ", "1"}]}], "}"}]}], "}"}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]"}]], "Input", CellChangeTimes->{{3.404129164732746*^9, 3.40412924064574*^9}, { 3.4041293921120768`*^9, 3.404129462284823*^9}, {3.404130020990654*^9, 3.404130121497904*^9}, {3.404130236776052*^9, 3.404130285150918*^9}, { 3.4041303274485617`*^9, 3.404130327905484*^9}, {3.404130373457061*^9, 3.404130377573929*^9}, {3.404130534768652*^9, 3.404130534880719*^9}, { 3.4041332713198423`*^9, 3.404133298254632*^9}, {3.4041333801473427`*^9, 3.404133381777596*^9}, 3.404133468347349*^9, 3.404133569877931*^9, { 3.4041337188721046`*^9, 3.404133740718698*^9}, {3.404133822567348*^9, 3.404133889486309*^9}, {3.404133921790943*^9, 3.404133936487117*^9}, { 3.4041343176256037`*^9, 3.404134324799213*^9}, {3.404134432263665*^9, 3.404134494951666*^9}, {3.4041448272181587`*^9, 3.404144831256289*^9}, { 3.4041456790034523`*^9, 3.404145680186953*^9}, {3.4041457214361897`*^9, 3.404145887484994*^9}, {3.4041459321721697`*^9, 3.404145980533518*^9}, { 3.404146044927874*^9, 3.4041460461176853`*^9}, {3.404146078841798*^9, 3.404146129653584*^9}, {3.404146172298842*^9, 3.404146202822524*^9}, { 3.40414627968051*^9, 3.4041462798778152`*^9}, {3.404146326872842*^9, 3.404146364303083*^9}, 3.404146397772297*^9, {3.404146461370707*^9, 3.404146467521234*^9}, {3.404146498745476*^9, 3.404146610054394*^9}, { 3.404146662584173*^9, 3.404146671909636*^9}, {3.404146889466177*^9, 3.4041468912297077`*^9}, {3.404146933064032*^9, 3.404146933901555*^9}, { 3.4041489755131617`*^9, 3.404149025093377*^9}, {3.4041491717861853`*^9, 3.404149172317992*^9}, {3.40414925921564*^9, 3.404149283549409*^9}, { 3.404149439782734*^9, 3.404149592605372*^9}, {3.404149623783793*^9, 3.404149660732131*^9}, {3.404149817588841*^9, 3.404149828502337*^9}, { 3.404149861006831*^9, 3.404149888077043*^9}, {3.404149936587545*^9, 3.404149937923318*^9}, {3.404150029028165*^9, 3.404150052178463*^9}, { 3.4041516430221653`*^9, 3.404151653587214*^9}, {3.4041517814594193`*^9, 3.404151799747201*^9}, {3.404151837558136*^9, 3.404152129977806*^9}, { 3.4041522031519823`*^9, 3.404152208343317*^9}, {3.40415329555014*^9, 3.404153298694734*^9}, {3.404153423840868*^9, 3.4041534541718607`*^9}, { 3.4041535414262342`*^9, 3.404153556095317*^9}, {3.404153616579056*^9, 3.404153638486287*^9}, {3.404153688463888*^9, 3.404153691022993*^9}, { 3.4041537541596518`*^9, 3.404153757487014*^9}, {3.404156698470726*^9, 3.404156698932837*^9}, {3.404224370010354*^9, 3.404224401360367*^9}, { 3.404225416884594*^9, 3.404225430352483*^9}, {3.404225465922637*^9, 3.404225549235887*^9}, {3.404225591600013*^9, 3.404225724228199*^9}, { 3.404225766349298*^9, 3.404225785225391*^9}, {3.404225850715169*^9, 3.4042258570043097`*^9}, {3.404225977421936*^9, 3.404225998781741*^9}}], Cell["This is a fixed graphic for the pivot.", "Text", CellChangeTimes->{{3.404162205213047*^9, 3.404162215837041*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"pivot", " ", "=", " ", RowBox[{"Graphics", "[", RowBox[{"{", RowBox[{ RowBox[{"Darker", "[", "Green", "]"}], ",", " ", RowBox[{"Polygon", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"1", "/", "2"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"1", "/", "2"}], "-", ".02"}], ",", RowBox[{"-", "0.1"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"1", "/", "2"}], "+", " ", ".02"}], ",", RowBox[{"-", "0.1"}]}], "}"}]}], "}"}], "]"}], ",", " ", "Black", ",", RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"1", "/", "2"}], ",", "0"}], "}"}], ",", ".01"}], "]"}], ",", "Gray", ",", RowBox[{"Disk", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"1", "/", "2"}], ",", "0"}], "}"}], ",", ".005"}], "]"}]}], "}"}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.404154139116046*^9, 3.404154328597393*^9}, { 3.4041543811710253`*^9, 3.4041544371526117`*^9}, {3.404154484530616*^9, 3.404154519588202*^9}, {3.404160999986205*^9, 3.4041610378908663`*^9}}], Cell["\<\ And finally, our interactive simulation for a the walking diver.\ \>", "Text", CellChangeTimes->{{3.404162205213047*^9, 3.404162248581362*^9}}], Cell[BoxData[ RowBox[{"Manipulate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"boardsol", " ", "=", " ", RowBox[{"N", "[", " ", RowBox[{"board", "[", RowBox[{"Rationalize", "[", RowBox[{"pos", ",", ".001"}], "]"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"diver", " ", "=", RowBox[{"humanbean", "[", RowBox[{"10", " ", "\[Pi]", " ", "pos"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"plot", " ", "=", " ", RowBox[{"Plot", "[", RowBox[{"boardsol", ",", RowBox[{"{", RowBox[{"x", ",", "0", ",", "1"}], "}"}], ",", RowBox[{"PlotRange", "\[Rule]", " ", RowBox[{"{", RowBox[{ RowBox[{"-", ".6"}], ",", "0.2"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "Large"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"Thickness", "[", "0.025", "]"}], ",", RowBox[{"Darker", "[", "Blue", "]"}]}], "}"}]}], ",", RowBox[{"AspectRatio", "\[Rule]", RowBox[{"8", "/", "10"}]}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"ypos", "=", RowBox[{ RowBox[{"N", "[", " ", RowBox[{"(", RowBox[{"boardsol", "/.", RowBox[{"x", "\[Rule]", "pos"}]}], ")"}], "]"}], "/.", RowBox[{ RowBox[{"HeavisideTheta", "[", "0.", "]"}], "\[Rule]", RowBox[{"1", "/", "2"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Column", "[", RowBox[{"{", RowBox[{ RowBox[{"Show", "[", RowBox[{"plot", ",", RowBox[{"Graphics", "[", RowBox[{"Translate", "[", RowBox[{"diver", ",", RowBox[{"{", RowBox[{"pos", ",", "ypos"}], "}"}]}], "]"}], "]"}], ",", "pivot"}], "]"}], ",", "boardsol"}], "}"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"pos", ",", RowBox[{"2", "/", "7"}], ",", "\"\\""}], "}"}], ",", "0", ",", RowBox[{"1", "-", ".001"}], ",", ".001"}], "}"}]}], "]"}]], "Input", CellChangeTimes->{{3.40404102444094*^9, 3.4040412196997547`*^9}, { 3.404041251986784*^9, 3.404041305850092*^9}, {3.404041337659964*^9, 3.40404136593769*^9}, {3.404041408988418*^9, 3.4040414119536943`*^9}, { 3.404041448347024*^9, 3.404041610529767*^9}, {3.404041676251281*^9, 3.404041684441812*^9}, {3.404041724612836*^9, 3.404041729170244*^9}, { 3.4040418972195787`*^9, 3.404041901170163*^9}, {3.404041944443543*^9, 3.404041981770269*^9}, {3.404042019490337*^9, 3.404042146027514*^9}, { 3.404042232204248*^9, 3.404042275860115*^9}, {3.404042311529554*^9, 3.4040423183012543`*^9}, {3.404042397158461*^9, 3.404042400877878*^9}, { 3.404042448861711*^9, 3.404042508164955*^9}, {3.4040425516774807`*^9, 3.4040425518120203`*^9}, {3.404042582445209*^9, 3.40404258471566*^9}, { 3.4040426239846067`*^9, 3.40404279581567*^9}, {3.404042842000111*^9, 3.404042852478651*^9}, {3.404042884370564*^9, 3.404043147900055*^9}, { 3.404043584894433*^9, 3.404043603683864*^9}, {3.404044391046197*^9, 3.4040445189959097`*^9}, 3.4040445605732203`*^9, {3.4040447966214523`*^9, 3.404044834337491*^9}, {3.404044892995243*^9, 3.404044929454811*^9}, 3.404057006373372*^9, {3.404058751196177*^9, 3.404058777880712*^9}, { 3.404058808861978*^9, 3.404058823147499*^9}, {3.404058981459746*^9, 3.404058982523755*^9}, {3.404128942421126*^9, 3.404129015257395*^9}, { 3.404129262728364*^9, 3.4041292918963547`*^9}, {3.4041294802181883`*^9, 3.404129541040387*^9}, {3.404129659033923*^9, 3.4041297153999357`*^9}, { 3.404129764158584*^9, 3.404129815738471*^9}, {3.404129851948135*^9, 3.404129870139422*^9}, {3.4041301552580347`*^9, 3.40413019454248*^9}, { 3.404130296807082*^9, 3.4041303551200743`*^9}, {3.404130409753039*^9, 3.404130462978509*^9}, {3.4041306524368153`*^9, 3.404130653068041*^9}, { 3.4041490805172777`*^9, 3.404149084274825*^9}, {3.404152390531646*^9, 3.404152404161573*^9}, {3.4041525441894903`*^9, 3.404152545921229*^9}, { 3.404152723486742*^9, 3.4041528149092007`*^9}, {3.4041529215163403`*^9, 3.404152934643219*^9}, {3.4041532110460157`*^9, 3.404153233143044*^9}, { 3.404153773784737*^9, 3.40415377991676*^9}, {3.4041538350799513`*^9, 3.404153842541049*^9}, {3.4041539102499113`*^9, 3.404153922213188*^9}, { 3.4041539653121567`*^9, 3.404153972124826*^9}, {3.40415403022252*^9, 3.404154030693754*^9}, {3.4041543457910023`*^9, 3.404154347804256*^9}, { 3.404154458102996*^9, 3.404154468368787*^9}, {3.404155353118478*^9, 3.404155357876087*^9}, {3.404156374097974*^9, 3.404156382790823*^9}, { 3.4041564545043697`*^9, 3.4041564547008266`*^9}, 3.404224413532794*^9}] }, Open ]] }, Closed]] }, ScreenStyleEnvironment->"Presentation", PrintingStyleEnvironment->"ColorPrintout", CellGrouping->Manual, WindowSize->{1063, 547}, WindowMargins->{{98, Automatic}, {Automatic, 0}}, WindowTitle->"Lecture 21 MIT 3.016 (Fall 2010) \[Copyright] W. Craig Carter \ 2003--2010", PrintingCopies->1, PrintingPageRange->{1, Automatic}, PrintingOptions->{"PaperOrientation"->"Portrait"}, ShowSelection->True, ShowCellLabel->False, CellLabelAutoDelete->True, Magnification->1., FrontEndVersion->"7.0 for Mac OS X x86 (32-bit) (November 11, 2008)", StyleDefinitions->FrontEnd`FileName[{"Creative"}, "NaturalColor.nb", CharacterEncoding -> "UTF-8"] ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{ "mmtag:21:beam_theory"->{ Cell[714, 26, 302, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[5137, 145, 325, 5, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[10086, 280, 256, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[12328, 345, 315, 7, 83, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[15725, 461, 268, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[29385, 833, 325, 7, 83, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[32439, 932, 258, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[38387, 1115, 215, 3, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[43777, 1265, 323, 5, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}]}, "mmtag:21:fourth_order_odes__beam_theory"->{ Cell[714, 26, 302, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[5137, 145, 325, 5, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[10086, 280, 256, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[12328, 345, 315, 7, 83, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[15725, 461, 268, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[29385, 833, 325, 7, 83, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[32439, 932, 258, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[38387, 1115, 215, 3, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[43777, 1265, 323, 5, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}]}, "mmtag:21:foward_differencing__higher_order_ODEs"->{ Cell[1608, 46, 679, 17, 54, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellTags->{ "mmtag:21:foward_differencing__higher_order_ODEs", "mmtag:21:foward_differencing__example_function"}]}, "mmtag:21:foward_differencing__example_function"->{ Cell[1608, 46, 679, 17, 54, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellTags->{ "mmtag:21:foward_differencing__higher_order_ODEs", "mmtag:21:foward_differencing__example_function"}]}, "mmtag:21:discrete_approximation_to_derivative"->{ Cell[2386, 69, 904, 21, 85, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellTags->{ "mmtag:21:discrete_approximation_to_derivative", "mmtag:21:derivatives__discrete_approximation"}]}, "mmtag:21:derivatives__discrete_approximation"->{ Cell[2386, 69, 904, 21, 85, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellTags->{ "mmtag:21:discrete_approximation_to_derivative", "mmtag:21:derivatives__discrete_approximation"}]}, "mmtag:21:derivatives__discrete_approximation_second_derivative"->{ Cell[3472, 97, 755, 17, 85, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellTags->{ "mmtag:21:derivatives__discrete_approximation_second_derivative", "mmtag:21:second_derivatives__discrete_approximation"}]}, "mmtag:21:second_derivatives__discrete_approximation"->{ Cell[3472, 97, 755, 17, 85, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellTags->{ "mmtag:21:derivatives__discrete_approximation_second_derivative", "mmtag:21:second_derivatives__discrete_approximation"}]}, "mmtag:21:graphics__building_piece_by_piece"->{ Cell[17996, 515, 948, 22, 85, "Input", CellTags->"mmtag:21:graphics__building_piece_by_piece"]}, "mmtag:21:Reduce[]"->{ Cell[22661, 647, 377, 9, 54, "Input", CellTags->"mmtag:21:Reduce[]"]}, "mmtag:21:second_order_odes__using_boundary_values"->{ Cell[29713, 842, 260, 7, 34, "Text", CellTags->"mmtag:21:second_order_odes__using_boundary_values"]}, "mmtag:21:beam_equation"->{ Cell[32797, 942, 641, 18, 85, "Input", CellTags->"mmtag:21:beam_equation"]}, "mmtag:21:beam_boundary_conditions"->{ Cell[33636, 966, 156, 3, 30, "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}], Cell[35612, 1029, 212, 4, 34, "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}]}, "mmtag:21:boundary_conditions__for_beams"->{ Cell[33636, 966, 156, 3, 30, "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}], Cell[35612, 1029, 212, 4, 34, "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}]}, "mmtag:21:beams__general_solutions_for_deflection"->{ Cell[37923, 1101, 427, 9, 54, "Input", CellTags->"mmtag:21:beams__general_solutions_for_deflection"]}, "mmtag:21:beams__clamped_and_loaded"->{ Cell[38605, 1120, 892, 21, 115, "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[38605, 1120, 892, 21, 115, "Input", CellTags->{ "mmtag:21:beams__clamped_and_loaded", "mmtag:21:beams__clamped_both_ends_with_point_load"}]} } *) (*CellTagsIndex CellTagsIndex->{ {"mmtag:21:beam_theory", 68887, 1849}, {"mmtag:21:fourth_order_odes__beam_theory", 70111, 1877}, {"mmtag:21:foward_differencing__higher_order_ODEs", 71343, 1905}, {"mmtag:21:foward_differencing__example_function", 71619, 1911}, {"mmtag:21:discrete_approximation_to_derivative", 71894, 1917}, {"mmtag:21:derivatives__discrete_approximation", 72164, 1923}, {"mmtag:21:derivatives__discrete_approximation_second_derivative", 72452, \ 1929}, {"mmtag:21:second_derivatives__discrete_approximation", 72753, 1935}, {"mmtag:21:graphics__building_piece_by_piece", 73045, 1941}, {"mmtag:21:Reduce[]", 73171, 1944}, {"mmtag:21:second_order_odes__using_boundary_values", 73303, 1947}, {"mmtag:21:beam_equation", 73439, 1950}, {"mmtag:21:beam_boundary_conditions", 73561, 1953}, {"mmtag:21:boundary_conditions__for_beams", 73901, 1962}, {"mmtag:21:beams__general_solutions_for_deflection", 74250, 1971}, {"mmtag:21:beams__clamped_and_loaded", 74399, 1974}, {"mmtag:21:beams__clamped_both_ends_with_point_load", 74617, 1979} } *) (*NotebookFileOutline Notebook[{ Cell[628, 22, 61, 0, 183, "Title"], Cell[CellGroupData[{ Cell[714, 26, 302, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[1019, 32, 435, 8, 80, "Text"], Cell[1457, 42, 74, 0, 34, "Text"], Cell[1534, 44, 71, 0, 34, "Text"], Cell[1608, 46, 679, 17, 54, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellTags->{ "mmtag:21:foward_differencing__higher_order_ODEs", "mmtag:21:foward_differencing__example_function"}], Cell[2290, 65, 93, 2, 34, "Text"], Cell[2386, 69, 904, 21, 85, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellTags->{ "mmtag:21:discrete_approximation_to_derivative", "mmtag:21:derivatives__discrete_approximation"}], Cell[3293, 92, 176, 3, 34, "Text"], Cell[3472, 97, 755, 17, 85, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}, CellTags->{ "mmtag:21:derivatives__discrete_approximation_second_derivative", "mmtag:21:second_derivatives__discrete_approximation"}], Cell[4230, 116, 52, 0, 34, "Text"], Cell[4285, 118, 400, 10, 54, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}], Cell[4688, 130, 151, 2, 34, "Text", CellGroupingRules->{GroupTogetherGrouping, 10000.}], Cell[4842, 134, 258, 6, 54, "Input", CellGroupingRules->{GroupTogetherGrouping, 10000.}] }, Closed]], Cell[CellGroupData[{ Cell[5137, 145, 325, 5, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[5465, 152, 402, 7, 57, "Text"], Cell[5870, 161, 1754, 46, 175, "Input"], Cell[7627, 209, 227, 4, 57, "Text"], Cell[7857, 215, 596, 9, 126, "Text"], Cell[8456, 226, 308, 9, 54, "Input"], Cell[8767, 237, 269, 5, 54, "Input"], Cell[9039, 244, 135, 3, 34, "Text"], Cell[9177, 249, 152, 3, 54, "Input"], Cell[9332, 254, 204, 4, 34, "Text"], Cell[9539, 260, 510, 15, 54, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[10086, 280, 256, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[10345, 286, 283, 6, 34, "Text"], Cell[10631, 294, 805, 19, 85, "Input"], Cell[11439, 315, 206, 6, 34, "Text"], Cell[11648, 323, 643, 17, 85, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[12328, 345, 315, 7, 83, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[12646, 354, 259, 5, 34, "Text"], Cell[12908, 361, 538, 16, 85, "Input"], Cell[13449, 379, 82, 2, 54, "Input"], Cell[13534, 383, 94, 2, 34, "Text"], Cell[13631, 387, 158, 4, 54, "Input"], Cell[13792, 393, 89, 2, 54, "Input"], Cell[13884, 397, 117, 3, 34, "Text"], Cell[14004, 402, 246, 7, 54, "Input"], Cell[14253, 411, 150, 3, 34, "Text"], Cell[14406, 416, 174, 4, 54, "Input"], Cell[14583, 422, 206, 4, 34, "Text"], Cell[14792, 428, 428, 12, 54, "Input"], Cell[15223, 442, 129, 3, 54, "Input"], Cell[15355, 447, 165, 3, 34, "Text"], Cell[15523, 452, 165, 4, 54, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[15725, 461, 268, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[15996, 467, 1228, 24, 181, "Text"], Cell[17227, 493, 419, 10, 54, "Input"], Cell[17649, 505, 113, 1, 77, "Section"], Cell[17765, 508, 228, 5, 30, "Text"], Cell[17996, 515, 948, 22, 85, "Input", CellTags->"mmtag:21:graphics__building_piece_by_piece"], Cell[18947, 539, 163, 3, 34, "Text"], Cell[19113, 544, 663, 17, 115, "Input"], Cell[19779, 563, 181, 2, 77, "Section"], Cell[19963, 567, 490, 17, 67, "Text"], Cell[20456, 586, 589, 15, 85, "Input"], Cell[21048, 603, 1056, 27, 205, "Input"], Cell[22107, 632, 199, 4, 54, "Input"], Cell[22309, 638, 253, 3, 77, "Section"], Cell[22565, 643, 93, 2, 30, "Text"], Cell[22661, 647, 377, 9, 54, "Input", CellTags->"mmtag:21:Reduce[]"], Cell[23041, 658, 1014, 22, 85, "Input"], Cell[24058, 682, 562, 15, 145, "Input"], Cell[24623, 699, 588, 17, 115, "Input"], Cell[25214, 718, 294, 7, 54, "Input"], Cell[25511, 727, 718, 18, 85, "Input"], Cell[26232, 747, 533, 14, 145, "Input"], Cell[26768, 763, 215, 3, 77, "Section"], Cell[26986, 768, 296, 7, 54, "Input"], Cell[27285, 777, 945, 21, 115, "Input"], Cell[28233, 800, 655, 16, 175, "Input"], Cell[28891, 818, 130, 1, 34, "Text"], Cell[29024, 821, 324, 7, 85, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[29385, 833, 325, 7, 83, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[29713, 842, 260, 7, 34, "Text", CellTags->"mmtag:21:second_order_odes__using_boundary_values"], Cell[29976, 851, 171, 4, 54, "Input"], Cell[30150, 857, 142, 2, 34, "Text"], Cell[30295, 861, 547, 15, 54, "Input"], Cell[30845, 878, 45, 0, 34, "Text"], Cell[30893, 880, 279, 7, 54, "Input"], Cell[31175, 889, 121, 1, 34, "Text"], Cell[31299, 892, 193, 5, 54, "Input"], Cell[31495, 899, 72, 0, 34, "Text"], Cell[31570, 901, 601, 18, 85, "Input"], Cell[32174, 921, 228, 6, 54, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[32439, 932, 258, 4, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[32700, 938, 94, 2, 34, "Text"], Cell[32797, 942, 641, 18, 85, "Input", CellTags->"mmtag:21:beam_equation"], Cell[33441, 962, 192, 2, 77, "Section"], Cell[33636, 966, 156, 3, 30, "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}], Cell[33795, 971, 134, 1, 34, "Text"], Cell[33932, 974, 474, 14, 54, "Input"], Cell[34409, 990, 225, 5, 34, "Text"], Cell[34637, 997, 519, 14, 54, "Input"], Cell[35159, 1013, 450, 14, 54, "Input"], Cell[35612, 1029, 212, 4, 34, "Text", CellTags->{ "mmtag:21:beam_boundary_conditions", "mmtag:21:boundary_conditions__for_beams"}], Cell[35827, 1035, 94, 2, 54, "Input"], Cell[35924, 1039, 155, 3, 34, "Text"], Cell[36082, 1044, 96, 2, 54, "Input"], Cell[36181, 1048, 122, 1, 34, "Text"], Cell[36306, 1051, 232, 7, 54, "Input"], Cell[36541, 1060, 175, 4, 34, "Text"], Cell[36719, 1066, 745, 18, 85, "Input"], Cell[37467, 1086, 181, 4, 34, "Text"], Cell[37651, 1092, 269, 7, 54, "Input"], Cell[37923, 1101, 427, 9, 54, "Input", CellTags->"mmtag:21:beams__general_solutions_for_deflection"] }, Closed]], Cell[CellGroupData[{ Cell[38387, 1115, 215, 3, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[38605, 1120, 892, 21, 115, "Input", CellTags->{ "mmtag:21:beams__clamped_and_loaded", "mmtag:21:beams__clamped_both_ends_with_point_load"}], Cell[CellGroupData[{ Cell[39522, 1145, 213, 3, 77, "Section"], Cell[39738, 1150, 915, 24, 175, "Input"] }, Open ]], Cell[40668, 1177, 222, 4, 34, "Text"], Cell[40893, 1183, 280, 7, 54, "Input"], Cell[41176, 1192, 257, 5, 34, "Text"], Cell[41436, 1199, 398, 8, 54, "Input"], Cell[41837, 1209, 155, 3, 34, "Text"], Cell[41995, 1214, 714, 16, 85, "Input"], Cell[42712, 1232, 194, 4, 34, "Text"], Cell[42909, 1238, 324, 7, 54, "Input"], Cell[43236, 1247, 182, 4, 34, "Text"], Cell[43421, 1253, 319, 7, 54, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[43777, 1265, 323, 5, 39, "Subtitle", CellTags->{ "mmtag:21:beam_theory", "mmtag:21:fourth_order_odes__beam_theory"}], Cell[44103, 1272, 544, 9, 80, "Text"], Cell[44650, 1283, 159, 3, 34, "Text"], Cell[CellGroupData[{ Cell[44834, 1290, 133, 1, 77, "Section"], Cell[44970, 1293, 4271, 109, 415, "Input"], Cell[49244, 1404, 662, 16, 85, "Input"], Cell[49909, 1422, 677, 10, 126, "Text"], Cell[50589, 1434, 11063, 244, 985, "Input"], Cell[61655, 1680, 120, 1, 34, "Text"], Cell[61778, 1683, 1330, 38, 145, "Input"], Cell[63111, 1723, 154, 3, 34, "Text"], Cell[63268, 1728, 4825, 94, 325, "Input"] }, Open ]] }, Closed]] } ] *) (* End of internal cache information *)