16
Основы численных методов http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.] Matlab | Mathematica | Mathcad | Maple | Statistica | Tabula | Другие пакеты Internet-класс | Примеры | Методики | Банк задач | Форум | Download | Ссылки | Конкурсы Основы численных методов выполнил: Левицкий Алексей Александрович, доцент кафедры "Конструирование и производство радиоаппаратуры" Красноярского государственного технического университета Архив методической работы (1.76 Мб, WinRAR) Архив программ в Mathcad (124 Кб, WinRAR) ОГЛАВЛЕНИЕ ВВЕДЕНИЕ Лабораторная работа No 1. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ 1. Краткие теоретические сведения 2. Указания к выполнению работы 3. Варианты заданий Лабораторная работа No 2. МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 1. Краткие теоретические сведения 2. Указания к выполнению работы 3. Варианты заданий Лабораторная работа No 3. РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ 1. Краткие теоретические сведения 2. Указания к выполнению работы 3. Варианты заданий ЗАКЛЮЧЕНИЕ БИБЛИОГРАФИЧЕСКИЙ СПИСОК ВВЕДЕНИЕ В настоящем пособии представлены лабораторные работы, целью проведения которых является ознакомление студентов с численными методами решения задач, описываемых нелинейными или дифференциальными уравнениями. Лабораторные работы нацелены на выработку навыков, необходимых при решении проектных и научных задач с использованием электронных вычислительных машин (ЭВМ). Первая лабораторная работа, знакомящая с итерационными методами решения нелинейных уравнений, отличается невысоким уровнем сложности. При ее выполнении студенты должны познакомиться с основными понятиями, необходимыми для выполнения следующих лабораторных работ. Вторая лабораторная работа знакомит студентов с методами решения задач, включающих обыкновенные дифференциальные уравнения, а именно, задач с начальными условиями. В третьей работе представлены задачи, описываемые дифференциальными уравнениями в частных производных. Рассмотрены основы метода конечных разностей и метода конечных элементов. Практикум включает краткие теоретические сведения по каждой из лабораторных работ. Теоретический материал изложен сжато и рассчитан на учащихся, впервые изучающих данный предмет. Приведены примеры решения задач с использованием математических пакетов MATLAB и MathCAD. Отличительной особенностью данного практикума является то, что все задания в нем представляют собой предметные задачи, то есть включают в себя описание технического или иного объекта, для которого приводится математическая формулировка. Для выполнения практикума студенты должны владеть основами программирования на ЭВМ и иметь навыки работы в математических пакетах, таких как MATLAB или MathCAD. Лабораторный практикум проводится каждым студентом индивидуально. Для этого студент получает одно из заданий по указанному преподавателем варианту. Работа выполняется в соответствии с данными методическими указаниями под руководством преподавателя. Перед выполнением работы на ЭВМ студенту следует получить к ней допуск. При выполнении лабораторной работы студент должен предъявить рабочую версию программу (расчета) и результаты расчетов на ЭВМ. Лабораторная работа считается выполненной после её защиты. Для защиты работы необходимо представить программу, результаты расчета на ЭВМ и отчёт, оформленный в соответствии с приведенными в данных методических указаниях требованиями. Использование пакетов MathCAD и MATLAB для решения дифференциальных уравнений Источник: А.А. Левицкий Информатика. Основы численных методов: Лабораторный практикум / А. А. Левицкий. Красноярск: ИПЦ КГТУ, 2005. 111 с. В лабораторном практикуме даны краткие теоретические сведения по численным методам решения нелинейных, обыкновенных дифференциальных уравнений и уравнений в частных производных. Приведена методика выполнения лабораторных работ в пакетах

Основы численных методов

Embed Size (px)

Citation preview

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Matlab | Mathematica | Mathcad | Maple | Statistica | Tabula | Другие пакетыInternet-класс | Примеры | Методики | Банк задач | Форум | Download | Ссылки | Конкурсы

Основы численных методоввыполнил: Левицкий Алексей Александрович,доцент кафедры "Конструирование и производство радиоаппаратуры"Красноярского государственного технического университета

Архив методической работы (1.76 Мб, WinRAR) Архив программ в Mathcad (124 Кб, WinRAR)

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕЛабораторная работа No 1. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

1. Краткие теоретические сведения2. Указания к выполнению работы3. Варианты заданий

Лабораторная работа No 2. МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

1. Краткие теоретические сведения2. Указания к выполнению работы3. Варианты заданий

Лабораторная работа No 3. РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ

1. Краткие теоретические сведения2. Указания к выполнению работы3. Варианты заданий

ЗАКЛЮЧЕНИЕБИБЛИОГРАФИЧЕСКИЙ СПИСОК

ВВЕДЕНИЕ

