EssayAI
Блог
Блог
Математика и алгоритмы

Метод Галёркина: идея, формулы и решение краевой задачи

11 июня 2026Время чтения: 7 минут
#метод галёркина#краевая задача#слабая форма#пробные функции#матрица жёсткости
Метод Галёркина: идея, формулы и решение краевой задачи

Метод Галёркина (точнее, метод Бубнова-Галёркина) - это способ приближённо решать дифференциальные уравнения, когда точную формулу выписать невозможно. Идея проста: искомую функцию ищут как сумму нескольких заранее выбранных пробных функций с неизвестными коэффициентами, а коэффициенты подбирают так, чтобы невязка уравнения была ортогональна тем же функциям. На этой идее держатся метод конечных элементов и спектральные методы, поэтому метод Галёркина проходят и в курсе численных методов, и в вычислительной механике. Ниже разберём, что такое слабая форма, как из неё получается система линейных уравнений с матрицей жёсткости и вектором нагрузки, как решить её для типовой краевой задачи и где студенты чаще всего ошибаются. Чтобы сразу почувствовать, как приближение сходится к точному решению, покрутите калькулятор: он собирает систему за вас и накладывает приближение Галёркина на точную кривую.

В чём идея метода Галёркина

Возьмём типовую краевую задачу: найти функцию u(x)u(x) на отрезке [0,1][0, 1], удовлетворяющую уравнению

u(x)=f(x),u(0)=u(1)=0.-u''(x) = f(x), \qquad u(0) = u(1) = 0.

Метод Галёркина не ищет uu точно. Вместо этого решение приближают конечной суммой:

uh(x)=i=1nciφi(x),u_h(x) = \sum_{i=1}^{n} c_i \, \varphi_i(x),

где φi(x)\varphi_i(x) - заранее выбранные пробные (базисные) функции, а cic_i - неизвестные коэффициенты. Пробные функции подбирают так, чтобы каждая из них уже удовлетворяла краевым условиям. Для нашей задачи удобно взять

φi(x)=xi(1x),i=1,2,,n,\varphi_i(x) = x^i (1 - x), \qquad i = 1, 2, \dots, n,

ведь каждая из них обращается в ноль при x=0x = 0 и x=1x = 1, а значит, и любая их сумма uhu_h автоматически удовлетворяет условиям uh(0)=uh(1)=0u_h(0) = u_h(1) = 0. Остаётся найти nn чисел cic_i - и приближение готово.

Сначала на отрезке появляется одна пробная функция и грубое приближение, затем добавляется вторая, третья - сумма с подобранными коэффициентами всё точнее ложится на точную кривую, а закрашенная невязка между ними сжимается

Невязка и условие ортогональности

Подставим приближение uhu_h в уравнение. Поскольку uhu_h - не точное решение, равенство нарушается, и остаётся невязка:

R(x)=uh(x)f(x).R(x) = -u_h''(x) - f(x).

Метод Галёркина требует не обнулить невязку всюду (это невозможно при конечном nn), а сделать её ортогональной каждой пробной функции - то есть приравнять к нулю nn интегралов:

01R(x)φj(x)dx=0,j=1,,n.\int_0^1 R(x)\, \varphi_j(x)\, dx = 0, \qquad j = 1, \dots, n.

Здесь и кроется ключевая особенность метода Бубнова-Галёркина: в качестве весовых функций берут те же самые φj\varphi_j, что и пробные. В этом отличие от родственных подходов - в методе коллокаций невязку зануляют в отдельных точках, в методе наименьших квадратов минимизируют её квадрат. Совпадение пробного и весового базисов делает матрицу системы симметричной, что и ценят на практике.

Слабая форма: матрица жёсткости и вектор нагрузки

Интеграл с uhu_h'' неудобен: он требует двух производных от пробных функций. От одной производной избавляются интегрированием по частям - так получают слабую (вариационную) форму:

01uh(x)φj(x)dx=01f(x)φj(x)dx.\int_0^1 u_h'(x)\, \varphi_j'(x)\, dx = \int_0^1 f(x)\, \varphi_j(x)\, dx.

Внеинтегральные слагаемые исчезают, потому что φj\varphi_j равны нулю на концах. Подставив uh=ciφiu_h = \sum c_i \varphi_i, выносим коэффициенты за интеграл и получаем систему линейных уравнений Kc=bK c = b, где

Kij=01φi(x)φj(x)dx,bj=01f(x)φj(x)dx.K_{ij} = \int_0^1 \varphi_i'(x)\, \varphi_j'(x)\, dx, \qquad b_j = \int_0^1 f(x)\, \varphi_j(x)\, dx.

Матрицу KK называют матрицей жёсткости (термин пришёл из механики), а вектор bb - вектором нагрузки. Решив систему, получаем коэффициенты cic_i и сразу выписываем приближение uhu_h. Калькулятор выше делает ровно эти шаги: считает все интегралы, собирает KK и bb, решает систему методом Гаусса.

Сравнение приближения Галёркина и точного решения краевой задачи: пунктир - точная кривая, сплошная - приближение, закрашена убывающая с ростом числа функций невязка
Сравнение приближения Галёркина и точного решения краевой задачи: пунктир - точная кривая, сплошная - приближение, закрашена убывающая с ростом числа функций невязка

