Автор Тема: Найти параметры формулы  (Прочитано 5243 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Найти параметры формулы
« : 13 Марта 2012, 17:25:41 »
Эту задачу прислал мне коллега из Голландии. Неделю мучаюсь, хорошего приближения не нахожу...


На всякий случай:  ch - это гиперболический косинус.
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #1 : 14 Марта 2012, 12:01:54 »
Сразу возникает вопрос, что означает "хорошее приближение"? Какой точности требуется достичь?

Из задачи видно, что количество параметров можно сократить до 4-х, взяв \( a=2.61 \).
Значение других параметров получились следующие:
\( b=1.71988129521 \)
\( c=2.40794283989 \)
\( d=1.54305297184 \)
\( f=1.77821363583 \)

Конечно, это лишь один из множества наборов:) и можно пытаться улучшать полученный результат.
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #2 : 14 Марта 2012, 15:23:10 »
ООООО!!!! Как же Вам удалось найти? Опишите, пожалуйста, Ваш подход!
Дело в том, что я делал все в диалоговом режиме, то есть составил прогу, где сначала беру все параметры равными 2. Затем прога чертит кривую и 18 точек. Начинаю затем вручную изменять параметры, добиваясь сходства. В результате довел до такого:



Здесь получилось довольно большая величина суммы квадратов отклонений : S2=2.18

У Вас получилось лучше: S2=0.98



Но должно быть около 0,001 (поскольку исходные цифры округлены до сотых)

Как же еще улучшить?
« Последнее редактирование: 14 Марта 2012, 15:33:26 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #3 : 14 Марта 2012, 15:36:50 »
Могу просто скинуть прогу в маткаде, она простая, если вы знаете этот пакет.)
Сейчас меня интересует вот это:

"Здесь получилось довольно большая величина суммы квадратов отклонений : S2=2.18
У Вас получилось лучше: S2=0.98
Но должно быть около 0,001 (поскольку исходные цифры округлены до сотых)"

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

Такие задачи решаются путем минимизации некоторой функции и конечно результат зависит как от выбора функции, которая минимизируется, так и от способа минимизации.
« Последнее редактирование: 14 Марта 2012, 15:42:00 от Dlacier »
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #4 : 14 Марта 2012, 17:09:41 »
Ц.ф. вычисляю примитивно и в чистом виде: \( S2=\sum\limits_{i=1}^{18}[y_{i}-y(x_i)]^2 \)

Пожалуйста, скиньте эту прогу. Пишу раздел книги и здесь это крайне мне необходимо  :)

У меня в Maple есть режим Маткада.

Мне желательно находить не просто малое значение целевой функции, а самый ее минимум. Величина 0,001 по всем прикидкам и есть экстремум. Конечно, это м.б. и 0,0015 или  0.0005, но где-то в этом пределе. Это вытекает из теории округления чисел.

Пробовал взять 5 характерных координат точек наблюдений и составил систему сложных уравнений. Но Мапл наотрез отказывается ее решать даже численно. Оттуда и трудности мои грешные.
« Последнее редактирование: 14 Марта 2012, 17:29:28 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #5 : 14 Марта 2012, 18:37:36 »
Мне желательно находить не просто малое значение целевой функции, а самый ее минимум. Величина 0,001 по всем прикидкам и есть экстремум. Конечно, это м.б. и 0,0015 или  0.0005, но где-то в этом пределе. Это вытекает из теории округления чисел.

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

Откуда взялась эта задача и почему нужна такая точность?:) Обычно сравнение с экспериментом не требует такой точности.
И еще, возможно глупый вопрос, из суммы квадратов корень не нужно извлекать?

В любом случаю выложу файл, но чуть позже:)
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #6 : 14 Марта 2012, 18:51:08 »
Извлекать нужно, но обычно я этого не делаю. Объяснение простое: я часто занимаюсь статистическими исследованиями, где количество циклов доходит до миллионов. Если извлекать корень, то и так медленная задача будет еще медленней. А это иногда и часы. Поэтому я максимум уменьшаю лишние действия.  :)

Если у Вас получится, то хотелось бы максимально подробно Вашу технологию показать. Я обязательно сошлюсь на Вас в книге. Вдруг мы влипнем (как Евклид)  в историю?  :D

Задача эта появилась из логики описания теории аппроксимации сложными функциями. Рассматриваю случай, когда следует учитывать только округления чисел, а точность экспериментов явялется абсолютной. И при этом известен закон, которому подчиняется исследуемое явление.
« Последнее редактирование: 14 Марта 2012, 19:06:17 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #7 : 14 Марта 2012, 19:06:17 »
 :D