В настоящем пособии представлены лабораторные работы, целью проведения которых является ознакомление студентов с численными методами решения задач, описываемых нелинейными или дифференциальными уравнениями. Лабораторные работы нацелены на выработку навыков, необходимых при решении проектных и научных задач с использованием электронных вычислительных машин (ЭВМ).

Первая лабораторная работа, знакомящая с итерационными методами решения нелинейных уравнений, отличается невысоким уровнем сложности.

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

Практикум включает краткие теоретические сведения по каждой из лабораторных работ. Теоретический материал изложен сжато и рассчитан на учащихся, впервые изучающих данный предмет. Приведены примеры решения задач с использованием математических пакетов MATLAB и MathCAD.

Отличительной особенностью данного практикума является то, что все задания в нем представляют собой предметные задачи, то есть включают в себя описание технического или иного объекта, для которого приводится математическая формулировка. Для выполнения практикума студенты должны владеть основами программирования на ЭВМ и иметь навыки работы в математических пакетах, таких как MATLAB или MathCAD.

Лабораторный практикум проводится каждым студентом индивидуально. Для этого студент получает одно из заданий по указанному преподавателем варианту. Работа выполняется в соответствии с данными методическими указаниями под руководством преподавателя. Перед выполнением работы на ЭВМ студенту следует получить к ней допуск. При выполнении лабораторной работы студент должен предъявить рабочую версию программу (расчета) и результаты расчетов на ЭВМ.

Лабораторная работа считается выполненной после её защиты. Для защиты работы необходимо представить программу, результаты расчета на ЭВМ и отчёт, оформленный в соответствии с приведенными в данных методических указаниях требованиями.

Использование пакетов MathCAD и MATLAB для решения дифференциальных уравнений

Источник: А.А. Левицкий Информатика. Основы численных методов: Лабораторный практикум / А. А. Левицкий. Красноярск: ИПЦ КГТУ, 2005. 111 с.

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

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

MathCAD и MATLAB, варианты заданий.

Практикум предназначен для студентов направлений подготовки дипломированных специалистов 654100 - "Электроника и микроэлектроника" (специальности 201900), 654300 - "Проектирование и технология электронных средств" (специальности 200800, 220500), бакалавров и магистров по направлениям 550700 - "Электроника и микроэлектроника", 551100 - "Проектирование и технология электронных средств" всех форм обучения.

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

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

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

Ниже представлены включенные в теоретическую часть практикума примеры решения подобных задач, помогающие получить результат для более сложных вариантов. Приведенный текст несколько скорректирован относительно исходного (в частности, исключены ссылки на предыдущие формулы и разделы описания).

1. Примеры решения задачи Коши

1.1. Решение задачи Коши в MathCAD

Рассмотрим расчет переходного процесса в последовательном электрическом колебательном контуре.

Свободные колебания тока в контуре описываются уравнением

L ( d²I / dt² ) + R ( dI / dt ) + I / C = 0 ,

где I - ток, L - индуктивность контурной катушки, R - сопротивление потерь контура, C - емкость конденсатора. Примем R = 5 Ом, L = 10-5 Гн и С = 10-9 Ф.

Используя обозначения z0 = I и z1 = dz0/dt = dI/dt, преобразуем исходное уравнение в систему дифференциальных уравнений первого порядка:

dz0 / dt = z1,

dz1 / dt = -( R z1 + z0/ C ) / L,

Приняв в качестве начальных условий I = 1 мА и dI/dt = 0, запишем решение в пакете MathCAD следующим образом:

В этом примере использована функция rkfixed. Она вычисляет решение системы, содержащей обыкновенные дифференциальные уравнения первого порядка методом Рунге-Кутта с фиксированным шагом интегрирования. Обращение к функции выполняется следующим образом:

F := rkfixed(Z0, t0, tk, N, f),

где F - выходные данные, возвращаемые функцией, Z0 - вектор начальных значений, размерность которого должна соответствовать порядку решаемой системы, t0 - начальное значение аргумента, tk - верхний предел изменения аргумента, N - количество рассчитываемых точек на интервале от t0 до tk, f - имя функции, описывающей правую часть системы дифференциальных уравнений.

Из приведенного примера видно, как записывается функция f(t,z) в документе MathCAD. Имя зависимой переменно z должно совпадать с именами ее компонент, присутствующих в правой части формулы f(t,z). Сами дифференциальные уравнения в предварительно приводятся к каноническому виду (см. систему уравнений выше) так, чтобы в левой части каждого из них находилась только производная по одной из компонент z. Первым в системе должно записываться уравнение, определенное для производной от нулевой компоненты z, то есть от z0, затем - от z1 и так далее. Следует отметить, что отсчет индексов в MathCAD определяется параметром ORIGIN и обычно по умолчанию начинается с нуля.

