Сравнение различных способов расчета градиента скалярной функции на регулярных, неортогональных сетках
Заказать уникальную курсовую работу- 24 24 страницы
- 0 + 0 источников
- Добавлена 19.05.2022
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
Введение 2
1. Общая постановка задачи 3
2. Численные методы решения дифф. уравнений в частных производных 4
2.1. Метод конечных разностей 4
2.2. Метод конечных элементов 5
3. Решение двумерного уравнения Пуассона с помощью метода конечных разностей 6
3.1. Постановка задачи 6
3.2. Процесс решения 6
3.3. Реализация на ЭВМ 9
4. Решение двумерного уравнения Пуассона с помощью метода конечных элементов 17
4.1. Постановка задачи 17
3.2. Процесс решения 17
3.3. Реализация на ЭВМ 20
5. Сравнение методов 22
Заключение 23
Получим разбиение области Ω на треугольные элементы — триангуляция области Ω. Триангуляция такого типа называется триангуляцией Фридрихса-Келлера.Будем искать приближенное решение данного уравнения как функцию , равную нулю на границе (краевое условие), непрерывную на области Ω и линейную на каждом полученном элементе триангуляции.Функцию можно представить в следующем виде:Подставив функцию в первое уравнение, осуществив преобразования и вынос констант из под знака интеграла, сведем задачу для каждой базисной функции к подсчету интегралов вида:Значение интеграла может быть не нулевым лишь в том случае, если базисные функции под знаком интеграла имеют непустую общую область определения. По построению, каждый элемент имеет три вершины. Вершина может быть общей максимально для 6 треугольников.После подсчетов интеграла уравнение с номером будет выглядеть следующим образом:гдеи при достаточно малом h:3.3. РеализациянаЭВМfunction[x,y,U]=puass_2d_mke(c,a)% CoordinateslowerLeft = [0 ,-1];lowerRight = [1 , -1];upperRight = [1 , 1];upperLeft = [0 , 1];% Geometry matrixS = [3,4 lowerLeft(1), lowerRight(1), upperRight(1), upperLeft(1), ... lowerLeft(2), lowerRight(2), upperRight(2), upperLeft(2)]; gdm = S';% Namesns = 'S';% Set formula sf = 'S';% Invoke decsgg = decsg(gdm,ns,sf');% Import g into model using geometryFromEdges.model = createpde;f1 = 'sin(y.^2)';f2 = 'cos(3.*y)';f3 = '10*sin(x.^2)';f4 = '10*sin(6.*x)';applyBoundaryCondition(model,'dirichlet','Edge',1,'r',@f1);applyBoundaryCondition(model,'dirichlet','Edge',1,'r',@f2);applyBoundaryCondition(model,'neumann','Face',2,'g',@f3,'q',0);applyBoundaryCondition(model,'neumann','Face',2,'g',@f4,'q',0);geometryFromEdges(model,g);f = 'exp(x.*(-1))+exp(y.*(-1))';[p,e,t]= initmesh(g,'Hmax',0.1); % set the meshbc='circleb1' ; % set the boundary conditionsu = assempde(bc,p,e,t,c,a,f);figure ; % plot the meshpdemesh(p,e,t),axis equalxlabel('x'), ylabel('y')title([ 'Number of mesh points np=' int2str(size(p,2)) ' ,triangles nt=' int2str(size(t,2))])figure; % plot the error .pdesurf( p , t , u)colormap ('hsv')xlabel('y')ylabel('x')zlabel('U')function bcMatrix = f1(location,state)bcMatrix = sin(location.y.^2)function bcMatrix = f2(location,state)bcMatrix = cos(3*location.y)function bcMatrix = f3(location,state)bcMatrix = 10*sin(location.x.^2)function bcMatrix = f4(location,state)bcMatrix = 10*sin(6*location.x)Рисунок 4. Результат работы скрипта.5. Сравнение методовПоскольку, градиент по сути, является прямым следствием решения уравнения пуассона, ввиду следующего уравнения:То будет справедливым, что зависимость погрешности расчёта каждого метода, для получения частных решений как это было сделано выше, эквивалентна погрешностям каждого из методов.Рисунок 5. Графики сходимости для методов.Как видим, метод конечных элементов сходится быстрее чем, метод конечных разностей, и является более точным. Поэтому в случае малых требований по точности, при достаточно низком шаге сетки, лучше использовать метод конечных разностей. поскольку при его использовании ЭВМ будет быстрее и проще считать. Наоборот, в случае повышенной точности, следует использовать метод конечных элементов.Погрешность обоих методов возрастает с при увеличении шага по близкой к экспоненциальной зависимости. Однако стоит отметить, что у метода конечных элементов, на порядок медленнее падает погрешность при увеличении шага сетки, в виду того, что сам принцип построения сетки другой(по два триангулярных пространства на одну клетку). Точное решение, по сути является абсолютно гладкой поверхностью с формой полученной по результатам работы, что очевидно показывает что второй метод эффективнее, ввиду его большей близости к гладкому пространству, из-за триангулярных сеток.ЗаключениеВ ходе работы, были исследованы такие численные методы расчёта дифф. уравнений, как метод конечных элементов и метод конечных разностей, на примере решения дифференциального уравнения Пуассона для расчёта градиента этого уравнения на регулярных, неортоганальных сетках.Расчёты проводились на ЭВМ, путём использования пакета мат. моделирования MatLab, в ходе чего были сделаны заключения касаемо данных методов.В случае использования МКЭ, выделены следующие плюсы: метод является проекционным(то есть устойчив), решение сразу представляет собой функцию и значения в любой точке могут быть вычислены сразу.В случае использования МКР:для простых задач построение разностной схемы выполняется быстрее.
Вопрос-ответ:
Какие есть различные способы расчета градиента скалярной функции на регулярных неортогональных сетках?
В статье рассматриваются методы конечных разностей и конечных элементов.
Что такое метод конечных разностей?
Метод конечных разностей - это численный метод решения дифференциальных уравнений, в котором производные заменяются конечными приближениями.
Что такое метод конечных элементов?
Метод конечных элементов - это численный метод решения дифференциальных уравнений, в котором область рассматривается как совокупность элементов, а решение ищется в виде линейной комбинации базисных функций.
Как решить двумерное уравнение Пуассона с помощью метода конечных разностей?
Для решения двумерного уравнения Пуассона с помощью метода конечных разностей, необходимо сетку разбить на равные прямоугольные ячейки и заменить производные соответствующими разностными аппроксимациями. Затем строится система линейных алгебраических уравнений, которую можно решить для получения численного решения.
Как решить двумерное уравнение Пуассона с помощью метода конечных элементов?
Для решения двумерного уравнения Пуассона с помощью метода конечных элементов, необходимо разбить область на конечное количество треугольных элементов и использовать базисные функции для аппроксимации решения внутри каждого элемента. Затем строится система линейных алгебраических уравнений, которую можно решить для получения численного решения.
Какие способы можно использовать для расчета градиента скалярной функции на регулярных неортогональных сетках?
Существуют различные способы для расчета градиента скалярной функции на регулярных неортогональных сетках, включая методы конечных разностей и методы конечных элементов.
Как работает метод конечных разностей?
Метод конечных разностей является одним из численных методов решения дифференциальных уравнений. Он основывается на аппроксимации производных функции с помощью конечных разностей и замене дифференциального уравнения системой алгебраических уравнений.
Каким образом решается двумерное уравнение Пуассона с помощью метода конечных разностей?
Для решения двумерного уравнения Пуассона с помощью метода конечных разностей необходимо сначала задать регулярную неортогональную сетку, а затем аппроксимировать производные и заменить уравнение системой алгебраических уравнений. Затем решается полученная система методом Гаусса или другими численными методами.