Interpolation problems
- To: mathgroup at smc.vnet.net
- Subject: [mg120229] Interpolation problems
- From: James Womack <james.c.womack at gmail.com>
- Date: Thu, 14 Jul 2011 05:21:51 -0400 (EDT)
Hello all,
I am having difficulty with interpolating a data set. My data is a
function of one coordinate -- each data point consists of 2 numbers, one
denoting position and one denoting the value of the function. If you are
interested, the data represents a potential energy function.
The best way to demonstrate my issue is to link to some images of plots.
First, here is the result of:
ListPlot[data, PlotRange -> {{0.4, 0.6}, {-350, 350}}, Joined -> True]
http://jcwx86.dyndns.org/public/listplot.jpeg
Second, here is the result of:
Plot[Interpolation[data][x], {x, 0.4, 0.6}, PlotRange -> {-350, 350}]
http://jcwx86.dyndns.org/public/interpolationfunction.jpeg
These plots focus only on the relevant region of the data. The data
spans x = 0.000857412 to x = 25.6297. The peak you see in the plots is
cut off with a maximum value of the function at about y = 4000.
As you can see, the interpolation results in two small additional minima
at the base of the peak. This is problematic, since the function is a
potential energy function and minima represent stable-states. Additional
minima present in the data therefore result in problems with subsequent
calculations using the InterpolationFunction of the data.
I suspect that the issue is to do with the Interpolation command trying
to fit the function to every datapoint. The rapid change in gradient at
the base of the peak means that in order to fit splines to the function,
these minima are necessary.
Ideally, I would like an InterpolationFunction of the data that is (i)
smooth and (ii) lacks these spurious minima. I have considered deleting
data points from the base of the peak, as this might enable the splines
to better fit the peak. Does anyone know of a way that I can modify the
Interpolation command that enables a fit which better represents the
data? Or perhaps you know of an alternative method of creating
interpolated functions which might suit my needs better? I have already
tried increasing the interpolation order -- this seems only to result in
more "wobbles" at the base of the peak. Decreasing the interpolation
order to 1 removes the minima, but also means the function is no longer
"smooth".
If you want to play around with the data yourself, I will post it below
in full.
Thanks in advance for your thoughts,
James
data = {{0.000857412, 14838.7}, {0.000952607, 14879.2}, {0.0010546,
14922.6}, {0.00116363, 14967.6}, {0.00127992, 15012.4}, {0.00140372,
15055.}, {0.00153526, 15092.5}, {0.00167477, 15121.8}, {0.00182249,
15139.7}, {0.00197865, 15142.7}, {0.00214349,
15127.9}, {0.00231725, 15092.8}, {0.00250016, 15036.}, {0.00269245,
14957.1}, {0.00289436, 14856.4}, {0.00310612, 14735.2}, {0.00332798,
14594.7}, {0.00356017, 14436.}, {0.00380292, 14259.1}, {0.00405647,
14062.8}, {0.00432105, 13844.5}, {0.00459691,
13601.1}, {0.00488428, 13329.}, {0.00518339, 13025.6}, {0.00549449,
12689.5}, {0.0058178, 12320.9}, {0.00615357, 11922.}, {0.00650203,
11496.5}, {0.00686342, 11049.1}, {0.00723798, 10585.3}, {0.00762594,
10110.9}, {0.00802755, 9631.17}, {0.00844304,
9151.38}, {0.00887265, 8675.96}, {0.00931661, 8208.59}, {0.00977517,
7752.08}, {0.0102486, 7308.4}, {0.010737, 6878.79}, {0.0112408,
6463.95}, {0.0117602, 6064.19}, {0.0122953, 5679.67}, {0.0128465,
5310.55}, {0.0134139, 4957.09}, {0.0139978, 4619.7}, {0.0145986,
4298.88}, {0.0152163, 3995.17}, {0.0158512, 3709.05}, {0.0165036,
3440.87}, {0.0171737, 3190.75}, {0.0178618, 2958.54}, {0.0185681,
2743.84}, {0.0192929, 2545.97}, {0.0200363, 2364.08}, {0.0207987,
2197.12}, {0.0215803, 2043.97}, {0.0223812, 1903.44}, {0.0232019,
1774.37}, {0.0240425, 1655.66}, {0.0249032, 1546.25}, {0.0257843,
1445.24}, {0.0266861, 1351.8}, {0.0276088, 1265.26}, {0.0285526,
1185.03}, {0.0295178, 1110.63}, {0.0305046, 1041.65}, {0.0315134,
977.742}, {0.0325443, 918.601}, {0.0335975, 863.929}, {0.0346735,
813.433}, {0.0357722, 766.816}, {0.0368942, 723.771}, {0.0380395,
683.979}, {0.0392085, 647.117}, {0.0404014, 612.862}, {0.0416184,
580.898}, {0.0428598, 550.931}, {0.0441259, 522.687}, {0.0454169,
495.929}, {0.046733, 470.455}, {0.0480746, 446.101}, {0.0494419,
422.747}, {0.0508351, 400.309}, {0.0522545, 378.739}, {0.0537004,
358.02}, {0.055173, 338.159}, {0.0566725, 319.178}, {0.0581993,
301.111}, {0.0597536, 283.995}, {0.0613357, 267.864}, {0.0629458,
252.743}, {0.0645842, 238.642}, {0.0662511, 225.56}, {0.0679469,
213.476}, {0.0696718, 202.352}, {0.071426, 192.138}, {0.0732098,
182.767}, {0.0750235, 174.163}, {0.0768674, 166.246}, {0.0787418,
158.929}, {0.0806468, 152.129}, {0.0825829, 145.764}, {0.0845501,
139.761}, {0.0865489, 134.055}, {0.0885796, 128.59}, {0.0906423,
123.323}, {0.0927373, 118.223}, {0.094865, 113.266}, {0.0970257,
108.441}, {0.0992195, 103.746}, {0.101447, 99.1832}, {0.103708,
94.7614}, {0.106003, 90.492}, {0.108333, 86.3876}, {0.110697,
82.4605}, {0.113096, 78.7209}, {0.11553, 75.1764}, {0.118,
71.8308}, {0.120505, 68.6837}, {0.123047, 65.731}, {0.125625,
62.9647}, {0.128239, 60.3737}, {0.130891, 57.9446}, {0.13358,
55.6622}, {0.136306, 53.511}, {0.13907, 51.4754}, {0.141873,
49.541}, {0.144714, 47.6948}, {0.147594, 45.9259}, {0.150512,
44.2252}, {0.153471, 42.5863}, {0.156469, 41.0045}, {0.159507,
39.477}, {0.162585, 38.0023}, {0.165704, 36.5801}, {0.168864,
35.2105}, {0.172065, 33.894}, {0.175308, 32.6307}, {0.178593,
31.4207}, {0.18192, 30.2633}, {0.185289, 29.1574}, {0.188702,
28.1014}, {0.192157, 27.0929}, {0.195657, 26.1294}, {0.1992,
25.208}, {0.202787, 24.3257}, {0.206419, 23.4798}, {0.210096,
22.6673}, {0.213819, 21.8858}, {0.217586, 21.1333}, {0.2214,
20.4077}, {0.22526, 19.7078}, {0.229167, 19.0325}, {0.233121,
18.3809}, {0.237122, 17.7527}, {0.241171, 17.1474}, {0.245267,
16.5648}, {0.249413, 16.0049}, {0.253607, 15.4675}, {0.25785,
14.9524}, {0.262143, 14.4593}, {0.266486, 13.9879}, {0.270879,
13.5376}, {0.275322, 13.1078}, {0.279817, 12.6974}, {0.284363,
12.3057}, {0.288961, 11.9315}, {0.293611, 11.5735}, {0.298314,
11.2306}, {0.30307, 10.9012}, {0.307879, 10.5843}, {0.312741,
10.2783}, {0.317658, 9.98209}, {0.32263, 9.69444}, {0.327657,
9.41427}, {0.332738, 9.1406}, {0.337876, 8.8726}, {0.34307,
8.60957}, {0.348321, 8.35099}, {0.353629, 8.09645}, {0.358994,
7.84573}, {0.364417, 7.59873}, {0.369899, 7.35549}, {0.375439,
7.11617}, {0.381039, 6.88106}, {0.386698, 6.65052}, {0.392417,
6.42502}, {0.398197, 6.20507}, {0.404039, 5.99126}, {0.409941,
5.78421}, {0.415906, 5.5846}, {0.421933, 5.39311}, {0.428023,
5.2105}, {0.434176, 5.03758}, {0.440393, 4.87524}, {0.446675,
4.72458}, {0.453022, 4.58699}, {0.459433, 4.46447}, {0.465911,
4.36017}, {0.472455, 4.27959}, {0.479066, 4.23335}, {0.485744,
4.24452}, {0.492491, 4.37035}, {0.499305, 4.77992}, {0.506189,
6.11074}, {0.513142, 11.8735}, {0.520165, 61.2058}, {0.527258,
3610.21}, {0.534423, 3768.91}, {0.541659, 56.1737}, {0.548968,
9.2241}, {0.556349, 4.2115}, {0.563803, 3.15953}, {0.571332,
2.84967}, {0.578935, 2.73556}, {0.586613, 2.68399}, {0.594367,
2.6543}, {0.602197, 2.63196}, {0.610104, 2.6111}, {0.618088,
2.58908}, {0.626151, 2.56459}, {0.634292, 2.5369}, {0.642513,
2.5056}, {0.650813, 2.47046}, {0.659194, 2.43137}, {0.667657,
2.38832}, {0.676201, 2.34142}, {0.684829, 2.29084}, {0.693539,
2.23686}, {0.702333, 2.17981}, {0.711212, 2.12015}, {0.720177,
2.05834}, {0.729227, 1.99494}, {0.738364, 1.93054}, {0.747589,
1.86573}, {0.756902, 1.80114}, {0.766304, 1.73737}, {0.775795,
1.67498}, {0.785377, 1.61451}, {0.79505, 1.55641}, {0.804815,
1.50107}, {0.814673, 1.4488}, {0.824624, 1.39981}, {0.83467,
1.35422}, {0.844811, 1.31207}, {0.855048, 1.27331}, {0.865381,
1.23782}, {0.875812, 1.20541}, {0.886342, 1.17584}, {0.896971,
1.14884}, {0.9077, 1.12412}, {0.91853, 1.10136}, {0.929463,
1.08026}, {0.940498, 1.06052}, {0.951637, 1.04186}, {0.96288,
1.02403}, {0.974229, 1.00679}, {0.985685, 0.989961}, {0.997248,
0.973372}, {1.00892, 0.956891}, {1.0207, 0.940417}, {1.03259,
0.923877}, {1.0446, 0.90722}, {1.05671, 0.890421}, {1.06894,
0.873471}, {1.08129, 0.856377}, {1.09375, 0.839159}, {1.10632,
0.821848}, {1.11902, 0.804479}, {1.13183, 0.787093}, {1.14476,
0.769734}, {1.15782, 0.752447}, {1.171, 0.735276}, {1.1843,
0.718261}, {1.19772, 0.701443}, {1.21128, 0.684858}, {1.22495,
0.668537}, {1.23876, 0.652509}, {1.2527, 0.636798}, {1.26677,
0.621424}, {1.28097, 0.606403}, {1.2953, 0.591746}, {1.30977,
0.577463}, {1.32438, 0.563558}, {1.33912, 0.550034}, {1.354,
0.53689}, {1.36903, 0.524124}, {1.38419, 0.511731}, {1.3995,
0.499706}, {1.41495, 0.488039}, {1.43055, 0.476724}, {1.4463,
0.46575}, {1.4622, 0.455106}, {1.47825, 0.444782}, {1.49445,
0.434767}, {1.51081, 0.425048}, {1.52732, 0.415615}, {1.54399,
0.406455}, {1.56082, 0.397555}, {1.57781, 0.388905}, {1.59496,
0.380491}, {1.61228, 0.372303}, {1.62977, 0.364327}, {1.64742,
0.356553}, {1.66524, 0.348968}, {1.68324, 0.341562}, {1.70141,
0.334323}, {1.71976, 0.327241}, {1.73828, 0.320305}, {1.75699,
0.313506}, {1.77588, 0.306834}, {1.79495, 0.30028}, {1.81421,
0.293836}, {1.83366, 0.287495}, {1.8533, 0.281251}, {1.87314,
0.275096}, {1.89317, 0.269027}, {1.9134, 0.263039}, {1.93382,
0.257129}, {1.95446, 0.251294}, {1.9753, 0.245533}, {1.99634,
0.239846}, {2.0176, 0.234233}, {2.03907, 0.228695}, {2.06076,
0.223234}, {2.08267, 0.217853}, {2.1048, 0.212556}, {2.12715,
0.207345}, {2.14974, 0.202226}, {2.17255, 0.197204}, {2.1956,
0.192282}, {2.21888, 0.187468}, {2.24241, 0.182765}, {2.26618,
0.178179}, {2.29019, 0.173715}, {2.31446, 0.169377}, {2.33898,
0.165171}, {2.36375, 0.161099}, {2.38879, 0.157164}, {2.41409,
0.15337}, {2.43967, 0.149718}, {2.46551, 0.146209}, {2.49163,
0.142844}, {2.51803, 0.13962}, {2.54471, 0.136537}, {2.57168,
0.133593}, {2.59895, 0.130783}, {2.62651, 0.128104}, {2.65438,
0.12555}, {2.68255, 0.123115}, {2.71103, 0.120793}, {2.73983,
0.118577}, {2.76894, 0.116457}, {2.79839, 0.114426}, {2.82817,
0.112475}, {2.85828, 0.110594}, {2.88873, 0.108774}, {2.91953,
0.107005}, {2.95069, 0.105277}, {2.9822, 0.103581}, {3.01408,
0.101906}, {3.04634, 0.100244}, {3.07896, 0.0985851}, {3.11198,
0.0969214}, {3.14538, 0.0952448}, {3.17918, 0.0935482}, {3.21339,
0.0918252}, {3.24801, 0.0900703}, {3.28304, 0.0882791}, {3.31851,
0.0864479}, {3.35441, 0.0845746}, {3.39075, 0.0826577}, {3.42754,
0.0806974}, {3.4648, 0.0786946}, {3.50252, 0.0766518}, {3.54072,
0.0745723}, {3.5794, 0.0724607}, {3.61859, 0.0703225}, {3.65827,
0.0681642}, {3.69848, 0.0659931}, {3.73921, 0.0638169}, {3.78048,
0.0616441}, {3.8223, 0.0594833}, {3.86468, 0.0573433}, {3.90763,
0.055233}, {3.95116, 0.0531607}, {3.9953, 0.0511345}, {4.04004,
0.049162}, {4.0854, 0.0472498}, {4.13141, 0.0454037}, {4.17806,
0.0436287}, {4.22539, 0.0419284}, {4.27339, 0.0403057}, {4.32209,
0.038762}, {4.37151, 0.0372978}, {4.42166, 0.0359126}, {4.47256,
0.0346048}, {4.52423, 0.0333719}, {4.57669, 0.0322107}, {4.62995,
0.0311175}, {4.68405, 0.0300877}, {4.73899, 0.0291167}, {4.7948,
0.0281994}, {4.85151, 0.0273307}, {4.90914, 0.0265055}, {4.96772,
0.0257188}, {5.02726, 0.0249656}, {5.08781, 0.0242415}, {5.14938,
0.0235421}, {5.212, 0.0228634}, {5.27572, 0.022202}, {5.34055,
0.0215545}, {5.40654, 0.0209184}, {5.47372, 0.020291}, {5.54213,
0.0196703}, {5.6118, 0.0190546}, {5.68278, 0.0184424}, {5.75511,
0.0178324}, {5.82884, 0.0172239}, {5.90401, 0.0166158}, {5.98067,
0.0160078}, {6.05888, 0.0153993}, {6.13869, 0.01479}, {6.22016,
0.0141799}, {6.30335, 0.0135688}, {6.38833, 0.0129568}, {6.47516,
0.012344}, {6.56392, 0.0117308}, {6.65469, 0.0111176}, {6.74755,
0.010505}, {6.84259, 0.00989355}, {6.93989, 0.00928413}, {7.03957,
0.00867764}, {7.14172, 0.0080751}, {7.24646, 0.00747763}, {7.35392,
0.00688635}, {7.46421, 0.00630242}, {7.57749, 0.00572695}, {7.6939,
0.00516099}, {7.81361, 0.00460546}, {7.93678, 0.00406112}, {8.06362,
0.00352857}, {8.19432, 0.0030082}, {8.32911, 0.00250021}, {8.46823,
0.00200459}, {8.61196, 0.00152117}, {8.76057, 0.0010496}, {8.9144,
0.000589449}, {9.0738,
0.000140156}, {9.23915, -0.00029888}, {9.41088, -0.000728292},
{9.58949, -0.00114872}, {9.77551, -0.00156078}, {9.96953,
-0.00196506}, {10.1723, -0.00236211}, {10.3844, -0.00275245},
{10.607, -0.00313654}, {10.8409, -0.0035148}, {11.0873, -0.00388763},
{11.3476, -0.00425541}, {11.6234, -0.0046185}, {11.9164,
-0.00497726}, {12.2291, -0.00533205}, {12.5641, -0.00568327},
{12.9246, -0.00603136}, {13.3148, -0.00637682}, {13.7399,
-0.00672024}, {14.2064, -0.00706234}, {14.7232, -0.00740403},
{15.3022, -0.00774645}, {15.9599, -0.00809116}, {16.7207,
-0.00844029}, {17.6223, -0.00879694}, {18.7281, -0.00916597},
{20.1565, -0.00955576}, {22.1739, -0.00998324}, {25.6297, -0.0104947}}