2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Найти коэффициенты дифференциального уравнения
Сообщение16.02.2014, 14:19 
Аватара пользователя


16/02/14
46
Добрый день! Помогите, пожалуйста, решить задачу.
Есть уравнение: $y'''+a_1y''+a_2y'+a_3y=b_0u''+b_1u'+b_2u$
Начальные условия: $y^{(i)}(0)=0, i=1,2,3$
Известны $u(t_j),y(t_j)$, j=1,...,N.
Нужно найти коэффициенты $a_1, a_2, a_3, b_0, b_1, b_2$
Пробовала заменить производные разностными аппроксимациями дифференциальных операторов:
$\frac{1}{h^3}(y(t_4)-3y(t_3)+3y(t_2)-y(t_1))+a_1(\frac{1}/{h^2}(y(t_3)-2y(t_2)+y(t_1)))+a_2\frac{1}{h}(y(t_2)-y(t_1))+a_3y=b_0\frac{1}{h^2}(u(t_3)-2u(t_2)+u(t_1))+b_1\frac{1}{h}(u(t_2)-u(t_1))+b_2u$
А как дальше решать?

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение16.02.2014, 14:23 
Аватара пользователя


02/01/14
292
Simply me в сообщении #827154 писал(а):
Добрый день! Помогите, пожалуйста, решить задачу.
Смотрите "Метод наименьших квадратов", "Регрессионный анализ".

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение16.02.2014, 14:36 
Аватара пользователя


16/02/14
46
Спасибо. Если я правильно понимаю, метод наименьших квадратов и аппроксимация позволяют найти приближенное решение. А можно найти точное решение этой задачи и каким методом?

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение16.02.2014, 15:05 
Аватара пользователя


02/01/14
292
Я думал у вас задача из практики. А если значения $u(t_j),y(t_j)$, $j=1,...,N$ известны точно, то задача сводится к решению системы N линейных уравнений (для $j=1, 2,...,N$) с шестью неизвестными.

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение24.02.2014, 09:55 
Аватара пользователя


16/02/14
46
На самом деле у меня измеренные значения y и u состоят из реальных значений и шума. Поэтому применение метода наименьших квадратов дает большую погрешность. А можо как-то по другому решить?

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение24.02.2014, 11:32 
Аватара пользователя


02/01/14
292
Simply me в сообщении #830073 писал(а):
На самом деле у меня измеренные значения y и u состоят из реальных значений и шума. Поэтому применение метода наименьших квадратов дает большую погрешность. А можо как-то по другому решить?
Вот и я про тоже. Скорее всего, у вас набор результатов измерений входного сигнала $u$ и выходного сигнала $y$ в дискретные моменты времени. Производные вы оцениваете на основе результатов измерений по стандартным формулам (или у вас есть приборы для измерения скоростей изменения величин?). Здесь и появляется основная погрешность. Причем погрешность в оценке третьей производной будет очень велика.
Но если у вас полезный сигнал тонет в шуме до почти полной неразличимости, не стоит надеяться получить достоверные результаты.
Здесь может помочь сбор очень большой статистики; как известно, доверительные интервалы искомых коэффициентов уменьшаются с ростом числа наблюдений. Ну и стоит подумать об уменьшении шумов и уменьшении интервала дискретизации.
Да! А что у вас представляют собой $u$ и $y$? Вы можете активно на них воздействовать, например, сделать $u(t)$ синусоидой с заданной частотой?

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение24.02.2014, 11:57 
Аватара пользователя


16/02/14
46
Спасибо! Наверное, подумаю об увеличении числа наблюдений. Так-то метод наименьших квадратов реализовала. Может, применяя его, можно получить достаточную точность, если провести больше экспериментов. А так мне эту задачу дали больше как теоретическую. Точно не знаю, но предполагаю, что приборов для измерения производных нет. u - это характеристики нагнетательных скважин, y - добывающих.

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение24.02.2014, 12:05 
Заслуженный участник
Аватара пользователя


23/07/08
10907
Crna Gora
Возможно, будет полезной книга:
Марпл-мл. Цифровой спектральный анализ и его приложения.

Там описываются методы решения подобных задач, в которых, несмотря на дискретность отсчетов, дифференциальные операторы не заменяются разностными (и это хорошо, потому что брать численно третью производную от дискретного зашумленного сигнала — это... сами понимаете).
Один из этапов решения — определение коэффициентов $\alpha_i, \beta_i$, при которых выполняется рекуррентное соотношение, в Вашем случае имеющее вид
$y_n+\alpha_1 y_{n-1}+\alpha_2 y_{n-2}+\alpha_3 y_{n-3}=\beta_0 u_n+\beta_1 u_{n-1}+\beta_2 u_{n-2}$
для всех $n$. Здесь $y_n=y(t_n)$.

(Оффтоп)

Понятно, что выполнение ДУ влечет выполнение рекуррентных формул?
Ну, например, если $y'=ky$, то $y_n=e^{k\tau}y_{n-1}$, где $\tau=t_n-t_{n-1}$ — шаг по времени.
Если сигнал $y(t)$ только приблизительно удовлетворяет ДУ, то и рекуррентные соотношения выполняются приближенно, в этом случае коэффициенты $\alpha_i, \beta_i$ подбираются так, чтобы минимизировать, например, сумму квадратов отклонений левых частей от правых.
И уже исходя из этих коэффициентов строится дифференциальное уравнение.

Считается, что этот класс методов точнее.

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение24.02.2014, 14:48 
Аватара пользователя


16/02/14
46
Спасибо!

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение24.02.2014, 16:22 
Аватара пользователя


26/05/12
1694
приходит весна?
Вообще, лучше всего стоило бы действовать так. Для функций $y(t)$ и $u(t)$ подобрать адекватную модель, например, представить их в виде линейной комбинации небольшого (много меньшего $N$, но много большего шести) числа функций, потом потребовать минимум функции
$$f(a_1, a_2, a_3, b_0, b_1, b_2)=\int\limits_{t_1}^{t_N}{\left((y'''+a_1y''+a_2y'+a_3y)-(b_0u''+b_1u'+b_2u)\right)^2dt}$$
В таком подходе оба этапа -- это самые обычные линейные МНК. Первый МНК убъёт шум в измерениях $u(t_j)$, $y(t_j)$. Второй даст искомые параметры. Но такой подход прокатит, только если модель для функций $y(t)$ и $u(t)$ будет действительно адекватной.

