Другой процесс - обратный ход метода Гаусса состоит в последовательном вычислении искомых неизвестных: решая последнее уравнение, находим значении последнего элемента системы. Далее находим значение предпоследнего элемента. Последним найдем 1 неизвестный элемент.
Точность при этом очень высока, так как метод Гаусса - прямой метод. Но возникает проблема в том, что матрица покрыта 0, и эта система считается другими методами, но точность желает знать наилучшего результата. Поэтому выбирается оптимальное количество неизвестных (в нашем случае, температур), при котором достигается более высокая точность нахождения температур в любой точке.
6. ПОСТРОЕНИЕ ИЗОТЕРМ
6.1 НАХОЖДЕНИЕ ТЕМПЕРАТУР В ЛЮБОЙ ТОЧКЕ
Наша область обустроена прямоугольниками и треугольниками. Для того чтобы вычислить температуру в любой его точки, нужно проверить к какой фигуре принадлежит точка.
Рассмотрим алгоритм нахождения температуры в треугольнике. Для того чтобы решить задачу (принадлежит ли данная точка треугольнику?), надо сосчитать общую площадь треугольника, и затем площади треугольников, получившихся после соединения каждой вершины с заданной точкой. Если площади треугольника и треугольников, полученных после объединения, совпадают с заданной точностью, то точка принадлежит этому треугольнику, иначе - нет.
Зная координаты трех вершин (x1, y1), (x2, y2), (x3, y3) и их температуры, мы можем вычислить следующую систему:
После её решения мы получим коэффициенты a, b и с - полином. Записывая координаты точки в него, мы найдем температуру в этой точке.
Другим методом решения задачи нахождения неизвестной температуры в треугольнике является написание коэффициента .
Строятся базисные функции (рис. 13):
Рис.13 Треугольник с площадью для расчета температуры в любой его точке
,
где S - площадь треугольника, и его можно вычислить следующим образом:
Зная базисные функции треугольника и их температуры (рис. 13), то мы можем найти температуру для данной точки:
Рассмотрим алгоритм нахождения температуры в прямоугольнике. Для того чтобы решить задачу (принадлежит ли данная точка прямоугольнику?), нужно знать координаты 4-x вершин (x1,y1), (x2,y2), (x3,y3), (x4,y4), если
x>=x1, y>=y1, y<=y3, x<=x3 (3)
(рис. 14). Точка (x,y) принадлежит прямоугольнику, если выполняется условие (3), иначе - нет.
Рис.14 Прямоугольник для расчета температуры в любой его точке
Для того чтобы вычислить температуру в точке нужно вычислить по следующей формуле:
6.2 АЛГОРИТМ ПОСТРОЕНИЯ ИЗОТЕРМ
Нам дана область и разбита сетка на узлы, мы можем построить изотерму. Каждый узел в моей сетки состоит из отрезков. И эти отрезки будут нас интересовать.
Пусть даны 2 узла (x1,y1), (x2,y2) и их температуры. Для того чтобы решить задачу (принадлежит ли данная температура отрезку?), надо сравнить их температуры, если данная температура находится ,то найдется точка с этой данной температурой T (рис. 15).
Рис. 15 Вычисление температуры на отрезке
Наша T (температура) изменяется по линейному закону
.
Для того чтобы определить координату точки для данной температуры необходимо воспользоваться следующими формулами:
Проходя все отрезки области, мы получим таблицу значений координат данной области для заданной температуры. По этой таблице построим точки, соединим прямой линией и получим теоретическую изотерму.
7. ХАРАКТЕРИСТИКА ПРОГРАММЫ
Представленная программа служит для решения задачи Дирихле для уравнения Лапласа. Она написана на языке Турбо Паскаль, работает на платформе DOS, требует аппаратной поддержки видеостандарта EGAVGA (640х480х16 цветов), около 2,25 Мб оперативной памяти.
Её возможности - для данной курсовой работы представить графическую интепритацию дискретизации; составления таблиц полученных значений температур во внутренних и внешних узлах данной области; для удобства создана папка DATA, в которой содержится текстовый документ Result.txt (при сохранении документов возникает вероятность запутаться в нахождении файла, а здесь - папка, которая выделяется на общем фоне); удобным выставлением информации о полученных температурах в любой точке области; графической инициализацией и отсортированным по координате X значений, определяющих теоретическую изотерму, с возможностью графического сравнения её с реальной.
Структура программы проста - использование 1 - для дискретизации области, 2 - для получения данных о температуре в любой точки области, 3 - для получения данных по изотермам. При использовании программы используем 1, затем 2 для получения полного доступа к программе из-за проведения определенных расчетов для области с целью наилучшего восприятия информации. Для перемещения по вычислениям используется любая клавиша.
Теперь перейдем к более подробному описанию программы: в 1 пункте - четыре рисунка дискретизации области, вывод температуры во внутренних и внешних точках области, сообщением о создании файла с результатами, полученных при вычислениях; во 2 пункте вы вводите координату точки, через некоторое мгновение появится температура внутри области и оценкой с реальной температурой, в противном случае - о некорректности введенных параметрах; в 3 пункте - постройка изотермы выполняется при вводе температуры, затем добавляются координаты точек, имеющих эту температуру, и её графическая интепритация с возможностью проверки - рисованием линии, отражающую реальную картину.
8. РЕЗУЛЬТАТЫ ПРОГРАММЫ
Моя программа позволяет вывести следующие параметры: температура во внутренних и внешних узлах сетки приведены в таблице 1, выведением информации о температуре в любой его точке, результаты построения изотерм.
1) температура во внутренних и внешних узлах сетки
Таблица 1
Температура во внутренних и внешних узлах сетки
|
N |
x |
y |
T |
P (%) |
|
|
1 |
0.0 |
2.0 |
-6.00 |
0 |
|
|
2 |
1.0 |
2.0 |
-5.00 |
0 |
|
|
3 |
2.0 |
2.0 |
-2.00 |
-3.6e-12 |
|
|
4 |
3.0 |
2.0 |
3.00 |
0 |
|
|
5 |
-1.0 |
1.0 |
-2.00 |
3.6E-12 |
|
|
6 |
0.0 |
1.0 |
-2.00 |
7.3E-12 |
|
|
7 |
1.0 |
1.0 |
0.00 |
4.5E-12 |
|
|
8 |
2.0 |
1.0 |
4.00 |
7.3E-12 |
|
|
9 |
3.0 |
1.0 |
10.00 |
2.9E-11 |
|
|
10 |
-2.0 |
0.0 |
0.00 |
2.3E-13 |
|
|
11 |
-1.0 |
0.0 |
-1.00 |
1.8E-12 |
|
|
12 |
0.0 |
0.0 |
0.00 |
1.7E-12 |
|
|
13 |
1.0 |
0.0 |
3.00 |
0 |
|
|
14 |
2.0 |
0.0 |
8.00 |
0 |
|
|
15 |
3.0 |
0.0 |
15.00 |
1.5E-11 |
|
|
16 |
4.0 |
0.0 |
24.00 |
2.9E-11 |
|
|
17 |
2.0 |
-1.0 |
10.00 |
1.5E-11 |
|
|
18 |
3.0 |
-1.0 |
18.00 |
0 |
|
|
19 |
4.0 |
-1.0 |
28.00 |
0 |
|
|
20 |
-3.0 |
0.0 |
3.00 |
0 |
|
|
21 |
-2.0 |
1.0 |
0.00 |
0 |
|
|
22 |
-1.0 |
2.0 |
-5.00 |
0 |
|
|
23 |
0.0 |
3.0 |
-12.00 |
0 |
|
|
24 |
1.0 |
3.0 |
-12.00 |
0 |
|
|
25 |
2.0 |
3.0 |
-10.00 |
0 |
|
|
26 |
3.0 |
3.0 |
-6.0 |
0 |
|
|
27 |
3.4 |
2.0 |
5.6 |
0 |
|
|
28 |
3.8 |
1.0 |
16.2 |
0 |
|
|
29 |
4.0 |
0.5 |
21.3 |
0 |
|
|
30 |
4.2 |
0.0 |
26.0 |
0 |
|
|
31 |
4.6 |
-1.0 |
35.0 |
0 |
|
|
32 |
5.0 |
-2.0 |
43.0 |
0 |
|
|
33 |
4.0 |
-1.8 |
29.7 |
0 |
|
|
34 |
3.0 |
-1.5 |
18.8 |
0 |
|
|
35 |
2.0 |
-1.3 |
10.2 |
0 |
|
|
36 |
1.0 |
-1.0 |
4.0 |
0 |
|
|
37 |
0.0 |
-0.8 |
0.2 |
0 |
|
|
38 |
-1.0 |
-0.5 |
-1.3 |
0 |
|
|
39 |
-2.0 |
-0.3 |
-0.3 |
0 |