2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 МНК для трех координат
Сообщение14.07.2017, 18:28 
Добрый день!

Имею задачу, аналогичную описанной в теме topic37207.html. К сожалению так и не смог увидеть в ней решения (я не математик).
Вопрос следующий. Имеется датчик, коэффициент передачи которого зависит от двух параметров - температуры и давления. При этом зависимость от них нелинейная. В процессе калибровки на каждой температуре снимаются точки на ряде давлений. Получается какая-то поверхность. Для этой поверхности, методом наименьших квадратов необходимо подобрать плоскость.
На выходе нужно иметь три коэффициента ($A, B, D$ - именно они и являются калибровочными данными), чтобы подставив их в уравнение плоскости $Ax+By+D =-Cz$ при любых произвольных давлении и температуре посчитать к-т передачи.
В вышеупомянутой задачу расчеты в Матлабе. У меня же все считает микроконтроллер. Было бы замечательно иметь формулы для расчета коэффициентов аналогичные виду:
http://exceltip.ru/%D0%BC%D0%B5%D1%82%D ... %BB%D1%8C/

Спасибо!

 
 
 
 Re: МНК для трех координат
Сообщение14.07.2017, 21:03 
Правильно ли я понимаю?

Пусть модель имеет вид $$Z_i = Ax_i+By_i+C+\varepsilon_i,$$ где $\varepsilon_i$ — независимые, одинаково распределённые случайные величины с нулевым ожиданием (прибор «равноточный», без «систематической погрешности»). Величины $x_i$, $y_i$ измеряются точно (без погрешностей). Задача состоит в отыскании коэффициентов $A$, $B$ и $C$ минимизирующих невязку
$$SS=\sum\limits_{i=1}^n (Z_i - (Ax_i+By_i+C))^2.$$Для получения этих коэффициентов, приравняв частные производные $SS$ по параметрам $A$, $B$, $C$ нулю
$$SS_A’ \equiv -2\sum (Z_i x_i - Ax_i^2 - By_i x_i - C x_i) = 0,$$
$$SS_B’ \equiv -2\sum (Z_i y_i - Ax_i y_i - By_i^2 - C y_i) = 0,$$
$$SS_C’ \equiv -2\sum (Z_i - Ax_i - By_i - C) = 0,$$получим систему трех линейных уравнений для нахождения неизвестных коэффициентов
$$ A \sum x_i^2 +  B \sum y_i x_i + C \sum x_i = \sum Z_i x_i, $$
$$ A \sum x_i y_i + B \sum y_i^2 + C \sum y_i = \sum Z_i y_i, $$
$$ A \sum x_i + B \sum y_i + C \sum 1 = \sum Z_i.$$
Upd. В сообщении luckydevil из указанной в начальном сообщении темы как раз эта система и получена.

 
 
 
 Re: МНК для трех координат
Сообщение14.07.2017, 21:46 
Аватара пользователя
pathto в сообщении #1233563 писал(а):
В процессе калибровки на каждой температуре снимаются точки на ряде давлений.
Раз всё это делает микроконтроллер, то, скорее всего, значения температуры равноотстоящие и одни и те же для каждого давления. А значения давления тоже равноотстоящие и одни и те же для каждой температуры. Если это верно, то записанную систему можно упростить до степени распада на отдельные атомы.

 
 
 
 Re: МНК для трех координат
Сообщение14.07.2017, 22:29 
GAA в сообщении #1233595 писал(а):
приравняв частные производные $SS$ по параметрам $A$, $B$, $C$ нулю

Вообще-то вредно дифференцировать без необходимости. Это -- стандартная задача на МНК: найти обобщённый многочлен $L(r)=\alpha_0\varphi_0(r)+\alpha_1\varphi_1(r)+\alpha_2\varphi_2(r)$, минимизирующий невязку. И система для альф тоже стандартна: $G\alpha=\beta$, где $G$ -- это матрица Грама для столбцов узловых значений базисных функций $\varphi_k$ и $\beta$ -- столбец скалярных произведений тех базисных столбцов на столбец эмпирических данных. То, что узлы $r_i=(x_i;y_i)$ векторны -- решительно ничего не меняет. Они вообще могли бы быть какой угодно природы, т.к. скалярные произведения всё равно сводятся лишь к суммированию по всем узлам.

