реш системы диф ур

Форум пользователей пакета Maple

Модератор: Admin

Viking888
Сообщения: 4
Зарегистрирован: Вт май 20, 2008 7:16 pm

реш системы диф ур

Сообщение Viking888 » Вт май 20, 2008 7:37 pm

Решил систему ur1:=sign(t)*diff(U1(t),t) + A*U2(t) = lambda*U1(t);ur2:=diff(U2(t),t) + A*U1(t) = lambda*U2(t),получил решение в общем виде,а что дальше делать не знаю:надо найти те lambda,кот удовл условиям:
U(t=-0)=U(t=+0);U(t=T1)+U(t=T2)=0.Подскажите пожалуйста как прописать эти условия в Maple?Как в Maple склеить решения системы в одно,ведь sign разбивает систему на две и получается два решения? :cry: Заранее благодарен :!:

aar
Сообщения: 100
Зарегистрирован: Чт авг 10, 2006 11:27 am

Сообщение aar » Ср май 21, 2008 9:04 am

Скорее всего, вместо sign(t) нужно использовать signum(t). И условия непонятны: что такое U(t), T1, T2?

Viking888
Сообщения: 4
Зарегистрирован: Вт май 20, 2008 7:16 pm

реш системы диф ур

Сообщение Viking888 » Ср май 21, 2008 1:14 pm

U(t)={U1(t),U2(t)} - решение данной системы,[T1,T2] - произвольный отрезок,на котором задана ф-ия U(t).

aar
Сообщения: 100
Зарегистрирован: Чт авг 10, 2006 11:27 am

Сообщение aar » Чт май 22, 2008 9:26 am

Замените в Вашей системе sign на signum.
Решите систему отдельно при lambda=A

slv := dsolve(eval({ur1,ur2},lambda=A));

и при lambda=-A

slv1 := dsolve(eval({ur1,ur2},lambda=-A));

Потом сами проверяйте условия.
lambda=A и lambda=-A получаются, если решать отдельно систему с
ur1:=t*diff(U1(t),t) + A*U2(t) = lambda*U1(t)

затем с
ur1:=-t*diff(U1(t),t) + A*U2(t) = lambda*U1(t)

и использовать условие U(t=-0)=U(t=+0). Проверьте все.

Viking888
Сообщения: 4
Зарегистрирован: Вт май 20, 2008 7:16 pm

реш системы диф ур

Сообщение Viking888 » Чт май 22, 2008 12:43 pm

Спасибо за помощь! :)

Viking888
Сообщения: 4
Зарегистрирован: Вт май 20, 2008 7:16 pm

реш системы диф ур

Сообщение Viking888 » Пт май 23, 2008 2:28 pm

А можно поподробней написать,как получаются lambda=A и lambda=-A?

aar
Сообщения: 100
Зарегистрирован: Чт авг 10, 2006 11:27 am

Сообщение aar » Пн май 26, 2008 9:24 am

Не знаю, насколько это законно. Проверяйте:

> S1 := dsolve({ur1, ur2}) assuming t>=0:
> S2 := dsolve({ur1, ur2}) assuming t<=0:
> S2 := eval(S2, {_C1 = _C3, _C2 = _C4}):

> eval(S1, S2):
> S:= eval(%, t = 0):

Дальше надо смотреть, что получилось в S. Поскольку у меня вышло:
> S[2];
_C4 = -_C1 + _C2

то можно сделать так:
> eval(S[1], S[2]):
> solve(%);

Получается ответ из четырех вариантов, в одном варианте есть lambda = A, в другом lambda = -A.