Обработка "Интерполяция данных"

20.03.14

Разработка - Математика и алгоритмы

Интерполяция (интерполирование) — в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений. Любителям астрономии часто приходится оперировать именно с дискретными наборами значений, когда необходимо получить значение функции не только для табличных значений аргумента. Например, очень часто требуются координаты Солнца относительно центра Земли, но почти всегда не на 0h всемирного времени, как дается в Астрономических Ежегодниках, а в самые разные моменты времени, которые являются промежуточными между табличными.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Интерполяция данных
.epf 260,46Kb ver:Interpol_1
17
17 Скачать (1 SM) Купить за 1 850 руб.

1. Общие сведения об интерполяции.

Интерполяция (интерполирование) — в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений. Любителям астрономии часто приходится оперировать именно с дискретными наборами значений, когда необходимо получить значение функции не только для табличных значений аргумента. Например, очень часто требуются координаты Солнца относительно центра Земли, но почти всегда не на 0h всемирного времени, как дается в Астрономических Ежегодниках, а в самые разные моменты времени, которые являются промежуточными между табличными.

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

На практике чаще всего применяют интерполяцию многочленами. Это связано прежде всего с тем, что многочлены легко вычислять и легко аналитически находить их производные. К указанным методам относят:

  • Метод линейной интерполяции;
  • Интерполяционный метод Ньютона;
  • Метод конечных разностей;
  • Метод интерполяции многочленом Лагранжа;
  • Метод интерполяции Эйткена;
  • Метод интерполяции кубическим сплайном.

Поскольку в обработке реализована именно интерполяция кубическим сплайном, имеет смысл остановиться на этом методе более подробно.

2. Интерполяция сплайном третьего порядка.

Пусть на некотором отрезке в точках x0, x1, x2, ... xN известны значения функции f(x), а именно y0, y1, y2, ... yN. Требуется построить интерполирующую функцию F(x), такую, что бы она принимала в указанных точках те же значения: F(x0) = y0, F(x1) = y1, ... F(xN) = yN.

Геометрически это значит, что нужно найти такую кривую y = F(x), которая проходит через систему заданных точек.

Очевидно, что данная задача может иметь либо бесчисленное множество решений, либо совсем не иметь решений. В случае интерполяции сплайном кривая F(x) состоит из кусочков, причем на каждом отрезке [xk-1; xk] функция F(x) представляет собой кубический полином вида Fk(x) = ak + bk(x-xk) + ck(x-xk)2 + dk(x-xk)3. При этом:

F = F1 на интервале [x0, x1]

F = F2 на интервале [x1, x2]

...

F = FN на интервале [xN-1, xN]

При этом, на каждом из отрезков [xk-1; xk] коэффициенты полинома ak, bk, ck, dk принимают разные значения.

Чтобы вычислить эти коэффициенты, кроме условия непрерывности функции на полиномы следует наложить дополнительные условия – во-первых, условие непрерывности первой и второй производной функции F(x), во-вторых, условие равенства вторых производных функции на концах отрезка [x0; xN], т.е.

Fk-1(xk-1) = Fk(xk-1),

F'k-1(xk-1) = F'k(xk-1),

F''k-1(xk-1) = F''k(xk-1),

F''(x0)=0, F''(xN)=0.

(k=2,3,..N )

Выражения для производных функций Fk принимают вид:

F'k(x) = bk + 2ck(x - xk) + 3dk(x-xk)2

F''k(x) = 2ck + 6 dk(x-xk)

Если подставить эти выражения в условия непрерывности, то можно получить следующую систему:

a1 - b1h1 + c1h12 - d1h13 = y0

ak = yk, k=1,2,..N

ak-1 = ak - bkhk + ckhk2 - dkhk3, k=2,3...N

bk-1 = bk - 2ckhk + 3dkhk2, k=2,3...N

ck-1 = ck - 3dkhk, k=2,3...N

c1 - 3d1h1 = 0

cN = 0,

где hk = xk - xk-1, k=1,2,...N

Пусть lk = (yk - yk-1)/hk, k=1,2,...N, а c0 = 0 .

Тогда представленную выше систему уравнений можно решить с помощью метода прогонки:

δ1 = - h2/(2(h1+h2))

λ1 = 3(l2 - l1)/(2(h1+h2))

δk-1 = - hk/(2hk-1+2hk+hk-1δk-2), k=3,4, ... N

λk-1 = (3lk - 3lk-1 - hk-1λk-2)/(2hk-1+2hk+hk-1δk-2)

При этом коэффициенты ck находятся по формулам обратной прогонки:

ck-1 = δk-1ck + λk-1, k = N, N-1, N-2, ... 2

После нахождения ck вычисление коэффициентов bk и dk не представляет труда:

bk = lk + (2ckhk + hkck-1)/3, k=1,2,...N