А почему вредно. Потому, что задача имеет вполне практический смысл и для комплекснозначных данных/функций (типичный пример -- ДПФ). По комплексным же альфам при нахождении минимума не больно-то подифференцируешь. Во всяком случае, без самоизнасилования.

 
 
 
 Re: МНК для трех координат
Сообщение14.07.2017, 23:52 
Спасибо, ewert. Это очень поучительно и интересно. Однако хотелось бы услышать от ТС, в чём его задача и в чём его проблемы. А уже дальше говорить, в том числе, и о способах получения оценок коэффициентов, и об их оптимальных свойствах.
В моём сообщении выше специально не различаются значения коэффициентов и их оценки по экспериментальным данным, да и модель чётко не сформулирована. Как только ТС уточнит задачу и свои затруднения, можно будет говорить…. И я очень сильно подозреваю, что для достаточно реалистических предположений моих знаний будет явно не достаточно и потребуется помощь знатоков.

(Т.е. для меня «неразличение» оценок коэффициентов (случайных величин) и значений коэффициентов выглядит бOльшим безобразием, чем способ получения системы уравнений для нахождения этих оценок.)

 
 
 
 Re: МНК для трех координат
Сообщение16.07.2017, 03:04 
Аватара пользователя
А еще такие задачи без проблем в Экселе решаются, Меню Данные -> Поиск решения. Если не знать, что такое Матлаб или не установлен, а решать надо.

 
 
 
 Re: МНК для трех координат
Сообщение16.07.2017, 09:27 
Korvin в сообщении #1233847 писал(а):
Если не знать, что такое Матлаб или не установлен

В Матлабе, насколько я знаю, нет какой-то универсальной функции для МНК. Кроме обычного polyfit. По естественным причинам: с одной стороны, трудно придумать универсальный интерфейс для такой функции; а с другой -- в каждом конкретном случае решение банально и в три строчки (если на Матлабе) программируется.

GAA в сообщении #1233637 писал(а):
для меня «неразличение» оценок коэффициентов (случайных величин) и значений коэффициентов выглядит бOльшим безобразием

А это уже другой вопрос. Конечно, МНК естественным образом привязывается к ТВ; но и безо всякий вероятностей он тоже вполне осмыслен.

 
 
 
 Re: МНК для трех координат
Сообщение16.07.2017, 11:02 
ewert в сообщении #1233866 писал(а):
В Матлабе, насколько я знаю, нет какой-то универсальной функции для МНК.

nlinfit, nlintool - это в Statistics toolbox.
Если это не хватит, то в Optimization toolbox есть lsnonlin.

 
 
 
 Re: МНК для трех координат
Сообщение16.07.2017, 12:07 
Korvin, микроконтроллеры бывают разные, но, как правило, что-то из Офиса на них не ставится. В любом случае это не самое эффективное средство. В общем, очевидный оффтопик.

ewert, конечно, очевидно, широко известно. Но данная тема всё же по обработке результатов измерений. В первую очередь на практике интересуют свойства оценки. Меня заинтриговало в начальном сообщении «При этом зависимость от них нелинейная». Несмещённость (если она будет) оценок $A$, $B$, $C$ в общем случае не гарантирует несмещённости оценки нелинейной «зависимости», которая строится по оценкам параметров. Сама несмещённость может быть не толь уж важна, а важнее другие требования к оценке (МНК при слабых предположениях даёт только несмещённость). Без ТС тут много можно говорить, но смысла в этом мало.

 
 
 
 Re: МНК для трех координат
