
Расчетное задание / КМ3 / ТФ-11-19 Рыжков М.В. Вариант 16
.pdf
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «МЭИ»
кафедра Атомных электрических станций
Отчет на тему:
«Исследование производительности персонального
компьютера при проведении научно-технических расчетов в
области ядерной энергетики»
Группа: ТФ-11-19
Студент: Рыжков М.В.
Вариант: 16
Преподаватель: Воробьев Ю.Б.
Москва
2023
|
Оглавление |
|
1. |
Цель работы .................................................................................... |
3 |
2. |
Сведения о содержании библиотеки IMSL.................................. |
3 |
3. |
Математическое содержание используемых процедур.............. |
4 |
4. |
Содержание используемых функций ........................................... |
5 |
|
4.1.Процедура LSLRB.................................................................... |
5 |
|
4.2.Алгоритм ................................................................................... |
6 |
|
4.3.Процедура LFCRB.................................................................... |
6 |
|
4.4.Алгоритм ................................................................................... |
7 |
|
4.5.Процедура LFTRB.................................................................... |
8 |
|
4.6.Алгоритм ................................................................................... |
8 |
5. |
Программирование LSLRB ........................................................... |
9 |
6. |
Программирование LFCRB ......................................................... |
12 |
7. |
Программирование LFTRB ......................................................... |
15 |
8. |
Расчет требуемой памяти............................................................. |
18 |
9. |
Листинг программы одинарной точности ................................. |
20 |
10. |
Листинг программы двойной точности ..................................... |
22 |
11. |
Результаты измерений времени выполнения расчета .............. |
23 |
12. |
Список литературы....................................................................... |
28 |
2