Функция rkfixed возвращает найденное решение в виде двухмерного массива (см. рис. 1, а). В приведенном примере результат передается переменной F1. Значения независимой переменной t размещаются в нулевом столбце F<0> массива. Они изменяются в пределах от t0 до tk с шагом (tk - t0) / N. В приведенном примере t0 = 0, tk = 5*10-6 c, N = N1 = 500, поэтому шаг изменения аргумента равен (tk -t0) / N1 = 5*10-6 / 500 = 10-8 с.

Найденное численно решение z0(t) и первая производная z1(t) записываются соответственно в первом и во втором столбцах - F1<1> и F1<2>.

Результат решения методом Рунге-Кутта показан графически на рис. 1, б.

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Рис. 1. Решение задачи Коши в MathCAD

Выполним аналогичный расчет, уменьшив вдвое шаг при N = N2 = 1000, и оценим погрешность решения по правилу Рунге:

Таким образом, погрешность решения Δ при шаге h/2 не превышает 10-9.

Рассмотрим решение этой же задачи методом Эйлера с использованием рекурсивной процедуры. Изменив для удобства записи обозначения переменных z0 → Y0 и z1 → Y1, преобразуем систему уравнений:

Здесь использована замена производных на их приближенные аналоги dY/dt ≈ ΔY/Δt. Благодаря этому решение задачи можно представить в MathCAD следующим образом:

В данной записи, соответствующей методу Эйлера, параметр Δt - шаг интегрирования, i - счетчик точек решения. Начальные значения переменных t, Y0 и Y1 заданы одновременным присваиванием. Использованная в примере рекурсивная ("возвратная") процедура вычисляет последующие точки решения с индексом i+1 из предыдущих с индексом i.

Рассчитанные методом Эйлера зависимости Y0(t) приведены ниже на рис. 2.

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Рис. 2. Расчет методом Эйлера

Зависимость, представленная на рис. 2, а получена при Δt = h = 10-10 с, а на рис. 5, б - при Δt = h = 7 * 10-9 с. В последнем случае неприемлемый с физической точки зрения результат объясняется выбором слишком большого шага интегрирования (см. п. 1.2.4). Метод Эйлера дает корректный результат при h = 10-10 с, то есть расчете порядка 50000 точек. Однако оценка погрешности такого решения по правилу Рунге дает Δ ≈ 1,5 * 10-3.

Кроме rkfixed в MathCAD имеется еще ряд функций, обеспечивающих решение задачи Коши. К ним относятся odesolve, rkadapt, Bulstoer, Stiffb и Stiffr. Функциии rkadapt и Bulstoer предназначены для решения задач с гладкими функциями и медленно меняющимися решениями, Stiffb и Stiffr - для задач с жесткими системами. Функция sbval позволяет привести краевую задачу к задаче Коши и решить ее методом стрельбы.

1.2. Решение задача Коши в MATLAB

В MATLAB имеется ряд функций для решения задачи Коши. Одна из них - ode45 - использует метод Рунге-Кутта четвёртого-пятого порядка точности с автоматическим выбором размера шага.

Обращение к ode45 выполняется следующим образом (синтаксис приведен для версии 6.Х):

[T,Y] = ode45(ODEFUN,TSPAN,Y0)

Входные параметры процедуры ode45: ODEFUN - имя функции (в виде строчной переменной), задающей правую часть системы дифференциальных уравнений. Уравнения должны быть записаны в нормальной форме u' = ODEFUN(T,Y), где u' - вычисляемый вектор-столбец производных; TSPAN = [T0 TFINAL] - вектор, задающий интервал изменения независимой переменной. T0 - начальная точка, TFINAL - последнее значение аргумента, при котором завершается расчёт; Y0 - вектор начальных значений зависимых переменных.

Выходные параметры ode45: T - вектор, содержащий отсчёты аргумента в точках решения; Y - массив, содержащий вычисленные значения u и u' в точках, соответствующих отсчетам независимой переменной в T.

Требования к точности и другие параметры численного решения задаются в MATLAB по умолчанию. Изменить эти настройки позволяет дополнительный аргумент OPTIONS (см. help ODESET).

Рассмотрим дифференциальное уравнение второго порядка, описывающее колебания в нелинейной системе (например, автогенераторе), и известное как уравнение Ван-дер-Поля:

u" + (u2 - b) u' + u = 0 ,

где u, u' и u" - функция, её первая и вторая производные по времени t, b - произвольный параметр. Параметр b определяет потери в системе, а слагаемое u² в скобках - её нелинейные свойства (например, рабочие характеристики активного элемента автогенератора).

Данное дифференциальное уравнение второго порядка можно привести к системе двух дифференциальных уравнений первого порядка