Сообщение16.07.2017, 20:21 
Благодарю за интерес к поставленному вопросу. Расскажу о задаче и проблемах более подробно. Имеется датчик давления (наименование не помню - китайский), который должен в заданном диапазоне температур и давлений измерять давление с погрешностью не более... С точки зрения электроники, сигнал с датчика это значения с АЦП - $Padc$. Соответственно вычисляемое давление в физ. величинах $P = Padc / K$, где $K$ это коэффициент передачи. В процессе калибровки на эталоне измеряется фактическое давление приложенное к датчику, и записывается значение с АЦП. По этим данным считается к-т передачи. В самом простом случае - получил $K$ и считай всегда по нему давление. Но это когда большая точность не нужна. Далее в порядке ухудшения ситуации. При расчете $K$ на одном давлении но разных температурах получаем, что на разных температурах $K$ немного отличается. Да еще и при линейном приращении температуры дает нелинейное изменение $K$. Отсюда та самая нелинейность.
Цитата:
Меня заинтриговало в начальном сообщении «При этом зависимость от них нелинейная».
Зависимость имеет вид что-то вроде параболы. Попытка "в лоб" взять две крайние точки и по ним аппроксимировать зависимость к-та передачи от температуры дает максимум ошибки при расчете давления в середине температурного диапазона. При этом ошибка всегда в одну сторону (привет от "параболы"). Логично расположить прямую, аппроксимирующую "параболу", так, чтобы ошибка при расчете была минимальна и "расходилась" в обе стороны - тут как раз и работает МНК. Дальше хуже. Измерение на одной температуре разных давлений дает ту же самую "параболическую" нелинейность уже давления ($Padc$) от давления (фактического). В итоге получается система координат в трех измерениях. Где по одной оси значения "$Padc$", по второй - $Tadc$ (значения с АЦП датчика температуры), по третей оси посчитанный во время калибровки к-т передачи в каждой точке давление/температура. Конечная задача: через поверхность, образуемую множеством точек, провести с помощью МНК плоскость и выразить ее через коэффициенты уравнения плоскости.

Цитата:
Korvin, микроконтроллеры бывают разные, но, как правило, что-то из Офиса на них не ставится.

Действительно, микроконтроллер в вычислениях слаб. Поэтому даже нашу "кривую" поверхность хотим аппроксимировать плоскостью, чтобы при расчете к-та передачи $K$ (а в итоге и давления) микроконтроллер "думал" по минимуму.

 
 
 
 Re: МНК для трех координат
Сообщение17.07.2017, 09:39 
Аватара пользователя
GAA в сообщении #1233879 писал(а):
Korvin, микроконтроллеры бывают разные, но, как правило, что-то из Офиса на них не ставится. В любом случае это не самое эффективное средство. В общем, очевидный оффтопик.
Поскольку был упомянут матлаб как инструмент решения задачи, вполне было логично упомянуть народную версию, которая все посчитает не хуже путем проведения итераций, главное правильно выстроить задание.
Разумеется, речь не шла о переносе алгоритма экселя, предполагающего диалог, в микроконтроллер.
 !  GAA:
Замечания за флуд и предупреждения за оффтопик были. На этот раз Korvin за провокацию и развитие оффтопика заблокирован на неделю.

 
 
 
 Re: МНК для трех координат
Сообщение17.07.2017, 09:41 
Прошу уточнить. В системе:
Цитата:
получим систему трех линейных уравнений для нахождения неизвестных коэффициентов
$ A \sum x_i^2 + B \sum y_i x_i + C \sum x_i = \sum Z_i x_i, $
$ A \sum x_i y_i + B \sum y_i^2 + C \sum y_i = \sum Z_i y_i, $
$ A \sum x_i + B \sum y_i + C \sum 1 = \sum Z_i.$

у $x$, $y$ и $z$ везде индекс только $i$. То есть фактически для расчета к-тов уравнения плоскости используются только точки $z_1(x_1,y_1)$, $z_2(x_2,y_2)$ ... $z_n(x_n,y_n)$?
Сделал иллюстрацию:
https://yadi.sk/i/tA-QEIJC3L7cX5

Или все-таки $z_i_j(x_i,y_j)$?

 
 
 
 Re: МНК для трех координат
Сообщение17.07.2017, 10:26 
pathto в сообщении #1234052 писал(а):
Или все-таки $z_i_j(x_i,y_j)$?

Это то же самое. Просто здесь $ij$ играет роль мультииндекса.

 
 
 
 Re: МНК для трех координат
Сообщение17.07.2017, 10:30 
Цитата:
Это то же самое. Просто здесь $ij$ играет роль мультииндекса.

Т.е. из
Цитата:
https://yadi.sk/i/tA-QEIJC3L7cX5
используются все точки, а не только обведенные?

 
 
 
 Re: МНК для трех координат
Сообщение17.07.2017, 10:40 
Аватара пользователя
В формулах использована одноиндексная («сквозная») нумерация точек, потому что 1) такая нумерация всегда возможна, это общий случай и 2) методу наименьших квадратов всё равно, как перенумерованы точки и как они располагаются в пространстве. При желании формулы можно переписать под двухиндексную нумерацию.

 
 
 [ Сообщений: 27 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group