Метод взвешенных невязок в Mathematica

Фундаментальная тема 🙂 Написал программу-блокнот, реализующую метод взвешенных невязок в Mathematica. Получилось довольно интересно, есть простор для экспериментов по изменению тестовой и весовой функции.

Метод взвешенных невязок: Алгоритм

  1. Выбор пробной функции с коэффициентом a ( или с набором коэффициентов, которые надо подобрать для более точной аппроксимации решения).
  2. Определение невязки.
  3. Выбор весовой функции.
  4. Определение взвешенной невязки.
  5. Определение коэффициентов пробной функции, из условия равенства нулю взвешенной невязки.

Задача для решения методом взвешенных невязок

Для примера, берем задачу из книги Kwon, Bang «The Finite Element Method Using MATLAB» (стр. 31).

\begin{cases} & \frac{d^{2}u}{dx^{2}}-u=-x \text{, }\forall x\in(0;1), \\ & u(0)=0,\\ & u(1)=0; \end{cases}

Метод взвешенных невязок в Mathematica

Скачать блокнот:

WeightedResiduals

На сайте интегралы не выведутся, поэтому текст привожу в виде картинки:

Метод взвешенных невязок - текст блокнота Mathematica без выходных ячеек
Метод взвешенных невязок — текст блокнота Mathematica без выходных ячеек.

По тексту. В первых трех строках определяется функция невязки, далее выбирается тестовая функция с параметром a и затем вычисляется невязка при подстановке тестовой функции.

Далее реализуются три метода сначала — метод коллокации, затем метод наименьших квадратов и метод Галёркина. Для коллокации точка семплирования x=0.5. Для каждого из этих методов — устанавливается своя весовая функция, а тестовая функция остается та же самая. Вычисляется взвешенная невязка — интеграл по области решения задачи от произведения весовой функции на невязку. Интегрирование производится по x, но у нас в выражение под интегралом входит параметр тестовой функии a. Поэтому после интегрирования имеем функцию от a. Затем выражение взвешенной невязки приравнивается к нулю и определяется параметр a. Таким образом тестовая функция становится определенной функцией только одного аргумента x.

Метод взвешенных невязок - текст блокнота Mathematica после расчета
Метод взвешенных невязок — текст блокнота Mathematica после расчета.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.