1. Цель работы
Развитие у студентов навыков использования современных информационных технологий применительно к задачам ЯЭ.
Если рассматривать задачи, связанные с научно-исследовательской и конструкторской деятельностью в данной области, то основная их специфика в настоящее время характеризуется следующим:
1.Существенным требованием к компьютерным ресурсам: RAM, жесткий диск, CPU
2.Большая продолжительность расчетов и, следовательно, требования к надежности расчетной платформы, ОС и оптимизация использования расчетного оборудования
3.Широкое использование методов параллельных расчетов
4.Использование языков высокого уровня Fortran, C/C++
5.Использование готовых библиотек математических процедур
6.Требования к повышенной точности расчетов
Вариант задания:
2.Сведения о содержании библиотеки IMSL
Вданной работе используется математическая библиотека IMSL, являющейся неотъемлемой частью версии Compaq Visual Fortran, в среде которой разрабатывалась расчетная программа. Библиотека содержит набор функций, позволяющих анализировать линейные модели и выполнять матричные вычисления, а также осуществлять прямые и обратные преобразования Фурье и Лапласа, находить корни нелинейных уравнений и их систем, решать задачи оптимизации, производить сортировку данных. Наряду с этим, в библиотеке содержатся процедуры, строящие сплайны, выполняющие численное интегрирование, дифференцирование и решающие дифференциальные задачи. [2]
3
3. Математическое содержание используемых процедур
Математическая задача состоит в вычислении LU-разложения вещественной несимметричной ленточной матрицы, оценки её числа обусловленности, а также решении системы линейных уравнений.
Каждая из описанных ниже подпрограмм выполняет LU-разложение матрицы, однако систему линейных уравнений решает только функция LSLRB. Оценку числа обусловленности матрицы определяет функция LFCRB. Исходя из того, что LU-разложение производится трижды, задав общий массив данных мы можем сопоставить полученные данные друг с другом и в случае их несовпадения обнаружить ошибку в коде.
LU-разложение матрицы A -это представление матрицы A в виде произведения
A=LU, (1)
где L-нижняя треугольная матрица, U - верхняя треугольная или ступенчатая матрица.
Рассмотрим на примере как происходит LU-разложение.
Пусть A прямоугольная матрица порядка m×n любого ранга. С правой стороны матрицы А приписываем единичную матрицу E порядка m×m. Применяем к матрице A|E метод исключения Гаусса. Если на каком-то этапе Гауссово исключения ведущий элемент равен нулю, и существует ненулевой элемент, расположенный ниже ведущего элемента, то LU - разложение данной матрицы невозможно. Если же элементы ниже ведущего элемента нулевые, то выбираем новый ведущий элемент той же строки и следующего столбца.
Приводим матрицу A|E к треугольному или ступенчатому виду. Получим матрицу U|L0, где U- верхняя треугольная или ступенчатая матрица, а L0- нижняя треугольная матрица. Заметим, что полученная матрица L0 приводит A к треугольному или ступенчатому виду:
0 × = (2)
Так как L0 - квадратная невырожденная матрица, следовательно, имеет−01 обратную матрицу. Тогда = −01 × или = × , (3)
где = −01.
Полученное LU-разложение матрицы A (матрица коэффициентов системы) может быть использовано для решения семейства систем линейных уравнений с различными векторами b в правой части.
× = (4)
Если известно LU-разложение матрицы A, = × , исходная система может быть записана как
× × = (5)
4
Эта система может быть решена в два шага. На первом шаге решается система:
× = (6)
Поскольку L — нижняя треугольная матрица, эта система решается непосредственно прямой подстановкой.
На втором шаге решается система:
× = (7)
Поскольку U— верхняя треугольная матрица, эта система решается непосредственно обратной подстановкой. [4]
4.Содержание используемых функций
4.1.Процедура LSLRB
Задача: Функция LSLRB направлена на вычисление LU-разложения вещественной несимметрической ленточной матрицы А и решение системы линейных уравнений Ax = b. [3]
Входные данные: N, A, LDA, NLCA, NUCA, B, IPATH.
Выходные данные: X.
Вызов подпрограммы: CALL LSLRB (N, A, LDA, NLCA, NUCA, B, IPATH, X).
Таблица 1 Описание входных/выходных параметров подпрограммы
Параметр |
Описание |
A |
Массив размерности (LDА,N), содержащий элементы исходной |
|
матрицы |
N |
Порядок матрицы А |
|
|
LDA |
Ведущий размер массива А по первому измерению |
NLCA |
Число нижних кодиагоналей в А. |
NUCA |
Число верхних кодиагоналей в А. |
|
|
B |
Вектор длины N, содержащий правую часть линейной системы. |
IPATH |
Индикатор пути, |
|
IPATH = 1 означает, что система AX= B решена. |
|
IPATH = 2 означает, что система Aт X = B решена |
X |
Вектор длины N, содержащий решение линейной системы. |
|
(Если B не нужен, B и X могут использовать одни и те же места |
|
хранения.) |
5
4.2. Алгоритм
Процедура LSLRB решает систему линейных алгебраических уравнений, имеющих вещественную ленточную матрицу коэффициентов. Сначала используется процедура LFCRB, для вычисления факторизации LU матрицы коэффициентов и оценки числа обусловленности матрицы. Затем решение линейной системы находится с помощью процедуры LFSRB. LSLRB не работает, если U, верхняя треугольная часть факторизации, имеет нулевой диагональный элемент. Это происходит только в том случае, если A является сингулярной или очень близкой к сингулярной матрице. Если число обусловленности матрицы больше 1/ε (где ε - точность машины), выдается предупреждение об ошибке. Это указывает на то, что очень небольшие изменения в A могут вызвать очень большие изменения в решении x. Если матрица коэффициентов плохо обусловлена или плохо масштабирована, рекомендуется использовать процедуру LSARB.
4.3. Процедура LFCRB
Задача: Функция LFCRB вычисляет LU-разложение и выполняет оценку числа обусловленности вещественной несимметрической ленточной матрицы.[3]
Входные данные: N, A, LDA, NLCA, NUCA, LDFAC. Выходные данные: FAC, IPVT, RCOND.
Вызов подпрограммы: CALL LFCRB (N, A, LDA, NLCA, NUCA, FAC, LDFAC, IPVT, RCOND)
Таблица 2 Описание входных/выходных параметров подпрограммы
Параметр |
Описание |
|
|
A |
Массив размерности (LDA,N), содержащий элементы исходной |
|
матрицы |
N |
Порядок матрицы А |
|
|
LDA |
Ведущий размер массива А по первому измерению |
NLCA |
Число нижних кодиагоналей в А. |
|
|
NUCA |
Число верхних кодиагоналей в А. |
|
|
FAC |
(2 * NLCA + NUCA + 1) на (N) массив, содержащий LU |
|
факторизацию матрицы A. |
|
Если массив A не нужен, он может поделиться первым ((NLCA |
|
+ NUCA + 1) * (N) ) местоположением с FAC. |
LDFAC |
Ведущая размерность FAC, которая точно соответствует |
|
размерности, указанной в выражении размерности оператора |
|
вызывающей программы. |
IPVT |
Вектор длины N, содержащий информацию о повороте для LU |
|
факторизации. |
|
6 |

