Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
ГОУВПО «Комсомольский-на-Амуре государственный технический университет»
Кафедра: МОП ЭВМ
Лабораторная работа №2
по дисциплине: «Компьютерное моделирование».
Выполнил: студент группы 4ВС – 1 Алексеенко Н. С.
Проверил: Петров Ю. А.
Комсомольск – на – Амуре
2007
Тема:"Решение линейных дифференциальных уравнений 2-го порядка".
Задание: найти общее решение уравнения, приведя его к каноническому виду:
Область применения:
Выполнение:
Решим задачу в системе Matlab.
Определим необходимые переменные:
syms dx dy x y teta eta teta_x teta_y eta_x eta_y u_tt u_t u_te u_e u_ee u_x u_y u_xx u_xy u_yy
Общий вид линейного уравнения с частными производными второго порядка с двумя независимыми переменными имеет вид:
(1)
Зададим коэффициенты уравнения:
a11 = 1; a12 = 1; a22 = 1; b1 = -3; b2 = -3; f = 0; c = 0;
Определим тип уравнения:
a12^2-a11*a22
ans = 0
т.е. уравнение имеет параболический тип.
Данное условие вытекает из уравнения характеристик (2). Оно получается из исходного уравнения (1) с помощью взаимно - обратного преобразования переменных . Выражая производные уравнения (1) через переменные , получим новые значения для . Подставляя эти производные в уравнение (1), получим (3). Вопрос о решении уравнения (3) решается известными леммами. Так как мы ввели новые переменные с помощью двух, пока произвольных, соотношений, то можем наложить на их выбор два условия . Уравнение (2) распадается на два дифференциальных уравнения . Знак подкоренного выражения и определяет тип уравнения (1).
Запишем уравнение характеристик и решим его относительно dy:
v=solve(a11*dy^2-2*a12*dy*dx+a22*dx^2, dy)
v =
[ dx]
[ dx]
Из него определяем функции и :
teta=y-subs(v(1), 'dx', 'x')
eta = y
teta =y-x
eta =y
Определяем первые производные полученных функций:
teta_x=diff(teta, x)
teta_y=diff(teta, y)
eta_x=diff(eta, x)
eta_y=diff(eta, y)
teta_x =-1
teta_y =1
eta_x =0
eta_y =1
Проверяем линейную независимость полученных функций:
det(jacobian([teta;eta],[x,y]))
ans =-1
Определитель матрицы Якоби не равен нулю, следовательно, линейно независимы, т.е. функция подобрана корректно.
Вычислим производные функции u:
u_x=u_t*teta_x+u_e*eta_x
u_y=u_t*teta_y+u_e*eta_y
u_xx=u_tt*teta_x^2+u_ee*eta_x^2+2*u_te*teta_x*eta_x
u_xy=u_tt*teta_x*teta_y+u_ee*eta_x*eta_y+u_te*(teta_x*eta_y+teta_y*eta_x)
u_yy=u_tt*teta_y^2+u_ee*eta_y^2+2*u_te*teta_y*eta_y
u_x = -u_t
u_y = u_t+u_e
u_xx = u_tt
u_xy = -u_tt-u_te
u_yy = u_tt+u_ee+2*u_te
Подставим полученные производные в исходное уравнение:
a11*u_xx+2*a12*u_xy+a22*u_yy+b1*u_x+b2*u_y+f
ans = u_ee-3*u_e
Мы получили уравнение (1) в каноническом виде: . Решение этого уравнения будем искать в виде . Тогда ,
и . Поскольку , то . Решим это уравнение:
d=dsolve('4*D2b-2*Db=0', 'eta')
d = C1+C2*exp(3*eta)
где , .
Таким образом, решение имеет вид: . Выполним обратную подстановку и переобозначим , :
subs(d, eta)
ans = C1+C2*exp(3*y)
Таким образом, решение уравнения имеет вид: , где , – дважды непрерывно-дифференцируемые функции. Например, возьмем следующие функции:
fun=y-x;
C3=6*fun
C4=fun
C3 = 6*y-6*x
C4 = y-x
u=C3+C4*exp(3*y)
u = 6*y-6*x+(y-x)*exp(3*y)
и подставим их в исходное уравнение:
a11*diff(diff(u, x), x)+2*a12*diff(diff(u, x), y)+a22*diff(diff(u, y), y)+b1*diff(u, x)+b2*diff(u, y)+c*u+f
ans =0
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.