Scipy Interpolate Gives Varying Results
I'm trying to get the same answer when reading of an interpolated function in Python using scipy.interpolate.interp1d but when I change the size of the x linspace I get different results.
Below is a simplified case where I feed the interpolated functions different radii and they return drastically different results. I can't work out why this is happening so any help would be greatly appreciated.
from scipy.interpolate import interp1d import numpy as np import matplotlib.pyplot as plt plt.close('all') M_centre = 2e30 G = 1.67e-11 m_test = 6e24 radius = np.linspace(5,1e2,1000) radius2 = np.linspace(5,1e21,1000) V_circ = np.sqrt(G*M_centre/radius) V_circ2 = np.sqrt(G*M_centre/radius2) velocities_circ = interp1d(radius,V_circ) test_r = velocities_circ(50) print(test_r) velocities_circ2 = interp1d(radius2,V_circ2) test_r2 = velocities_circ2(50) print(test_r2) Out: 817312853.7629617 2584569596.664017
I've thought about maybe the step size of the linspace is causing the varying reading on the interpolated function but it surely can't vary by an order of magnitude can it?
Edit: I have also tried this method using numpy.interp but it gives the same results as above.
Just a quick illustration of the problem with reduced numbers for contrast:
from scipy.interpolate import interp1d import numpy as np import matplotlib.pyplot as plt M_centre = 2e30 G = 1.67e-11 m_test = 6e24 radius1 = np.linspace(5,1e3,10) radius2 = np.linspace(5,1e2,10) V_circ1 = np.sqrt(G*M_centre/radius1) V_circ2 = np.sqrt(G*M_centre/radius2) velocities_circ1 = interp1d(radius1,V_circ1) test_r1 = velocities_circ1(50) print(test_r1) velocities_circ2 = interp1d(radius2,V_circ2) test_r2 = velocities_circ2(50) print(test_r2) plt.plot(radius1, V_circ1, "ro", label = "radius1") plt.plot(radius2, V_circ2, "bx", label = "radius2") plt.plot(radius1, velocities_circ1(radius1), "r") plt.plot(radius2, velocities_circ2(radius2), "b") plt.legend() plt.xlim(0, 400) plt.show()
And the equivalent diagram for same range (5, 1e2), but different number of points (3 vs 10):
- → What are the pluses/minuses of different ways to configure GPIOs on the Beaglebone Black?
- → Django, code inside <script> tag doesn't work in a template
- → React - Django webpack config with dynamic 'output'
- → GAE Python app - Does URL matter for SEO?
- → Put a Rendered Django Template in Json along with some other items
- → session disappears when request is sent from fetch
- → Python Shopify API output formatted datetime string in django template
- → Shopify app: adding a new shipping address via webhook
- → Shopify + Python library: how to create new shipping address
- → shopify python api: how do add new assets to published theme?
- → Access 'HTTP_X_SHOPIFY_SHOP_API_CALL_LIMIT' with Python Shopify Module