Алгоритм Левенберга-Маркуарта
- From
- Alex Astafiev (2:5000/228.16)
- To
- All
- Date
- 2002-12-14T14:08:26Z
- Area
- RU.ALGORITHMS
Народ! Я так ничего толком и не нашел на тему сабжа. В интернете он попадается либо на фортране, либо в составе платных библиотек
(Numerical Receipes)
Пошукайте в своих библиотеках, может быть где-нибудь среди файлов или в книгах
найдется? Ф-ция минимизации LinearFit (Levenberg-Marquardt)
либо может у кого есть архив исходников от Numerical Receipes?
интересуют также остальные алгоритмы минимизации.
У меня есть несколько точек .
Мне необходимо интерполировать эти точки на 4096 других точек, составляющих
таблицу.
Попытаюсь изобразить графически:
|*
| *
| *
| * x* *
| * *x
| *
| * x
| *
| * x
| *
|
+----------------------------------------
a b
(нарисовалось очень коряво, но суть в том что функция либо линейная либо
степенная)
где x - это известные мне пары "аргумент"-"значение" функции.
a- начало таблицы, b - ее конец.
Сабжевый алгоритм итеративно находит по нескольким парам коэффициенты
произвольной функции (samplefunction), образец которой ему передается. Заодно
он определяет среднеквадратичное отколнение реальных значений от функции.
(Алгоритм может и не решить предложеную ему задачу).
Отыскав коэффициенты интерполяционной функции, я могу сделать не
кусочно-линейную интерполяцию функции, а вызовами samplefunction() с найдеными
коэффициентами заполню таблицу. Эта самая samplefunction() может быть и
кубической сплайн-функцией. В этом случае получится интерполяция сплайном.
В случае более простого кусочно-линейного метода, мне придется еще и делать
экстраполяцию ф-ции, ибо заполнить таблицу нужно от начала до конца, а натурные
коэффициенты могут быть где-то внутри таблицы, а не на концах, так вот функцию
до концов придется еще и экстраполировать.
Я пока что сделал кусочно-линейным методом с экстраполяцией. Но хочу сделать
поиск коэффициентов интерполяционной функции.
help.
---
* Origin: Фидонет - сеть друзей. Будьте дружественнее! (2:5000/228.16)