Re: Extracting parameters from NonlinearFit
- To: mathgroup@smc.vnet.net
- Subject: [mg11857] Re: [mg11850] Extracting parameters from NonlinearFit
- From: jpk@max.mpae.gwdg.de
- Date: Fri, 3 Apr 1998 03:45:20 -0500
Hi Jeff
suppose You have
myfit= 3.2*Exp[-0.5*t]
than
mfitpara= myfit /. a_*Exp[b_*t] :> {a,b}
will give You the desired parameters
Hope that helps
Jens
> Recently I began writing a program to do a monte carlo simulation of an
> NMR experiment. The whole routine is attached (I hope that works.) The
> problem is this:
> I perform a NonlinearFit utilizing an exponential function of the form
> Exp[-a*x]. The nonlinear fit gives me back an equation, something like
> 1*E(-a*x). I want to extract the a parameter out of the equation and do
> two things with it. Because I am performing this simulation several
> (thousand) times, I want to know the standard deviation of the a
> parameters. Second, I would like to get an average of the terms
> (without having to use the last two lines of my code). If anyone out
> there could help me out, I would greatly appreciate it; I'm really
> stuck.
>
> (PS, if you try to run my code, you may want to change the number of
> iterations to 10 or so. 10000 iterations takes a couple of hours.)
>
> Jeff Wank
> Dept of Chemistry & Biochemistry
> University of Colorado at Boulder
> jrw@atlantis.colorado.edu
> (303) 492-8085
>
>
> (***********************************************************************
>
> 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[ 3390, 96]*)
> (*NotebookOutlinePosition[ 4248, 126]*) (*
> CellTagsIndexPosition[ 4204, 122]*) (*WindowFrame->Normal*)
>
>
> Notebook[{
>
> Cell[CellGroupData[{
> Cell["\<\
>
> (*Begin Cell*)
> (*
> This routine takes a set of times, t, and fits a curve of the form \
> y=init*exp(-bx)
> where b is the rate constant (lamda) *)\
> \>", "Input",
> AspectRatioFixed->True],
>
> Cell[CellGroupData[{
>
> Cell[BoxData[{
> \(Needs["\<Statistics`ContinuousDistributions`\>"]\),
> \(Needs["\<Statistics`NonlinearFit`\>"]\),
> \(Needs["\<Graphics`Colors`\>"]\),
> \(Clear[t, init, di, a, ndist, n, values, newlist, aone, lamda1,
> loga]\n
> \n (*time\ values*) \),
> \(t = { .004, .006, .008, .010, .012, .016, .020, .024,
> .028}; \n
> \n (*\ initial\ \((0\ time)\)\ value\ *) \ninit = 5.855\ 10\^7; \ \n
> \n (*\ error\ in\ normalized\ intensity, \
> as\ computed\ from\ 10\ ms\ data\ repetitions\ *) \ndi = .00757;
> \n
> \n (*a\ normal\ distribution\ of\ numbers\ *) \n
> ndist = NormalDistribution[0, di\ init]; \n
> \n (*\ initial\ value\ for\ lamda, \ the\ rate\ constant\ *) \n
> lamda = 49.95; \n\n (*\ number\ of\ iterations\ *) \nn = 1; \n\n
> a[i_, t_] := init\ Exp[\(-lamda\)\ t] + Random[ndist]; \n
> values = \((a[#1, t]&)\)/@Table[i, {i, 1, n}]; \n
> newlist = \((Transpose[{t, #1}]&)\)/@values; \n
> \n (*fitting\ the\ data*) \n\n\t
> lamda1\ = \
> \((NonlinearFit[newlist[\([#]\)], init*Exp[\(-a\)*x], {x}, {a,
> c}]&)\)/@
> Table[i, {i, 1, n}]; \n\n\tApply[Times, \ lamda1/init]\),
> \("\<divide the b term by n for your lambda\>"\)}], "Input",
> AspectRatioFixed->True],
>
> Cell[BoxData[
> \(0.999999999999999822`\ E\^\(\(-52.4031624602439904`\)\ x\)\)],
> "Output"],
>
> Cell[BoxData[
> \("divide the b term by n for your lambda"\)], "Output"] }, Open ]]
> }, Open ]]
> },
> FrontEndVersion->"X 3.0",
> ScreenRectangle->{{0, 1280}, {0, 1024}}, WindowToolbars->"RulerBar",
> CellGrouping->Manual,
> WindowSize->{779, 642},
> WindowMargins->{{172, Automatic}, {Automatic, 98}},
> PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}},
> ShowCellLabel->True,
> ShowCellTags->False,
> RenderingOptions->{"ObjectDithering"->True, "RasterDithering"->False}
> ]
>
>
> (***********************************************************************
> 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, 195, 9, 102, "Input"],
>
> Cell[CellGroupData[{
> Cell[1951, 64, 1239, 22, 540, "Input"], Cell[3193, 88, 92, 1, 28,
> "Output"], Cell[3288, 91, 74, 1, 27, "Output"]
> }, Open ]]
> }, Open ]]
> }
> ]
> *)
>
>
>
> (***********************************************************************
> End of Mathematica Notebook file.
> ***********************************************************************)
>
>