(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 3.0, MathReader 3.0, or any compatible application. The data for the notebook starts with the line of 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[ 45276, 1240]*) (*NotebookOutlinePosition[ 46352, 1277]*) (* CellTagsIndexPosition[ 46308, 1273]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{Cell[TextData["Symbolic Regression"], "Title", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["Robert B. Nachbar"], "Subtitle", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Merck Research Laboratories\nRahway, NJ 07065\nnachbar@merck.com"], "Subsubtitle", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[ \(<< "\"\)], "Input", InitializationCell->True, AspectRatioFixed->True], Cell[TextData["GeneticProgramming.m, version 2.1."], "Print", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[BoxData[ \(<< "\"\)], "Input", InitializationCell->True, AspectRatioFixed->True], Cell[TextData["SymbolicRegression.m, version 1.0."], "Print", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[TextData["Getting Aquainted"], "Section", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[TextData["GeneticProgramming"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[ \(Scan[ToExpression["\"<>#1<>"\<::usage]\>"]&, Names["\"]]\)], "Input", AspectRatioFixed->True], Cell[TextData[ "AdjustedFitnessOverRun::usage: \n AdjustedFitnessOverRun is an output \ option for GeneticProgram\n that points to the list of \ {min,Q1,median,Q3,max} of the\n adjusted fitness over the run."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "BestOfRun::usage: \n BestOfRun is an output option for GeneticProgram that \ points\n to the best expression tree of the run."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "CollectStatistics::usage: \n CollectStatistics is an input option for \ GeneticProgram that\n indicates that statistics should be collected over \ the run."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "CrossOver::usage: \n CrossOver[{mom,dad}] is a genetic operator that \ returns a list\n of two new expressions made by exchanging a \ subexpression\n from dad with a subexpression from mom."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "CrossOverKoza::usage: \n CrossOverKoza[{mom,dad},pint] is a genetic \ operator that\n returns a list of two new expressions made by exchanging \ a\n subexpression from dad with a subexpression from mom with\n \ probability pint that the exchange takes place at internal\n nodes."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "DrawExpression::usage: \n DrawExpression[expr] draws the tree structure of \ an expression\n and labels the internal nodes with the corresponding\n \ functions and the external nodes with the terminals."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ExpressionDepthOverRun::usage: \n ExpressionDepthOverRun is an output \ option for GeneticProgram\n that points to the list of \ {min,Q1,median,Q3,max} of\n expression depth over the run."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ExpressionLabel::usage: \n ExpressionLabel is an option for DrawExpression \ that specifies\n the text for the tree label."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ExpressionSizeOverRun::usage: \n ExpressionSizeOverRun is an output option \ for GeneticProgram\n that points to the list of {min,Q1,median,Q3,max} of\ \n expression size/complexity over the run."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ExpressionStyle::usage: \n ExpressionStyle is an option for DrawExpression \ that specifies\n the graphics directives for sub expressions. A list of \ pairs\n of expression parts and graphics directives is expected:\n \ {..., {parti, gdiri}, ...}, where parti is a list of indices\n and gdiri \ is a list of directives."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "FinalFit::usage: \n FinalFit is an output option for GeneticProgram that \ points to\n the raw fitness of the final population of expressions."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "FinalPop::usage: \n FinalPop is an output option for GeneticProgram that \ points to\n the final population of expressions."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "FinalRandomState::usage: \n FinalRandomState is an output option for \ GeneticProgram that\n points to the state of Random[] when the run \ ended"], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "GeneticOperators::usage: \n GeneticOperators is an input option for \ GeneticProgram that\n indicates the the list of genetic operators to use. \ Each\n element of the list is a triple of then name of the fuction,\n \ the number of parents, and the relative probability."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "GeneticProgram::usage: \n GeneticProgram[cases, vars, funcs, terms, \ prepData,\n standardFit, successQ] optimizes a population of expressions\n\ for the data in cases ({...,{xi1,xi2,...,xin,yi},...}). \n vars is \ the list of symbols corresponding to the xi. funcs\n is the list of \ functions to use and their number of\n arguments (e.g., {{Plus,2}, \ {Sin,1}, ...}). terms is the\n list of terminals to use (e.g., {x, y, \ Pi, ...}). \n prepData[cases,vars] prepares the data in cases for use by\n\ standardFit. standardFit[data,vars,pop] is the function\n that \ computes the standardized fitness given the data in\n data, the variables \ in vars, and a set of expressions pop,\n which the algorithm strives to \ minimize. successQ[stdFit]\n is a predicate that tests for the presence \ of a successful\n standard fitness."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "GeneticProgramming::usage: \n GeneticProgramming.m is a package for \ finding optimal computer\n programs."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "InitialGeneration::usage: \n InitialGeneration is an input option for \ GeneticProgram that\n indicates the number of the initial generation when\ \n continuing a run."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "InitialPopulation::usage: \n InitialPopulation is an input option for \ GeneticProgram that\n indicates the initial population to use when \ continuing a\n run."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "InitialRandomState::usage: \n InitialRandomState is an input option for \ GeneticProgram that\n indicates the initial random state to use when \ continuing or\n restarting a run. InitialRandomState is also an output\n \ option that points to the state of Random[] when the run\n began."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "LastGeneration::usage: \n LastGeneration is an output option for \ GeneticProgram that\n points to the ordinal number of the last \ generation."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Margin::usage: \n Margin is an option for DrawExpresson that specifies the\ \n relative horizontal and vertical margins around the tree."], "Message",\ Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "MaxDepthCreated::usage: \n MaxDepthCreated is an input option for \ GeneticProgram that\n indicates the maximum depth of expression tree in \ subsequent\n populations."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "MaxDepthInitial::usage: \n MaxDepthInitial is an input option for \ GeneticProgram that\n indicates the maximum depth of expression tree in \ initial\n population."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "MaxGenerations::usage: \n MaxGenerations is an input option for \ GeneticProgram that\n indicates the maximum number of generations to \ run."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Mutate::usage: \n Mutate[expr,funcs,terms] is a genetic operator that \ returns a\n copy of the expression expr with one of the subexpressions\n \ replaced by a random expression built from funcs and terms."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Perturb::usage: \n Perturb[expr] is a genetic operator that returns a copy \ of the\n expression expr with one of the constants perturbed."], "Message",\ Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "PopulationSize::usage: \n PopuationSize is an input option for \ GeneticProgram that\n indicates the number of expression trees to use."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "PrintExpression::usage: \n PrintExpression[expr] prints the expression \ expr\n heirarchically."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "PrintInterval::usage: \n PrintInterval is an input option for \ GeneticProgram that\n indicates how often to print fitness, cpu, & \ memory."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ProbInternal::usage: \n ProbInternal is an input option for GeneticProgram \ that\n indicates the probability of crossover at internal point for\n \ CrossOverKoza."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "RandomExpression::usage: \n RandomExpression[depth,funcs,terms] returns a \ random\n expression with elements from funcs for internal nodes and\n \ from terms for external nodes. All paths from the root to\n each \ external node are of constant depth."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Rank::usage: Rank is a selection method that specifies that the\n \ probability of selection is proportional to the rank of the\n adjusted \ fitness."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Reproduce::usage: \n Reproduce[expr] is a genetic operator that returns a \ copy of\n the expression expr."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Roulette::usage: \n Roulette is a selection method that specifies that the\ \n probability of selection is proportional to the magnitude of\n the \ adjusted fitness."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Selection::usage: \n Selection is an input option for GeneticProgram that \ indicates\n the method for selecting expression trees for genetic\n \ operations."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Size::usage: Size[expr] returns the size (i.e., number of nodes)\n of \ the expression expr."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Spacing::usage: \n Spacing is an option for DrawExpression that specifies \ the\n horizontal and vertical spacing between nodes in the tree."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "VariableRandomExpression::usage: \n \ VariableRandomExpression[maxdepth,funcs,terms] returns a\n random \ expression with elements from funcs for internal\n nodes and from terms \ for external nodes. Paths from the \n root to each external node are of \ variable depth."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "VarietyOverRun::usage: \n VarietyOverRun is an output option for \ GeneticProgram that\n points to the list of {min,Q1,median,Q3,max} of the\ \n population variety over the run."], "Message", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[BoxData[ \(TableForm[Options[GeneticProgram] /. Rule \[Rule] List, TableDepth \[Rule] 2]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ TagBox[GridBox[{ {"PopulationSize", "500"}, {"MaxGenerations", "50"}, {"GeneticOperators", \({{CrossOver, 2, 0.85}, {Reproduce, 1, 0.01}, {Mutate, 1, 0.01}, {Perturb, 1, 0.13}}\)}, {"ProbInternal", "0.9"}, {"MaxDepthInitial", "7"}, {"MaxDepthCreated", "17"}, {"Selection", "Roulette"}, {"CollectStatistics", "False"}, {"PrintInterval", "5"}, {"InitialGeneration", "0"}, {"InitialPopulation", "Automatic"}, {"InitialRandomState", "Automatic"} }, RowSpacings->1, ColumnSpacings->3, RowAlignments->Baseline, ColumnAlignments->{Left}], (TableForm[ #, TableDepth -> 2]&)]], "Output", Evaluatable->False, LineSpacing->{1.25, 0}, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[BoxData[ \(TableForm[Options[DrawExpression] /. Rule \[Rule] List, TableDepth \[Rule] 2]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ TagBox[GridBox[{ {"Spacing", "Automatic"}, {"Margin", "Automatic"}, {"ExpressionStyle", "Automatic"}, {"ExpressionLabel", "None"} }, RowSpacings->1, ColumnSpacings->3, RowAlignments->Baseline, ColumnAlignments->{Left}], (TableForm[ #, TableDepth -> 2]&)]], "Output", Evaluatable->False, LineSpacing->{1.25, 0}, AspectRatioFixed->True]}, Open]]}, Open]], Cell[CellGroupData[{Cell[TextData["SymbolicRegression"], "Subsection", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[ \(Scan[ToExpression["\"<>#1<>"\<::usage]\>"]&, Names["\"]]\)], "Input", AspectRatioFixed->True], Cell[TextData[ "aif::usage: aif[t,n,z,p] evaluates t and returns n if t<0, z if\n t==0, \ or p if t>0."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["cos::usage: cos[a] represents the cosine of a."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "divide::usage: divide[a,b] represents the division of a by b."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "eqz::usage: eqz[t,eq,ne] evaluates t and returns eq if t==0 or ne\n if \ t!=0."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "Eval::usage: Eval[expr] evaluates expr and returns an expression\n that \ can be used to produce a numerical value."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "exp::usage: exp[a] represents the exponential of a."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "GetData::usage: \n GetData[cases, vars] checks that the data in cases is \ of the\n appropriate form and consistant with the variables in vars.\n \ It returns a data object that is suitable for input to a\n fitness \ function after any necessary preprocessing."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["log::usage: log[a] represents the logarithm of a."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "ltz::usage: ltz[t,lt,ge] evaluates t and returns lt if t<0 or ge\n if \ t=>0."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "PDivide::usage: \n PDivide[n,d] is the protected division function which \ returns\n BigNumber if d is zero, n/d otherwise."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "PExp::usage: PExp[x] is the protected exponential function which\n \ returns BigNumber if x is greater than Log[BigNumber], 0 if\n x is less \ than -BigNumber, and Exp[x] otherwise."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "PLog::usage: PLog[x] is the protected natural logarithm function\n which \ returns -BigNumber if x is zero, Log[Abs[x]]\n otherwise."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "plus::usage: plus[a,b,...] represents addition of a, b, ...."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "PSqrt::usage: \n PSqrt[x] is the protected square root function which \ returns\n the square root of the absolute value of x."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "SetBig::usage: \n SetBig[n] sets the finite representation of infinity for\ \n symbolic regression."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["sin::usage: sin[a] represents the sine of a."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "sqrt::usage: sqrt[a] represents the square root of a."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "subtract::usage: \n subtract[a,b] represents the subtraction of b from \ a."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "SumAbs::usage: \n SumAbs[{x,y},vars,exprs] computes the standardized \ fitness for\n the list of expressions exprs as a sum of absolute errors\n \ for the data in {x,y}; vars is the list of symbols for the\n columns \ of x."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "SumSqr::usage: \n SumSq[{x,y},vars,exprs] computes the standardized \ fitness for\n the list of expressions exprs as a sum of squared errors \ for\n the data in {x,y}; vars is the list of symbols for the\n \ columns of x."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "SymbolicRegression::usage: \n SymbolicRegression.m is a package that \ provides functions for\n symbolic regression under the genetic \ programming paradigm."], "Message", Evaluatable->False, AspectRatioFixed->True], Cell[TextData[ "times::usage: \n times[a,b,...] represents multiplication of a, b, ...."], "Message", Evaluatable->False, AspectRatioFixed->True]}, Open]]}, Open]]}, Open]], Cell[CellGroupData[{Cell[TextData[ "Find an expression for the series 5, 31, 121, 341, 781, 1555, 2801, 4681,\ \[Ellipsis]"], "Section", Evaluatable->False, AspectRatioFixed->True], Cell[TextData["Here is the list of the eight observations:"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\(cases = {5, 31, 121, 341, 781, 1555, 2801, 4681}; \)\)], "Input", AspectRatioFixed->True], Cell[TextData[ "The function set contains just the four arithmetic functions; nothing in the \ data warrants the use of trigonometric functions or logarithms."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[{ \(\(funcs = {{plus, 2}, {subtract, 2}, {times, 2}, {divide, 2}}; \)\), \(terms := {i, Random[Integer, {\(-3\), 3}]}\)}], "Input", AspectRatioFixed->True], Cell[TextData[ "Standardized fitness is the sum of squared errors, and the success predicate \ will be a perfect fit."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(successQ[stdFit_] := Or@@Thread[Chop[stdFit] == 0]\)], "Input", AspectRatioFixed->True], Cell[TextData[ "We will use the default population size of 500, and the genetic operators \ shown."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[BoxData[ \(\($RandomState = 172239051203198283866443927886737907139546981421051569423299935880485351\ 348414354457743888183058590807764527050824293977155633118850188981455797775206\ 141311232563776218500607049173933572954781368299756597102178832704352888774730\ 798104838741470952986302581015258133781095196848508498739969693032031727240766\ 643849321616841398873918361153439794311132346431797551683446861448814022630177\ 741376341715523224590498017928174729569311787616729545066728278745081030819058\ 653843769377046746562327649401923718574907975516356105576482235836773660431800\ 5937296074936178041; \)\)], "Input", CellOpen->False, AspectRatioFixed->True, FontColor->RGBColor[1, 0, 0]], Cell[CellGroupData[{Cell[BoxData[ \(\(result = GeneticProgram[cases, i, funcs, terms, GetData, SumSqr, successQ, GeneticOperators \[Rule] {{CrossOver, 2, .85}, {Reproduce, 1, .01}, {Mutate, 1, .01}, {Perturb, 1, .13}}]; \)\)], "Input", AspectRatioFixed->True], Cell[TextData[ "g=0, run best = 576296., cpu = 0:02:24, mem = 2877 K\ng=4, run best = 0., \ cpu = 0:05:33, mem = 2819 K"], "Print", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[TextData["Here is the best fitting expression and its depth:"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[ \(b = BestOfRun /. result\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \({0. , times[plus[times[i, i], 1, i], plus[times[i, i], divide[subtract[plus[i, 2], 1], plus[times[i, i], 1, i]]]]}\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[BoxData[ \(Depth[Last[b]]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(6\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[BoxData[ \(\(DrawExpression[Last[b], AspectRatio \[Rule] 210\/400]; \)\)], "Input",\ AspectRatioFixed->True], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .525 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.026738 0.48125 0.04375 [ [ 0 0 0 0 ] [ 1 .525 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p P 0 0 m 1 0 L 1 .525 L 0 .525 L closepath clip newpath p [(times)] .5 .48125 0 0 Mshowa .004 w .5 .455 m .12567 .42 L s .5 .455 m .64706 .42 L s p [(plus)] .12567 .39375 0 0 Mshowa .12567 .3675 m .07219 .3325 L s .12567 .3675 m .17914 .3325 L s .12567 .3675 m .23262 .3325 L s p [(times)] .07219 .30625 0 0 Mshowa .07219 .28 m .04545 .245 L s .07219 .28 m .09893 .245 L s [(i)] .04545 .21875 0 0 Mshowa [(i)] .09893 .21875 0 0 Mshowa P [(1)] .17914 .30625 0 0 Mshowa [(i)] .23262 .30625 0 0 Mshowa P p [(plus)] .64706 .39375 0 0 Mshowa .64706 .3675 m .36631 .3325 L s .64706 .3675 m .72727 .3325 L s p [(times)] .36631 .30625 0 0 Mshowa .36631 .28 m .33957 .245 L s .36631 .28 m .39305 .245 L s [(i)] .33957 .21875 0 0 Mshowa [(i)] .39305 .21875 0 0 Mshowa P p [(divide)] .72727 .30625 0 0 Mshowa .72727 .28 m .58021 .245 L s .72727 .28 m .84759 .245 L s p [(subtract)] .58021 .21875 0 0 Mshowa .58021 .1925 m .55348 .1575 L s .58021 .1925 m .64706 .1575 L s p [(plus)] .55348 .13125 0 0 Mshowa .55348 .105 m .52674 .07 L s .55348 .105 m .58021 .07 L s [(i)] .52674 .04375 0 0 Mshowa [(2)] .58021 .04375 0 0 Mshowa P [(1)] .64706 .13125 0 0 Mshowa P p [(plus)] .84759 .21875 0 0 Mshowa .84759 .1925 m .79412 .1575 L s .84759 .1925 m .90107 .1575 L s .84759 .1925 m .95455 .1575 L s p [(times)] .79412 .13125 0 0 Mshowa .79412 .105 m .76738 .07 L s .79412 .105 m .82086 .07 L s [(i)] .76738 .04375 0 0 Mshowa [(i)] .82086 .04375 0 0 Mshowa P [(1)] .90107 .13125 0 0 Mshowa [(i)] .95455 .13125 0 0 Mshowa P P P P % End of Graphics MathPictureEnd \ \>"], "Graphics", Evaluatable->False, AspectRatioFixed->False, ImageSize->{400, 210}, ImageMargins->{{34, Inherited}, {Inherited, Inherited}}, RenderingOptions->{"RenderThickness"->False}, ImageCache->GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHggYjN[Vi^OShn03ooeGooj[ooonICXf=SLcII03=Voc=Vc3=V VC=VIS=V0003o`0004`000?o0000 3P000ol000180000e@000ol0000<0003o`0004h000?o000030000ol000190000e@000ol0000;0003 o`0004l000?o00002`000ol0001:0000eP000ol0000:0003o`00050000?o00002P000ol0001:0000 e`000ol000080003o`00058000?o000020000ol0001;0000e`000ol000070003o`0005<000?o0000 1`000ol0001<0000f0000ol000050003o`0005D000?o00001@000ol0001=0000f@000ol000040003 o`0005H000?o000010000ol0001=0000fP000ol000020003o`0005P000?o00000P000ol0001>0000 fP001Ol0003o05/000Go0000o`1A0000f`000ol0o`1M0003o`3o0580003L0003o`0005d000?o0000 D@000?l0T@000?l0T@000?l0T@000?l0T@000?l0T@000?l0T@000=001?nl0000d@000ol0002l0000 d@04o`801Ol00`3oo`03o`030?oo00;o6@03ob`00ol200Go00H0o`3o0?l200Co00<0ool00_lK00?o 4P05oa40003A0005o`000?l00`001Ol0003o008000?o00000`000ol0000H0003o`0002/000Co003o 0`002ol0003o0?l0o`3o00P000?o00006P000ol0000C0003o`000140003A0005o`000?l00`001Ol0 003o008000?o00001?lJ0003o`0002/000?o000010002_l0003o0?l0o`05o`030?oo00;o70000ol0 000C0003o`000140003A0005o`000?l00`001Ol0003o008000Co003o7@000ol0000[0003o`0000@0 00_o0000o`3o0?l0o`030003o`3o01l000?o00004`000ol0000A0000d005o`@000?o00000_l00`3o o`0200Co6P000ol0000Z00Co0`02o`801_l200?o0P04oa`000?o00004P02oa<0003I0003o`0002@0 0_l]0003o`0003<00_lY0000e`03oeD000?o000010000ol000130003o`000140003o0940003o0940 003o0940003o0940003o0940003L0003o`0002800_li00;o:002oa<00_lC0000g0000ol0000P00;o ?@000ol0000T0003o`0001000olE0000g@000ol0000M00;o@002ob800_l@00?o60000=h000?o0000 6P02od@00_lO0003o`0000d00olK0000g`000ol0000G00;oB0000ol0000J00;o3@03oah0003P0003 o`0001@00_m;00;o6@000ol0000:00?o8@000>0000?o00004P02odl000?o00005002o`X00olT0000 h@000ol0000@0003o`0005000_lC0003o`0000L00olW0000hP000ol0000=00;oE@000ol0000>00;o 1`03obX0003S0003o`0000X00_mH00;o3@000ol0000400?o;@000><000?o00002002oe`00_l900;o 1003oc00003T0003o`0000D00_mP0003o`0000D000Co00000olc0000i@000ol0000200;oH`02o`<0 0_l0103ooolf0000iP001?l0oomW0003o`3o00?o>@000>L000?o0000J002oc`0003o0940003o0940 003o0940003o0940003o0940003o0940003o04L01?m60000o`180003o`0004H0000@00Go4005oe/0 1Ol@00Go<@04o`801Ol00`3oo`02o`<00ol200Co0P05o`800ol300?oB@04o`801Ol00`3oo`03o`03 0?oo00;o<`00018000?o00004P000ol0001M0003o`00018000?o0000=0001?l00?l20004o`00o`<0 00Co003o0P001?l00?l40004o`00o`8000Go0000o`020004o`00odP000Go0000o`030005o`000?l0 0P000ol000030003o`000340000B0003o`00018000?o0000G@000ol0000B0003o`0003401?l20004 o`00o`8000Go0000o`020003o`0000<000?o00000P04o`8000?o000010000ol000190005o`000?l0 0`001Ol0003o008000?o00001?lc00004P000ol0000B0003o`0005d000?o00004P000ol0000a0003 o`0000<000Co003o0P001Ol0003o008000?o00000`02o`H000Co003o0`001?l00?m;0005o`000?l0 0`001Ol0003o008000Co003o=P0001400_lC00;oGP02oa<00_lc00Co00@0ool00_l200Co0P04o`80 0_l00`3oo`0200?o0`04o`030?oo00;oB005o`@000?o00000_l00`3oo`0200Co<`000=`000?o0000 10000ol0000E0003o`00054000?o0000?P00018000?o00004P000ol0001M0003o`00018000?o0000 ?002o`H000?o00005@000ol0001?00?o@0000?l0T@000?l0T@000?l0T@000?l0T@000?l0T@000180 00?o00004P000ol0001M0003o`00018000?o0000B003ofH00olm00004P000ol0000B0003o`0005d0 00?o00004P000ol0001;00CoG`03od00000C0003o`00010000?o0000G`000ol0000@0003o`000500 1OmF00Co@`0001@000?o00003P000ol0001Q0003o`0000h000?o0000EP04odl00om700005@000ol0 000<0003o`0006<000?o000030000ol0001K00CoB003odX0000E0003o`0000/000?o0000I@000ol0 000;0003o`0005l01?m000CoC@0001H000?o00002P000ol0001U0003o`0000X000?o0000I004ocT0 0omA00005`000ol000080003o`0006L000?o000020000ol0001Y00Go<004oe@0000G0003o`0000L0 00?o0000J@000ol000070003o`0006h01?lY00?oF00001P000?o00001@000ol0001[0003o`0000D0 00?o0000L`04ob401?mK00006@000ol000040003o`0006/000?o000010000ol0001h00Co6P03oel0 000J0003o`00008000?o0000K@000ol000020003o`0007d01?lC00?oHP0001X000Go0000o`1a0005 o`000?l0P`05o`X01?mU00006`000ol0o`1c0003o`3o08T01?l300?oJ@0001`000?o0000L`000ol0 002<00?oK0000?l0T@000?l0T@000?l0T@000?l0T@000?l0T@000?l0T@000?l0T@0000l00ol200Go 00H0o`3o0?l200Co00<0ool00_lK00?o4P05obH00ol200Go00H0o`3o0?l200Co00<0ool00_mb00[o 0P02o`<01Ol200Go00<0ool00_mL00003`001?l00?l3000;o`000?l0o`3o0?l020000ol0000J0003 o`0001<000?o00009P001?l00?l3000;o`000?l0o`3o0?l020000ol0001_0005o`000?l00`000ol0 000200;o1@001Ol0003o00<000?o0?l0H00000l000?o000010002_l0003o0?l0o`05o`030?oo00;o 70000ol0000C0003o`0002H000?o000010002_l0003o0?l0o`05o`030?oo00;oL@001Ol0003o00<0 00Ko0000o`02o`@000Go0000o`030003o`3o00CoG00000l000?o000010002ol0003o0?l0o`3o00<0 00?o0?l07`000ol0000C0003o`0002H000?o000010002ol0003o0?l0o`3o00<000?o0?l0M0001Ol0 003o00<000Go0000o`020003o`00008000Go0000o`030003o`3o00<000?o0000FP0000h01?l300;o 0P06o`800ol200Co70000ol0000B00;o9`04o`<00_l200Ko0P03o`801?mb00Co0P02o`800_l200;o 0P02o`@01?l200?oG@0000l000?o0000<`02och000?o0000S@000ol0000E0003o`000600000?0003 o`0000@000?o0000@`000ol0000V0003o`0000@000?o0000Q@02o`<000?o00002@000ol0000400;o HP000?l0T@000?l0T@000?l0T@000?l0T@000?l0T@000?l0T@0001`00_lX00;o4`02ocD01On:00;o K@0001h000?o000090000ol0000@00?o?008oh000_m_00007`02ob800_l@00?oA`08ogD00oma0000 8@02oal000?o00003@03oe802?m[00;oM00002<000?o00006P02o`d00omM00SoH@02ogH0000T00;o 6@000ol0000:00?oJ008oeH00omh00009P000ol0000D00;o2P03og<02?m<00;oN`0002L00_lC0003 o`0000L00omn00So@P02ogd0000Y0003o`0000h00_l700?oR@08ocP00_mo0000:P02o`d000?o0000 1003oi@02?l]00?oP@0002`00_l900;o1003oil02?lS00;oQ00002h000?o00001@001?l00003ojX0 2?lI00;oQP0002l00_l300;o00@0oooo]@08o`h00on80000<@000ol0o`03ol002?l400;oR`000380 0_o;00CoS@000?l0T@000?l0T@000?l0T@000?l0T@000?l0T@0002H01?o<00CoUP0002L000?o0000 c@000ol0002F00009`04o`801Ol00`3oo`03o`030?oo00;o^P04o`801Ol00`3oo`03o`030?oo00;o P`0002L000Go0000o`030005o`000?l00P000ol000030003o`000;P000Go0000o`030005o`000?l0 0P000ol000030003o`000840000W0005o`000?l00`001Ol0003o008000?o00001?nj0005o`000?l0 0`001Ol0003o008000?o00001?n300009`001Ol0003o00<000Go0000o`020004o`00okd000Go0000 o`030005o`000?l00P001?l00?n600009P05o`@000?o00000_l00`3oo`0200Co^@05o`@000?o0000 0_l00`3oo`0200CoP`0002l000?o0000c@000ol0002>0000;@03old00on@0000o`2A0000o`2A0000 o`2A0000o`2A0000o`2A0000o`2A000000;okT01?n@0000@`0;ojT01OnD0000 CP0:oi/01?nI0000F00;oh`01?nM0000H`0;ogd01?nQ0000KP0:ofl01?nU0000N00;oel01OnY0000 P`0:oe401?n^0000S@0;od801?nb0000V00;oc<01?nf0000X`0:obD01?nj0000[@0;oaD01Onn0000 ^00;o`H01?o30000``06olL0003o0940003o0940003o0940003o0940003o0940003o0940003o0940 002j00?o0P05o`060?l0o`3o0P04o`030?oo00;o^`000;X000Co003o0`002ol0003o0?l0o`3o00P0 00?o0000^@000;X000?o000010002_l0003o0?l0o`05o`030?oo00;o^`000;X000?o000010002ol0 003o0?l0o`3o00<000?o0?l0_P000;T01?l300;o0P06o`800ol200Co^`000;X000?o0000d`000;X0 00?o000010000ol0003<0000o`2A0000o`2A0000o`2A0000o`2A0000o`2A0000o`2A0000o`2A0000 o`2A0000o`2A0000o`2A0000o`2A0000o`2A0000o`2A0000\ \>"], ImageRangeCache->{{{0, 399}, {209, 0}} -> {-18.7002, -11.0001, 0.0937352, 0.0574168}}]}, Open]], Cell[TextData["Here is the simplified form of the expression:"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[ \(be = Eval[Last[b]]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(\((1 + i + i\^2)\)\ \((i\^2 + PDivide[1 + i, 1 + i + i\^2])\)\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[BoxData[ \(bestFit = Together[Expand[be /. PDivide \[Rule] Divide]]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(1 + i + i\^2 + i\^3 + i\^4\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[TextData[{ StyleBox[ "Here is how one can use the \[OpenCurlyDoubleQuote]program\ \[CloseCurlyDoubleQuote] for new values of ", Evaluatable->False, AspectRatioFixed->True], StyleBox["i", Evaluatable->False, AspectRatioFixed->True, FontSlant->"Italic"], StyleBox[":", Evaluatable->False, AspectRatioFixed->True] }], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[ \(bestFit /. i \[Rule] 9\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(7381\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[BoxData[ \(bestFit /. i \[Rule] 12\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(22621\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[TextData[ "Now, let's look at the runners up. Sometimes the numerically best solution \ does not make good physical, chemical, or biological sense for the problem, \ so it is always a good idea to examize plausible alternatives."], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[{ \(\(fp = Sort[Transpose[{FinalFit, FinalPop} /. result]]; \)\), \(First/@Take[fp, 5]\)}], "Input", AspectRatioFixed->True], Cell[BoxData[ \({2.01948391736579\/10\^28, 2.01948391736579\/10\^28, 1.527422052154179, 1.527422052154179, 1.527422052154179}\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[TextData[ "Here is the second best fitting expression and its depth:"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[ \(sb = fp\[LeftDoubleBracket]3\[RightDoubleBracket]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \({1.527422052154179, times[plus[times[i, i], 1, i], plus[times[i, i], divide[1, i]]]}\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[BoxData[ \(Depth[Last[sb]]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(4\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[TextData[ "Here is the tree structure of the second best expression with the \ differences from the best highlighted with color:"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[ \(\(DrawExpression[Last[sb], AspectRatio \[Rule] 160\/350, ExpressionStyle \[Rule] {{{2, 2}, Red}}]; \)\)], "Input", AspectRatioFixed->True], Cell[GraphicsData["PostScript", "\<\ %! %%Creator: Mathematica %%AspectRatio: .45714 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.511655 0.04662 0.419048 0.0634921 [ [ 0 0 0 0 ] [ 1 .45714 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p P 0 0 m 1 0 L 1 .45714 L 0 .45714 L closepath clip newpath p [(times)] .51166 .41905 0 0 Mshowa .004 w .51166 .38095 m .18531 .33016 L s .51166 .38095 m .76807 .33016 L s p [(plus)] .18531 .29206 0 0 Mshowa .18531 .25397 m .09207 .20317 L s .18531 .25397 m .27855 .20317 L s .18531 .25397 m .37179 .20317 L s p [(times)] .09207 .16508 0 0 Mshowa .09207 .12698 m .04545 .07619 L s .09207 .12698 m .13869 .07619 L s [(i)] .04545 .0381 0 0 Mshowa [(i)] .13869 .0381 0 0 Mshowa P [(1)] .27855 .16508 0 0 Mshowa [(i)] .37179 .16508 0 0 Mshowa P p [(plus)] .76807 .29206 0 0 Mshowa .76807 .25397 m .6049 .20317 L s .76807 .25397 m .90793 .20317 L s p [(times)] .6049 .16508 0 0 Mshowa .6049 .12698 m .55828 .07619 L s .6049 .12698 m .65152 .07619 L s [(i)] .55828 .0381 0 0 Mshowa [(i)] .65152 .0381 0 0 Mshowa P p 1 0 0 r [(divide)] .90793 .16508 0 0 Mshowa .90793 .12698 m .86131 .07619 L s .90793 .12698 m .95455 .07619 L s [(1)] .86131 .0381 0 0 Mshowa [(i)] .95455 .0381 0 0 Mshowa P P P % End of Graphics MathPictureEnd \ \>"], "Graphics", Evaluatable->False, AspectRatioFixed->False, ImageSize->{350, 160}, ImageMargins->{{34, Inherited}, {Inherited, Inherited}}, ImageCache->GraphicsData["Bitmap", "\<\ CF5dJ6E]HGAYHf4PAg9QL6QYHggYjN[Vi^OShn03ooeGooj[ooonICXf=SLcII03=Voc=Vc3=V VC=VIS=V00003`000ol0000N0003o`0008l000?o00007P000ol0001500038`0001l00000;o7`02oi00 0_lO00;oA`000b<0000N008S40000?l0:`028c80000?0003o`0001h000?o0000S`000ol0000N0003 o`0006L000000040000ol0000L0003 o`00094000?o000070000ol0001800038`0001`0000003 8`0001H00000038`0001H0000H0003o`0000d000?o0000 X0000ol0000=0003o`0005H000P02oa`0 0omG00?oG`03ob<0000T0003o`0003D00_lJ00CoG@03oeT00olV00009@02oc@000?o00005P04of@0 0omD00;o:@0002L00_l`00;o5P03of/00om>00?o:`0002T00_l/00;o5004og400om800?o;P0002/0 0_lX00;o4`03ogP01?m200;o<@0002d000?o00008`02oa401?mo00?o?003oc<0000^00;o8@02o`l0 1?n600?o=P03ocH0000`00;o7P000ol0000<00?oS@03oc400_li00000000 @002olT00_mA0000o`1O0000o`1O0000o`1O0000o`1O0000o`1O0000o`1O0000o`1O0000o`1O0000 =004olP01?mJ0000=@000ol000390003o`0005X0000e00Co0P05o`030?oo00?o00<0ool00_nf00Co 0P05o`030?oo00?o00<0ool00_m70000=@001Ol0003o00<000Go0000o`020003o`0000<000?o0000 ]0001Ol0003o00<000Go0000o`020003o`0000<000?o0000A@0003D000Go0000o`030005o`000?l0 0P000ol00004okH000Go0000o`030005o`000?l00P000ol00004odL0000e0005o`000?l00`001Ol0 003o008000Co003o^@001Ol0003o00<000Go0000o`020004o`00odX0000d00Go10000ol00002o`03 0?oo00801?ne00Go10000ol00002o`030?oo00801?m70000?@000ol000390003o`000580000k00?o b@03oe@0003o05l0003o05l0003o05l0003o05l0003o05l0003o05l0003o05l0003o05l0001000Co aP03oe40001400Oo^P05oe@0001;00Ko[`05oeT0001A00KoY005oeh0001G00OoV005of<0001N00Ko S@05ofP0001T00KoPP05ofd0001Z00OoMP05og80001a00KoJ`05ogL0001g00KoH005og`0001m00Oo E005oh40002400KoB@05ohH0002:00Ko?P05oh/0002@00Oo"], ImageRangeCache->{{{0, 349}, {159, 0}} -> {-10.9751, -6.60004, 0.061462, 0.0452832}}]}, Open]], Cell[TextData[ "Here is the simplified form of the second best expression:"], "Text", Evaluatable->False, AspectRatioFixed->True], Cell[CellGroupData[{Cell[BoxData[ \(sbe = Eval[Last[sb]]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(\((1 + i + i\^2)\)\ \((i\^2 + PDivide[1, i])\)\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]], Cell[CellGroupData[{Cell[BoxData[ \(secondBestFit = Together[Expand[sbe /. PDivide \[Rule] Divide]]\)], "Input", AspectRatioFixed->True], Cell[BoxData[ \(\(1 + i + i\^2 + i\^3 + i\^4 + i\^5\)\/i\)], "Output", Evaluatable->False, AspectRatioFixed->True]}, Open]]}, Open]]}, Open]] }, FrontEndVersion->"Macintosh 3.0", ScreenRectangle->{{0, 800}, {0, 580}}, WindowToolbars->{}, Evaluator->"Local", CellGrouping->Manual, WindowSize->{520, 485}, WindowMargins->{{116, Automatic}, {15, Automatic}}, PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}}, ShowCellLabel->True, ShowCellTags->False, RenderingOptions->{"ObjectDithering"->True, "RasterDithering"->False}, MacintoshSystemPageSetup->"\<\ 00<0001804P000000]P2:?oQon82n@960dL5:0?l0080001804P000000]P2:001 0000I00000400`<300000BL?00400@0000000000000006P801T1T00000000000 00000000000000000000000000000000\>" ] (*********************************************************************** 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[CellGroupData[{ Cell[1731, 51, 94, 2, 70, "Title", Evaluatable->False], Cell[1828, 55, 95, 2, 70, "Subtitle", Evaluatable->False], Cell[1926, 59, 149, 4, 70, "Subsubtitle", Evaluatable->False], Cell[CellGroupData[{ Cell[2098, 65, 115, 3, 27, "Input", InitializationCell->True], Cell[2216, 70, 109, 2, 70, "Print", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[2357, 74, 115, 3, 27, "Input", InitializationCell->True], Cell[2475, 79, 109, 2, 70, "Print", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[2616, 83, 94, 2, 70, "Section", Evaluatable->False], Cell[CellGroupData[{ Cell[2733, 87, 98, 2, 70, "Subsection", Evaluatable->False], Cell[CellGroupData[{ Cell[2854, 91, 156, 3, 70, "Input"], Cell[3013, 96, 282, 6, 70, "Message", Evaluatable->False], Cell[3298, 104, 209, 4, 70, "Message", Evaluatable->False], Cell[3510, 110, 239, 5, 70, "Message", Evaluatable->False], Cell[3752, 117, 277, 5, 70, "Message", Evaluatable->False], Cell[4032, 124, 377, 7, 70, "Message", Evaluatable->False], Cell[4412, 133, 290, 5, 70, "Message", Evaluatable->False], Cell[4705, 140, 275, 5, 70, "Message", Evaluatable->False], Cell[4983, 147, 206, 4, 70, "Message", Evaluatable->False], Cell[5192, 153, 283, 5, 70, "Message", Evaluatable->False], Cell[5478, 160, 415, 7, 70, "Message", Evaluatable->False], Cell[5896, 169, 229, 5, 70, "Message", Evaluatable->False], Cell[6128, 176, 207, 4, 70, "Message", Evaluatable->False], Cell[6338, 182, 229, 5, 70, "Message", Evaluatable->False], Cell[6570, 189, 362, 6, 70, "Message", Evaluatable->False], Cell[6935, 197, 964, 14, 70, "Message", Evaluatable->False], Cell[7902, 213, 190, 4, 70, "Message", Evaluatable->False], Cell[8095, 219, 255, 5, 70, "Message", Evaluatable->False], Cell[8353, 226, 248, 5, 70, "Message", Evaluatable->False], Cell[8604, 233, 384, 7, 70, "Message", Evaluatable->False], Cell[8991, 242, 227, 5, 70, "Message", Evaluatable->False], Cell[9221, 249, 222, 5, 70, "Message", Evaluatable->False], Cell[9446, 256, 255, 5, 70, "Message", Evaluatable->False], Cell[9704, 263, 251, 5, 70, "Message", Evaluatable->False], Cell[9958, 270, 225, 5, 70, "Message", Evaluatable->False], Cell[10186, 277, 294, 5, 70, "Message", Evaluatable->False], Cell[10483, 284, 224, 5, 70, "Message", Evaluatable->False], Cell[10710, 291, 222, 5, 70, "Message", Evaluatable->False], Cell[10935, 298, 179, 4, 70, "Message", Evaluatable->False], Cell[11117, 304, 224, 5, 70, "Message", Evaluatable->False], Cell[11344, 311, 251, 5, 70, "Message", Evaluatable->False], Cell[11598, 318, 345, 6, 70, "Message", Evaluatable->False], Cell[11946, 326, 235, 5, 70, "Message", Evaluatable->False], Cell[12184, 333, 190, 4, 70, "Message", Evaluatable->False], Cell[12377, 339, 253, 5, 70, "Message", Evaluatable->False], Cell[12633, 346, 245, 5, 70, "Message", Evaluatable->False], Cell[12881, 353, 174, 4, 70, "Message", Evaluatable->False], Cell[13058, 359, 227, 5, 70, "Message", Evaluatable->False], Cell[13288, 366, 362, 7, 70, "Message", Evaluatable->False], Cell[13653, 375, 265, 5, 70, "Message", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[13950, 382, 143, 3, 70, "Input"], Cell[14096, 387, 868, 24, 70, "Output", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[14996, 413, 143, 3, 70, "Input"], Cell[15142, 418, 446, 14, 70, "Output", Evaluatable->False] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[15629, 434, 98, 2, 70, "Subsection", Evaluatable->False], Cell[CellGroupData[{ Cell[15750, 438, 156, 3, 70, "Input"], Cell[15909, 443, 168, 4, 70, "Message", Evaluatable->False], Cell[16080, 449, 123, 2, 70, "Message", Evaluatable->False], Cell[16206, 453, 139, 3, 70, "Message", Evaluatable->False], Cell[16348, 458, 160, 4, 70, "Message", Evaluatable->False], Cell[16511, 464, 197, 4, 70, "Message", Evaluatable->False], Cell[16711, 470, 129, 3, 70, "Message", Evaluatable->False], Cell[16843, 475, 352, 6, 70, "Message", Evaluatable->False], Cell[17198, 483, 126, 2, 70, "Message", Evaluatable->False], Cell[17327, 487, 159, 4, 70, "Message", Evaluatable->False], Cell[17489, 493, 207, 4, 70, "Message", Evaluatable->False], Cell[17699, 499, 267, 5, 70, "Message", Evaluatable->False], Cell[17969, 506, 218, 4, 70, "Message", Evaluatable->False], Cell[18190, 512, 138, 3, 70, "Message", Evaluatable->False], Cell[18331, 517, 209, 4, 70, "Message", Evaluatable->False], Cell[18543, 523, 183, 4, 70, "Message", Evaluatable->False], Cell[18729, 529, 121, 2, 70, "Message", Evaluatable->False], Cell[18853, 533, 131, 3, 70, "Message", Evaluatable->False], Cell[18987, 538, 155, 4, 70, "Message", Evaluatable->False], Cell[19145, 544, 315, 6, 70, "Message", Evaluatable->False], Cell[19463, 552, 313, 6, 70, "Message", Evaluatable->False], Cell[19779, 560, 241, 5, 70, "Message", Evaluatable->False], Cell[20023, 567, 154, 4, 70, "Message", Evaluatable->False] }, Open ]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[20227, 573, 164, 4, 70, "Section", Evaluatable->False], Cell[20394, 579, 117, 2, 70, "Text", Evaluatable->False], Cell[20514, 583, 113, 2, 27, "Input"], Cell[20630, 587, 217, 4, 70, "Text", Evaluatable->False], Cell[20850, 593, 179, 3, 59, "Input"], Cell[21032, 598, 176, 4, 70, "Text", Evaluatable->False], Cell[21211, 604, 109, 2, 27, "Input"], Cell[21323, 608, 157, 4, 70, "Text", Evaluatable->False], Cell[21483, 614, 711, 12, 19, "Input", CellOpen->False], Cell[CellGroupData[{ Cell[22217, 628, 291, 6, 75, "Input"], Cell[22511, 636, 179, 4, 70, "Print", Evaluatable->False] }, Open ]], Cell[22702, 642, 124, 2, 70, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[22849, 646, 82, 2, 27, "Input"], Cell[22934, 650, 226, 7, 41, "Output", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[23192, 659, 73, 2, 27, "Input"], Cell[23268, 663, 83, 3, 26, "Output", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[23383, 668, 120, 3, 42, "Input"], Cell[23506, 673, 10356, 250, 218, 1885, 140, "GraphicsData", "PostScript", "Graphics", Evaluatable->False] }, Open ]], Cell[33874, 925, 120, 2, 70, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[34017, 929, 77, 2, 27, "Input"], Cell[34097, 933, 146, 4, 28, "Output", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[34275, 939, 115, 2, 27, "Input"], Cell[34393, 943, 108, 3, 28, "Output", Evaluatable->False] }, Open ]], Cell[34513, 948, 411, 15, 70, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[34947, 965, 81, 2, 27, "Input"], Cell[35031, 969, 86, 3, 26, "Output", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[35149, 974, 82, 2, 27, "Input"], Cell[35234, 978, 87, 3, 26, "Output", Evaluatable->False] }, Open ]], Cell[35333, 983, 292, 5, 70, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[35648, 990, 148, 3, 43, "Input"], Cell[35799, 995, 198, 4, 67, "Output", Evaluatable->False] }, Open ]], Cell[36009, 1001, 132, 3, 70, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[36164, 1006, 108, 2, 27, "Input"], Cell[36275, 1010, 176, 5, 41, "Output", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[36483, 1017, 74, 2, 27, "Input"], Cell[36560, 1021, 83, 3, 26, "Output", Evaluatable->False] }, Open ]], Cell[36655, 1026, 192, 4, 70, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[36870, 1032, 167, 3, 62, "Input"], Cell[37040, 1037, 7546, 178, 168, 1372, 97, "GraphicsData", "PostScript", "Graphics", Evaluatable->False] }, Open ]], Cell[44598, 1217, 133, 3, 70, "Text", Evaluatable->False], Cell[CellGroupData[{ Cell[44754, 1222, 79, 2, 27, "Input"], Cell[44836, 1226, 128, 3, 28, "Output", Evaluatable->False] }, Open ]], Cell[CellGroupData[{ Cell[44996, 1231, 125, 3, 43, "Input"], Cell[45124, 1236, 122, 3, 44, "Output", Evaluatable->False] }, Open ]] }, Open ]] }, Open ]] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)