
- •Тема 9. РАБОТА С РАЗРЕЖЕННЫМИ МАТРИЦАМИ
- •Где применяются разреженные матрицы
- •Поля физических величин
- •Математическая модель поля
- •Прямая полевая задача
- •Градиент скалярной функции
- •Лапласиан от скалярного поля
- •Обратная полевая задача
- •уравнения математической физики
- •метод сеток для решения ДУ
- •Получение алгебраической СЛАУ для искомых значений ui
- •aiui 1 biui ciui 1
- •При решении более сложных ДУ методом конечных элементов приходится решать СЛАУ
- •Прямой ход метода Гаусса приводит эту систему к СЛАУ с верхней треугольной матрицей
- •Схема алгоритма
- •Одним из рациональных способов хранения не нулевых элементов матрицы является
- •Эффективность работы с таким массивом определяется введением класса с продуманным набором методов и
- •Тип ячеек массива
- •Методы работы со стеком, которые в дальнейшем понадобятся для реализации метода Гаусса
- •Методы работы со стеком Добавить элемент в начало стека
- •Добавить в упорядоченный по j стек
- •Методы работы со стеком
- •Методы работы со стеком Добавить в упорядоченный по j стек (конец)
- •Методы работы со стеком Читать j – й элемент
- •Методы работы со стеком
- •Методы работы со стеком удалить 1 – й элемент
- •Базовый класс работы с матрицей
- •Методы работы с массивом стеков Создать массив
- •Методы работы с массивом стеков Уничтожить массив
- •Методы работы с массивом стеков Добавить элемент в массив
- •Методы работы с массивом стеков Добавить элемент с упорядочиванием по j
- •Методы работы с массивом стеков Читать элемент без удаления
- •Методы работы с массивом стеков Распечатать матрицу в StringGrid
- •Методы работы со СЛАУ Создать объект СЛАУ
- •Методы работы со СЛАУ Уничтожить объект СЛАУ
- •Методы работы со СЛАУ Добавить элемент в b
- •Методы работы со СЛАУ Распечатать объект СЛАУ
- •Решить СЛАУ с верхней треугольной матрицей
- •Решить СЛАУ с верхней треугольной матрицей
- •Пример работы с классом TSlau
- •Пример работы с классом TSlau
- •Контроль утечки памяти
- •Контрольные вопросы

Пример работы с классом TSlau
07/02/19 |
41 |
Пример работы с классом TSlau
• unit matr;
• uses URazMat;
•procedure TForm1.BitBtn1Click(Sender:TObject);
•Var G:Tslau; i,j:word; a,b:extended;
•Begin
•G:=TSlau.create(3);
•For i:=1 to 3 do begin
•b:=strtofloat(stringGrid2.cells[0,i]);
•G.addb(i,b);
•For j:=1 to 3 do begin
•a:=strtofloat(stringGrid1.cells[j,i]);
•if abs(a)>1e-10 then G.addj(i,j,a);
• |
end; end; |
• G.SlauT; |
|
• G.print(StringGrid1,StringGrid2,StringGrid3); |
|
• G.free; |
42 |
07/02/19 |
Контроль утечки памяти
• |
Form1.Memo1.Lines.Add('before ’ |
• |
+IntToStr(AllocMemSize) +' byte’); |
G:=TSlau.create(3); |
|
|
Form1.Memo1.Lines.Add(‘after 1 ’ |
• |
+IntToStr(AllocMemSize) +' byte’); |
• G.free;
Form1.Memo1.Lines.Add(‘after 2 ’
• +IntToStr(AllocMemSize) +' byte’);
07/02/19 |
43 |
Контрольные вопросы
Дайте определение разреженной матрицы.
Где используются разреженные матрицы?
Опишите класс для работы с разреженной матрицей.
Опишите метод добавления элемента в упорядоченный по j стек.
Опишите метод чтения элемента а[i,j].
07/02/19 |
44 |