-- 24.02.2014, 17:36 --

Simply me, а у вас есть конкретные данные по $y(t)$ и $u(t)$ посмотреть?

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение25.02.2014, 08:01 
Аватара пользователя


16/02/14
46
Нет конкретных данных.
Уравнение на самом деле n-го порядка.
$y^{(n)}+a_1y^{(n-1)}+...+a_ny=b_0u^{(n-1)}+b_1u^{(n-2)}+...+b_{n-1}u$
А когда будет много входов, то b будет матрицей, еще добавятся слагаемые с неизвестными коэффициентами.
А почему нужно 2 раза применить МНК? Чтобы сначала найти коэффициенты функции f, а потом найти $a_1, a_2,..., a_n, b_0, b_1,...,b_{n-1}$, минимизирующие интеграл квадрата разности правой и левой части?
Еще с реализацией есть проблема. Ведь должны быть неизвестны только коэффициенты. Поэтому $y^{(n)}$ нужно заменить на что-то известное.
Вот допустим $y'(t_i)=\frac{y(t_{i+1})-y(t_i)}{h}$
Для второй производной можно вывести формулу, подставив первую производную вместо функции. Получится:
$y''(t_i)=\frac{y(t_{i+1})-2y(t_i)+y(t_{i-1})}{h^2}$
Вот для третьей:
$y'''(t_i)=\frac{y(t_{i+1})-3y(t_i)+3y(t_{i-1})-y(t_{i-2})}{h^3}$
А как получить в общем случае для n-ой производной?

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение25.02.2014, 09:23 


05/09/12
2587
Simply me в сообщении #830367 писал(а):
А как получить в общем случае для n-ой производной?
Интерполировать полиномом (хотя можно и синком с окном) любое понравившееся достаточное количество точек (аналитически, в общем виде) и рассчитать производную полинома (или чем мы там интерполируем) в центральной точке.

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение25.02.2014, 10:20 
Аватара пользователя


02/01/14
292
Simply me в сообщении #830104 писал(а):
u - это характеристики нагнетательных скважин, y - добывающих.
Вы знаете, в таком случае, думаю, требуется искать дифференциальное уравнение с запаздывающим аргументом:
$y'''(t)+a_1y''(t)+a_2y'(t)+a_3y(t)=b_0u''(t-\tau)+b_1u'(t-\tau)+b_2u(t-\tau)$,
$\tau$ - время запаздывания.
Предложение svv мне понравилось. Действительно, зачем искать коэффициенты дифференциального уравнения, когда можно разностного (одни в другие пересчитываются).
И тогда можно использовать следующую модель:
$y_n+\alpha_1 y_{n-1}+\alpha_2 y_{n-2}+\alpha_3 y_{n-3}=\beta_0 + \beta_1 u_{n-M}+\beta_2 u_{n-M-1}+\beta_3 u_{n-M-2}$.
Величину $M$ можно оценить, построив корреляционную функцию $y$ и $u$ и посмотрев, где она достигает максимума.
А вот предложения B@R5uk я совсем не понял. Для меня нужно подробнее.

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение01.04.2014, 13:08 
Аватара пользователя


16/02/14
46
Нашла коэффициенты. Теперь возник вопрос по теории управления. Как от этого уравнения перейти к уравнению системы в пространстве состояний?

 Профиль  
                  
 
 Re: Найти коэффициенты дифференциального уравнения
Сообщение01.04.2014, 14:58 
Аватара пользователя


16/02/14
46
Т.е. в Матлаб y1=sim(mo,u1); так идентифицируем модель в пространстве состояний, где mo=idss(A*Ts+eye(n),B*Ts,C,D,zeros(length(Xi),1), Xi);
А что передать y1est=sim(?,u1)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group