Реферат по предмету "Математика"


Решение параболических уравнений

РефератВ курсовой работерассматривается метод сеток решения параболических уравнений. Теоретическаячасть включает описание общих принципов метода, его применение к решениюпараболических уравнений, исследование разрешимости получаемой системыразностных уравнений. В практической части разрабатывается программа длячисленного решения поставленной задачи. В приложении представлен текстпрограммы и результаты выполнения тестовых расчетов.
Объемкурсовой работы: 33 с.
Иллюстраций: 5.
Графиков: 1.
Источников: 4.
Ключевыеслова: параболическое уравнение, уравнение теплопроводности, метод сеток, краеваязадача, конечные разности.

Содержание
 
Введение
1. Теоретическая часть
1.1 Метод сеток решенияуравнений параболического типа
1.2 Метод прогонкирешения разностной задачи для уравнений параболического типа
1.3 Оценка погрешности исходимость метода сеток
1.4 Доказательство устойчивостиразностной схемы
2. Реализация метода
2.1 Разработкапрограммного модуля
2.2 Описание логикипрограммного модуля
2.3 Пример работыпрограммы
Заключение
Список источников
Приложение

Введение
Кдифференциальным уравнениям с частными производными приходим при решении самыхразнообразных задач. Например, при помощи дифференциальных уравнений с частнымипроизводными можно решать задачи теплопроводности, диффузии, многих физическихи химических процессов.
Как правило,найти точное решение этих уравнений не удается, поэтому наиболее широкоеприменение получили приближенные методы их решения. В данной работе ограничимсярассмотрением дифференциальных уравнений с частными производными второгопорядка, а точнее дифференциальными уравнениями с частными производными второгопорядка параболического типа, когда эти уравнения являются линейными, а искомаяфункция зависит от двух переменных. В общем случае такое уравнение записываетсяследующим образом:
/>.
Заметим, чточисленными методами приходится решать и нелинейные уравнения, но находить ихрешение много труднее, чем решение линейных уравнений.
введем врассмотрение величину />. В том случае,когда /> уравнение называетсяпараболическим. В случае, когда величина /> несохраняет знак, имеем смешанный тип дифференциального уравнения. Следуетотметить, что в дифференциальном уравнении все функции /> являются известными, и ониопределены в области />, в которой мыищем решение.

1. Теоретическаячасть
 
1.1 Методсеток решения уравнений параболического типа
Для решениядифференциальных уравнений параболического типа существует несколько методов ихчисленного решения на ЭВМ, однако особое положение занимает метод сеток, таккак он обеспечивает наилучшие соотношения скорости, точности полученногорешения и простоты реализации вычислительного алгоритма. Метод сеток ещеназывают методом конечных разностей. Пусть дано дифференциальное уравнение
/>. (1.1)
Требуетсянайти функцию /> в области /> с границей /> при заданных краевыхусловиях. Согласно методу сеток в плоской области /> строитсясеточная область />, состоящая изодинаковых ячеек. При этом область /> должнакак можно лучше приближать область />. Сеточнаяобласть (то есть сетка) /> состоитиз изолированных точек, которые называются узлами сетки. Число узлов будетхарактеризоваться основными размерами сетки />:чем меньше />, тем больше узлов содержитсетка. Узел сетки называется внутренним, если он принадлежит области />, а все соседние узлыпринадлежат сетке />. В противномслучае он называется граничным. Совокупность граничных узлов образует границусеточной области />.
Сетка можетсостоять из клеток разной конфигурации: квадратных, прямоугольных, треугольныхи других. После построения сетки исходное дифференциальное уравнение заменяетсяразностным уравнением во всех внутренних узлах сетки. Затем на основанииграничных условий устанавливаются значения искомого решения в граничных узлах.Присоединяя граничные условия сеточной задачи к разностным уравнениям,записанных для внутренних узлов, получаем систему уравнений, из которойопределяем значения искомого решения во всех узлах сетки.
Заменадифференциального уравнения разностным может быть осуществлена разнымиспособами. Один из способов аппроксимации состоит в том, что производные,входящие в дифференциальное уравнение, заменяются линейными комбинациями значенийфункции /> в узлах сетки по тем илииным формулам численного дифференцирования. Различные формулы численногодифференцирования имеют разную точность, поэтому от выбора формул аппроксимациизависит качество аппроксимации дифференциального уравнения разностнымуравнением.
Рассмотримнеоднородное уравнение теплопроводности, являющееся частным случаем уравненийпараболического типа:
/>, (1.2)
/> – известная функция.
Будем искатьрешение этого уравнения в области
/>
Заметим, чтоэту полуполосу всегда можно привести к полуполосе, когда />. Уравнение (1.2) будемрешать с начальными условиями:
/>, (1.3)
/> – известная функция, икраевыми условиями:

/> (1.4)
где /> – известные функциипеременной />.
Для решениязадачи область /> покроем сеткой />.
/>
Узлы сетки,лежащие на прямых />, /> и /> будут граничными. Всеостальные узлы будут внутренними. Для каждого внутреннего узла дифференциальноеуравнения (1.2) заменим разностным. При этом для производной /> воспользуемся следующейформулой:
/>.
Дляпроизводной /> запишем следующие формулы:
/>,

/>,
/>.
Можемполучить три вида разностных уравнений:
/>, (1.5)
/>, (1.6)
/>, (1.7)
/>.
Разностныеуравнения (1.5) аппроксимируют уравнение (1.2) с погрешностью />, уравнение (1.6) – с такойже погрешностью, а уравнение (1.7) уже аппроксимирует уравнение (1.2) спогрешностью />.
В разностнойсхеме (1.5) задействованы 4 узла. Конфигурация схемы (1.5) имеет вид:
/>

В схеме (1.6)также участвуют 4 узла, и эта схема имеет вид:
/>
В схеме (1.7)участвуют 5 узлов, и эта схема имеет вид:
/>
Первая итретья схемы – явные, вторая схема неявная. В случае явных схем значенияфункции в узле очередного слоя можно найти, зная значения в узлах предыдущихслоев. В случае неявных схем для нахождения значений решения в узлах очередногослоя приходится решать систему уравнений.
Для узловначального (нулевого) слоя /> значениярешения выписываются с помощью начального условия (1.3):
/> (1.8)
Для граничныхузлов, лежащих на прямых /> и />, заменив производные /> по формулам численногодифференцирования, получаем из граничных условий (1.4) следующие уравнения:

/> (1.9)
Уравнения(1.9) аппроксимируют граничные условия (1.4) с погрешностью />, так как используемодносторонние формулы численного дифференцирования. Погрешность аппроксимацииможно понизить, если использовать более точные односторонние (с тремя узлами)формулы численного дифференцирования.
Присоединяя ксистеме разностных уравнений, записанных для внутренних узлов, начальные играничные условия (1.8) и (1.9) для разностной задачи получим полные разностныесхемы трех видов. Для проведения вычислений самой простой схемой оказываетсяпервая: достаточно на основании начального условия найти значения функции вузлах слоя />, чтобы в дальнейшемпоследовательно определять значения решения в узлах слоев /> и т.д.
Третья схематакже весьма проста для проведения вычислений, но при ее использованиинеобходимо кроме значений решения в узлах слоя /> найтикаким-то образом значения функции и в слое />.Далее вычислительный процесс легко организовывается. В случае второй схемы,которая является неявной, обязательно приходится решать систему уравнений длянахождения решения сеточной задачи.
С точкизрения точечной аппроксимации третья схема самая точная.
Введем врассмотрение параметр />. Тогда наширазностные схемы можно переписать, вводя указанный параметр. При этом самыйпростой их вид будет при />.
В любомслучае согласно методу сеток будем иметь столько уравнений, сколько имеетсянеизвестных (значения искомой функции в узлах). Число неизвестных равно числувсех узлов сетки. Решая систему уравнений, получаем решение поставленнойзадачи.
Разрешимостьэтой системы для явных схем вопросов не вызывает, так как все действиявыполняются в явно определенной последовательности. В случае неявных схемразрешимость системы следует исследовать в каждом конкретном случае. Важнымвопросом является вопрос о том, на сколько найденные решения хорошо (адекватно)отражают точные решения, и можно ли неограниченно сгущая сетку (уменьшая шаг поосям) получить приближенные решения, сколь угодно близкие к точным решениям? Этовопрос о сходимости метода сеток.
На практикеследует применять сходящиеся разностные схемы, причем только те из них, которыеявляются устойчивыми, то есть при использовании которых небольшие ошибки вначальных или промежуточных результатах не приводят к большим отклонениям отточного решения. Всегда следует использовать устойчивые разностные схемы,проводя соответствующие исследования на устойчивость.
Первая изпостроенных выше разностных схем в случае первой краевой задачи будетустойчивой при />. Вторая схемаустойчива при всех значениях величины />.Третья схема неустойчива для любых />, чтосводит на нет все ее преимущества и делает невозможной к применению на ЭВМ.
Явные схемыпросты для организации вычислительного процесса, но имеют один весьма весомыйнедостаток: для их устойчивости приходится накладывать сильные ограничения насетку. Неявные схемы свободны от этого недостатка, но есть другая трудность –надо решать системы уравнений большой размерности, что на практике принахождении решения сложных уравнений в протяженной области с высокой степеньюточности может потребовать больших объемов памяти ЭВМ и времени на ожиданиеконечного результата. К счастью, прогресс не стоит на месте и уже сейчас мощностисовременных ЭВМ вполне достаточно для решения поставленных перед ними задач.
1.2 Методпрогонки решения разностной задачи для уравнений параболического типа
Рассмотримчастный случай задачи, поставленной в предыдущем разделе. В области
/>
найти решениеуравнения
/> (1.10)
с граничнымиусловиями
/> (1.11)
и начальнымусловием
/>. (1.12)
Рассмотримустойчивую вычислительную схему, для которой величина /> не является ограниченнойсверху, а, значит, шаг по оси /> и /> может быть выбрандостаточно крупным. Покроем область /> сеткой
/>
Запишемразностное уравнение, аппроксимирующее дифференциальное уравнение (1.10) вовсех внутренних узлах слоя />. Приэтом будем использовать следующие формулы:
/>,
/>.
Эти формулыимеет погрешность />. В результатеуравнение (1.10) заменяется разностным:
/> (1.13)
Перепишем(1.13) в виде:
/>. (1.14)
Даннаявычислительная схема имеет следующую конфигурацию:

/>
/> (1.15)
/> (1.16)
Система(1.14) – (1.16) представляет собой разностную задачу, соответствующую краевойзадаче (1.10) – (1.12).
За величину /> мы положили />.
(1.14) – (1.16)есть система линейных алгебраических уравнений с 3-диагональной матрицей,поэтому ее резонно решать методом прогонки, так как он в несколько разпревосходит по скорости метод Гаусса.
/>. (1.17)
Здесь />, /> – некоторые коэффициенты,подлежащие определению. Заменив в (1.17) /> на/> будем иметь:
/>. (1.18)
Подставивуравнение (1.18) в (1.14) получим:

/>. (1.19)
Сравнив(1.17) и (1.19) найдем, что:
/> (1.20)
Положим в(1.14) /> и найдем из него />:
/>,
/>.
/> (1.21)
Заметим, чтово второй формуле (1.21) величина /> подлежитзамене на /> согласно первому условию(1.15).
С помощьюформул (1.21) и (1.20) проводим прогонку в прямом направлении. В результатенаходим величины
/>
Затемосуществляем обратный ход. При этом воспользуемся второй из формул (1.15) иформулой (1.17). Получим следующую цепочку формул:

/> (1.22)
Такимобразом, отправляясь от начального слоя />,на котором известно решение, мы последовательно можем найти значения искомогорешения во всех узлах стеки.
Итак, мыпостроили неявную схему решения дифференциальных уравнений параболического типаметодом сеток.
1.3 Оценкапогрешности и сходимость метода сеток
При решениизадачи методом сеток мы допускаем погрешность, состоящую из погрешности методаи вычислительной погрешности.
Погрешностьметода – это та погрешность, которая возникает в результате заменыдифференциального уравнения разностным, а также погрешность, возникающая засчет сноса граничных условий с /> на />.
Вычислительнаяпогрешность – это погрешность, возникающая при решении системы разностныхуравнений, за счет практически неизбежных машинных округлений.
Существуютспециальные оценки погрешности для решения задач методом сеток. Однако этиоценки содержат максимумы модулей производных искомого решения, поэтомупользоваться ими крайне неудобно, однако эти теоретические оценки хороши тем,что из них видно: если неограниченно измельчать сетку, то последовательностьрешений будет сходиться равномерно к точному решению. Здесь мы столкнулись спроблемой сходимости метода сеток. При использовании метода сеток мы должныбыть уверены, что, неограниченно сгущая сетку, можем получить решение, скольугодно близкое к точному.
Итак, напримере решения краевой задачи для дифференциального уравнения параболическоготипа рассмотрим основные принципы метода сеток. Отметим, что если при решенииразностной задачи небольшие ошибки в начальных и краевых условиях (или впромежуточных результатах) не могут привести к большим отклонениям искомогорешения, то говорят, что задача поставлена корректно в смысле устойчивости повходным данным. Разностную схему называют устойчивой, если вычислительнаяпогрешность неограниченно не возрастает. В противном случае схема называетсянеустойчивой.
1.4Доказательство устойчивости разностной схемы
Пусть /> есть решение уравнения(1.14), удовлетворяющее возмущенным начальным условиям
/>
и граничнымусловиям
/>
/>.
Здесь /> – некоторые начальныеошибки.
Рассмотримпогрешность
/>.

Погрешность /> будет удовлетворятьуравнению
/> (1.23)
(в силулинейности уравнения (1.14)), а также следующими граничными и начальнымиусловиями:
/>, (1.24)
/>. (1.25)
Частноерешение уравнения (1.23) будем искать в виде
/>. (1.26)
Здесь числа /> и /> следует подобрать так,чтобы выражение (1.26) удовлетворяло уравнению (1.23) и граничным условиям(1.24).
При целом /> /> удовлетворяет уравнению(1.23) и условиям (1.24).
Подставимуравнение (1.26) в уравнение (1.24). При этом получим:
/>
или
/>.

Выражение вквадратных скобках равно
/>.
Подставляяэто выражение в предыдущее уравнение вместо выражения в квадратных скобках ипроводя сокращения на /> получим:
/>,
откуданаходим />:
/>.
Такимобразом, согласно уравнению (1.26), получаем линейно-независимые решенияуравнения (1.23) в виде
/>
Заметим, чтоэто частное решение удовлетворяет однородным краевым условиям (1.24). Линейнаякомбинация этих частных решений также является решением уравнения (1.23):

/>, (1.27)
причем />, определенное в выражении(1.27), удовлетворяет для любых /> однороднымграничным условиям (1.24). Коэффициенты /> подбираютсяисходя из того, что /> должныудовлетворять начальным условиям (1.25):
/>.
В результатеполучаем систему уравнений
/>,
содержащую /> уравнений с /> неизвестными />. Решая построенную системуопределяем неизвестные коэффициенты />.
Дляустойчивости исследуемой разностной схемы необходимо, чтобы при любых значенияхкоэффициентов /> />, определяемое формулой(1.27), оставалось ограниченной величиной при />.Для этого достаточно, чтобы для всех /> выполнялосьнеравенство
/>. (1.28)
Анализируя(1.28) видим, что это неравенство выполняется для любых значений параметра />. При этом при /> /> или в крайнем случае,когда

/>,
/> остается ограниченным ипри фиксированном /> не возрастает помодулю. Следовательно мы доказали, что рассматриваемая разностная схемаустойчива для любых значений параметра />.

2. Реализацияметода
 
2.1Разработка программного модуля
 
Поставленацель: разработать программный продукт для нахождения приближенного решенияпараболического уравнения:
/> (1.29)
в области
/>,
удовлетворяющееусловиям
/> (1.30)
Разобьемобласть /> прямыми
/>
где
/> – шаг по оси />,
/> – шаг по оси />.
Заменив вкаждом узле производные конечно-разностными отношениями по неявной схеме,получим систему вида:

/>. (1.31)
Преобразовавее, получим:
/>, (1.32)
где
/>
В граничныхузлах
/> (1.33)
В начальныймомент
/>. (1.34)
Этаразностная схема устойчива при любом />. Будемрешать систему уравнений (1.32), (1.33) и (1.34) методом прогонки. Для этогоищем значения функции в узле /> в виде
/>, (1.35)
где /> – пока неизвестныекоэффициенты.
Аналогично

/>. (1.36)
Подставивзначение (1.35) в (1.32) получим:
/>.
Откуда
/>. (1.37)
Из сравнения(1.35) и (1.37) видно, что
/>. (1.38)
/>. (1.39)
Для /> из (1.32) имеем:
/>.
Откуда
/>
или

/>.
Откуда,используя (1.35), получим:
/>, (1.40)
/>. (1.41)
Используяданный метод, мы все вычисления проведем в следующем порядке для всех />.
1) Знаязначения функции /> на границе (1.33),найдем значения коэффициентов /> по (1.40)и /> по (1.38) для всех />.
2) Найдем /> по (1.41), используя для /> начальное условие (1.34).
3) Найдем /> по формулам (1.39) для />.
4) Найдемзначения искомой функции на /> слое,начиная с />:
/>
 
2.2Описание логики программного модуля
Листингпрограммы приведен в приложении 1. Ниже будут описаны функции программногомодуля и их назначение.
Функция main() является базовой. Онареализует алгоритм метода сеток, описанного в предыдущих разделах работы.
Функция f (x, y) представляет собойсвободную функцию двух переменных дифференциального уравнения (1.29). Вкачестве аргумента в нее передаются два вещественных числа с плавающей точкойтипа float. На выходе функция возвращает значение функции />, вычисленное в точке />.
Функции mu_1 (t) и mu_2 (t) представляют собойкраевые условия. В них передается по одному аргументу (t) вещественного типа (float).
Функция phi() является ответственнойза начальный условия.
В функции main() определены следующиеконстанты:
/> – правая граница по /> для области />;
/> – правая граница по /> для области />;
/> – шаг сетки по оси />;
/> – шаг сетки по оси />;
Варьируя /> и /> можно изменять точностьполученного решения /> от менее точногок более точному. Выше было доказано, что используемая вычислительная схемаустойчива для любых комбинаций параметров /> и/>, поэтому при устремленииих к нуля можем получить сколь угодно близкое к точному решение.
Программаснабжена тремя механизмами вывода результатов работы: на экран в виде таблицы,в текстовый файл, а также в файл списка математического пакета Waterloo Maple. Это позволяет нагляднопредставить полученное решение.
Программанаписана на языке программирования высокого уровня Borland C++ 3.1 в видеприложения MS-DOS. Обеспечивается полная совместимость программы со всеми широкоизвестными операционными системами корпорации Майкрософт: MS-DOS 5.x, 6.xx, 7.xx, 8.xx, Windows 9x/Me/2000/NT/XP.

2.3 Примерработы программы
В качествепримера рассмотрим численное решение следующего дифференциального уравненияпараболического типа:
/>
в области
/>,
удовлетворяющееусловиям
/>
Задавпрямоугольную сетку с шагом оси /> 0.1 ипо оси /> 0.01, получим следующеерешение:
2.10 1.911.76 1.63 1.53 1.44 1.37 1.31 1.26 1.22 1.18
2.11 1.751.23 1.20 1.15 1.10 1.07 1.04 1.04 1.07 1.21
2.12 1.610.95 0.96 0.93 0.91 0.90 0.90 0.94 1.03 1.24
2.13 1.510.79 0.81 0.81 0.80 0.81 0.83 0.89 1.03 1.27
2.14 1.450.69 0.73 0.74 0.74 0.76 0.80 0.88 1.04 1.31
2.15 1.410.64 0.69 0.70 0.71 0.74 0.79 0.89 1.05 1.34
В таблице осьx расположенагоризонтально, а ось t расположена вертикально и направлена вниз.
На выполнениепрограммы на среднестатистическом персональном компьютере тратится время,равное нескольким миллисекундам, что говорит о высокой скорости алгоритма.
Подробновыходной файл output.txt, содержащий таблицу значений функции /> представленв приложении 3.