y1' = ( 1 - y22 ) y1 - y2 ,

y2' = y1 ,

где y1 = u' и y2 = u, а параметр b принят равным единице.

Для выполнения расчётов воспользуемся внешней функцией vdp1, записанной в m-файле vdp1.m. Эта функция, вычисляющая правую часть уравнения Ван-дер-Поля, имеет следующий вид:

function dydt = vdp1(t,y) dydt = [y(2); (1-y(1)^2)*y(2)-y(1)] .

Для получения решения дифференциального уравнения, описываемого функцией vdp1 на интервале 0 < t < 20, при начальных условиях y1 = u' = 2 и y2 = u = 0, следует ввести в MATLAB следующую строку:

[t,y]=ode45(@vdp1,[0 20],[2 0]).

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

На рис. 3, а представлены рассчитанные функцией ode45 и построенные с помощью команды plot зависимости y2(t) ≡ u(t) и y1(t) ≡ u'(t).

Рис. 3. Результаты решения уравнения Ван-дер-Поля

График на рис. 3, а показывает, что с течением времени колебания в системе нарастают. Однако в дальнейшем рост амплитуды колебаний замедляется и система переходит в устойчивое состояние, описываемое фазовыми кривыми y2 (y1), представленными на рис. 3, б.

Кроме рассмотренной функции ode45 MATLAB содержит ряд других функций для решения задачи Коши - см. ode23, ode113, ode15s, ode23s, ode23t, ode23tb.

2. Примеры решения дифференциальных уравнений в частных производных

2.1. Примеры выполнения расчетов в пакете MathCAD

Для решения уравнения Пуассона или Лапласа на области, имеющей квадратную форму, в пакете MathCAD служат функции relax и multigrid.

Функция relax использует метод релаксации для нахождения приближенного решения. При этом уравнение Пуассона представляется в виде (см. метод конечных разностей):

aj,k uj+1,k + bj,k uj-1,k + cj,k uj,k+1 + bj,k uj,k-1 + ej,k uj,k = fj,k .

Обращение к функции relax выполняется следующим образом:

relax(a, b, c, d, e, f, u0, R),

где a, b, c, d, e - квадратные матрицы одинакового размера, содержащие коэффициенты вышеприведенного уравнения, f - квадратная матрица, содержащая значения правой части уравнения в точках области, в которой ищется решение, u0 - квадратная матрица, содержащая граничные значения решения на границе области и начальное приближение для решения внутри области, R - спектральный радиус итераций Якоби. Параметр R управляет сходимостью алгоритма релаксации.

Оптимальное значение R зависит от параметров задачи и выбирается в пределах 0 < R < 1.

Рассмотрим пример с использованием функции relax. Найдем распределение температуры T(x,y) на тонкой квадратной пластине (рис. 4).

Рис. 4. Модель пластины

Распределение описывается уравнением Лапласа

∂²T / ∂x² + ∂²T / ∂y² = 0 .

Заданы следующие граничные условия: на левой стороне пластины T(Г1) = 273+97y³ К; на верхней стороне - T(Г2) = 273+85x² К; на правой стороне - T(Г3) = 358-28y² К; на нижней стороне - T(Г4) = 350-20 cos(px) К.

Запишем решение задачи в MathCAD следующим образом.

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Распределение температуры по пластине представлено на рис. 5.

Рис. 5. Распределение температуры по пластине

В приведенном примере отсчет узлов сетки начинается с индексов i = 0, j = 0, так как в MathCAD по умолчанию нумерация элементов массивов начинается с нуля. При необходимости можно ввести нумерацию начиная с единицы, задав соответствующий параметр ORIGIN = 1.

В следующем примере рассмотрим расчет колебаний u(x,t) тонкого однородного по длине стержня методом конечных разностей.

Закрепление концов стержня будем полагать жестким, что соответствует нулевому сдвигу на концах стержня: u(x=0,t) = 0 и u(x=L,t) = 0, где x = 0 и x = L - координаты концов стержня.

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Предположим, что деформация стержня и начальная скорость его движения v(x) в момент времени t = 0 соответственно равны

u(x,y) = fд(x) = A sin ( px / L ), ∂u/∂t = v(x,t=0) = 0 ,

где A = 0,002 м. Определим деформацию стержня ui,2 в момент времени t = Δt :

так как ∂u/∂t = v(x) = (ui,2 - ui,1) / Δt = vi,1 , то ui,2 = ui,1 + vi,1 Δt = ui,1 ,

где vi,1 = v(x) = 0 при t = 0.

Зададим исходные данные к расчету: длина стержня L = 0,05 м; модуль упругости E = 2·1011 Н/м²; плотность материала ρ = 8·10³ кг/м³.

