Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
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, | grid_x, grid_y = np.meshgrid(xi, | ||
- | # | + | # |
data = func(grid_x, | data = func(grid_x, | ||
- | # Гридинг, где points — координаты точек, | + | # Гридинг |
- | # а values — значения в точках. | + | |
- | data = scipy.interpolate.griddata(points, | + | |
+ | # | ||
+ | xs = np.random.uniform(-5, | ||
+ | ys = np.random.uniform(-2, | ||
+ | |||
+ | # | ||
+ | values = func(xs, ys) | ||
+ | |||
+ | # Линейная интерполяция на нерегулярной сетке | ||
+ | baz = scipy.interpolate.LinearNDInterpolator(np.rollaxis(np.array([xs, | ||
+ | plt.imshow(baz((grid_x, | ||
+ | |||
+ | # Значения на регулярной сетке | ||
+ | data = scipy.interpolate.griddata(np.rollaxis(np.array([xs, | ||
+ | |||
+ | # Интерполяция | ||
foo = RegularGridInterpolator((xi, | foo = RegularGridInterpolator((xi, | ||
- | func(-0.5,1) | + | # точки |
- | # 1.0 | + | plt.scatter(xs, |
+ | |||
+ | # исходное поле | ||
+ | plt.imshow(func(grid_x, grid_y), extent=[-5,5,-2,2], origin=' | ||
+ | |||
+ | # полученное поле на регулярной сетке | ||
+ | plt.imshow(data, | ||
- | foo([-0.5,1]) | + | # результат интерполяции |
- | # array([ 1.08]) | + | plt.imshow(foo((grid_x, grid_y)), extent=[-5,5,-2,2], origin=' |
</ | </ | ||
Строка 269: | Строка 290: | ||
</ | </ | ||
- | ==== Построение функции плоности распределения ==== | + | ==== Построение функции плотности распределения ==== |
<sxh python> | <sxh python> |