Разбор на простом примере

Возьмём f(x)=1f(x) = 1 и одну пробную функцию φ1=x(1x)\varphi_1 = x(1 - x). Тогда

φ1(x)=12x,K11=01(12x)2dx=13,b1=01x(1x)dx=16.\varphi_1'(x) = 1 - 2x, \qquad K_{11} = \int_0^1 (1 - 2x)^2\, dx = \frac{1}{3}, \qquad b_1 = \int_0^1 x(1 - x)\, dx = \frac{1}{6}.

Система из одного уравнения: 13c1=16\tfrac13 c_1 = \tfrac16, откуда c1=12c_1 = \tfrac12. Приближение получается uh(x)=12x(1x)u_h(x) = \tfrac12 x(1 - x). Сравним с точным решением: интегрируя u=1-u'' = 1 дважды с условиями u(0)=u(1)=0u(0) = u(1) = 0, находим u(x)=12x(1x)u(x) = \tfrac12 x(1 - x) - в точности то же самое. Так и должно быть: точное решение само многочлен и целиком лежит в нашем базисе, поэтому метод Галёркина воспроизводит его без ошибки. То же случится для f(x)=xf(x) = x при n=2n = 2: получится uh=16(xx3)u_h = \tfrac16(x - x^3) - точное решение.

Интереснее случай f(x)=π2sin(πx)f(x) = \pi^2 \sin(\pi x) с точным решением u(x)=sin(πx)u(x) = \sin(\pi x). Синус не многочлен, поэтому при n=1n = 1 остаётся заметная погрешность (в середине отрезка приближение даёт около 0,9550{,}955 вместо 11), а уже при n=3n = 3 максимальная погрешность падает примерно до 0,0010{,}001. Это и есть сходимость метода: чем богаче базис, тем точнее приближение.

Где применяют метод Галёркина

Главное приложение - метод конечных элементов: область разбивают на маленькие элементы, на каждом берут простые кусочно-линейные пробные функции, и матрица жёсткости получается разреженной. По этой схеме рассчитывают деформации конструкций, теплопроводность, течения жидкости. Спектральные методы используют тот же принцип, но с гладким глобальным базисом (синусы, многочлены Чебышёва) и дают высокую точность на гладких задачах. Метод Галёркина работает и для нестационарных, и для нелинейных уравнений, поэтому его изучают как базовый инструмент вычислительной математики.

Частые ошибки

  • Пробные функции не удовлетворяют краевым условиям. Если взять φi\varphi_i, не равные нулю на концах (при однородных условиях), приближение не сможет выполнить uh(0)=uh(1)=0u_h(0) = u_h(1) = 0, и решение будет неверным.
  • Забывают перейти к слабой форме. Попытка подставить uhu_h'' напрямую требует дважды дифференцируемых функций и часто даёт несимметричную систему. Интегрирование по частям снимает одну производную и упрощает интегралы.
  • Путают пробные и весовые функции. В методе Бубнова-Галёркина они совпадают. Если взять разные базисы, получится обобщённый (петров-галёркинский) метод - это другой алгоритм.
  • Неверные пределы или знаки в интегралах. Матрица жёсткости симметрична (Kij=KjiK_{ij} = K_{ji}); если симметрия нарушилась, ищите ошибку в интегрировании.
  • Ждут точного ответа при малом n. Если точное решение не лежит в базисе, остаётся невязка. Малое nn даёт грубое приближение - это нормально, надо увеличивать число функций.

FAQ

Чем метод Бубнова-Галёркина отличается от метода Ритца? Метод Ритца минимизирует функционал энергии и применим, когда задача имеет вариационную формулировку (симметричный оператор). Для таких задач метод Ритца и метод Галёркина дают одну и ту же систему. Галёркин шире: он работает напрямую с уравнением через условие ортогональности невязки и не требует существования функционала, поэтому применим и к несамосопряжённым задачам.

Как выбрать пробные функции? Они должны удовлетворять главным краевым условиям и быть линейно независимыми. Для гладких задач берут многочлены или тригонометрические функции (спектральный подход), для сложных областей - кусочно-полиномиальные функции на сетке (метод конечных элементов). Чем точнее базис отражает поведение решения, тем меньше функций нужно.

Почему матрица называется матрицей жёсткости? Термин пришёл из механики конструкций, где метод Галёркина впервые массово применили к расчёту упругих систем. Элемент KijK_{ij} связывает обобщённые перемещения с силами, как жёсткость пружины связывает смещение с нагрузкой. Название закрепилось и для задач другой физической природы.

Коротко

Метод Галёркина приближает решение дифференциального уравнения суммой пробных функций uh=ciφiu_h = \sum c_i \varphi_i и находит коэффициенты из условия ортогональности невязки тем же функциям. Практически это сводится к слабой форме, сборке матрицы жёсткости Kij=φiφjdxK_{ij} = \int \varphi_i' \varphi_j'\, dx и вектора нагрузки bj=fφjdxb_j = \int f \varphi_j\, dx, решению системы Kc=bK c = b и проверке сходимости при росте числа функций. На этом фундаменте построены метод конечных элементов и спектральные методы.

Доверьте текст нейросети EssayAI

Открыть EssayAI

Бесплатно, на русском языке и без VPN

Читайте также