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