мне часто приходится иметь дело с экспериментальными данными, поэтому есть некая отработанная схема и она очень проста :)
сюда выложить не получается, по размеру не подходит.
предлагаю перейти в личку, если есть скайп, то можно туда, там и файл отправить можно.

« Последнее редактирование: 14 Марта 2012, 19:11:27 от Dlacier »
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #8 : 14 Марта 2012, 19:09:07 »
Скайпом, увы, никогда не пользовался. А на почту можно?  [email protected]

попробовал врубить skype  но он требует пароль, которого я не знаю. (устанавливал сын для себя, но он телефон не берет, как назло)  ;)
« Последнее редактирование: 14 Марта 2012, 19:14:39 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #9 : 14 Марта 2012, 19:14:25 »
готово:)
а скайп удобная вещь, советую завести, ничего сложного там нет.)
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #10 : 14 Марта 2012, 19:21:21 »
Спасибо! Получил! Буду устанавливать и изучать.  :)
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #11 : 14 Марта 2012, 19:31:20 »
Буду устанавливать и изучать.  :)

Только обязательно 15-ю версию, иначе может не пойти.)
Комментарии не писала, т.к. там ничего такого сложного нет.
Вопросы можете писать на почту, если я тут не отвечу=)
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #12 : 14 Марта 2012, 22:30:43 »
Увы, у меня облом. Я спутал Маткад с Матлабом. В Мапл именно последний интегрирован. Маткад надо скачивать, дело это для меня мучительное и долгое. Лучше завтра куплю диск и установлю.
Но любопытство мое бесконечно. Не расскажите популярно, какой принцип поиска четырех параметров?
Я вроде бы одолеваю проблему при помощи своей проги случайного поиска. Все дело у меня оказалось в следующем: раньше  начальные значения параметров задавал равные единице (ну, и комбинировал знаки). Задавал также и амплитуду случайного изменения параметров. Обычно, это z=0.01. Теперь же оказалось, что небезразлично, какие начальные данные принимать и какую амплитуду. Целевая функция оказалась очень рельефной в пятимерном пространстве и имеет множество локальных минимумов-ловушек. В какую из них попадешь,  такой и найдешь свой минимум. До глобального минимума процесс просто не доходит.
Дело сдвинулось с мертвой точки, когда принял все начальные значения равными 2 и z=1 . Кроме того ограничил  начальное  S2=30 (раньше принимал его 10^10). Только при таких ограничениях процесс попал в глобальный каньон. Сейчас Ц.Ф. спустилась до 0,00355. Оставлю крутить прогу на всю ночь, завтра узнаю стабилизированный экстремум. Подробно Вам напишу все, дам листинг проги... Раз Вы статистикой занимаетесь, возможно, мои разработки пригодятся в дальнейшем.

Вот состояние дел на данную минуту

      a           b           c           d           f          S2
 1.54378  2.35209  2.40947  1.72689  1.49635 20.03019
 2.27633  1.99508  1.68704  1.35568  2.13662  9.94752
 3.20851  1.52476  2.44329  1.45703  1.90113  7.98520
 2.53586  1.78216  1.66181  1.13894  2.55359  6.40242
 2.35736  1.68108  2.30952  1.39419  2.01971  5.06868
 2.50804  1.72856  2.61383  1.57006  1.70662  3.52181
 2.51631  1.79665  2.52483  1.51227  1.74252  2.38173
 2.62076  1.69342  2.44682  1.55782  1.75466  0.40091
 2.61138  1.75643  2.43276  1.59480  1.69666  0.28213
 2.66748  1.70931  2.46745  1.58840  1.70570  0.22823
 2.67780  1.70719  2.41907  1.56543  1.74498  0.20784
 2.58763  1.74703  2.42005  1.57382  1.72885  0.14043
 2.60647  1.72674  2.42199  1.55781  1.75204  0.09976
 2.68247  1.69511  2.40747  1.54452  1.77562  0.07554
 2.57877  1.72284  2.30487  1.49119  1.86383  0.06666
 2.62346  1.72170  2.23820  1.47659  1.89524  0.04977
 2.62715  1.72142  2.24851  1.48113  1.88668  0.04568
 2.63022  1.71537  2.25612  1.48233  1.88496  0.04493
 2.62137  1.71802  2.25091  1.47918  1.89021  0.03799
 2.61702  1.71753  2.25535  1.47597  1.89396  0.02168
 2.61564  1.72356  2.25758  1.48108  1.88513  0.02072
 2.61071  1.72214  2.25908  1.48149  1.88501  0.01722
 2.60242  1.72678  2.25697  1.48067  1.88579  0.01626
 2.60551  1.72241  2.26755  1.48352  1.88079  0.01244
 2.60218  1.72745  2.27399  1.48793  1.87244  0.01195
 2.60301  1.72748  2.26966  1.48953  1.87106  0.01194
 2.60098  1.72813  2.27534  1.49160  1.86699  0.01109
 2.60956  1.72011  2.28549  1.49031  1.86838  0.00603
 2.61352  1.71953  2.29390  1.49473  1.86074  0.00355

