реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Оценка параметров, Как решать?
RHnd
сообщение Sep 10 2008, 13:04
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Добрый день! Помогите вот с такой задачкой.

Спарведливо выражение:
Код
  y    =   Q     *  X
[1x1]   [1xN]    [Nx1]

Доступны измерению Y и X. Теоретически, вектор Q постоянен. Но есть неприятность - измерения y и X шумят, да и на практике вектор параметров Q может обладать малым дрейфом. Теперь вопрос - как по измерениям (большому числу точек) получить оценку вектора Q(^), оптимальную, скажем, в смысле среднеквадратичной ошибки оценки y(^)=Q(^)*X. Ну или как-то еще оптимальную.

Заранее большое спасибо за помощь!
Go to the top of the page
 
+Quote Post
NickNich
сообщение Sep 10 2008, 13:27
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 8-11-05
Пользователь №: 10 593



Цитата(RHnd @ Sep 10 2008, 17:04) *
Добрый день! Помогите вот с такой задачкой.

Спарведливо выражение:
Код
  y    =   Q     *  X
[1x1]   [1xN]    [Nx1]


Например так: сначала пепеписать уравнение наблюдения в слегка измененном виде y = x*q, чтобы q - стал вектором столбцом, а не строкой. После этого набрать измерения y для различных значений вектора x (различные вектора x здесь имеют принципиальное значение):

y1 = x1*q
y2 = x2*q
...
yN = xN*q

эту систему равенств записывается в векторно-матричном виде

Y = X*q.

Вектор q находится через МНК в виде q = (X'*X)^-1*X'*Y, где X' - транспонированная матрица X. Если измерения Y разноточные, то целесообразно ввести весовую матрицу W, но это можно сделать потом. Тогда решение станет в виде:

q = (X'*Ц*X)^-1*X'*W*Y
Go to the top of the page
 
+Quote Post
RHnd
сообщение Sep 10 2008, 13:43
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(NickNich @ Sep 10 2008, 17:27) *
Вектор q находится через МНК в виде q = (X'*X)^-1*X'*Y, где X' - транспонированная матрица X.

А чем эта запись отличается от простого X^-1*Y?


Хорошо, этот метод подходит для первых N точек. Пусть N у нас равен 5. Измерений же Y и X - несколько тысяч точек. По первым 5 мы получим одну оценку Q. По другим 5 - слегка другую оценку Q (шум, дрейф). Как нам 'усреднить' оценку Q по всем имеющимся измерениям? Интересует 'оптимальность' оценки именно на всем наборе точек.

PS:Так, понял, у Вас N - общее количество точек? Т.е. матрица X не квадратная? Спасибо, попробую.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 10 2008, 13:52
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(RHnd @ Sep 10 2008, 17:04) *
Добрый день! Помогите вот с такой задачкой.

Спарведливо выражение:
Код
  y    =   Q     *  X
[1x1]   [1xN]    [Nx1]

Доступны измерению Y и X. Теоретически, вектор Q постоянен. Но есть неприятность - измерения y и X шумят, да и на практике вектор параметров Q может обладать малым дрейфом. Теперь вопрос - как по измерениям (большому числу точек) получить оценку вектора Q(^), оптимальную, скажем, в смысле среднеквадратичной ошибки оценки y(^)=Q(^)*X. Ну или как-то еще оптимальную.

Заранее большое спасибо за помощь!

Это очень научная запись скалярного произведения...
У Вас получается переопределенная система линейных уравнений. Копайте в эту сторону...
Google выдал множество ссылок. Первая - http://www.intuit.ru/department/calculate/calcmathbase/3/
Go to the top of the page
 
+Quote Post
NickNich
сообщение Sep 10 2008, 14:11
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 8-11-05
Пользователь №: 10 593



Цитата(RHnd @ Sep 10 2008, 17:43) *
А чем эта запись отличается от простого X^-1*Y?

Как выправильно заметили, матрица X - не квадратная. Поэтому просто так обратить ее не получится. Мриведенный метод - это решение задачи оценки вектора постоянных параметров по набору зашумленных измерений, при котором достигается минимум суммы квадратов ошибок. Т.е. обычный линейный МНК.

Цитата(RHnd @ Sep 10 2008, 17:43) *
Измерений же Y и X - несколько тысяч точек. По первым 5 мы получим одну оценку Q. По другим 5 - слегка другую оценку Q (шум, дрейф). Как нам 'усреднить' оценку Q по всем имеющимся измерениям? Интересует 'оптимальность' оценки именно на всем наборе точек.

Вот берите все несколько тыс. точек и рассчитывайте по ним оценку. Только всет строчки, образющие матрицу X должны быть различны, иначе получите плохо обусловленную систему уравнений. Если вектор параметров q дрейфует, то тут есть только два пути. Первый - расширить список оцениваемых параметров за счет модели систематического дрейфа. Второй - выделить во всем наборе данных отрезки, на которых вектор q почти стационарен и рассматривать оценку этого вектора только внутри тех отрезков, на которых она была получена.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Sep 10 2008, 15:03
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Хм. Возникает две подзадачи.
1) Есть матрица X размерностью N на M, где N- несколько тысяч отсчетов, M - число неизвестных. Как объяснить матлабу, что из матрицы X нужно выбрать подматрицу X0 размерностью не менее N0 на M, чтобы она была хорошо обусловлена?
2) Как можно модифицировать этот метод, чтоб он стал иттерационным и не требовал хранить в памяти все прошлые измерения? Т.е. получить Q(k+1) от Q(k), Y(k), X(k)?
Go to the top of the page
 
+Quote Post
NickNich
сообщение Sep 10 2008, 15:57
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 8-11-05
Пользователь №: 10 593



Цитата(RHnd @ Sep 10 2008, 19:03) *
Хм. Возникает две подзадачи.
1) Есть матрица X размерностью N на M, где N- несколько тысяч отсчетов, M - число неизвестных. Как объяснить матлабу, что из матрицы X нужно выбрать подматрицу X0 размерностью не менее N0 на M, чтобы она была хорошо обусловлена?

Можно прямым перебором. Выбираете подматрицу нужного размера, и передаете ее в функции типа rank() или cond() (насчет последней не уверен, нужно хелп читать). Если подматрица близка к вырождению, то выбираете следующий набор строк и так далее...

Цитата
2) Как можно модифицировать этот метод, чтоб он стал иттерационным и не требовал хранить в памяти все прошлые измерения? Т.е. получить Q(k+1) от Q(k), Y(k), X(k)?

Поищите в инете "последовательный МНК". Должно быть что-то вида:

q(k)= q(k-1) + K(y(k) - x(k)*q(k-1)), где K = R(k)*x(k)',
R(k) = (X(k-1)'*X(k-1)+x(k)'*x(k))^-1 =(R(k-1)^-1+x(k)'*x(k))^-1

Перед очередной итерацией нужно обновлять матрицу R.
Go to the top of the page
 
+Quote Post
petrov
сообщение Sep 11 2008, 09:30
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Эта задача решается с помощью адаптивной фильтрации, вот простенький пример в симулинке:
http://electronix.ru/forum/index.php?s=&am...st&p=468489

Теория:

Уидроу Б.,Стринз С.
Адаптивная обработка сигналов.
http://lord-n.narod.ru/download/books/walla/dsp/uidrou.djvu

Paulo S.R. Diniz
Adaptive Filtering Algorithms and Practical Implementation
Third Edition
http://rapidshare.de/files/39623696/Adapti..._Diniz.pdf.html

Сообщение отредактировал petrov - Sep 11 2008, 09:35
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01456 секунд с 7
ELECTRONIX ©2004-2016