Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

теория 1к 2с / Приближение функций. Методы интерполяции зависимостей с одной независимой переменной. Интерполяционный многочлен Лагранжа. Аппроксимация методом наименьших квадратов

.pdf
Скачиваний:
13
Добавлен:
20.06.2023
Размер:
766.12 Кб
Скачать

МНК с NumPy

 

 

Исходный код

Результат

 

 

 

 

1

# Задание целевой функции

 

 

 

2

f = lambda x: -1 + 3*x - 2*x**2

 

 

 

3

# Создание псевдо-экспериментальных данных

 

 

 

4

xs = np.linspace(0, 2, 1000)

 

 

 

5

ys = f(xs) + np.random.randn(xs.size) / 4

 

 

 

6

# Расчет коэффициентов

 

 

 

7

p = np.polyfit(x, y, deg=3)

 

 

 

8

# Получение расчетных значений

 

 

 

9

yc = np.polyval(p, xs)

 

 

 

10

 

 

 

 

11

plt.scatter(xs, ys, alpha=0.3)

 

 

 

12

plt.plot(xs, yc, c="r")

 

 

 

13

 

 

 

 

14

plt.show()

 

 

 

 

 

 

 

 

 

 

 

 

МНК с NumPy

Описание произвольной функцией

Исходный код

Результат

1 # Задание целевой функции

2 def eq(x, a, b, c):

3return a + b*np.log(1e-7 + x * c)

4 # Создание псевдо-экспериментальных данных

5 xs = np.linspace(0, 1, 1000)

6 err = np.random.randn(xs.size) / 40 7 ys = eq(xs, 1, -0.1, 0.01) + err

8 # Расчет коэффициентов

9 cs = curve_fit(eq, xs, ys)[0]

10 # Получение расчетных значений

11 yc = eq(xs, *cs)

12

13 plt.scatter(xs, ys, alpha=0.3)

14 plt.plot(xs, yc, c="r")

15

16 plt.show()

Спасибо за внимание

Список ресурсов

Интерполяция WiKi

Интерполяция SciPy

МНК WiKi

Аппроксимация SciPy