построй функцию наилучшее приближение функции f(x)...

Criado em: 13 de junho de 2025

Respondido usando GPT-4.5 por Chat01

Pergunta

построй функцию наилучшее приближение функции f(x) = sin(pi * x) в конечномерном подпространстве K гильбертова пространства интегрируемых с квадратом функций определённых на отрезке от минус 1 до 1 в котором скалярное произведение определено как интеграл от минус 1 до 1, где K класс многочленов степени не выше 4

Resposta

Для построения наилучшего приближения функции f(x)=sin(πx)f(x) = \sin(\pi x) в подпространстве многочленов степени не выше 4 с заданным скалярным произведением, необходимо решить задачу ортогональной проекции.

Шаги решения:

  1. Определение пространства и задачи:
    Пусть KK — пространство многочленов степени не выше 4. Нам нужно найти многочлен p(x)Kp(x) \in K, минимизирующий норму:
f(x)p(x)2=11(sin(πx)p(x))2dxmin.\|f(x) - p(x)\|^2 = \int_{-1}^{1}\left(\sin(\pi x) - p(x)\right)^2 dx \rightarrow \min.
  1. Ортогональность:
    Условие минимизации эквивалентно ортогональности ошибки приближения f(x)p(x)f(x)-p(x) к любому многочлену степени не выше 4. То есть:
11(sin(πx)p(x))xkdx=0,k=0,1,2,3,4.\int_{-1}^{1} (\sin(\pi x) - p(x)) x^k\,dx = 0,\quad k = 0,1,2,3,4.
  1. Построение и решение системы:
    Получается система из 5 линейных уравнений относительно коэффициентов многочлена p(x)=a0+a1x+a2x2+a3x3+a4x4p(x) = a_0 + a_1 x + a_2 x^2 + a_3 x^3 + a_4 x^4:
{11(sin(πx)p(x))dx=0,11(sin(πx)p(x))xdx=0,11(sin(πx)p(x))x2dx=0,11(sin(πx)p(x))x3dx=0,11(sin(πx)p(x))x4dx=0.\begin{cases} \int_{-1}^{1} (\sin(\pi x) - p(x)) \,dx = 0,\\[6pt] \int_{-1}^{1} (\sin(\pi x) - p(x)) x \,dx = 0,\\[6pt] \int_{-1}^{1} (\sin(\pi x) - p(x)) x^2 \,dx = 0,\\[6pt] \int_{-1}^{1} (\sin(\pi x) - p(x)) x^3 \,dx = 0,\\[6pt] \int_{-1}^{1} (\sin(\pi x) - p(x)) x^4 \,dx = 0. \end{cases}

Отсюда легко находится система относительно коэффициентов a0,a1,a2,a3,a4a_0, a_1, a_2, a_3, a_4:

a011xkdx+a111xk+1dx+a211xk+2dx+a311xk+3dx+a411xk+4dx=11sin(πx)xkdx,гдеk=0,1,2,3,4.\begin{aligned} a_0 \int_{-1}^{1} x^k\,dx + a_1 \int_{-1}^{1} x^{k+1}\,dx + a_2 \int_{-1}^{1} x^{k+2}\,dx + a_3 \int_{-1}^{1} x^{k+3}\,dx + a_4 \int_{-1}^{1} x^{k+4}\,dx &= \int_{-1}^{1}\sin(\pi x) x^k\,dx,\\[6pt] \text{где}\quad k &= 0,1,2,3,4. \end{aligned}
  1. Реализация на Python:
    Вот простая функция, вычисляющая наилучшее приближение:
python
import numpy as np from scipy.integrate import quad from numpy.polynomial import Polynomial def best_poly_approximation(f, degree, interval=(-1, 1)): # Создание матрицы и вектора правых частей A = np.zeros((degree+1, degree+1)) b = np.zeros(degree+1) # Заполнение матрицы и вектора for i in range(degree+1): for j in range(degree+1): A[i, j], _ = quad(lambda x: x**(i+j), interval[0], interval[1]) b[i], _ = quad(lambda x: f(x) * x**i, interval[0], interval[1]) # Решение линейной системы coeffs = np.linalg.solve(A, b) return Polynomial(coeffs) # Функция для приближения f = lambda x: np.sin(np.pi * x) # Вычисляем многочлен степени 4 poly = best_poly_approximation(f, 4) # Вывод коэффициентов print(poly)

Эта функция вернёт многочлен с коэффициентами, наилучшим образом приближающий исходную функцию в заданном подпространстве многочленов степени не выше 4.

Compartilhar esta Q&A