https://homepages.cae.wisc.edu/~suresh/ ... trofem.pdf учебное пособие, самое начало 1.3.1
https://www.twirpx.com/file/627919/ книга от того же автора, эта глава в ней один к одному как в пособии только под номером 1.2.1
Есть одномерное ДУ 2го порядка:
с граничными условиями:
Его очень легко решить аналитически, что я собственно и сделал для того чтобы вручную проверить каждый шаг:
Область определения делится на два равных участка (от 0 до L и от L до 2L) и на каждом вводятся по две линейные базисные функции ("shape function") через которые с помощью узловых значений приближается значение искомой функции u на данном участке.
Для первого участка:
Затем эта аппроксимация подставляется в оригинальное уравнение, оно домножается на вектор с базисными функциями и интегрируется (невязка, условие ортогональности и т.д., это я все понимаю):
Векторы
и
А вот тут становится интересно, автор с помощью интегрирования по частям приходит к такому результату:
Первый член обозначается как
, остальные как
и переносятся вправо, затем подставляются пределы и для первого участка система выглядит так:
А для второго участка так:
Что тут странного: при вычислении k вектор с узловыми точками был фактически вынесен за скобку, что в общем-то правильно, т.к. от x он не зависит, однако при вычислении составной части f приближенная функция
под дифференциалом была заменена обратно на оригинальную функцию
. Этот трюк позволил в последнем случае получить вектор, а не матрицу. И все бы ничего, но значение производной известно только в третьей узловой точке, но не в первых двух. Судя по итоговому значению f на первом участке автор просто взял и приравнял их к нулю. Одного взгляда на аналитическое решение достаточно чтобы понять что это неправильно.
Далее процедура повторяется для второго участка, k и f накладываются друг на друга во втором узле, получается СЛАУ из 3х уравнений, затем применяется первое граничное условие чтобы обнулить коэффициенты в первой строчке:
Эта система абсолютно верная и приводит к точным значениям u в трех узлах:
Разумеется мне захотелось узнать как это могло получиться и поэтому я перемножил k и
вручную на обоих участках чтобы получить соответствующие f, в результате:
Очевидно что при применении первого граничного условия первая строчка
исчезнет, так что она не имеет значения, к последней строчке вопросов нет, она совпадает с авторской.
А вот со второй строчкой
и первой строчкой
все куда интереснее - слагаемое содержащее R исчезает только после их сложения.
И в самом деле если подставить значения производной в первых двух узлах
и
, которые автор беспардонно обнулил в формулу для f:
получаются как раз вышенаписанные
и
.
Это что же получается, откровенный мухлеж от профессора с кучей цитирований
https://scholar.google.com/citations?user=SxTP4dMAAAAJ который не заметили ни студенты на лекциях в Японии, ни редакторы книги?
У меня уже 5ый день крыша едет от всего этого, уже десятки раз все перепроверил. Можно ли как-то подправить этот пример чтобы честно прийти к той же системе или это гиблое дело? Почему во всем интернете нет ни одного легкого примера по МКЭ который можно было бы объяснить любому идиоту на пальцах? Либо как здесь с ошибками и мухлежом, либо такая жесть, которую поймут только доктора физ.мат. наук, да и то не все. Главное работать с пакетами очень просто, но вот объяснить что же там на самом деле происходит и почему это так практически невозможно.