В данной программе были описаны следующие методы:
Интерполяционные дифференциальные кубические сплайны
Интерполяционные дифференциальные параболические сплайны
Восстанавливающие, интерполяционные и сглаживающие интегрально-дифференциальные параболические сплайны
Программа написана на языке Python и использует библиотеки: Math, NumPy, Matplotlib и SciPy
import math
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
def evaluate_function(function, point):
"""
функция для вычисления значения функции в заданной точке
:param function: функция, записанная как строка
:param point: точка, в которой
:return: значение функции
"""
def progonka(A):
"""
метод прогонки
решает систему уравнений
:param A: система уравнений в виде матрицы
:return: массив решений уравнения, где на месте с индексом 0 - значение x0
"""
def cubic_splain(x, f):
"""
метод для нахождения интерполяционного дифференциального кубического сплайна
:param x: массив со значениями агруметов x0, x1,..., xn
:param f: массив со значениями функций f0, f1,..., fn в соотв. точках
:return: вывод сплайн-функции в виде массива полинномов
вывод графика с начальными точками и значениями, а так же с получившейся сплайн-функцией
"""
def quadratic_spline(x, y):
"""
метод для нахождения интерполяционного дифференциального параболического сплайна
:param x: массив со значениями агруметов x0, x1,..., xn
:param y: массив со значениями функций y0, y1,..., yn в соотв. точках
:return: вывод сплайн-функции в виде полинномов
вывод графика с начальными точками и значениями, а так же с получившейся сплайн-функцией
"""
def restoring(x, I, funk = None, f =None, y_min = None, y_max = None):
"""
метод для нахождения восстанавливающего интегрально-дифференциального параболического сплайна
:param x: массив со значениями агруметов x0, x1,..., xn
:param I: массив со значениями интегралов I{0,1}, I{1, 2},..., I{n-2, n-1}
:param funk: используется при вызове данного метода из методов interpolated и smothing
необходим для распознования названия метода, из которого его вызывают
:param f: используется при вызове данного метода из метода interpolated.
массив со значениями функций f0, f1,..., fn в соотв. точках
:param y_min: используется при вызове данного метода из метода smothing.
массив со значениями функций y_min в соотв. точках
:param y_max: используется при вызове данного метода из метода smothing.
массив со значениями функций y_max в соотв. точках
:return: вывод сплайн-функции в виде массива полинномов
вывод графика с начальными точками и значениями интегралов, а так же с получившейся сплайн-функцией
"""
def interpolated(x, f, flag = None):
"""
метод для нахождения интерполяционного интегрально-дифференциального параболического сплайна
:param x: массив со значениями агруметов x0, x1,..., xn
:param f: массив со значениями функций f0, f1,..., fn в соотв. точках
:param flag: используется при вызове данного метода из метода smothing.
если flag = 1, значит метод был вызван из метода smothing
:return: вывод сплайн-функции в виде массива полинномов
вывод графика с начальными точками и значениями, а так же с получившейся сплайн-функцией и найденными значениями интегралов
"""
def smothing(x, f, eps):
"""
метод для нахождения сглаживающего интегрально-дифференциального параболического сплайна
:param x: массив со значениями агруметов x0, x1,..., xn
:param f: массив со значениями функций f0, f1,..., fn в соотв. точках
:param eps: массив со значеними погрешностей eps0, eps1, ..., epsn
:return: вывод сплайн-функции в виде массива полинномов
вывод графика с начальными точками и максимальными и минимальными значениями,
а так же с получившейся сплайн-функцией и найденными максимальными и минимальными значениями интегралов
"""