Главная > Разное > Метод конечных элементов для радиоинженеров и инженеров-электриков
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

7.3. Программа разложения Холесского

Для иллюстрации методов, используемых в решении уравнения, может оказаться поучительной простая программа разложения Холесского. Программа EQSOLV (см. с. 214) вызывается типовой программой метода конечных элементов, приведенной в гл. 1. Она, безусловно, неоптимальна, в ней даже не используется симметрия матрицы для экономии памяти. Однако она, вероятно, проста для чтения и понимания.

После блока COMMON, который обеспечивает доступ к соответствующим переменным вызывающей программы, подпрограмма EQSOLV выполняет треугольное разложение. Для этого используется алгоритм Холесского в точно такой же, описанной ранее форме. Единственное отличие состоит в том, что первые две (а не только одна первая) строки подвергаются специальной обработке. Необходимость в этом возникает только из-за особенностей языка FORTRAN, в котором цикл не может начинаться с нулевого значения индекса Эта особенность языка никоим образом не влияет на сущность математического метода.

Метод разложения Холесского, использованный в EQSOLV, заполняет все пространство верхней и нижней части матрицы верхним и нижним треугольными множителями. В этом подходе неэкономно расходуется память и в реальных программах он обычно не используется. Однако более сложные методы записи информации, такие, как ленточный или профильный, приводят к усложнению индексации. Поэтому они часто значительно труднее для чтения и понимания. После выполнения разложения Холесского EQSOLV выполняет исключение переменных и обратную подстановку. В этой процедуре правая часть постепенно стирается и на ее место записывается решение. EQSOLV выполняет треугольное разложение, исключение и обратную подстановку в одной программе, но обычно такая программа делится на две или три подпрограммы.

Выделение треугольного разложения в отдельную программу позволяет проводить решение для нескольких разных правых частей без повторения процедуры разложения. Излишние затраты объема памяти на это незначительны.

<< Предыдущий параграф Следующий параграф >>
Оглавление