Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
calc:math [2021/03/18 14:24]
root
calc:math [2023/03/14 15:39] (текущий)
root
Строка 212: Строка 212:
 <sxh python> <sxh python>
 from scipy.interpolate import RegularGridInterpolator from scipy.interpolate import RegularGridInterpolator
 +import numpy as np
 +import matplotlib.pyplot as plt
  
 def func(x, y): def func(x, y):
Строка 221: Строка 223:
 grid_x, grid_y = np.meshgrid(xi, yi, indexing='ij') grid_x, grid_y = np.meshgrid(xi, yi, indexing='ij')
  
-#Прямой расчет+#Прямой расчет на сетке
 data = func(grid_x, grid_y) data = func(grid_x, grid_y)
  
-# Гридинг, где points — координаты точек, +# Гридинг нерегулярных данных
-а values — значения в точках+
-data = scipy.interpolate.griddata(points, values, (grid_x, grid_y))+
  
 +#Нерегулярная сетка
 +xs = np.random.uniform(-5, 5, 50)
 +ys = np.random.uniform(-2, 2, 50)
 +
 +#Значение в точках
 +values = func(xs, ys)
 +
 +# Линейная интерполяция на нерегулярной сетке
 +baz = scipy.interpolate.LinearNDInterpolator(np.rollaxis(np.array([xs,ys]), 1), values)
 +plt.imshow(baz((grid_x, grid_y)), extent=[-5,5,-2,2], origin='lower')
 +
 +# Значения на регулярной сетке
 +data = scipy.interpolate.griddata(np.rollaxis(np.array([xs,ys]), 1), values, (grid_x, grid_y))
 +
 +# Интерполяция
 foo = RegularGridInterpolator((xi,yi),data) foo = RegularGridInterpolator((xi,yi),data)
  
-func(-0.5,1+# точки 
-1.0+plt.scatter(xs, ys) 
 + 
 +# исходное поле 
 +plt.imshow(func(grid_x, grid_y), extent=[-5,5,-2,2], origin='lower') 
 + 
 +полученное поле на регулярной сетке 
 +plt.imshow(data, extent=[-5,5,-2,2], origin='lower')
  
-foo([-0.5,1]) +# результат интерполяции 
-# array([ 1.08])+plt.imshow(foo((grid_x, grid_y)), extent=[-5,5,-2,2], origin='lower')
 </sxh> </sxh>
  
Строка 269: Строка 290:
 </div><div slide> </div><div slide>
  
-==== Построение функции плоности распределения ====+==== Построение функции плотности распределения ====
  
 <sxh python> <sxh python>