Вернуться на страницу <Методические разработки>
Архив разработки (36 Кб, Mathcad, Word)
Цель работы: научиться решать численно уравнения в частных производных гиперболического типа в MathCad.
Гиперболические уравнения возникают при изучении различных колебательных процессов. Типичным примером гиперболического уравнения является уравнение колебаний струны с закрепленными концами. Такая задача имеет вид:
utt = c2 uxx для 0< x< l, 0< t< tmax, (1)
с граничными условиями
u(0, t) = u(l, t) = 0 для 0< t< tmax (2)
и начальными условиями
u(x, 0) = f (x) для 0< x < l, (3’)
ut(x, 0) = g (x) для 0< x< l. (3’’)
Условие (3’) описывает начальную форму струны, условие (3’’) - исходное распределение скоростей. Функция g(x, t) описывает внешнюю нагрузку, действующую на струну во время колебательного процесса.
Рассмотрим численное решение уравнения (1) методом конечных разностей [1], хотя при применении этого метода могут возникнуть проблемы с устойчивостью используемой разностной схемы. Зададим число точек разбиения n для отрезка [0; l] и m для отрезка [0; tmax]. Тогда длины отрезков разбиения равны (x = l /(n-1) и ( = tmax/(m-1). Вторые производные в уравнении (1) аппроксимируем по формуле центрированной разности
(4')
и
(4’’)
Подставляя полученные выражения в уравнение (1), получим разностное уравнение
Обозначив r=ct /h, приводим это уравнение к виду
ui,j+1 = (2-2r2)ui,j + r2(ui+1,j + ui-1,j) - uj,j-1 , i = 2, 3, …, n-1. (5)
Вычислительная схема (5) устойчива при выполнении условия r1. Существуют неявные схемы, более сложные, но устойчивые при любых значениях r [2].
Чтобы проводить расчет по уравнению (5), необходимо знать два начальных ряда, соответствующих t= 0 и t= t . Ряд, соответствующий начальному моменту, задается с использованием функции u(x,0) = f (x). Ряд для t= t задается с использованием функции ut(x,0) = g(x) по формуле
Ui,2 = s1 fi-1 + t gi-1 + r22(fi + fi-1) . (6)
Здесь s1=1-r2, r22= r2/2 . Формула (6) следует из разложения функции u(x,t) в ряд Тейлора с точностью до квадратичного члена в точке t = t . Вторая производная аппроксимируется по формуле (4’). После вычисления первых двух рядов значения функции u(x,t) вычисляются по формуле (5).
В файле hyperbolic приведен пример решения задачи
utt = uxx ,
u(x,0) = 0,
ut(x,0) = x(x-1) .
Также проведено сравнение полученного решения с точным теоретическим решением
.
Литература.
- Джон Г.Мэтьюз, Куртис Д.Финк. Численные методы. Использование MATLAB. М.: “Вильямс”, 2001 с.568.
- А.А.Самарский, А.В.Гулин. Численные методы: Учеб. пособие для вузов. М.:Наука, 1989.
Задание для самостоятельной работы.
Решить численно задачу (1) - (3) на единичном отрезке со следующими данными:
-
f (x) = (1/15)sin(11p x/2)cos(4p x/2), g(x) = 0.
Аналитическое решение:
u(x,t) = (1/30) [cos(7p t/2)sin(7p x/2) + cos(15p t/2)sin(15p x/2)] .
-
f (x) = (1/8)sin(3p x), g(x) = 0.
Аналитическое решение:
u(x,t) = (1/8) cos(3p t)sin(3p x) .
-
f (x) = 0, g(x) = (1/3)sin(5p x).
Аналитическое решение:
u(x,t) = (1/(15p )) sin(5p t)cos(5p x) .
-
f (x) = 0, .
Аналитическое решение:
.
- f (x) = 0,
Аналитическое решение:
.
Сравнить с аналитическим решением. Ряды аппроксимировать конечной суммой.
Определить максимальное значение шага, при котором вычислительная схема устойчива. Убедиться в неустойчивости схемы при задании шага больше максимального.
В начало
Вернуться на страницу <Методические разработки>
|