(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.0' 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[ 43814, 1244]*) (*NotebookOutlinePosition[ 44499, 1268]*) (* CellTagsIndexPosition[ 44455, 1264]*) (*WindowFrame->Normal*) Notebook[{ Cell[TextData[{ StyleBox[" ", FontColor->GrayLevel[1]], StyleBox["WOLFRAM", FontSlant->"Plain", FontColor->GrayLevel[1]], " \n ", StyleBox["TECHNOLOGY ", FontSlant->"Plain", FontColor->RGBColor[1, 0.501961, 0]], StyleBox["\n ", FontColor->RGBColor[1, 0.501961, 0]], StyleBox["CONFERENCE", FontSlant->"Plain", FontColor->RGBColor[1, 0.501961, 0]], StyleBox[" ", FontSlant->"Plain"], StyleBox["2004", FontSlant->"Plain", FontColor->GrayLevel[1]] }], "Title", FontFamily->"Verdana", FontSlant->"Italic", Background->RGBColor[0.286275, 0.294118, 0.627451]], Cell["Computational Science with Mathematica", "Title", FontFamily->"Verdana", FontColor->RGBColor[0.286275, 0.294118, 0.627451]], Cell["\<\ 12 Easy Pieces: Essential Operations in Computational Science\ \>", "Subtitle", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[0.286275, 0.294118, 0.627451]], Cell["\<\ James L. Noyes Wittenberg University\ \>", "Subtitle", FontFamily->"Verdana", FontSlant->"Italic"], Cell[CellGroupData[{ Cell["Introduction:", "Text", FontFamily->"Verdana", FontSize->14, FontWeight->"Bold", FontColor->RGBColor[0.286275, 0.294118, 0.627451]], Cell[TextData[{ "Computational Science (COSC) is a scientific investigation of physical \ processes on the computer by the use of computational models and methods. \ Hypotheses are often formulated using mathematical models that can then be \ used to compute quantities of scientific interest and to gain new insights. \ COSC is now on par with the development of scientific theory and the use of \ experimentation in order to understand the real world. ", StyleBox["Mathematica", FontSlant->"Italic"], " is an ideal tool to use in this endeavor and also to teach the essential \ types of operations [7]. These types of operations may be placed into three \ categories: Evaluation, Simulation, and Optimization. Within each category, \ fundamental operations will be described. One or more examples will be \ presented for each operation. This material is currently used to teach an \ undergraduate course in COSC." }], "Text", FontFamily->"Verdana", FontSize->14] }, Closed]], Cell[CellGroupData[{ Cell["\<\ Evaluation: This is the most basic category since the operations in this \ category are used in both simulation and optimization.\ \>", "Text", FontFamily->"Verdana", FontSize->14, FontWeight->"Bold", FontColor->RGBColor[0.286275, 0.294118, 0.627451]], Cell[CellGroupData[{ Cell[TextData[{ "1. ", StyleBox["Analytic (Symbolic) vs. Numeric Computation.", FontWeight->"Bold"], " The primary advantage of analytic (\"closed form\") solution methods is \ that one may examine this form (expressions, equations, and formulas) and \ investigate the behavior by changing parameters and variables and observing \ the consequences. In general, one should try to obtain a simplified analytic \ solution whenever possible (using numerical solutions to aid the validation \ process) [5]. Unfortunately, for many problems, no elementary analytic \ solution exists, or it is impossible to obtain such a solution. Hence a \ numeric solution must be found. While numeric solutions are frequently \ possible, they are sometimes subject to truncation error, subject to numeric \ error, and often must be re-computed for changes in variables and parameters. \ Examples: " }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["\<\ A. Using Hooke's Law to Determine Work Formula for Stretching a Spring\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[h, k, x, a, b]\), "\[IndentingNewLine]", \(h[x_] := k\ x\)}], "Input"], Cell[BoxData[ \(Simplify[\[Integral]\_a\%b h[x] \[DifferentialD]x]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ B. Integrating the Standard Normal Probability Density Function\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[\[Phi], \[Theta], z, \[Tau], \[Mu], \[Sigma]]\), "\[IndentingNewLine]", \(\[Phi][ z_] := \(1\/\@\(2 \[Pi]\)\) \[ExponentialE]\^\(-\(z\^2\/2\)\)\)}], \ "Input"], Cell[BoxData[ \(\(Plot[\[Phi][z], {z, \(-3\), 3}];\)\)], "Input"], Cell[BoxData[ \(\[Integral]\_\(-\[Infinity]\)\%\[Infinity] z\ \[Phi][z] \[DifferentialD]z\)], "Input"], Cell[BoxData[ \(\[Integral]\_\(-\[Infinity]\)\%\[Infinity]\( z\^2\) \[Phi][ z] \[DifferentialD]z\)], "Input"], Cell[BoxData[ \(\[Theta][ z_] := \[Integral]\_\(-\[Infinity]\)\%z \[Phi][\[Tau]] \ \[DifferentialD]\[Tau]\)], "Input"], Cell[BoxData[ \(\[Theta][\(x - \[Mu]\)\/\[Sigma]]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ C. Integrating an Arbitrary Function (Simple Trapezoidal Rule)\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[f, x, Trap]\), "\[IndentingNewLine]", \(f[x_] := Sin[x\ \[ExponentialE]\^\(0.25 x\^2\)]\)}], "Input"], Cell[BoxData[ \(\[Integral]\_0\%\[Pi] f[x] \[DifferentialD]x\)], "Input"], Cell[BoxData[ \(Trap[a_, b_, n_] := \(\(b - a\)\/\(2 n\)\) \((f[a] + f[b])\) + \(\(b - a\)\/n\) \(\[Sum]\+\(j = 1\)\%\(n - 1\)f[ a + \((\(b - a\)\/n)\) j]\)\)], "Input"], Cell[BoxData[{ \(Trap[0, \[Pi], 5000]\), "\[IndentingNewLine]", \(N[\[Integral]\_0\%\[Pi] f[x] \[DifferentialD]x]\)}], "Input"] }, Closed]] }, Open ]], Cell[TextData[{ "2. ", StyleBox["Data Input/Output and Visualization.", FontWeight->"Bold"], " Computational Science must deal with both small and large amounts of \ file data to be read or written. Visualization can be critical to the \ interpretation of data, especially large amounts of it. Often this data must \ be reformatted or filtered in some fashion before it can be used. Many times \ a problem or function is so complex that it is required to have some type of \ graphical representation in order to understand the effect of variable and \ parameter changes. Examples: " }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["A. Input and Display of a Small Data File", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[inData]\), "\[IndentingNewLine]", \(inData = ReadList["\", {Word, \ Number, Number, Number}]\), "\[IndentingNewLine]", \(inData // TableForm\), "\[IndentingNewLine]", \(inData[\([2]\)]\)}], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ B. Create and Output a Data File of Elevations (ft.) Over a Given Area \ (mi.)\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[lcOutData, myStream]\), "\[IndentingNewLine]", \(\(SeedRandom[1];\)\), "\[IndentingNewLine]", \(\(\(lcOutData = 8000.0 + 1000.0 Table[ Sin[x\ y] + Random[Real, {\(-0.4\), 0.4}], {x, 0, \(3 \[Pi]\)\/2, \[Pi]\/15}, {y, 0, \(3 \[Pi]\)\/2, \[Pi]\/15}];\);\)\), "\ \[IndentingNewLine]", \(\(myStream = \ OpenWrite["\"];\)\), "\ \[IndentingNewLine]", \(\(Write[myStream, lcOutData];\)\), "\[IndentingNewLine]", \(\(Close[myStream];\)\)}], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ C. Input and Visualize a File of Elevations (ft.) Over a Given Area (mi.)\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[lcInData]\), "\[IndentingNewLine]", \(\(lcInData = ReadList["\"];\)\), "\ \[IndentingNewLine]", \(lcInData[\([1]\)] // TableForm\), "\[IndentingNewLine]", \(\(ListPlot3D[lcInData[\([1]\)]];\)\)}], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["D. Visualizing a Parameterized Bivariate Function", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[\[Rho]]\), "\[IndentingNewLine]", \(\[Rho] = 0.0; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ Try\ \[Rho] = 0.0, \ \[Rho] = 0.1, \ \[Rho] = 0.5\ *) \[IndentingNewLine]Plot3D[\[ExponentialE]\^Sin[\[Rho]\ x\ y], \ {x, 0, 2 \[Pi]}, {y, \(-\[Pi]\), \[Pi]}];\)}], "Input"] }, Closed]], Cell[TextData[{ "3. ", StyleBox["Physical Units and Conversions.", FontWeight->"Bold"], " Most realistic problems involve physical units (mass, length, time, \ current, temperature, etc.). An incorrect specification of units in a model \ is just as bad as an incorrect numerical quantity. Dimensional analysis can \ be used, whereby units are treated as algebraic quantities so that \ quantitative scientific relationships may be converted, simplified, and \ verified. Example:" }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["A. Compute the Speed of Light in Furlongs per Fortnight", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[ \(\((299792458 m\/s)\) \((\(100 in\)\/\(2.54 m\))\) \((yd\/\(36 in\))\) \((fur\ \/\(220 yd\))\) \((\(3600 s\)\/hr)\) \((\(24 hr\)\/day)\) \((\(14 \ day\)\/ftn)\)\)], "Input"] }, Closed]], Cell[TextData[{ "4. ", StyleBox["Linear vs. Nonlinear Systems.", FontWeight->"Bold"], " Linear systems of the form ", StyleBox["Ax", FontWeight->"Bold"], "=", StyleBox["b", FontWeight->"Bold"], " are ubiquitous in modeling situations and their related solution methods. \ Not only do they arise directly, but they frequently arise as sub-problems \ of a more complex problem (e.g., optimization and Markov chains). Error \ formulas may be used to estimate or bound the relative error in the solution, \ ||", StyleBox["\[CapitalDelta]x", FontWeight->"Bold"], "||/||", StyleBox["x", FontWeight->"Bold"], "||, by computing norms and a condition number. This is especially \ important if an ill-conditioned system is suspected. Eigenvalues and \ eigenvectors that satisfy ", StyleBox["Au", FontWeight->"Bold"], "=\[Lambda]", StyleBox["u", FontWeight->"Bold"], ", can also be important. Linear systems can often be applied to \ approximating and solving nonlinear systems (e.g., using a multi-variable \ Taylor Series approximation). Examples:" }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["A. Solving an Ill-Conditioned Vandermonde Linear System", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[n, e, V, x, b, y, W, z]\), "\[IndentingNewLine]", \(n = 6; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ Try\ n = \(6\ and\ n = 15\)\ *) \[IndentingNewLine]e = 1.0;\), "\[IndentingNewLine]", \(\(V = Table[j\^\(i - 1\), {i, 1, n}, {j, 1, n}];\)\), "\[IndentingNewLine]", \(\(x = Table[100, {i, 1, n}];\)\), "\[IndentingNewLine]", \(If[n \[LessEqual] 6, V // MatrixForm]\), "\[IndentingNewLine]", \(\(b = V . x;\)\), "\[IndentingNewLine]", \(\((y = LinearSolve[V, b])\) // MatrixForm\), "\[IndentingNewLine]", \(\(W = Inverse[V];\)\), "\[IndentingNewLine]", \(\((z = LinearSolve[\((e\ V)\), b])\) // MatrixForm\), "\[IndentingNewLine]", \(Print["\", Norm[\((y - x)\), \[Infinity]]]\), "\[IndentingNewLine]", \(Print["\", Norm[\((y - x)\), \[Infinity]]/ Norm[x, \[Infinity]]]\), "\[IndentingNewLine]", \(Print["\", Norm[\((z - x)\), \[Infinity]]]\), "\[IndentingNewLine]", \(Print["\", Norm[\((z - x)\), \[Infinity]]/ Norm[x, \[Infinity]]]\), "\[IndentingNewLine]", \(Print["\", \((Norm[V, \[Infinity]] Norm[W, \[Infinity]])\) // N]\)}], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ B. Linearizing a Nonlinear Bivariate Function About a Given Point\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[n, x, y, \[Delta], l]\), "\[IndentingNewLine]", \(x\_0 =. ; y\_0 =. ; l\_0 =. ; l\_x =. ; l\_y =. ;\), "\[IndentingNewLine]", \(n[x_, y_] := \(\[ExponentialE]\^\(\(-x\)\ y\)\) Sin[x\ y]\), "\[IndentingNewLine]", \(\(x\_0 = 1. ;\)\), "\[IndentingNewLine]", \(\(y\_0 = 2. ;\)\), "\[IndentingNewLine]", \(\[Delta] = 3.0; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (*\ Try\ \[Delta] = 0.5, \ \[Delta] = 1.0, \ \[Delta] = 3.0\ *) \[IndentingNewLine]l\_0 = n[x\ , y] /. {x \[Rule] x\_0, y \[Rule] y\_0};\), "\[IndentingNewLine]", \(\(l\_x = \[PartialD]\_x\ n[x, y] /. {x \[Rule] x\_0, y \[Rule] y\_0};\)\), "\[IndentingNewLine]", \(\(l\_y = \[PartialD]\_y\ n[x, y] /. {x \[Rule] x\_0, y \[Rule] y\_0};\)\), "\[IndentingNewLine]", \(l[x_, y_] = Simplify[l\_0 + \(l\_x\) \((x - x\_0)\) + \(l\_y\) \((y - y\_0)\)]\), "\[IndentingNewLine]", \(\(Plot3D[ Abs[n[x, y] - l[x, y]], {x, x\_0 - \[Delta], x\_0 + \[Delta]}, {y, y\_0 - \[Delta], y\_0 + \[Delta]}];\)\)}], "Input"] }, Closed]], Cell[TextData[{ "5. ", StyleBox["Data and Function Approximation.", FontWeight->"Bold"], " It is not uncommon to require that a data set be replaced by a single \ function (e.g., using the least-squares criterion or spline approximation) or \ that sometimes a complex function be approximated by a simpler function \ (e.g., a Taylor or Chebyshev approximation). In both cases, there is an art \ to selecting the appropriate functional form, and visualization is usually \ necessary to help do this. Once the functional form has been chosen, the \ determination and verification of its optimal parameters is often \ straightforward. Examples:" }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["\<\ A. Determine the Least-Squares Fit of a Linear Parameter Model\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[xydata, xyplot, g, x, gplot]\), "\[IndentingNewLine]", \(\(xydata = {{0.0, 7.3}, {0.5, 9.2}, {1.0, 11.0}, {1.5, 12.3}, {2.0, 13.1}, {2.5, 13.4}, {3.0, 13.6}, {3.5, 13.7}, {4.0, 14.2}, {4.5, 15.4}, {5.0, 17.3}};\)\), "\[IndentingNewLine]", \(\(xyplot = ListPlot[xydata];\)\)}], "Input"], Cell[BoxData[ \(g[x_] = Fit[xydata, {Sin[x], \[ExponentialE]\^\(x/5\)}, {x}]\)], "Input"], Cell[BoxData[{ \(\(gplot = Plot[g[x], {x, 0, 5}];\)\), "\[IndentingNewLine]", \(\(Show[xyplot, gplot];\)\)}], "Input"], Cell[BoxData[ \(\[Sum]\+\(i = 1\)\%\(Length[xydata]\)\((g[xydata[\([i, 1]\)]] - xydata[\ \([i, 2]\)])\)\^2\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ B. Determine the Least-Squares Fit of a Nonlinear Parameter Model [4]\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[pvdata, pvplot, params, v, p, a, b, vplot, pred]\), "\[IndentingNewLine]", \(\(pvdata = {{341948. , 4.81}, {1092759. , 5.88}, {5491. , 3.31}, {49375. , 4.90}, {1340000. , 5.62}, {365. , 2.76}, {2500. , 2.27}, {78200. , 3.85}, {867023. , 5.21}, {14000. , 3.70}, {23700. , 3.27}, {70700. , 4.31}, {304500. , 4.42}, {138000. , 4.39}, {2602000. , 5.05}};\)\), "\[IndentingNewLine]", \(\(Print\ ["\

", \ TableForm[pvdata]];\)\), "\[IndentingNewLine]", \(\(pvplot = ListPlot[pvdata];\)\)}], "Input"], Cell[BoxData[ \(params = FindFit[pvdata, a\ p\^b, {a, b}, p]\)], "Input"], Cell[BoxData[{ \(v[p_] := a\ p\^b /. params\), "\[IndentingNewLine]", \(v[p]\)}], "Input"], Cell[BoxData[{ \(\(vplot = Plot[v[p], {p, 0, 2602000}];\)\), "\[IndentingNewLine]", \(\(Show[pvplot, vplot];\)\)}], "Input"], Cell[BoxData[ \(\[Sum]\+\(i = 1\)\%\(Length[pvdata]\)\((v[pvdata[\([i, 1]\)]] - pvdata[\ \([i, 2]\)])\)\^2\)], "Input"], Cell[BoxData[{ \(\(pred = Table[{pvdata[\([i, 2]\)], v[pvdata[\([i, 1]\)]]}, {i, 1, Length[pvdata]}];\)\), "\[IndentingNewLine]", \(\(Print["\", TableForm[pred]];\)\)}], "Input"] }, Closed]], Cell[TextData[{ "6. ", StyleBox["Computer Arithmetic.", FontWeight->"Bold"], " Although integer arithmetic is exact in ", StyleBox["Mathematica", FontSlant->"Italic"], ", neither integer nor \"real\" (floating-point) computer arithmetic is \ exactly like its mathematical counterpart when using compiled languages such \ as C/C++ and Fortran. FP arithmetic is especially vulnerable to roundoff \ error and it can be important to assess the effect of roundoff error in \ modeling situations (especially if single precision is to be used). Example: \ " }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["\<\ A. Evaluate a(b - c) in Simulated 4-Digit FP Arithmetic With 5 Roundoffs\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[fl]\), "\[IndentingNewLine]", \(<< NumericalMath`ComputerArithmetic`\)}], "Input"], Cell[BoxData[ \(\(SetArithmetic[4, 10, RoundingRule \[Rule] RoundToInfinity, ExponentRange \[Rule] {\(-50\), 50}, MixedMode \[Rule] True];\)\)], "Input"], Cell[BoxData[ \(fl[x_] := ComputerNumber[x]\)], "Input"], Cell[BoxData[{ \(fl[fl[1234.0]*fl[fl[567.84] - fl[567.75]]]\), "\[IndentingNewLine]", \(fl[567.84]\), "\[IndentingNewLine]", \(fl[567.75]\)}], "Input"] }, Closed]], Cell[TextData[{ "7. ", StyleBox["Uncertainty and Sensitivity in Computation. ", FontWeight->"Bold"], " It is not uncommon to have measured or computed quantities to be used in \ a formula, where these values are not known exactly, but may be approximately \ known or are known to be within a given domain. In the first case, one may \ wish to know the first-order error estimates, so partial derivatives can be \ used in a first-order multivariate Taylor Series. In the second case, one \ may want to know the range of the answer, so interval arithmetic can be used. \ Examples: " }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["A. First-Order Cylinder Volume Sensitivity", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[V, R, H, \[CapitalDelta]R, \[CapitalDelta]H]\), "\[IndentingNewLine]", \(\(V = \[Pi]\ \(R\^2\) H;\)\), "\[IndentingNewLine]", \(\((\[PartialD]\_R\ V)\) \[CapitalDelta]R\ + \ \((\[PartialD]\_H\ V)\) \[CapitalDelta]H\), "\[IndentingNewLine]", \(Collect[%, \[Pi]] /. {R \[Rule] 2, H \[Rule] 6}\)}], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ B. Interval Arithmetic to Assess Equivalent Resistance Formulas [9]\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[ \(\(\( (*\ \(\(R\_1\) R\_2\)\/\(R\_1 + R\_2\)\ with\ \(R\_1\) in\ [4\/5, 1]\ and\ R\_2\ in\ [2, 5\/2]\ *) \)\(\[IndentingNewLine]\)\(\(Interval[{4/5, 1}] \ Interval[{2, 5/2}]\)\/\(Interval[{4/5, 1}] + Interval[{2, 5/2}]\)\ \[IndentingNewLine] %[\([1, 2]\)] - %[\([1, 1]\)] // N\)\)\)], "Input"], Cell[BoxData[ \(\(\( (*\ 1\/\(1\/R\_1 + 1\/R\_2\)\ with\ \(R\_1\) in\ [4\/5, 1]\ and\ R\_2\ in\ [2, 5\/2]\ *) \)\(\[IndentingNewLine]\)\(1\/\(1\/Interval[{4/5, 1}] + 1\ \/Interval[{2, 5/2}]\)\[IndentingNewLine] %[\([1, 2]\)] - %[\([1, 1]\)] // N\)\)\)], "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["\<\ Simulation: This is the most general category where models must often be \ implemented by writing application-specific programs.\ \>", "Text", FontFamily->"Verdana", FontSize->14, FontWeight->"Bold", FontColor->RGBColor[0.286275, 0.294118, 0.627451]], Cell[TextData[{ "8. ", StyleBox["Discrete Equation Models.", FontWeight->"Bold"], " These describe the relationship between the state of some system or \ process between discrete intervals. Difference equation models are among the \ simplest models to implement in code and to study. They can be deterministic \ or stochastic. They tend to be straightforward (when special coding \ techniques are not necessary) and intuitive. Examples:" }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["A. Simple Deterministic Biological Population Dynamics", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[old, maxperiod, growthrate, popseq, new]\), "\[IndentingNewLine]", \(\(old = 10;\)\), "\[IndentingNewLine]", \(\(maxperiod = 50;\)\), "\[IndentingNewLine]", \(\(growthrate = 0.03;\)\), "\[IndentingNewLine]", \(\(popseq = {old};\)\), "\[IndentingNewLine]", \(\(Do[\ \((new = old + growthrate\ old; \ popseq = Append[popseq, new]; \ old = new)\), \[IndentingNewLine]{maxperiod}];\)\), "\ \[IndentingNewLine]", \(\(ListPlot[popseq, PlotStyle \[Rule] PointSize[0.02]];\)\)}], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ B. Generalized Difference Equation Simulation Module and Cases\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[TextData[{ "Assume a model of the form ", Cell[BoxData[ \(TraditionalForm\`p\_\(n + 1\)\ = \ f(p\_n)\)]], ", with ", Cell[BoxData[ \(TraditionalForm\`p\_0\)]], " given. If ", Cell[BoxData[ \(TraditionalForm\`f(p\_n)\)]], " is of the form ", Cell[BoxData[ \(TraditionalForm\`p\_n\ + \ g(p\_n)\)]], " then this is called a difference equation model. The following ", StyleBox["Mathematica", FontSlant->"Italic"], " module will allow the user to create and plot the list of values \ associated with this single relationship. The Computational Scientist \ Modeler must define the five arguments below to describe the specific problem \ that is to be solved. After the table, the plot, the min and max are \ produced, then the Modeler can do the analysis and answer questions. The \ calling sequence is: \n\ngMdiffeq[ maxntime, startime, startval, ptable, f ]" }], "Text", CellFrame->True, FontFamily->"Arial", Background->GrayLevel[0.833326]], Cell[BoxData[ \(\(gMdiffeq[maxntime_, startime_, startval_, \ ptable_, \ f_] := Module[{old, time, maxval, minval, diffseq, new, pdot, pcon}, \[IndentingNewLine] (*\ Generate\ the\ List\ and\ Keep\ Track\ of\ the\ Minimum\ and\ \ Maximum\ *) \[IndentingNewLine]old = startval; \n time = startime; \[IndentingNewLine]maxval\ = \ old; \[IndentingNewLine]minval = old; \[IndentingNewLine]diffseq\ = \ {{time, N[old]}}; \n Do[\((new\ = \ f[old\ ]; \[IndentingNewLine]\ \ time\ = \ time\ + \ 1; \[IndentingNewLine]\ \ If[maxval < new, maxval = new]; \[IndentingNewLine]\ \ If[minval\ > \ new, \ minval = new]; \n\ \ \ \ \ \ \ \ \ diffseq\ = \ Append[diffseq, \ {time, N[new]}]; \n\ \ \ \ \ \ \ \ \ old\ = \ new)\), \n\t\ \ \ \ \ {maxntime}]; \n (*\ Display\ the\ List\ as\ a\ Table\ and\ Suppress\ With\ a\ Semi - Colon\ *) \[IndentingNewLine]If[ptable, Print[\ TableForm[diffseq]]]; \[IndentingNewLine] (*\ Plot\ the\ List\ With\ the\ Given\ Domain\ and\ Range\ Limits\ \ *) \[IndentingNewLine]pdot = ListPlot[ diffseq, \ \[IndentingNewLine]PlotStyle\ -> \ PointSize[0.02], DisplayFunction \[Rule] Identity, \n\ \ \ \ PlotRange\ -> \ {{startime, maxntime}, {minval, maxval}}]; \n pcon = ListPlot[ diffseq, \ \[IndentingNewLine]PlotJoined \[Rule] True, DisplayFunction \[Rule] Identity, \n\ \ \ \ PlotRange\ -> \ {{startime, maxntime}, {minval, maxval}}]; \[IndentingNewLine]Show[ pdot, pcon, DisplayFunction \[Rule] $DisplayFunction]; \n (*\ Print\ the\ Minimum\ and\ Maximum\ Values\ \ *) \[IndentingNewLine]Print["\", N[minval], "\< and the Max is \>", N[maxval]]];\)\)], "Input"], Cell[BoxData[ \(\(\( (*\ Case\ 1\ [4]\ *) \)\(\[IndentingNewLine]\)\(Clear[f, startime, startval, maxntime]\[IndentingNewLine] (*\ The\ Modeler\ Defines\ the\ Function\ of\ p\ *) \[IndentingNewLine] \(f[p_]\ := \ 1.01 p - 880.87;\)\[IndentingNewLine] (*\ The\ Modeler\ Specifies\ the\ Initial\ Condition\ \ *) \[IndentingNewLine] \(startime\ = \ 0;\)\[IndentingNewLine] \(startval\ = \ 80000;\)\n (*\ The\ Modeler\ Specifies\ the\ Maximum\ Number\ of\ Periods\ \ *) \[IndentingNewLine] \(maxntime\ = \ 12;\)\[IndentingNewLine] \(gMdiffeq[maxntime, startime, startval, \ False, \ f];\)\)\)\)], "Input"], Cell[BoxData[ \(\(\( (*\ Case\ 2\ [4]\ *) \)\(\[IndentingNewLine]\)\(Clear[f, startime, startval, maxntime] (*\ The\ Modeler\ Defines\ the\ Function\ of\ p\ *) \[IndentingNewLine] \(f[p_]\ := \ p + 0.00082 \((665 - p)\) p;\)\[IndentingNewLine] (*\ The\ Modeler\ Specifies\ the\ Initial\ Condition\ \ *) \[IndentingNewLine] \(startime\ = \ 0;\)\[IndentingNewLine] \(startval\ = \ 9.6;\)\[IndentingNewLine] (*\ The\ Modeler\ Specifies\ the\ Maximum\ Number\ of\ Periods\ *) \n \(maxntime\ = \ 18;\)\[IndentingNewLine] \(gMdiffeq[maxntime, startime, startval, \ True, \ f];\)\)\)\)], "Input"], Cell[BoxData[ \(\(\( (*\ Case\ 3\ [8]\ *) \)\(\[IndentingNewLine]\)\(Clear[f, startime, startval, maxntime] (*\ The\ Modeler\ Defines\ the\ Function\ of\ p\ *) \[IndentingNewLine] \(f[p_]\ := \ 3.75 \((1\ - \ p)\) p;\)\[IndentingNewLine] (*\ The\ Modeler\ Specifies\ the\ Initial\ Condition\ \ *) \[IndentingNewLine] \(startime\ = \ 0;\)\[IndentingNewLine] \(startval\ = \ 0.1;\)\[IndentingNewLine] (*\ The\ Modeler\ Specifies\ the\ Maximum\ Number\ of\ Periods\ *) \n \(maxntime\ = \ 20;\)\[IndentingNewLine] \(gMdiffeq[maxntime, startime, startval, \ True, \ f];\)\)\)\)], "Input"] }, Closed]], Cell[TextData[{ "9. ", StyleBox["Differential and Integral Equation Models.", FontWeight->"Bold"], " Differential equations describe the relationship between the state of \ something and its instantaneous rate of change with respect to some variable. \ These causal models are often involved, possibly requiring systems of \ ordinary or partial differential equations and boundary conditions to \ describe the physical problem. Analytic solutions are desirable, but often \ the solutions must be numeric. Integral equation models describe the \ relationship between the state of something and the accumulative changes in \ all of its previous states. These models can also be quite involved, \ requiring the solution to single and multiple integrals. Examples:" }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["A. Investigate Newton's Law of Cooling", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[TextData[{ "According to Newton's law of cooling, the time rate of change in \ temperature, du/dt, is proportional to the temperature difference between the \ current temperature u(t) and the given lower steady-state temperature ", Cell[BoxData[ \(TraditionalForm\`u\_s\)]], ". For a decrease, the given constant of proportionality is -k where k\ \[GreaterEqual]0. This first order ODE is given by the following \ relationship: du/dt = -k(u - ", Cell[BoxData[ \(TraditionalForm\`u\_s\)]], "), with the given initial condition of u(t) = u(0) = ", Cell[BoxData[ \(TraditionalForm\`u\_0\)]], " at time t=0.\n\n1. Solve this ODE for u(t) in simplest form when ", Cell[BoxData[ \(TraditionalForm\`u\_0\)]], " = 70 Fahrenheit and k = 0.462 and plot u(t) for 0 \[LessEqual]t\ \[LessEqual]3 minutes. 2. Determine the temperature at t = 3 minutes. 3. \ Determine the time in minutes when the temperature is 15 degrees Fahrenheit" }], "Text", CellFrame->True, Background->GrayLevel[0.833326]], Cell[BoxData[{ \(Clear[ans, u, t, ua]\), "\[IndentingNewLine]", \(ans = DSolve[{\(u'\)[t] \[Equal] \ \(-0.462\)\ \((u[t] - 10)\), u[0] \[Equal] 70}, u[t], t]\), "\[IndentingNewLine]", \(ua[t_] = Simplify[\(ans[\([1, 1]\)]\)[\([2]\)]]\), "\[IndentingNewLine]", \(\(Plot[ua[t], {t, 0, 3}];\)\)}], "Input"], Cell[BoxData[ \(\(Print["\", \ ua[3]];\)\)], "Input"], Cell[BoxData[ \(Solve[ua[t] \[Equal] 15, {t}]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["B. Approximate the Behavior of an ODE/IVP System [1]", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(dx\/dt\ = \ 10 \((y\ - \ x)\); \ \ \ \ \ \ \ \ \ \ \ \ \ \ x\_0 = 1\), "\[IndentingNewLine]", \(dy\/dt\ = \ 28 x\ - \ y\ - \ x\ z; \ \ \ \ \ y\_0 = 5\), "\[IndentingNewLine]", \(dz\/dt\ = \ x\ y\ - \ \(8\/3\) z; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\_0 = 10\)}], "Text", CellFrame->True, FontFamily->"Times New Roman", Background->GrayLevel[0.833326]], Cell[BoxData[{ \(Clear[x, y, z, xn, yn, zn, t]\), "\[IndentingNewLine]", \(x\_0 =. ; y\_0 =. ; z\_0 =. ;\)}], "Input"], Cell[BoxData[ \(\(\(\(x\_0 = 1\) \)\(;\)\(\ \)\(\(y\_0 = 5\) \)\(;\)\(\ \)\(\(z\_0 = 10\) \)\(;\)\(\ \)\)\)], "Input", Background->GrayLevel[1]], Cell[BoxData[ \(\(ans = NDSolve[{\(x'\)[t]\ \[Equal] \ \ 10 \((y[t]\ - \ x[t])\), x[0] \[Equal] \ x\_0, \[IndentingNewLine]\(y'\)[t]\ \[Equal] \ 28 x[t]\ - \ y[t]\ - \ x[t]\ z[t], y[0] \[Equal] \ y\_0, \[IndentingNewLine]\(z'\)[t]\ \[Equal] \ x[t]\ y[t]\ - \ \(8\/3\) z[t], z[0] \[Equal] \ z\_0}, {x[t], y[t], z[t]}, {t, 0, 5}];\)\)], "Input"], Cell[BoxData[{ \(xn[t_] = ans[\([1, 1, 2]\)]\), "\[IndentingNewLine]", \(yn[t_] = ans[\([1, 2, 2]\)]\), "\[IndentingNewLine]", \(zn[t_] = ans[\([1, 3, 2]\)]\), "\[IndentingNewLine]", \(\(Plot[{xn[t], yn[t], zn[t]}, {t, 0, 1}];\)\)}], "Input"], Cell[BoxData[{ \(Print["\", xn[0.5]]\), "\[IndentingNewLine]", \(Print["\", yn[0.5]]\), "\[IndentingNewLine]", \(Print["\", zn[0.5]]\)}], "Input"], Cell[BoxData[ \(\(Plot[{xn[t], yn[t], zn[t]}, {t, 0, 5}];\)\)], "Input"] }, Closed]], Cell[TextData[{ "10. ", StyleBox["Monte Carlo Models. ", FontWeight->"Bold"], " These models can be used when analytic and numeric solutions are both \ computationally impractical or when only an approximate solution is needed. \ Here one simulates an experiment by employing pseudo-random numbers, which \ are used to generate samples. It is crucial that a good PRN generator is \ chosen, that is compatible with the computer arithmetic being used. \ Typically, several simulations are done for each estimate. Variance-reducing \ techniques can be employed. One can inject randomness into other types of \ models by replacing deterministic values by stochastic values, but in a Monte \ Carlo simulation, randomness is the primary focus. Examples:" }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["\<\ A. A Simple Stochastic Simulation on a Generic Sigmoid Activation [6]\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[f, a, b, c, d, x]\), "\[IndentingNewLine]", \(<< Statistics`ContinuousDistributions`\)}], "Input"], Cell[BoxData[{ \(f[a_, b_, c_, d_, x_] := \(\(a\/\(1 + \[ExponentialE]\^\(\(-b\)\ x + \ c\)\)\)\(+\)\(d\)\(\ \ \ \ \ \ \ \ \)\( (*\ b > 0, \ f : \ R\ \[Rule] \ \((d, a + d)\)\ *) \)\)\), "\[IndentingNewLine]", \(SeedRandom[1]\)}], "Input"], Cell[BoxData[ \(\(Plot[f[2, 0.5, 0, 1, x], {x, \(-10\), 10}];\)\)], "Input"], Cell[BoxData[ \(\(Plot[ f[Random[NormalDistribution[2, 0.1]], 0.5, 0, 1, x], {x, \(-10\), 10}];\)\)], "Input"], Cell[BoxData[ \(\(Plot[ f[2, 0.5, Random[NormalDistribution[0, 0.1]], 1, x], {x, \(-10\), 10}];\)\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ B. Monte Carlo Volume Bounded by an Elliptic Paraboloid and xy Limits\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[z, x, y, vol, zbig, cuboid4th, ntry, xs, ys]\), "\[IndentingNewLine]", \(z[x_, y_] := 4 - x\^2 - \(1\/4\) y\^2\)}], "Input"], Cell[BoxData[ \(\(Plot3D[z[x, y], {x, \(-2\), 2}, {y, \(-4\), 4}];\)\)], "Input"], Cell[BoxData[ \(\(SeedRandom[1];\)\)], "Input"], Cell[BoxData[{ \(\(vol = 0. ;\)\), "\[IndentingNewLine]", \(\(zbig = 4;\)\), "\[IndentingNewLine]", \(\(cuboid4th = 2*4*zbig;\)\), "\[IndentingNewLine]", \(\(ntry = 100000;\)\), "\[IndentingNewLine]", \(\(Do[\((xs = Random[Real, {0, 2}]; ys = Random[Real, {0, 4}]; If[Random[Real, {0, zbig}] \[LessEqual] z[xs, ys], \(vol++\)])\), {ntry}];\)\), "\[IndentingNewLine]", \(Print["\", 4 \((vol\/ntry)\) cuboid4th]\)}], "Input"], Cell[BoxData[{ \(4 \(\[Integral]\_0\%2\(\[Integral]\_0\%\(2 \@\( 4 - x\^2\)\)\((4 - x\^2 - \(1\/4\) y\^2)\) \[DifferentialD]y \[DifferentialD]x\)\)\), "\ \[IndentingNewLine]", \(% // N\)}], "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["\<\ Optimization: This important category contains models that are designed to \ produce the best solution and typically require many controlled evaluations, \ to determine a minimum or maximum.\ \>", "Text", FontFamily->"Verdana", FontSize->14, FontWeight->"Bold", FontColor->RGBColor[0.286275, 0.294118, 0.627451]], Cell[TextData[{ "11. ", StyleBox["Continuous Optimization Models.", FontWeight->"Bold"], " These models involve optimizing a function of one or more continuous \ independent variables, where the variables may be subject to one or more \ functional constraints. Constrained optimization problems are also known as \ Mathematical Programming problems and come in several forms (e.g., Linear \ Programming, Quadratic Programming, and Nonlinear Programming). The \ complexity increases with the number of variables, the amount of nonlinearity \ present in the functions, and the number of constraints. Examples: " }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["\<\ A. The Shekel Unconstrained Bivariate Maximization Problem [3]\ \>", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(\(Clear[f, x, y];\)\), "\[IndentingNewLine]", \(\(f = 1\/\(\((x - 4)\)\^2 + \((y - 4)\)\^2 + 0.1\) + 1\/\(\((x - 1)\)\^2 + \((y - 1)\)\^2 + 0.2\) + 1\/\(\((x - 8)\)\^2 + \((y - 8)\)\^2 + 0.2\);\)\), "\ \[IndentingNewLine]", \(\)}], "Input"], Cell[BoxData[{ \(\(Plot3D[f, {x, 0, 10}, {y, 0, 10}];\)\), "\[IndentingNewLine]", \(\(ContourPlot[f, {x, 0, 10}, {y, 0, 10}];\)\)}], "Input"], Cell[BoxData[ \(Maximize[f, {x, y}]\)], "Input"], Cell[BoxData[ \(FindMaximum[f, {x, 8}, {y, 8}]\)], "Input"], Cell[BoxData[ \(FindMaximum[f, {x, 4}, {y, 4}]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["B. A Simple and Small Linear Programming Problem", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[x, y]\), "\[IndentingNewLine]", \(Maximize[{3 x + 2 y, x + 12 y \[LessEqual] 20, x - y \[LessEqual] 2, 0 \[LessEqual] x \[LessEqual] 5, 0 \[LessEqual] y \[LessEqual] 10}, {x, y}]\), "\[IndentingNewLine]", \(% // N\)}], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["C. A Small Nonlinear Programming Problem [2]", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[x, y]\), "\[IndentingNewLine]", \(Minimize[{Abs[x - 2] + Abs[y - 2], y\^2 \[LessEqual] x, x\^2 + y\^2 \[Equal] 1}, {x, y}]\), "\[IndentingNewLine]", \(% // N\)}], "Input"] }, Closed]], Cell[TextData[{ "12. ", StyleBox["Discrete Optimization Models.", FontWeight->"Bold"], " These models are like their continuous counterparts, except that some or \ all of the variables are required to take on discrete values (e.g., Integer \ Linear Programming). Combinatorial techniques must also be used in solving \ these models. Example: " }], "Text", FontFamily->"Verdana", FontSize->14], Cell[CellGroupData[{ Cell["A. A Simple and Small Integer Linear Programming Problem", "Text", FontFamily->"Verdana", FontWeight->"Bold", FontColor->RGBColor[1, 0.501961, 0]], Cell[BoxData[{ \(Clear[x, y]\), "\[IndentingNewLine]", \(NMaximize[{3 x + 2 y, x + 12 y \[LessEqual] 20, x - y \[LessEqual] 2, 0 \[LessEqual] x \[LessEqual] 5, 0 \[LessEqual] y \[LessEqual] 10, \ x\ \[Element] \ Integers, \ y \[Element] \ Integers}, {x, y}]\)}], "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["References:", "Text", FontFamily->"Verdana", FontSize->14, FontWeight->"Bold", FontColor->RGBColor[0.286275, 0.294118, 0.627451]], Cell[TextData[{ "1. ", StyleBox["Chicone, Carmen", FontWeight->"Bold"], StyleBox[",", FontVariations->{"CompatibilityType"->0}], StyleBox[" ", FontWeight->"Bold"], "Book Review, ", StyleBox["Introduction to Dynamical Systems", FontSlant->"Italic"], ", by M. Brin and G. Stuck, Cambridge University Press, 2002. Appeared in \ SIAM Review, Vol. 46, No. 1, March 2004, pp. 157-162, SIAM Press.\n\n2. ", StyleBox["Fiacco, Anthony, V. and Garth McCormick", FontWeight->"Bold"], StyleBox[",", FontVariations->{"CompatibilityType"->0}], StyleBox[" ", FontWeight->"Bold"], StyleBox["Nonlinear Programming: Sequential Unconstrained Minimization \ Techniques", FontSlant->"Italic"], ", John Wiley & Sons, New York, NY, 1968, 210 pages.\n\n3. ", StyleBox["Floudas, Christodoulos, A.", FontWeight->"Bold"], StyleBox[",", FontVariations->{"CompatibilityType"->0}], StyleBox[" Ed., ", FontWeight->"Bold"], StyleBox["Handbook of Test Problems in Local and Global Optimization", FontSlant->"Italic"], ", Kluwer Academic Publishers, Boston, MA, 1999, 441 pages.\n\n4. ", StyleBox["Giordano, Frank R., et al.", FontWeight->"Bold"], StyleBox[",", FontVariations->{"CompatibilityType"->0}], StyleBox[" ", FontWeight->"Bold"], StyleBox["A First Course in Mathematical Modeling", FontSlant->"Italic"], ", 3rd Ed., Thompson Brooks/Cole, Pacific Grove, CA, 2003, 538 pages.\n\n5. \ ", StyleBox["Noyes, James L.", FontWeight->"Bold"], StyleBox[",", FontVariations->{"CompatibilityType"->0}], StyleBox[" ", FontWeight->"Bold"], StyleBox["Artificial Intelligence with Common Lisp: Fundamentals of \ Symbolic and Numeric Processing", FontSlant->"Italic"], ", D.C. Heath & Co., Lexington, MA, 1992, 622 pages.\n\n6. ", StyleBox["Noyes, James L.", FontWeight->"Bold"], StyleBox[",", FontVariations->{"CompatibilityType"->0}], StyleBox[" ", FontWeight->"Bold"], "\"Neural Network Training,\" ", StyleBox["Handbook of Neural Computation", FontSlant->"Italic"], ", Chapter B3, Oxford University Press, New York, NY, 1996, pp. B3:1-B3:31.\ \n\n7. ", StyleBox["Noyes, James L.", FontWeight->"Bold"], StyleBox[",", FontVariations->{"CompatibilityType"->0}], StyleBox[" ", FontWeight->"Bold"], "\"A First Course in Computational Science (Why A Math Book Isn't \ Enough),\" ", StyleBox["SIGCSE Bulletin", FontSlant->"Italic"], ", Chapter B3, Vol. 34, No. 1, March 2002, pp. 18-22, ACM Press.\n\n8. ", StyleBox["Silver, Brian L.", FontWeight->"Bold"], StyleBox[",", FontVariations->{"CompatibilityType"->0}], StyleBox[" ", FontWeight->"Bold"], StyleBox["The Ascent of Science", FontSlant->"Italic"], ", Oxford University Press, New York, NY, 1998, 534 pages.\n\n9. ", StyleBox["Skeel, Robert D. and Jerry B. Keiper", FontWeight->"Bold"], StyleBox[",", FontVariations->{"CompatibilityType"->0}], StyleBox[" ", FontWeight->"Bold"], StyleBox["Elementary Numerical Computing with Mathematica", FontSlant->"Italic"], ", Stipes Publishing L.L.C., Champaign, IL, 2001, 434 pages.\n\n" }], "Text", FontFamily->"Verdana", FontSize->14] }, Closed]] }, FrontEndVersion->"5.0 for Microsoft Windows", ScreenRectangle->{{0, 1400}, {0, 963}}, CellGrouping->Manual, WindowSize->{1273, 923}, WindowMargins->{{14, Automatic}, {Automatic, 0}}, Magnification->2 ] (******************************************************************* 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->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[1754, 51, 638, 23, 436, "Title"], Cell[2395, 76, 133, 2, 296, "Title"], Cell[2531, 80, 189, 5, 166, "Subtitle"], Cell[2723, 87, 112, 5, 166, "Subtitle"], Cell[CellGroupData[{ Cell[2860, 96, 145, 4, 68, "Text"], Cell[3008, 102, 985, 17, 508, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[4030, 124, 269, 7, 98, "Text"], Cell[CellGroupData[{ Cell[4324, 135, 947, 17, 508, "Text"], Cell[CellGroupData[{ Cell[5296, 156, 180, 5, 63, "Text"], Cell[5479, 163, 102, 2, 89, "Input"], Cell[5584, 167, 83, 1, 85, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[5704, 173, 173, 5, 53, "Text"], Cell[5880, 180, 207, 5, 141, "Input"], Cell[6090, 187, 69, 1, 55, "Input"], Cell[6162, 190, 115, 2, 83, "Input"], Cell[6280, 194, 123, 2, 83, "Input"], Cell[6406, 198, 130, 3, 83, "Input"], Cell[6539, 203, 66, 1, 78, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[6642, 209, 172, 5, 53, "Text"], Cell[6817, 216, 134, 2, 101, "Input"], Cell[6954, 220, 77, 1, 83, "Input"], Cell[7034, 223, 212, 4, 106, "Input"], Cell[7249, 229, 136, 2, 120, "Input"] }, Closed]] }, Open ]], Cell[7412, 235, 650, 13, 348, "Text"], Cell[CellGroupData[{ Cell[8087, 252, 143, 3, 63, "Text"], Cell[8233, 257, 294, 6, 191, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[8564, 268, 188, 6, 53, "Text"], Cell[8755, 276, 621, 14, 330, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[9413, 295, 183, 5, 53, "Text"], Cell[9599, 302, 294, 6, 157, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[9930, 313, 151, 3, 53, "Text"], Cell[10084, 318, 444, 8, 124, "Input"] }, Closed]], Cell[10543, 329, 545, 12, 258, "Text"], Cell[CellGroupData[{ Cell[11113, 345, 157, 3, 63, "Text"], Cell[11273, 350, 211, 4, 87, "Input"] }, Closed]], Cell[11499, 357, 1157, 33, 458, "Text"], Cell[CellGroupData[{ Cell[12681, 394, 157, 3, 63, "Text"], Cell[12841, 399, 1495, 29, 533, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[14373, 433, 175, 5, 53, "Text"], Cell[14551, 440, 1239, 24, 395, "Input"] }, Closed]], Cell[15805, 467, 709, 14, 338, "Text"], Cell[CellGroupData[{ Cell[16539, 485, 172, 5, 63, "Text"], Cell[16714, 492, 348, 5, 157, "Input"], Cell[17065, 499, 93, 1, 57, "Input"], Cell[17161, 502, 127, 2, 89, "Input"], Cell[17291, 506, 123, 2, 102, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[17451, 513, 179, 5, 53, "Text"], Cell[17633, 520, 632, 11, 259, "Input"], Cell[18268, 533, 77, 1, 56, "Input"], Cell[18348, 536, 99, 2, 90, "Input"], Cell[18450, 540, 133, 2, 89, "Input"], Cell[18586, 544, 123, 2, 102, "Input"], Cell[18712, 548, 251, 5, 89, "Input"] }, Closed]], Cell[18978, 556, 624, 15, 298, "Text"], Cell[CellGroupData[{ Cell[19627, 575, 182, 5, 63, "Text"], Cell[19812, 582, 114, 2, 89, "Input"], Cell[19929, 586, 175, 3, 89, "Input"], Cell[20107, 591, 60, 1, 55, "Input"], Cell[20170, 594, 165, 3, 123, "Input"] }, Closed]], Cell[20350, 600, 646, 13, 338, "Text"], Cell[CellGroupData[{ Cell[21021, 617, 144, 3, 63, "Text"], Cell[21168, 622, 367, 6, 184, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[21572, 633, 177, 5, 53, "Text"], Cell[21752, 640, 336, 6, 182, "Input"], Cell[22091, 648, 297, 6, 216, "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[22437, 660, 268, 7, 98, "Text"], Cell[22708, 669, 505, 11, 268, "Text"], Cell[CellGroupData[{ Cell[23238, 684, 156, 3, 63, "Text"], Cell[23397, 689, 566, 11, 293, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[24000, 705, 172, 5, 53, "Text"], Cell[24175, 712, 1006, 25, 326, "Text"], Cell[25184, 739, 2043, 34, 939, "Input"], Cell[27230, 775, 658, 12, 361, "Input"], Cell[27891, 789, 645, 11, 361, "Input"], Cell[28539, 802, 640, 11, 361, "Input"] }, Closed]], Cell[29194, 816, 830, 15, 418, "Text"], Cell[CellGroupData[{ Cell[30049, 835, 140, 3, 63, "Text"], Cell[30192, 840, 1038, 22, 325, "Text"], Cell[31233, 864, 347, 7, 157, "Input"], Cell[31583, 873, 67, 1, 55, "Input"], Cell[31653, 876, 62, 1, 55, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[31752, 882, 154, 3, 53, "Text"], Cell[31909, 887, 418, 10, 234, "Text"], Cell[32330, 899, 127, 2, 89, "Input"], Cell[32460, 903, 159, 3, 55, "Input"], Cell[32622, 908, 433, 7, 157, "Input"], Cell[33058, 917, 261, 4, 157, "Input"], Cell[33322, 923, 193, 3, 123, "Input"], Cell[33518, 928, 76, 1, 55, "Input"] }, Closed]], Cell[33609, 932, 817, 15, 418, "Text"], Cell[CellGroupData[{ Cell[34451, 951, 179, 5, 63, "Text"], Cell[34633, 958, 130, 2, 89, "Input"], Cell[34766, 962, 284, 6, 114, "Input"], Cell[35053, 970, 80, 1, 55, "Input"], Cell[35136, 973, 133, 3, 55, "Input"], Cell[35272, 978, 133, 3, 55, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[35442, 986, 179, 5, 53, "Text"], Cell[35624, 993, 163, 3, 144, "Input"], Cell[35790, 998, 85, 1, 80, "Input"], Cell[35878, 1001, 51, 1, 80, "Input"], Cell[35932, 1004, 492, 8, 319, "Input"], Cell[36427, 1014, 243, 5, 166, "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[36719, 1025, 330, 8, 138, "Text"], Cell[37052, 1035, 676, 13, 388, "Text"], Cell[CellGroupData[{ Cell[37753, 1052, 172, 5, 63, "Text"], Cell[37928, 1059, 302, 7, 161, "Input"], Cell[38233, 1068, 150, 2, 89, "Input"], Cell[38386, 1072, 52, 1, 55, "Input"], Cell[38441, 1075, 63, 1, 55, "Input"], Cell[38507, 1078, 63, 1, 55, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[38607, 1084, 150, 3, 53, "Text"], Cell[38760, 1089, 285, 5, 148, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[39082, 1099, 146, 3, 53, "Text"], Cell[39231, 1104, 217, 4, 150, "Input"] }, Closed]], Cell[39463, 1111, 409, 10, 218, "Text"], Cell[CellGroupData[{ Cell[39897, 1125, 158, 3, 63, "Text"], Cell[40058, 1130, 311, 5, 148, "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[40418, 1141, 143, 4, 58, "Text"], Cell[40564, 1147, 3234, 94, 1428, "Text"] }, Closed]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)