Подгонка (фиттирование), правильные ошибки |
Здравствуйте, гость ( Вход | Регистрация )
Подгонка (фиттирование), правильные ошибки |
![]()
Сообщение
#1
|
|
![]() Профессор ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Banned Сообщений: 3226 Регистрация: 3.4.2008 Из: СПб Пользователь №: 7086 Поблагодарили: 2602 раз(а) ![]() |
Вот замерил передвижения одного из столиков на своей установке. Устроено оно так: мотор крутит вал, через червячную передачу движение передаётся на движущуюся поверхность столика. Кроме того на валу сидит датчик, который считает обороты. Ну вот, интересно мне было, какое перемещение приходится на один шаг датчика и насколько оно равномерное. Набил данные и фиттирую их обычной линейной функцией. Фиттирую в программе root, там есть возможность использовать пакеты MINUIT и FUMILI и для контроля то же самое программой gnuplot. Как водится, все три результата разные (IMG:style_emoticons/default/smile.gif) То есть коэффициенты одинаковые получаются (поскольку зависимость линейная, можно было бы проверить по точным формулам линейной регрессии, но мне лень и я думаю, что здесь провраться сложно). А вот ошибки во всех трёх случаях отличаются. Может быть кто-то сразу может сказать, что чем-то пользоваться не следует, или не поленится отфиттировать данные программой, которой пользуется сам и сравнить результат, тоже было бы интересно. Мне представляется, что FUMILI правильную ошибку даёт, а MINUIT и gnuplot ошибку завышают, иногда на несколько порядков. Просто потому, что более точные значения попадают в менее точные в пределах трёх ошибок в случае FUMILI, как и положено. Параметр p0 сильно отличается в двух случаях, просто потому, что точка отсчёта другая была.
Более точные данные (измерено микрометром, 125 точек): ![]() Менее точные данные (измерено штангенциркулем, 9 точек): ![]() Фиттировал по формуле f(x)=p0+p1*x Результаты по более точным данным: FUMILI p0=-41.5134(+/-0.000162257) p1=0.0156692(+/-4.70252e-8) gnuplot p0=-41.5134(+/-0.0126) p1=0.0156692(+/-3.653e-6) MINUIT p0=-41.5134(+/-0.978949) p1=0.0156692(+/-2.83718e-4) Результаты по менее точным данным: FUMILI p0=2.72679(+/-0.0318153) p1=0.0156892(+/-1.58496e-5) gnuplot p0=2.72679(+/-0.1415) p1=0.0156892(+/-7.047e-5) MINUIT p0=2.72679(+/-0.628942) p1=0.0156892(+/-3.13323e-4) -------------------- Бог есть!
|
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Профессор ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Banned Сообщений: 3226 Регистрация: 3.4.2008 Из: СПб Пользователь №: 7086 Поблагодарили: 2602 раз(а) ![]() |
Недавно обнаружил, что старые книги Numerical Receipes выложены правообладателями и доступны для скачивания. Это книги Numerical Receipes in C, Fortran 77 и Fortran 90. Там же лежит книга Abramowitz and Stegun Handbook of Mathematical Functions, National Bureau of Standards, 1964 и Luc Devroye Non-Uniform Random Variate Generation Springer, 1986
Про то как правильно ошибки считать в случае линейной регрессии и ещё много чего, относящегося к предмету там понаписано и не только про это. Готовые процедуры в книге приведены. Правда, предупреждают что алгоритмы это их собственность. Вот как они пояснят, что можно и что нельзя делать с примерами и процедурами из книги: Цитата Copyright does not protect ideas, but only the expression of those ideas in a particular form. In the case of a computer program, the ideas consist of the program’s methodology and algorithm, including the necessary sequence of steps adopted by the programmer. The expression of those ideas is the program source code (particularly any arbitrary or stylistic choices embodied in it), its derived object code, and any other derivative works. Всё это добро лежит здесь: http://www.nr.com/oldverswitcher.html PS Пока не посчитал ошибки по рецепту из Numerical Receipes для тех примеров, про которые в шапке топика спрашивал, когда-нибудь надеюсь сделать это (IMG:style_emoticons/default/smile.gif) -------------------- Бог есть!
Поблагодарили:
|
|
|
![]()
Сообщение
#3
|
|
![]() Ганфайтер ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Member Сообщений: 2881 Регистрация: 23.2.2010 Из: Москва, Тушино Пользователь №: 52631 Поблагодарили: 1400 раз(а) ![]() |
На правах рекламы! (IMG:style_emoticons/default/rolleyes.gif)
Посетите сайт НИИ ВЦ МГУ, там обширная библиотека программ на Фортране и С++. -------------------- Помните, грамотно поставленный вопрос содержит 2/3 ответа. Неграмотный вопрос отнимает 10 лет жизни!
Если человека кусает вампир - он становится вампиром. Но откуда у меня такое странное ощущение, что очень многих искусали бараны? Поблагодарили:
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 2.05.2025, 5:06 |