Взяв шаг сетки по координате x равным Δx = L / Ni = L / 50 = 10-3 м (где Ni - количество шагов разбиения по x) и шаг по времени Δt = 0,01·[ 2 L ( ρ / E ) 0,5 ] = 2·10-7 c, найдем решение:

Форма рассчитанных колебаний стержня показана на рис. 6.

Рис. 6. Колебания тонкого стержня

Ниже представлена анимация решения, созданная с помощью MathCAD.

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Для решения уравнения параболического типа может быть использована аналогичная схема расчета.

2.2. Выполнение расчетов в пакете MATLAB

Пакет MATLAB содержит приложение PDE Toolbox (от англ. Partial Differential Equation - дифференциальное уравнение в частных производных). Приложение обеспечивает решение дифференциальных уравнений в частных производных методом конечных элементов в двухмерной постановке. Оно включает графический интерфейс; инструменты задания формы уравнений и граничных условий; процедуру автоматической генерации сетки конечных элементов; средства для визуализации полученного решения и его анимации. PDE Toolbox использует проекционную формулировку метода конечных элементов.

PDE Toolbox представляет собой набор специальных функций, написанных на языке MATLAB. Особое место среди всех функций PDE Toolbox занимают pdetool и pdeinit. При вызове этих функций из рабочего окна MATLAB разворачивается графический интерфейс, обеспечивающий решение задачи.

Запуск приложения PDE Toolbox приводит к появлению на экране окне графического интерфейса, изображённого на рис. 7.

Рис. 7. Графический интерфейс PDE Toolbox

В верхней части интерфейса располагается строка главного меню, включающего пункты "File", "Edit" и другие. Непосредственно под главным меню размещена панель, включающая инструменты PDETool, список видов задач "Application" и указатель значений координат x и y. Ниже расположены окно "Set formula" (ввод формулы) и собственно графическое окно для работы с изображением расчётной области. Внизу имеется информационная строка "Info" и кнопка "Exit" (выход).

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

2.2.1 Пример для диодной структуры

Рассмотрим кратко основные этапы решения задачи в PDE Toolbox на примере расчета распределения электрического потенциала в автоэмиссионной диодной ячейке (рис. 8).

Рис. 8. Диодная структура

Ячейка представляет собой двухэлектродную структуру, содержащую катод со скругленным на конце выступом и расположенный над ним анод. Будем полагать, что объемный заряд в межэлектродном пространстве отсутствует и распределение потенциала φ(x,y) подчиняется уравнению Лапласа

∂² φ(x,y) / ∂x² + ∂² φ(x,y) / ∂y² = 0 .

На первом этапе необходимо сформировать исходную геометрию задачи в графическом окне интерфейса PDETool (см. рис. 9).

Рис. 9. Подготовка изображения двухэлектродной структуры в окне PDETool

Показанная на рис. 9 геометрия структуры составлена из набора геометрических фигур - прямоугольника R1, окружности E1 и многоугольника P1.

Изображения электродов формируются с помощью команд пункта Draw (Рисовать) главного меню: Draw Mode - переключение в режим ввода (прорисовки) геометрии; Rectangle/square - ввод прямоугольника или квадрата с помощью мыши начиная от его верхней левой вершины; Rectangle/square (centered) - ввод прямоугольника или квадрата с помощью мыши начиная от его центра; Ellipse/circle - ввод эллипса или круга с помощью мыши начиная от верхней левой точки; Ellipse/circle (centered) - ввод эллипса или круга с помощью мыши начиная от центра; Polygon - прорисовка многоугольника отрезками ломаной линии, пока она не станет замкнутой; Rotate - поворот выделенных объектов вокруг некоторой точки; Export Geometry Description, Set Formula, Labels… - экспорт в базовую рабочую область MATLAB переменных описания геометрии. Быстрый вызов некоторых из этих команд обеспечивают элементы инструментальной панели

и - прямоугольник (квадрат), и - эллипс (круг), - многоугольник.

Для получения изображений произвольной формы служит строка "Set formula", располагающаяся под инструментальной панелью. В ней можно задать слияние нескольких фигур или "вычесть" их друг из друга используя. В данном случае используется формула R1-P1-E1, где R1 - прямоугольник (квадрат), P1 - многоугольник, E1 - эллипс (круг).

Команды для редактирования изображения и настройки графического окна содержатся в следующих пунктах главного меню. Edit (Правка) содержит команды: Undo - отмена последнего действия; Cut - вырезать выделенный геометрический объект и поместить его в буфер; Copy - копировать выделенный объект в буфер; Paste - вставить геометрический объект из буфера; Clear - удалить выделенный объект; Select All - выделить все геометрические объекты.

