Mathematica 9 is now available
Student Support Forum
-----
Student Support Forum: 'Plotting non-linear values and solving' topicStudent Support Forum > General > Archives > "Plotting non-linear values and solving"

< Previous Comment | Next Comment >Help | Reply To Comment | Reply To Topic
Author Comment/Response
Bill Simpson
10/23/12 11:57pm

In Response To 'Re: Re: Re: Re: Re: Re: Plotting non-linear val...'
---------
I take your revised equation to fit and your data.

In[1]:= c = 0.0000132;
b = 1+k c+k x/(2 s);
y2 = (b-(Sqrt[b^2-2k^2 c x/s]))/(2k);
x =.;
data = {{0.0,0.0},{0.0000079333,0.4176},{0.0000119,0.5385},{0.000015867,0.6374},{0.000019833,0.7473},{0.0000238,0.8571},{0.000027767,0.9231},{0.000031733,0.9560},{0.0000357,0.9780},{0.000039667,0.9780},{0.000043633,0.9890},{0.0000476,1.0220},{0.000051567,0.9890},{0.000055533,1.0110},{0.000063467,1.0000},{0.000075367,1.0000},{0.000087267,1.0110},{0.00010313,1.0000}};
fit = FindFit[data, y2, {k, s}, x]

FindFit gives us a small k and s.

Out[6]={k->1.57811,s->0.421896}

Generate {x,y} from those coefficients.