Заключение
В работе был рассмотрен метод сеток решения параболических уравнений вчастных производных. Раскрыты основные понятия метода, аппроксимация уравненияи граничных условий, исследована разрешимость и сходимость получаемой системыразностных уравнений.
На основанииизученного теоретического материала была разработана программная реализация методасеток, проанализирована ее сходимость и быстродействие, проведен тестовыйрасчет, построен графики полученного численного решения.

Списокисточников
1.  Березин И.С., Жидков Н.П. Методы вычислений. Т.2. –М.: Физматгиз, 1962.
2.    Тихонов А.Н.,Самарский А.А. Уравненияматематической физики. – М.: Наука, 1972.
3.    Пирумов У.Г. Численные методы. – М.:Издательство МАИ, 1998.
4.    Калиткин Н.Н. Численные методы. – М.:Наука, 1976.

Приложение
 
Текстпрограммы
 // – //
#include
#include
#include
voidmain(void);
floatf (float x, float t);
floatmu_1 (float t);
floatmu_2 (float t);
floatphi (float x);
 //– //
voidmain(void)
{
clrscr();
FILE*myfile;
FILE*plotter;
floata[120] [120];
floatb[120] [120];
floatu[120] [120];
floatT = 0.05;
floatl = 1;
floath = 0.1;
floattau = 0.01;
intn, i, j, k;
floats = pow (h, 2) / tau;
n= ceil (l / h);
for(i = 0; i
{
for(j = 1; j
{
u[i][j] = 0;
a[i][j] = 0;
b[i][j] = 0;
}
}
for(i = 0; i
{
u[i][0] = phi (i * h);
}
for(j = 0; j
{
u[0][j] = mu_1 (tau * j);
u[n][j] = mu_2 (tau * j);
}
for(j = 0; j
{
a[1][j + 1] = 1 / (2 + s);
for(i = 2; i
{
a[i][j + 1] = 1 / (2 + s – a [i – 1] [j + 1]);
}
b[1][j + 1] = mu_1 ((j + 1) * tau) + s * u[1] [j] + pow (h, 2) * f (h, (j + 1) *tau);
for(i = 2; i
{
b[i][j + 1] = a [i – 1] [j + 1] + s * u[i] [j] + pow (h, 2) * f (i * h, (j + 1) *tau);
}
u[n][j + 1] = mu_2 ((j + 1) * tau);
for(k = 1; k
{
u [n– k] [j + 1] = a [n – k] [j + 1] * (b [n – k] [j + 1] + u [n – k + 1] [j + 1]);
}
}
myfile= fopen («output.txt», «w+»);
plotter= fopen («3dplot.txt», «w+»);
fprintf(myfile, «Таблица значений функции u=u (x, t) в областиD={0
printf («Значенияфункции u (x, t) в области D={0
for(j = 0; j
{
for(i = 0; i
{
printf(«%.2f», u[i] [j]);
fprintf(myfile, «u(%g) (%g)=%g;\n», i * h, j * tau, u[i] [j]);
if(i
{
fprintf(plotter, «[[%g, %g, %g], [%g, %g, %g], [%g, %g, %g], [%g, %g, %g]]», i * h, j* tau, u[i] [j], (i + 1) * h, j * tau, u [i + 1] [j], i * h, (j + 1) * tau, u[i][j + 1], (i + 1) * h, (j + 1) * tau, u [i + 1] [j + 1]);
if(i >= n – 1 && j >= floor (T / tau) – 1)
{
}
else
{
fprintf(plotter,»,»);
}
}
}
printf(«\n»);
}
fclose(myfile);
fclose(plotter);
printf («\nОсьx расположена горизонтально; ось t расположена вертикально и направлена вниз»);
printf («Шагпо оси x равен % g; шаг по оси t равен % g.\n», h, tau);
printf («\nДлявыхода нажмите ENTER…»);
while(getch()!= 13);
}
 //– //
floatf (float x, float t)
{
returnx * t;
}
 //– //
floatmu_1 (float t)
{
return2.1 + t;
}
 //– //
floatmu_2 (float t)
{
return3.2 * (t + 1 / 2.71828);
}
 //– //
floatphi (float x)
{
return(1.1 * pow (x, 2) + 2.1) * exp(-x);
}


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.