RCOND Скаляр, содержащий оценку числа обусловленности матрицы.
4.4. Алгоритм
Процедура LFCRB выполняет LU-факторизацию вещественной матрицы ленточных коэффициентов. Она также оценивает число обусловленности матрицы. LU-факторизация выполняется с использованием масштабированной частичной поворотной функции.
Масштабированная частичная поворотная операция отличается от частичной поворотной операции тем, что стратегия поворота такая же, как если бы каждая строка была масштабирована так, чтобы иметь одинаковую ∞-норму (В данном случае только наибольший элемент имеет какой-либо эффект).
Условное число L1 матрицы A определяется как κ(A) = ||A|||1 ||A-1|||1. Поскольку вычисление ||A-1||1 является ресурсоемким, число обусловленности только оценивается.
Если оцененное число обусловленности больше 1/ε (где ε - машинная точность), выдается предупреждение об ошибке. Это указывает на то, что очень малые изменения в A могут привести к очень большим изменениям в решении x. Итерационное уточнение может иногда найти решение такой системы.
LSCRB не работает, если U, верхняя треугольная часть факторизации, имеет нулевой диагональный элемент. Это может произойти, только если A - сингулярная или очень близкая к сингулярной матрица.
LU-факторы возвращаются в форме, совместимой с подпрограммами LFIRB, LFSRB, и LFDRB. Для решения систем уравнений с несколькими правосторонними векторами, используется LFCRB, за которой следует LFIRB или LFSRB, вызываемыми по одному разу для каждой правой стороны.
Процедура LFDRB может быть вызвана, чтобы вычислить детерминант матрицы коэффициентов после того, как LFCRB выполнит факторизацию.
Пусть F - матрица FAC, пусть ml = NLCA и mu = NUCA.
Первые ml + mu + 1 строк F содержат треугольную матрицу U в ленточной форме хранения.
Нижние ml строк F содержат множители, необходимые для восстановления L-1.
LFCRB основан на программе SGBCO из LINPACK и использует немасштабируемый частичный поворот.
7
4.5. Процедура LFTRB
Задача: Функция LFTRB вычисляет LU-разложение вещественной несимметрической ленточной матрицы без оценки ее числа обусловленности.[3]
Входные данные: N, A, LDA, NLCA, NUCA, LDFAC. Выходные данные: FAC, IPVT, RCOND.
Вызов подпрограммы: CALL LFTRB (N, A, LDA, NLCA, NUCA, FAC, LDFAC, IPVT)
Таблица 3 Описание входных/выходных параметров подпрограммы
Параметр |
Описание |
|
|
A |
Массив размерности (LDA,N), содержащий элементы исходной |
|
матрицы |
N |
Порядок матрицы А |
LDA |
Ведущий размер массива А по первому измерению |
NLCA |
Число нижних кодиагоналей в А. |
|
|
NUCA |
Число верхних кодиагоналей в А. |
|
|
FAC |
(2 * NLCA + NUCA + 1) на (N) массив, содержащий LU |
|
факторизацию матрицы A. |
|
Если массив A не нужен, он может поделиться первым ((NLCA |
|
+ NUCA + 1) * (N) ) местоположением с FAC. |
LDFAC |
Ведущая размерность FAC, которая точно соответствует |
|
размерности, указанной в выражении размерности оператора |
|
вызывающей программы. |
IPVT |
Вектор длины N, содержащий информацию о повороте для LU |
|
факторизации. |
RCOND |
Скаляр, содержащий оценку числа обусловленности матрицы. |
|
|
4.6.Алгоритм
Процедура LFTRB выполняет LU-факторизацию вещественной матрицы
сленточными коэффициентами, используя гауссово исключение с частичным поворотом. Сбой происходит, если U, верхний треугольный коэффициент, имеет нулевой диагональный элемент. Это может произойти, если A близка к сингулярной матрице. Коэффициенты LU возвращаются в форме, совместимой
спроцедурами LFIRB, LFSRB, и LFDRB. Для решения системы уравнений с несколькими правосторонними векторами, используйте LFTRB, за которым следует либо LFIRB, либо LFSRB, вызываемые по одному разу для каждой правой стороны. Процедура LFDRB может быть вызвана для вычисления детерминанта матрицы коэффициентов после того, как LFTRB выполнила факторизацию.
8

5. Программирование LSLRB
Подпрограмма была реализована в Visual Studio Fortran. При компиляции не было выявлено ошибок.
Компиляция: 0 ошибок, 0 предупреждений
9

Линкинг: 0 ошибок, 0 предупреждений
10