In[7]:= fitdata=Map[{First[#],y2/.x->First[#]/.fit}&,{{0.0, 0.0}, {0.0000079333, 0.4176}, {0.0000119, 0.5385}, {0.000015867, 0.6374}, {0.000019833, 0.7473}, {0.0000238, 0.8571}, {0.000027767, 0.9231}, {0.000031733, 0.9560}, {0.0000357, 0.9780}, {0.000039667, 0.9780}, {0.000043633, 0.9890}, {0.0000476, 1.0220}, {0.000051567, 0.9890}, {0.000055533, 1.0110}, {0.000063467, 1.0000}, {0.000075367, 1.0000}, {0.000087267, 1.0110}, {0.00010313, 1.0000}}]

And that is a horrible fit.

Out[7]= {{0., 0.},
{7.9333*^-6, 1.9585*^-10},
{0.0000119, 2.9377*^-10},
{0.000015867, 3.9170*^-10},
{0.000019833, 4.8960*^-10},
{0.0000238, 5.8752*^-10},
{0.000027767, 6.8545*^-10},
{0.000031733, 7.8334*^-10},
{0.0000357, 8.8127*^-10},
{0.000039667, 9.7918*^-10},
{0.000043633, 1.0771*^-9},
{0.0000476, 1.1750*^-9},
{0.000051567, 1.2729*^-9},
{0.000055533, 1.3708*^-9},
{0.000063467, 1.5666*^-9},
{0.000075367, 1.8603*^-9},
{0.000087267, 2.1540*^-9},
{0.00010313, 2.5455*^-9}}

Maybe FindFit is getting stuck in a local minima. Give it SigmaPlot's k and s values to start.

In[8]:= sigmafit=FindFit[data,y2,{{k,2900000},{s,.84}},x]

Now it finds far larger k and far smaller s.

Out[8]= {k->1.3980773696034728`*^7, s->0.00031468882517991163`}

Generate {x,y} data from that.

In[9]:= sigmafitdata=Map[{First[#],y2/.x->First[#]/.sigmafit}&,{{0.0, 0.0}, {0.0000079333, 0.4176}, {0.0000119, 0.5385}, {0.000015867, 0.6374}, {0.000019833, 0.7473}, {0.0000238, 0.8571}, {0.000027767, 0.9231}, {0.000031733, 0.9560}, {0.0000357, 0.9780}, {0.000039667, 0.9780}, {0.000043633, 0.9890}, {0.0000476, 1.0220}, {0.000051567, 0.9890}, {0.000055533, 1.0110}, {0.000063467, 1.0000}, {0.000075367, 1.0000}, {0.000087267, 1.0110}, {0.00010313, 1.0000}}]

And it is a horrible fit.

Out[9]= {{0., 0.},
{7.9333*^-6, 0.00001},
{0.0000119, 0.00001},
{0.000015867, 0.00001},
{0.000019833, 0.00001},
{0.0000238, 0.00001},
{0.000027767, 0.00001},
{0.000031733, 0.00001},
{0.0000357, 0.00001},
{0.000039667, 0.00001},
{0.000043633, 0.00001},
{0.0000476, 0.00001},
{0.000051567, 0.00001},
{0.000055533, 0.00001},
{0.000063467, 0.00001},
{0.000075367, 0.00001},
{0.000087267, 0.00001},
{0.00010313, 0.00001}}

Brute force just use the SigmaPlot k and s.

In[10]:= sigmaforcefit=Map[{First[#],
y2/.x->First[#]/.{k->2900000,s->.84}}&,{{0.0, 0.0}, {0.0000079333, 0.4176}, {0.0000119, 0.5385}, {0.000015867, 0.6374}, {0.000019833, 0.7473}, {0.0000238, 0.8571}, {0.000027767, 0.9231}, {0.000031733, 0.9560}, {0.0000357, 0.9780}, {0.000039667, 0.9780}, {0.000043633, 0.9890}, {0.0000476, 1.0220}, {0.000051567, 0.9890}, {0.000055533, 1.0110}, {0.000063467, 1.0000}, {0.000075367, 1.0000}, {0.000087267, 1.0110}, {0.00010313, 1.0000}}]

And it is a horrible fit.

Out[10]= {{0., 0.},
{7.9333*^-6, 4.5413*^-6},
{0.0000119, 6.7252*^-6},
{0.000015867, 8.7635*^-6},
{0.000019833, 0.00001},
{0.0000238, 0.00001},
{0.000027767, 0.00001},
{0.000031733, 0.00001},
{0.0000357, 0.00001},
{0.000039667, 0.00001},
{0.000043633, 0.00001},
{0.0000476, 0.00001},
{0.000051567, 0.00001},
{0.000055533, 0.00001},
{0.000063467, 0.00001},
{0.000075367, 0.00001},
{0.000087267, 0.00001},
{0.00010313, 0.00001}}

Something is terribly wrong somewhere. I'm now no longer seeing the complex value complaints from FindFit. That is probably the result of changing the equation you are fitting. But none of these coefficients are coming anywhere near the data.

Can you double check the equation again? Can you scrape-n-paste the exact equation that SigmaPlot is being given so we can see that?

There have been things in the past where Mathematica only used the first n data points and ignored the rest, but that was a far bigger n than you have here and so that doesn't seem to be the likely culprit.

Generate your own sets of {x,y} data points from the coefficients, using your given x and calculating the y, without being influenced by how I did it. If you or someone else can do that completely independently and they also get points that look nothing like the original data points then that may mean it is less likely I am making an error there.

As x gets large, if we can think of x=.00001 being "large", or even a small fraction of that then y should approach 1. Can simple algebra and your y2 tell you that is true?

You do have a range of x that is orders of magnitude smaller than your range of y. Maybe that is what is blowing this up.

At this point I'm stumped.

There isn't a chance that your units introduce scale factors of 10^9 or 10^-9, is there?

Anyone else have any ideas?

URL: ,

Subject (listing for 'Plotting non-linear values and solving')
Author Date Posted
Plotting non-linear values and solving sk597653 10/17/12 3:05pm
Re: Plotting non-linear values and solving Bill Simpson 10/17/12 11:22pm
Re: Re: Plotting non-linear values and solving sk597653 10/18/12 12:57pm
Re: Re: Re: Plotting non-linear values and solv... Bill Simpson 10/18/12 3:47pm
Re: Re: Re: Re: Plotting non-linear values and ... sk597653 10/20/12 4:47pm
Re: Re: Re: Re: Re: Plotting non-linear values ... Bill Simpson 10/22/12 02:06am
Re: Re: Re: Re: Re: Re: Plotting non-linear val... sk597653 10/23/12 10:40am
Re: Re: Re: Re: Re: Re: Re: Plotting non-linear... Bill Simpson 10/23/12 11:57pm
Re: Re: Re: Re: Re: Re: Re: Re: Plotting non-li... sk597653 10/26/12 4:22pm
Re: Re: Re: Re: Re: Re: Re: Re: Re: Plotting no... Bill Simpson 10/26/12 9:53pm
Re: Re: Re: Re: Re: Re: Plotting non-linear val... sk597653 10/23/12 11:09am
< Previous Comment | Next Comment >Help | Reply To Comment | Reply To Topic