Options (Опции) содержит команды: Grid - показать / скрыть координатную сетку; Grid Spacing - установить пределы и шаг сетки; Snap - округлять координаты указателя мыши; Axes Limits - установить пределы координатных осей; Axes Equal - установить одинаковый масштаб по осям x и y; Turn Off Toolbar Help - выключить подсказки по инструментальной панели; Zoom - показать с увеличением

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

выделенную часть модели; Application - переключение вида задачи; Refresh - обновить изображение модели.

Второй этап включает ввод граничных условий на граничных сегментах (см. рис. 10) и параметров уравнения. Определить условие на любом из сегментов можно, выделив его двойным щелчком левой кнопки мыши. Соответствующие команды располагаются в разделах Boundary и PDE главного меню.

Рис. 10. Границы расчетной области

Boundary (Границы) содержит команды: Boundary Mode - ввод граничных условий; Specify Boundary Conditions… - ввод параметров граничных условий; Show Edge Labels - показать номера граничных сегментов; Show Subdomain Labels - показать номера зон; Remove Subdomain Border - удалить границу зон; Remove All Subdomain Borders - удаление всех границ зон; Export Decomposed Geometry, Boundary Cond's… - экспорт в рабочую область MATLAB переменных описания граничных условий.

PDE (Уравнение) содержит команды: PDE Mode - переключение в режим ввода параметров уравнения; Show Subdomain Labels - показать номера зон; PDE Specification… - ввод параметров (коэффициентов) уравнения; Export PDE Coefficients… - экспорт в базовую рабочую область переменных, описывающих PDE коэффициенты в расчётной области. Переход к выполнению этих команд также обеспечивается

элементами инструментальной панели - граничные условия и - параметры уравнения.

В качестве граничных условий на нижней и верхней границах зададим электрические потенциалы электродов, то есть условие Дирихле: вверху (на аноде) φ = 1000 В и внизу (на катоде) φ = 0 В. На левой и правой границах зададим условие Неймана ∂φ/∂n = 0 (где n - нормаль к границе), учитывая определенную симметрию задачи. Для ввода условия на каком-либо сегменте границы необходимо его выделить и открыть диалоговое окно "Boundary Condition". В окне следует установить переключатель в режим Dirichlet или Neuman и задать числовые параметры.

Зададим параметры уравнения эллиптического типа, вызвав через меню или панель инструментов диалоговое окно "PDE Specification". Выберем тип уравнения - "Elliptic" Если в списке "Application" установлен режим "Electrostatics" (задача электростатическая), то в окне MATLAB уравнение имеет вид "-div(exgrad(φ))=ρ", где e диэлектрическая проницаемость, электрический потенциал, объемный заряд. В том случае, когда установлен режим "Generic Scalar" в списке "Application" (задача в обобщенной скалярной форме), запись уравнения в MATLAB имеет вид "-div(c grad(u))+a u=f". Зададим = 1, = 0 (или c = 1, a = 0, и f = 0).

На следующем этапе формируется сетка конечных элементов (см. рис. 11). PDE Toolbox поддерживает только симплекс-элементы, для которых характерны линейные функции формы.

Пункт Mesh (Сетка) главного меню включает следующие команды для работы с сеткой: Mesh Mode - переключение в режим построения сетки; Initialize Mesh - генерация сетки; Refine Mesh - сгущение сетки; Jiggle Mesh - регуляризация сетки в пределах установленной величины; Undo Mesh Change - отменить последнее изменение сетки; Display Triangle Quality - отобразить в цвете показатель регулярности конечных элементов; Show Node Labels - показать номера узлов; Show Triangle Labels - показать номера конечных элементов; Parameters… - установить параметры генератора сетки; Export Mesh - экспорт сетки в базовую рабочую область.

На рабочей панели этому разделу меню соответствуют элементы - генерация сетки и - сгущение сетки.

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Рис. 11. Формирование сетки

Следующий этап включает собственно решение задачи и его вывод в графическом виде (см. рис. 12). Соответствующие команды располагаются в пунктах Solve и Plot главного меню.

Solve (Решение) содержит команды: Solve PDE - решить краевую задачу; Parameters… - установить параметры решателя; Export

Solution… - экспорт решения в базовую рабочую область. На инструментальной панели разделу Solve соответствует элемент .

Plot (График) содержит команды: Plot Solution - отобразить решение; Parameters… - установить параметры отображения решения; Export Movie… - экспорт в базовую рабочую область информации, необходимой для анимации решения нестационарной задачи. На панели

PDETool имеются элементы - настройка графики и - увеличить фрагмент.

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Рис. 12. Результат решения для двухэлектродной структуры:распределение эквипотенциальных линий φ = const

