ДЗ: Дз 1,вариант 6
Описание
Характеристики домашнего задания
Список файлов
- zub_dz_1_2.txt 16,65 Kb
# Файл: "...Ps_МГТУ\УрМатФиз\ПриведКканВиду\п2_П ривУрПарТипа.mws"
# 02.10.14. Титов К.В. Вариант 30 из Д.З.
# Исх файл: "...Изд-во\Книга_1_ПоСКМ\КнигаПоСКМ_ИсхТ екст+Прогр\Гл7\Пар1\
# п2_ПривУрПарТипа.mws"
# 2. Решение уравнения с частными производными параболического типа.
> restart;
# *) Рассмотрим пример с интерактивным выбором параметров уравнения и новых пере-
# менных. Пусть заданы следующие коэффициенты уравнения:
> a[1, 1] := 1; a[1, 2] := -x; a[2, 2] := x^2;
1
-x
2
x
;
> F:=-diff(u(x,y),x)+(x-1)*diff(u(x,y),y);
/ d \ / d \
-|--- u(x, y)| + (x - 1) |--- u(x, y)|
\ dx / \ dy /
;
# Примечание. Здесь везде *) - означает задание исходных данных пользователем или
# передачу в последующий алгоритм предыдущего выражения.
# Запишем само линейное дифференциальное уравнение с частными производными
> de:=a[1,1]*diff(u(x,y), x$2)+2*a[1,2]*diff(diff(u(x,y),x),y)+a[2 ,2]*diff(u(x,y), y$2)+F=0;
/ d / d \\ / d / d \\
|--- |--- u(x, y)|| - 2 x |--- |--- u(x, y)||
\ dx \ dx // \ dy \ dx //
2 / d / d \\ / d \
+ x |--- |--- u(x, y)|| - |--- u(x, y)|
\ dy \ dy // \ dx /
/ d \
+ (x - 1) |--- u(x, y)| = 0
\ dy /
;
# *) Введем обозначения, указывая на то, относительно какой переменной заданы началь-
# ные условия (выберите обозначение х0 или у0 - это важно для дальнейшего построения
# алгоритма!)
> x0:=0: p:=x0: u0:=y: du0:=y^2:
# и зададим начальные условия:
> if p=x0 then yx0:=u(x0,y)=u0,D[1](u)(x0,y)=du0:
> else yx0:=u(x,y0)=u0,D[2](u)(x,y0)=du0 fi:
> yx0;
2
u(0, y) = y, D[1](u)(0, y) = y
;
# *) Здесь оператор D имеет следующую семантику (обозначению х0 или у0
# соответствует номер переменной в операторе D[№]
> D[1](u)(x0,y)=y: convert(%,diff);
/ d \
eval|---- u(t1, y), {t1 = 0}| = y
\ dt1 /
;
# Вычислим критерий, по которому определим тип дифференциального уравнения, указав
# на ограничения переменных (здесь это не обязательно делать)
> `assume(x>0,y>0);`:
> di:=simplify(eval(a[1,2]^2-a[1,1]*a[2,2] )); evalb(di=0); zn:=signum(di);
0
true
0
;
# Функция signum(di) имеет три значения:
#
# Введём ещё один параметр dii
> dii:=factor(di); qdii:=sqrt(dii);
0
0
;
# В соответствии с вычисленным критерием di проведем выбор типа уравнения с помощью
# логического блока, используя zn
> if zn>0 then tip:=`гиперболический`
> else if zn=0 then tip:=`параболический`
> else tip:=`эллиптический` fi:fi:
# и дадим его визуализацию на дисплее
> tip; # Ответ:
параболический
;
# Составляем характеристическое уравнение, считая одну из переменных x или y функцией
# другой: и выбираем то из них, которое проще.
>
;
# *) Поэтому будем считать x функцией от y, то есть x(y). Для этого проведем замену x на
# x(y) в коэффициентах a[1,2], a[1,1] (здесь этого делать не надо, так как в a[1,2],
# a[1,1] x не входит)
# Примечание. Если считать y функцией от x, то есть y(x), тогда
> A[1,2]:=subs(y=y(x),a[1,2]);A[1,1]:=subs (y=y(x),a[1,1]);A[2,2]:=subs(y=y(x),a[2, 2]);
-x
1
2
x
# Такая замена необходима для правильной работы Maple при решении характеристичес-
# кого уравнения. С учетом проведенной замены запишем характеристическое уравнение,
# распадающееся на два, для каждого из которых получим его решение
> y1:=diff(y(x),x)=(A[1,2]+sqrt(A[1,2]^2-A [1,1]*A[2,2]))/A[1,1];
d
--- y(x) = -x
dx
;
> y2:=diff(y(x),x)=(A[1,2]-sqrt(A[1,2]^2-A [1,1]*A[2,2]))/A[1,1]:
# Найдем решение для ух1
> dsolve(y1);
1 2
y(x) = - - x + _C1
2
;
>
;
# Если тип уравнения параболический, то ух1=ух2 и рассматривать надо одно из них.
# Из полученных решений надо оставить одно - действительное решение, записав его как
# общий интеграл.
# Находим решение составленного таким образом характеристического уравнения:
> dsolve(y1);
1 2
y(x) = - - x + _C1
2
;
# Итак, записываем одну из новых переменных, снова возвращаясь к х и у
> xi:=(x,y)->-x^2/2-y;
1 2
(x, y) -> - - x - y
2
;
# Для параболического типа уравнения, вторую из новых переменных выбирают произ-
# вольно, но так, чтобы она была линейно независима с первой и пребразование точек
# плоскости (х0у) в точки плоскости (xi0eta) оставалось взаимно однозначным. (По этой
# причине нельзя eta выбрать как константу, но можно приравняь eta=x).
# Пусть таковой будет
> eta:=(x,y)->x;
(x, y) -> x
;
# *) Зависимости xi(x,y) и eta(x,y) должны допускать взаимно однозначное преобразование
# одних переменных в другие, то есть x(xi,eta) y(xi,eta). Поэтому в общем случае последние
# зависимости следует найти из системы двух уравнений:
> solve({xi=-x^2/2-y,eta=x},{x,y});
/ 1 2 \
{ x = eta, y = - - eta - xi }
\ 2 /
;
# Примечание. Здесь везде *) - означает передачу в алгоритм предыдущего выражения.
> allvalues(%); # опция используется в случае возникновения RootOf(expr).
/ 1 2 \
{ x = eta, y = - - eta - xi }
\ 2 /
;
# *) Из всех полученных значений, как при eta(x,y)=x, когда появляется функция RootOf(expr)
# {x = eta, y = RootOf(_Z^3-3*eta-3*xi, label = _L2)};, в силу вышесказанного выберем дейст-
# вительную пару и запишем её с именами xp и yp.
> yp:=-xi-1/2*eta^2; xp:=eta;
1 2
- - eta - xi
2
eta
;
# При необходимости произведем их подстановку при переходе к новым переменным.
# Напомним, что переход к новым переменным должен привести к уравнению
> de1 := a1[1, 1]*(diff(u(eta, xi), xi, xi))+2*a1[1, 2]*(diff(u(eta, xi), eta, xi))+a1[2, 2]*(diff(u(eta, xi), eta, eta))+F1 = 0;
/ d / d \\
a1[1, 1] |---- |---- u(eta, xi)||
\ dxi \ dxi //