dk = (ck - ck-1)/(3hk), k=1,2,...N

Источник: http://www.alexeypetrov.narod.ru/C/spline_about.html

3. Выполнение интерполяции.

Источником для интерполирования являются данные, загруженные в таблицу «Исходные данные». Формирование этой таблицы может осуществляться в двух режимах: 

  • В ручном режиме – путем активирования управляющей кнопки «Добавить», расположенной в командной панели табличной части;
  • В режиме автоматизированной загрузки данных, записанных в файл Excel – путем активизации управляющей кнопки «Загрузить», расположенной в командной панели формы.

 При использовании метода автоматизированной загрузки данных пользователю открывается диалог выбора исходного файла (см. рис.). После выбора файла и активации управляющей кнопки «Открыть» для пользователя становятся доступны следующие реквизиты группы «Параметры расчета»:

  • Номер листа: определяет порядковый номер листа с загружаемыми данными в рабочей книге Excel. Нумерация листов начинается с единицы;
  • Начальная строка: определяет порядковый номер первой строки листа, с которой будет осуществлена загрузка данных. Нумерация строк начинается с единицы;
  • Колонка аргумента: порядковый номер колонки листа, которая содержит массив загружаемых значений аргументов;
  • Колонка функций: порядковый номер колонки листа, которая содержит массив загружаемых значений функций.

 Если параметры расчета сформированы не корректно, система предупредит об этом пользователя, в противном случае, все загружаемые из листа рабочей книги Excel данные станут доступны для просмотра в таблице «Исходные данные» формы (см. Рис. 1). Для того, что бы получить интерполируемое значение функции, необходимо в реквизите «Интерполировать для аргумента» указать значение выбранного аргумента, и активизировать управляющую кнопку «Расчет» (см. Рис. 2). При этом найденное значение будет добавлено в таблицу «Расчетные значения», и в таблицу «Исходные данные», причем в последней таблице добавленная строка выделяется красным шрифтом.

4. Визуализация.

С целью наглядного представления поведения функции для пользователя доступна функциональность элементов управления, представленных на закладке «Визуализация» (см. Рис. 3). К сожалению, платформа не обеспечивает возможность работы с диаграммами и графиками в той степени, в которой это необходимо для любителя астрономии. В силу сказанного, процедура построения графика, и параметров его отображения реализована средствами https://google-developers.appspot.com/chart/interactive/docs/index. Посредством внедренных в конфигурацию скриптов, пользователь имеет возможность изменять цвет и ширину линии графика, устанавливать шрифт подписей, размер отображаемых точек, изменять ориентацию осей диаграммы, и т.п. При конвертации цвета автором была использована методика Михаила Журавлева (см. //infostart.ru/public/115963/).

Астрономия

См. также

Математика и алгоритмы Программист Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    3168    stopa85    12    

38

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    7560    user1959478    51    

36

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    3114    maksa2005    8    

26

Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

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

1 стартмани

09.06.2023    10906    7    SpaceOfMyHead    18    

61

Математика и алгоритмы Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.

03.04.2023    4364    RustIG    9    

25

Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)

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

23.11.2022    3534    gzharkoj    14    

25

Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    9042    7    kalyaka    11    

44
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Re:аниматор 338 21.03.14 07:05 Сейчас в теме
очень часто требуются координаты Солнца относительно центра Земли


А где кроме астрономии это можно применить и можно еще пример относительно земных практик?

Лично меня не то что редко интересуют координаты Солнца относительно центра Земли, а собственно вообще не интересуют :-)
2. v.selivanov 20 21.03.14 13:29 Сейчас в теме
(1) Re:аниматор,

Добрый день!

В принципе интерполяция, как численный метод, применима ВЕЗДЕ, где:

1. Существует набор данных, который представлен в виде дискретных значений - аргумента и функции;
2. Возникает необходимость получить значение функции для того аргумента, который не попал в существующий дискретный ряд.

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

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

Третий пример: Вам необходимо распечатать фотографию большого размера. Причем настолько большого, что он превышает количество мегапикселей на картинке. В процессе интерполяции Вы можете сформировать дополнительные точки, и методом интерполирования вычислить их тон и цвет на основании тона и цвета соседних точек.
3. Re:аниматор 338 21.03.14 14:48 Сейчас в теме
(2) Добрый! Понятно, спасибо за разъяснение.
4. endym 215 26.03.14 11:28 Сейчас в теме
Еще интерполяция применима для расчета объемов сыпучих веществ (это когда они горкой лежат).
Видел иные решения но не в 1с).
5. bulpi 217 26.03.14 13:57 Сейчас в теме
Интерполяция относится к "общечеловеческим" ценностям. Она нужна в очень многих местах. Как рычаг и колесо.
6. Ktuhh 05.12.14 16:09 Сейчас в теме
Возможно ли изменить обработку для расчета экстраполяции?
Оставьте свое сообщение