Фиксация граничных значений на сплайне?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Фиксация граничных значений на сплайне?

Сообщение Anonymous »

У меня есть данные x и y, которые представляют собой зашумленные оценки функции f:[0,alpha] -> [0,1]. Я очень мало знаю о своей функции, за исключением того, что f(0) = 0 и f(alpha) = 1.
Есть ли какой-нибудь способ обеспечить соблюдение этих граничных условий при подгонке сплайна?
Есть ли способ обеспечить соблюдение этих граничных условий при подгонке сплайна?
p>
Вот изображение, на котором видно, что сплайн хорошо вписывается, но аппроксимация плохая около 0, где он принимает значение около 0,08:
Изображение

Я знаю bc_type для различных сплайнов, но, насколько я могу судить, это позволяет только указать 1-ю и 2-ю производную, а не фиксировать граничные значения.
(Возможно, этот вопрос выдает мое незнание того, как устанавливаются сплайны, и что то, о чем я прошу, невозможно. Я просто хочу убедитесь, что я не упустил что-то очевидное.)
Вот игрушечный пример:

Код: Выделить всё

    import numpy as np
from scipy.interpolate import UnivariateSpline
import matplotlib.pyplot as plt

## Generate noisy evaluations of the square root function.
## (In my exmaple, I don't have a closed form expression for my function)

x = np.linspace(0,1,1000)
y = np.sqrt(x) + (np.random.random(1000)-0.5)*0.05

## Fit spline

spline = UnivariateSpline(x,y)

plt.figure(figsize=(7,7))
plt.scatter(x,y,s=1,label="Monte Carlo samples")
plt.plot(x,spline(x),color='red',label="spline")
plt.legend()
plt.title("Noisy evaluations of sqrt")
plt.grid()
plt.show()
И получившийся график, на котором довольно хорошо видно, что сплайн обеспечивает плохое приближение к нулю:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/784 ... n-a-spline
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»