Analiz için laboratuvarımızdan bazı verilerim var. Şimdiye kadar bir değişkene bağlı olan bir problemdi.2D interpolasyon ve maksimum interp2d ve fmin/minimuma göre en az
# use splines to fit and interpolate data
from scipy.interpolate import interp1d
from scipy.optimize import fmin
import numpy as np
x = np.array([ 0, 1, 2, 3, 4 ])
y = np.array([ 0., 0.308, 0.55, 0.546, 0.44 ])
# create the interpolating function
f = interp1d(x, y, kind='cubic', bounds_error=False)
# to find the maximum, we minimize the negative of the function. We
# cannot just multiply f by -1, so we create a new function here.
f2 = interp1d(x, -y, kind='cubic')
xmax = fmin(f2, 2.5)
[...]
Bu benim sorunum en az iki parametre dependend olduğunu anladım: Bu yüzden bir çözüm (http://kitchingroup.cheme.cmu.edu/blog/category/interpolation/) bulundu. Bu yüzden çok boyutlu bir problem için "interp2d" yi uygulamaya çalıştım. Ama aslında nasıl olduğunu tam olarak anlamadım.
| 2.00 | 2.50 | 3.00 | 3.50 | ...
--------------------------------------
5.00 | 0.0 | 60.0 | 10.0 | 0.00
10.0 | 0.0 | 100.0| 70.0 | 30.0
25.0 | 10.0 | 40.0 | 50.0 | 10.0
50.0 | 15.0 | 30.0 | 10.0 | 0.0
...
benim için oldukça ilginçti bu yayını "Scipy interpolation on a numpy array" okuyun:
Ben gibidir test için bir veri matrisi var. Şimdi örnekte olduğu gibi verileri karıştırmam mümkün. Ama scipy'den "küçült" gibi bir işlevi nasıl uygulayacağımı bilmiyorum. Bir örnek (http://docs.scipy.org/doc/scipy-0.16.0/reference/generated/scipy.optimize.minimize.html#scipy.optimize.minimize) vardır, ancak yukarıdaki 1D örneğinde olduğu gibi enterpolasyonlu veri kümesi yerine bir analitik işlev kullanın.
res = minimize(func, x0, method='Nelder-Mead')
ben o ben çünkü dizinin şeklinin derde girdi aynı şekilde yapmaya interp2d kullanmaya çalıştım. Belki sorunu kullanmak için sorunu çözmek için anahtardır?
Belki birisi böyle bir 2D enterpolasyonu nasıl kullanacağımı ve maksimum değeri nasıl bulacağımı açıklayabilir. 1D sorunla tecrübeme dayanarak
Selamlar, Alex