Результаты расчета можно сохранить, обратившись к пункту File (Файл) меню, включающему команды: New - создать новую модель; Open… - открыть ранее сохранённую в m-файле модель; Save - сохранение модели в m-файле с текущим именем; Save As… - сохранение модели в m-файле; Print… - печать рисунка; Exit - закрытие приложения PDETool.

2.2.2 Моделирование колебаний пластины

В следующем примере рассмотрим расчет колебаний тонкой пластины квадратной формы (рис. 13).

Рис. 13. Модель пластины

Для описания колебаний используется обобщенное гиперболическое уравнение вида

∂² u /∂x² + ∂² u /∂y² - ∂² u /∂t² = 0 .

Будем считать, что пластина жестко закреплена на левой и правой границах - u = 0, а два других ее края свободны - ∂u/∂n = 0.

Расчет с помощью PDETool будем проводить в следующем порядке. Вначале установим вид расчета "Generic Scalar" в окне "Application" (обычно этот режим выбран по умолчанию).

Начертим изображение пластины в графическом окне PDETool таким образом, чтобы ее центр совпал с началом координат (x = 0, y = 0) и стороны были равны a = b = 2, где a - размер по оси x, b - размер по оси y (см. рис.19).

Будем задавать граничное условие Дирихле u = 0 на левой и правой сторонах. На двух других сторонах примем условие Неймана ∂u/∂n = 0.

Укажем, что задача описывается уравнением гиперболического типа, и введем соответствующие коэффициенты c = 1, a = 0, f = 0, d = 1 (рис. 14).

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Рис. 14. Ввод параметров дифференциального уравнения

Зададим параметры решения и начальные условия - исходную деформацию пластины при t = 0:

u(x,y,t=0) = arctg [ cos ( px / 2 ) ], ∂u/∂x = 3 sin ( px ) exp [ sin ( py / 2 ) ] .

Для этого воспользуемся диалоговым окном "Solve Parameters", которое можно открыть выбрав пункты меню Solve → Parameters… (рис. 15).

Вначале выберем шаг и верхний предел решения по времени. Для параметра Time введем строку "0:0.1:10". Таким образом, расчет будет выполняться по времени в пределах t = 0…10 с шагом Δt = 0,1.

Начальные условия также записываются с учетом особенностей языка пакета MATLAB. Начальная деформация указывается строкой

"atan(cos(pi*x/2))" ,

а первая производная

"3*sin(pi*x) .*exp(sin(pi*y/2))" .

Относительную и абсолютную погрешность примем равными 0,01 и 0,001, сохранив установленные по умолчанию значения.

Рис. 15. Ввод параметров решения

Сформируем сетку и настроим графические параметры решения с помощью диалогового окна "Plot Selection" (рис. 16).

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

Рис. 16. Параметры анимации

Завершающий этап - запуск решения задачи. После окончания вычислений в графическом окне интерфейса PDETool отображается деформация пластины в момент времени t = 10, а в дополнительном окне - анимация колебаний пластины (см. рис. 17).

Рис. 17. Решение гиперболического уравнения

Приложение PDETool поддерживает решение различных типов задач, описываемых дифференциальными уравнениями в частных производных. В приведенной ниже таблице представлены основные из этих вариантов. Первая строка - "общий вид" соответствует обобщенной задаче, остальные относятся к конкретным физическим приложениям. В таблицу не включены задачи на собственные значения и системы дифференциальных уравнений.

таблица

Вид задачиКлассификация дифференциальных уравнений по математической форме

Эллиптического типа Параболического типа Гиперболические

Общий вид (Generic Scalar) -div(c´grad(u))+a´u=f D´u'-div(c´grad(u))+a´u=f,где u' эквивалентно ∂u/∂t

d´u"- div(c´ ´grad(u)) + a´u = f,где u" ≡ ∂u/∂t

Электростатика (Electrostatics)

-div(e´grad(φ))= ρ,гдеe - диэлектрическая проницаемость,φ - электрический потенциал,ρ - объемный заряд.

--- ---

Магнитостатика (Magnetostatics)

-div((1/m) grad(A))=j, гдеm - магнитная проницаемость, A - магнитный векторный потенциал,

j - плотность тока.

--- ---

Теплопередача (Heat Transfer)

-div(k´grad(T))=Q+h´(Text-T),где T - температура, k - коэф. теплопроводности, Q - источник тепла,

ρ´C´T'-div(k´grad(T)) = =Q+h´(Text-T),где T, k, Q, h и Text - соответствуют

указанным для уравнения---

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

h - коэффициент конвективнойтеплопередачи, Text - внешн. температура.

эллиптического типа,ρ - плотность, C - теплоемкость.

Диффузия (Diffusion)

-div(D´grad(c))=Q,где c - концентрация, D - коэффициент диффузии, Q - объемный источник.

