Решение уравнений в частных производных с помощью Matlab
Функция plot обеспечивает вывод результатов вычислений в виде графиков функций одной переменной. Первым аргументом функции plot является вектор, определяющий значения по оси абсцисс, а вторым — вектор, определяющий значения по оси ординат. Таких пар аргументов в функции plot может быть несколько. Соответственно в этом случае в графическом окне будет выведено несколько графиков, как в приведенном… Читать ещё >
Решение уравнений в частных производных с помощью Matlab (реферат, курсовая, диплом, контрольная)
Численное решение граничной задачи для дифференциального уравнения 2-го порядка методом конечных разностей.
Уравнение Пуассона относится к уравнениям эллиптического типа и в одномерном случае имеет вид.
(2.1).
где — координата;
— искомая функция;
— некоторые непрерывные функции координаты.
Решим одномерное уравнение Пуассона для случая, которое при этом принимает вид.
. (2.2).
Зададим на отрезке равномерную координатную сетку с шагом :
. (2.3).
Граничные условия первого рода (условия Дирихле) для рассматриваемой задачи могут быть представлены в виде.
(2.4).
(2.5).
где , — координаты граничных точек ;
— некоторые константы.
Граничные условия второго рода (условия Неймана) для рассматриваемой задачи могут быть представлены в виде.
(2.6).
. (2.7).
Проводя дискретизацию граничных условий Дирихле на равномерной координатной сетке (2.3) с использованием метода конечных разностей, получим.
(2.8).
(2.9).
где, — значения функции в точках, соответственно.
Проводя дискретизацию граничных условий Неймана на сетке (2.3), получим.
(2.10).
. (2.11).
Проводя дискретизацию уравнения (2.2) для внутренних точек сетки, получим.
(2.12).
где , — значения функций, в точке сетки с координатой .
Таким образом, в результате дискретизации получим систему линейных алгебраических уравнений размерностью, содержащую уравнения вида (2.12) для внутренних точек области и уравнения (2.8) или (2.10) и (2.9) или (2.11) для двух граничных точек.
Приведем один из вариантов m-файла для численного решения уравнения (2.2) с граничными условиями (2.4) — (2.7) на координатной сетке (2.3). Текст m-файла см. в приложении A.
При запуске m-файла на выполнение в оперативной памяти компьютера могут храниться результаты предыдущих вычислений, причем имена переменных и массивов, значения которых хранятся в оперативной памяти, в принципе могут совпасть с именами переменных или матриц запускаемого m-файла, что при определенном стечении обстоятельств может привести к неверному результату производимых вычислений. Это возможно, поскольку все переменные и массивы, используемые в m-файлах, по умолчанию являются глобальными. Во избежание данных нежелательных моментов, первые три команды m-файла производят очистку оперативной памяти от результатов предыдущих вычислений, закрывают все графические окна (если таковые были ранее открыты) и очищают экран от ранее выведенной информации.
В данном варианте программы предусмотрен ввод исходных данных с клавиатуры с помощью функции input. Данная функция выводит на экран строку символов, являющуюся ее входным аргументом, позволяет пользователю ввести с клавиатуры произвольный набор символов и после нажатия клавиши записывает введенные символы в специальную переменную, о которой упоминалось выше. Далее в m-файле предусмотрен оператор присвоения значения переменной другой переменной с определенным именем.
Функция правой части уравнения Пуассона задается в данном варианте символьно, а затем преобразуется в вектор значений в соответствии с вектором координатной сетки. Решение системы линейных алгебраических уравнений (СЛАУ), заданной матрицей коэффициентов и вектором свободных членов и полученной в результате дискретизации уравнения Пуассона на равномерной координатной сетке, производится путем деления вектора-строки на транспонированную матрицу. Операция транспонирования матрицы обозначается символом апострофа после имени матрицы.
Функция plot обеспечивает вывод результатов вычислений в виде графиков функций одной переменной. Первым аргументом функции plot является вектор, определяющий значения по оси абсцисс, а вторым — вектор, определяющий значения по оси ординат. Таких пар аргументов в функции plot может быть несколько. Соответственно в этом случае в графическом окне будет выведено несколько графиков, как в приведенном примере. Кроме того, функция plot может содержать (и в приведенном примере содержит) дополнительные аргументы, управляющие цветом, символьным сопровождением и шириной линий графиков.
Функции, позволяют вывести на экран наименования осей координат. Функция grid позволяет включить или отключить отображение координатной сетки на графике (при помощи параметров on и off соответственно).
Например, при запуске m-файла и вводе исходных данных.
x0=0;
xn=5;
n=60;
f='2*sin (x.^2)+cos (x.^2)';
v1=1;
g1=0;
v2=1;
g2= -0.5;
на экране в отдельных графических окнах появятся график функции правой части уравнения Пуассона (рисунки 2.1) и график искомой функции (рисунок 2.2). Точками на графиках будет отображаться координатная сетка.
Рисунок 2.1 График функции правой части уравнения (2.2).
Рисунок 2.2 График искомой функции уравнения (2.2).