« Последнее редактирование: 14 Марта 2012, 22:47:29 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн renuar911

  • Ветеран
  • *****
  • Сообщений: 2489
  • От форм математических бушует вся душа
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #13 : 15 Марта 2012, 11:34:26 »
Как и предполагал, минимум S2 оказалась близка к 0,001. Вот продолжение динамики поиска оптимума параметров:

      a            b           c          d           f           S2
 2.62038  1.71910  2.30694  1.50343  1.84623  0.00189
 2.61907  1.71975  2.30798  1.50325  1.84617  0.00142
 2.61840  1.71938  2.30867  1.50307  1.84641  0.00117
 2.61800  1.71925  2.30848  1.50281  1.84686  0.00116
 2.61818  1.71919  2.30876  1.50307  1.84643  0.00115
 2.61692  1.71985  2.30858  1.50328  1.84611  0.00114
 2.61732  1.71961  2.30943  1.50351  1.84569  0.00113
 2.61764  1.71939  2.30946  1.50340  1.84585  0.00113
 2.61758  1.71948  2.30922  1.50336  1.84593  0.00113

Мне на exponenta.ru  тоже рассчитали на Маткаде15 и выдали такое:

Посчитал в Mathcad15.
 a=2.617
 b=1.719
 c=2.309
 d=1.503
 f=1.846

Я спросил, какой метод использовался при этом, автор расчета ответил:

В Mathcad коэффициенты аппроксимацмм находятся с помощью встроенной функции genfit, к-рая использует метод Левенберга-Макрвардта.

Надо бы прочитать мне про этот удивительный метод.
Из  Вики:
"Является альтернативой методу Гаусса — Ньютона. Может рассматриваться как комбинация последнего с методом градиентного спуска или как метод доверительных интервалов. Алгоритм был сформулирован независимо Левенбергом (1944) и Марквардтом (1963)."
« Последнее редактирование: 15 Марта 2012, 11:53:58 от renuar911 »
За жизнью надо тщательно следить, все время избегая с ней разлуки.

Оффлайн Dlacier

  • Глобальный модератор
  • *****
  • Сообщений: 3656
    • Просмотр профиля
Re: Найти параметры формулы
« Ответ #14 : 15 Марта 2012, 11:53:46 »
Самой статистикой не занимаюсь, с ней сталкиваюсь иногда, поэтому глубоко в нее не углубляюсь.:) та точность, которая удовлетворяет моим задачам, достигается, а смысла "улучшать" результат пока не имеет смысла.)

Подробно Вам напишу все, дам листинг проги...
Вот это будет очень интересно и познавательно.)

Как и предполагал, минимум S2 оказалась близка к 0,001.

Мне на exponenta.ru  тоже рассчитали на Маткаде15 и выдали такое:
Посчитал в Mathcad15.
 a=2.617
 b=1.719
 c=2.309
 d=1.503
 f=1.846

Я спросил, какой метод использовался при этом, автор расчета ответил:

В Mathcad коэффициенты аппроксимацмм находятся с помощью встроенной функции genfit, к-рая использует метод Левенберга-Макрвардта.

Надо бы прочитать мне про этот удивительный метод.

 :) здорово.)

мной была использована обычная функция минимизации, после вышеизложенного как-то стремно (извените за сленг:)) рассказывать про этот способ расчета.
Чтобы правильно задать вопрос, нужно знать большую часть ответа. (с)
Формулы пишите в LaTex.

 

Перенесено: Найти задуманное четырехзначное число. 3 класс

Автор Dlacier

Ответов: 0
Просмотров: 2886
Последний ответ 08 Апреля 2016, 13:06:09
от Dlacier
Перенесено: ПОМОГИТЕ Найти и изобразить на плоскости

Автор tig81

Ответов: 0
Просмотров: 2419
Последний ответ 29 Мая 2014, 14:17:12
от tig81
Перенесено: Необходимо найти dy/dx - странные примеры.

Автор Dlacier

Ответов: 0
Просмотров: 3410
Последний ответ 08 Апреля 2016, 13:08:00
от Dlacier
Найти координаты точки прикосновения прямой а

Автор Коровка

Ответов: 0
Просмотров: 1679
Последний ответ 03 Июля 2019, 12:15:50
от Коровка
Перенесено: Как найти объем производства?

Автор tig81

Ответов: 0
Просмотров: 2479
Последний ответ 15 Ноября 2013, 23:44:55
от tig81