c'-div(D´grad(c))=Q,где c - концентрация, D - коэффициент диффузии, Q - объемный источник.

---

Проводящая среда (Conductive Media DC)

-div(s´grad(φ))=q,гдеs - проводимость,φ - электрический потенциал, q - источник тока.

--- ---

Переменный электромагнитный процесс (AC Power Electromagnetics)

-div((1/m)´grad(E))+ +(jws-ew²)E=0,гдеm - магн. проницаемость, E - электрическое поле, j - мнимая единица,w - относ. угловая частота,s - относ. проводимость,e - диэл. проницаемость.

--- ---

Механика: поле напряжений (stress) и поле деформаций (strain)

E - модуль Юнга, nu - коэффициент Пуассона, Kx - объемное воздействие (сила)в направлении x, Ky - объемное воздействие (сила)в направлении y,ρ - плотность.

--- ---

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Основной

1. Бахвалов, Н. С. Численные методы / Н. С. Бахвалов, Н. П. Жидков, Г. Н. Кобельков. М.: БИНОМ. Лаб. знаний, 2003. 632 с.2. Бахвалов, Н. С. Численные методы в задачах и упражнениях / Н. С. Бахвалов, А. В. Лапин, Е. В. Чижонков. М.: Высш. шк., 2000.

192 с.3. Вержбицкий, В. М. Численные методы. Линейная алгебра и нелинейные уравнения. М.: Высш.шк., 2000. 268 с.4. Вержбицкий, В. М. Численные методы. Математический анализ и обыкновенные дифференциальные уравнения. М.: Высш.шк.,

2001. 383 с.5. Волков, Е. А. Численные методы. СПб.: Лань, 2004. 248 с.6. Мудров, А. Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль. Томск: МП "РАСКО", 1991. 272 с.7. Шуп, Т. Е. Прикладные численные методы в физике и технике. М.: Высш. шк., 1990. 255 с.

Дополнительный

1. Бабенко, К. И. Основы численного анализа. М.: Наука, 1986. 744 с.2. Боглаев, Ю. П. Вычислительная математика и программирование. М.: Высш.шк., 1990. 544 с.3. Калиткин, Н. Н. Численные методы. М.: Наука, 1978. 512 с.4. Каханер, Д. Численные методы и программирование / Д. Каханер, К. Моулер, С. Нэш. М.: Мир, 1999. 575 с.5. Самарский, А. А. Введение в численные методы. М.: Наука, 1987. 286с.6. Турчак, Л. И. Основы численных методов. М.: Наука, 1987. 320 с.7. Математический энциклопедический словарь / Под ред. Ю. В. Прохорова. М.: Сов. энциклопедия, 1988. 847 c.8. Ануфриев, И. Е. Самоучитель MatLab 5.3/6.X. СПб.: БХВ-Петербург, 2003. 710 с.9. Потемкин, В. Г. Инструментальные средства MATLAB 5.Х. М.: ДИАЛОГ-МИФИ, 2000. 336 с.

10. MATHCAD 6.0 PLUS. Финансовые, инженерные и научные расчеты в среде Windows 95: Пер. с англ. М.: "Филинь", 1996. 712 с.11. Дьяконов, В. П. MATHCAD 8 PRO в математике, физике и Internet / В. П. Дьяконов, И. В. Абраменкова. М.: "Нолидж", 1999. 512с.12. Очков, В. Ф. MathCAD 8 Pro для студентов и инженеров. М.: "КомпьютерПресс", 1999. 381 с.13. Плис, А. И. MathCAD 2000. Математический практикум для экономистов и инженеров / А. И. Плис, Н. А. Сливина. М.: Финансы и

статистика, 2000. 656с.14. Гулд, Х. Компьютерное моделирование в физике: [В 2 ч.] / Х. Гулд, Я. Тобочник. - М.: Мир, 1990. Ч.1. 349 с.15. Левицкий, А. А. MATLAB 3.05, MathCAD 2.5. Практическое руководство. Красноярск, 1997. 200 с.16. Методические разработки с использованием математических пакетов. Электрон. дан. Режим доступа: http://www.exponenta.ru,

http://www.matlab.ru.

Наверх

Карта сайта | На первую страницу | Поиск | О проекте | Сотрудничество | e-mailКорпоративная почта | ActiveCloud | Антивирус Касперского | Matlab | Подписка на MSDN для вузов | ИТ-ПРОРЫВ

Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter Наши баннеры

Copyright © 1993-2014. Компания Softline. Все права защищены.Дата последнего обновления информации на сайте: 15.07.14Сайт начал работу 01.09.00

Основы численных методов

http://www.exponenta.ru/educat/systemat/levitsky/index.asp[13/08/2014 11:06:14 a.m.]

подарки – подарочные сертификаты