Алгоритм генерации функции по точкам
От: Renny  
Дата: 24.06.06 08:54
Оценка:
Есть ли теоретическая возможность реализовать сабж? Типа на вход массив точек (2d) а на выход — функция, график которой проходит через все точки и интервал на котором она это делает.
Re: Алгоритм генерации функции по точкам
От: vvotan Россия  
Дата: 24.06.06 10:18
Оценка: 3 (1) +1
Здравствуйте, Renny, Вы писали:

R>Есть ли теоретическая возможность реализовать сабж? Типа на вход массив точек (2d) а на выход — функция, график которой проходит через все точки и интервал на котором она это делает.


Конечно, через любые N точек можно провести график полинома (n-1)-й степени.

Например, интерполяцией по Лагранжу: P = \sum_{i=0}^n \prod_{j=0}^n (x-x_i)/(x_i-x_j)

Или можно методом наименьших квадратов.

Вообще, проще взять любой учебник по численным методам. Там всего много на эту тему.
--
Sergey Chadov

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Алгоритм генерации функции по точкам
От: FDSC Россия consp11.github.io блог
Дата: 24.06.06 19:22
Оценка:
Здравствуйте, Renny, Вы писали:

R>Есть ли теоретическая возможность реализовать сабж? Типа на вход массив точек (2d) а на выход — функция, график которой проходит через все точки и интервал на котором она это делает.


Можно, вопрос только зачем это надо. Если найти приближённые значения — одно (интерполяция), если угадать приближённую зависимость — это другое (аппроксимация, но тогда функция будет проходить рядом с точками)
Re[2]: Алгоритм генерации функции по точкам
От: Renny  
Дата: 24.06.06 19:57
Оценка:
Здравствуйте, vvotan, Вы писали:

V>Здравствуйте, Renny, Вы писали:


R>>Есть ли теоретическая возможность реализовать сабж? Типа на вход массив точек (2d) а на выход — функция, график которой проходит через все точки и интервал на котором она это делает.


V>Конечно, через любые N точек можно провести график полинома (n-1)-й степени.


V>Например, интерполяцией по Лагранжу: P = \sum_{i=0}^n \prod_{j=0}^n (x-x_i)/(x_i-x_j)


V>Или можно методом наименьших квадратов.


V>Вообще, проще взять любой учебник по численным методам. Там всего много на эту тему


Может тут кто-нибудь без особой заумности (типа мануалов по матану) по шагам и на конкретном примере объяснить: как реализовывается сабж? У меня есть пара миллионов значений функции и нужно узнать что это за функция....
Re[3]: Алгоритм генерации функции по точкам
От: vvotan Россия  
Дата: 25.06.06 08:06
Оценка:
Здравствуйте, Renny, Вы писали:

R>>>Есть ли теоретическая возможность реализовать сабж? Типа на вход массив точек (2d) а на выход — функция, график которой проходит через все точки и интервал на котором она это делает.

V>>Конечно, через любые N точек можно провести график полинома (n-1)-й степени.
V>>Например, интерполяцией по Лагранжу: P = \sum_{i=0}^n \prod_{j=0}^n (x-x_i)/(x_i-x_j)
V>>Или можно методом наименьших квадратов.
V>>Вообще, проще взять любой учебник по численным методам. Там всего много на эту тему

R>Может тут кто-нибудь без особой заумности (типа мануалов по матану) по шагам и на конкретном примере объяснить: как реализовывается сабж?


Я вообще-то конкретную формулу написал, в которую нужно только подставить значения.

R>У меня есть пара миллионов значений функции и нужно узнать что это за функция....


А ты точно уверен, что тебе нужно, чтобы функция проходила через все точки? Тогда наверное легче спросить у того, кто тебе эти точки дал, потому что хотя формально и возможно получить полином, но толку от полинома парамилионной степени будет немного. И вообще, надо плясать от конкретной задачи. Ты спрашивал теоретическую возможность. Так вот — их хоть отбавляй.
--
Sergey Chadov

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Алгоритм генерации функции по точкам
От: FDSC Россия consp11.github.io блог
Дата: 25.06.06 09:17
Оценка:
Здравствуйте, Renny, Вы писали:

R>Здравствуйте, vvotan, Вы писали:


V>>Здравствуйте, Renny, Вы писали:


R>>>Есть ли теоретическая возможность реализовать сабж? Типа на вход массив точек (2d) а на выход — функция, график которой проходит через все точки и интервал на котором она это делает.


На вход массив точек, наверное, всё-таки линейный (с двумя строчками: x и y). Или тебе нужна поверхность?

R>Может тут кто-нибудь без особой заумности (типа мануалов по матану) по шагам и на конкретном примере объяснить: как реализовывается сабж? У меня есть пара миллионов значений функции и нужно узнать что это за функция....


Ты скажи, что тебе надо, тебе объяснят может быть. А то когда непонятно что тебе нужно, нечего и объяснять подробно.

Например. У тебя функция, похожая на экспоненту. y=a*e^(b*x)
ln(y/a) = ln(e^(b*x))
ln(y/a) =b*x
ln(y/a) = ln(y) — ln(a); Y = ln(y); A = ln(A)
Получаем
Y = A + b*x

Находим таблицу Y из таблицы y
Применяем Метод Наименьших Квадратов (МНК) для нахождения A и b. Если не знаешь, что такое МНК — скажи, объясним.
Из A находим a,
получаем функцию y=a*e^(b*x) с известными коэффициентами.

Существуют аналогичные формулы для других типов функций. Перебором типов функций можно найти функцию, которая лучше всего удовлетворяет заданной таблице.

Однако при этом, если найденная функция близка, но не в точности совпадает с искомой, найденная функция будет проходить р я д о м с заданными точками, а не по ним.
Re: Алгоритм генерации функции по точкам
От: Георгиевич Россия  
Дата: 25.06.06 09:56
Оценка:
R>Есть ли теоретическая возможность реализовать сабж?

Конечно есть.
Это называется "задача минимизации функции".

R>Типа на вход массив точек (2d)


пар аргумент — значение функции

R>а на выход — функция, график которой проходит через все точки и интервал на котором она это делает.


А хоть какие-то знания о функции наличествуют? Она линейная/нелинейная?

Произвольным полиномом можно приближенно задать какую угодно функцию. Важно только понимать, какая степень приближения необходима.

На практике лучше всего у меня работал алгоритм Levenberg-Marquardt
(Левенберга-Маркварта, он же "марквардта", "маркара", итд..)
— он по стабу функции и парам аргумент-значение подбирает коэффициенты функции.
Re[2]: Алгоритм генерации функции по точкам
От: anvaka Украина Yasiv
Дата: 25.06.06 12:55
Оценка:
R>>Есть ли теоретическая возможность реализовать сабж?

Г>Конечно есть.

Г>Это называется "задача минимизации функции".

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

Осмелюсь предположить, что преславутая задача носит мистическое название "задача интерполирования"
Re[3]: Алгоритм генерации функции по точкам
От: vvotan Россия  
Дата: 25.06.06 13:04
Оценка:
Здравствуйте, anvaka, Вы писали:

R>>>Есть ли теоретическая возможность реализовать сабж?


Г>>Конечно есть.

Г>>Это называется "задача минимизации функции".

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


Это смотря что минимизировать. Если минимизировать СКО, то как раз получим то, что надо.
--
Sergey Chadov

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.