Бикубическая интерполяция

Аватар пользователя
A.I.
Сообщений: 2061
Зарегистрирован: 06 сен 2006, 21:00

Бикубическая интерполяция

Сообщение A.I. » 05 май 2014, 04:11

Есть такого рода задача: имеется массив 5х10 точек в диапазоне [1..N];[1..M] функции F(P,T). Необходимо с помощью бикубической интерполяции вычислить значение F(P,T) в любой из точек заданного диапазона. Нюанс - алгоритм должен быть наиболее шустрым, ибо будет крутиться на 8-мибитной микрухе. Буду благодарен за описание алгоритма, ума реализовать на чистом Си (единственно возможный компилятор под эту железку) думаю хватит. Сторонние библиотеки а-ля alglib в виду жесткого аппаратного ограничения не катят. Если сможете предложить алгоритм шустрее бикубической интерполяции с неменьшей точностью - буду благодарен вдвойне
Последний раз редактировалось A.I. 27 ноя 2019, 21:13, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Бикубическая интерполяция

Сообщение folk » 08 май 2014, 22:15

какова дискретизация и требуемая точность, с каким шагом будут идти координаты? Память?
Последний раз редактировалось folk 27 ноя 2019, 21:13, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
A.I.
Сообщений: 2061
Зарегистрирован: 06 сен 2006, 21:00

Бикубическая интерполяция

Сообщение A.I. » 12 май 2014, 03:18

50 точек: от 0 до 1000 по давлению с шагом в 100 и по температуре 5, 20, 35, 65, 95 градусов С. По давлению эталонный шаг в 100 гарантирован, по температуре разброс +/- 2 градуса. В памяти прибора по 4 байта на каждую точку. В приборе доступно физически не более 4 Мб памяти, так что было бы здорово уложиться в 512 Кб
Последний раз редактировалось A.I. 27 ноя 2019, 21:13, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Бикубическая интерполяция

Сообщение folk » 12 май 2014, 18:18

Как вариант - алгоритм Нэйвила по одной переменной затем по второй.
Последний раз редактировалось folk 27 ноя 2019, 21:13, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
A.I.
Сообщений: 2061
Зарегистрирован: 06 сен 2006, 21:00

Бикубическая интерполяция

Сообщение A.I. » 13 май 2014, 08:27

folk, спасибо, попробую. Осталось разобраться как 2 переменные прикрутить
Последний раз редактировалось A.I. 27 ноя 2019, 21:13, всего редактировалось 1 раз.
Причина: test

folk
Сообщений: 4177
Зарегистрирован: 11 сен 2009, 21:00

Бикубическая интерполяция

Сообщение folk » 13 май 2014, 09:27

Например для трех табличных y интерполируете по х и получаете значения для табличных y в нужном x0. А потом интерполируете эти три точки по y. Если вам нужна точность то возможно придется пересмотреть точки в которых сняты табличные значения - это может дать больший эффект чем оптимизация алгоритма.
Оптимальное с математической точки зрения решение это наверное полиномы лагранжа - можете сравнить результат в mathcad предварительно) Ну и с программистской затем
Последний раз редактировалось folk 27 ноя 2019, 21:13, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
qwertylol
Сообщений: 3761
Зарегистрирован: 01 ноя 2007, 21:00

Бикубическая интерполяция

Сообщение qwertylol » 13 май 2014, 14:33

A.I. писал(а):Source of the post
50 точек: от 0 до 1000 по давлению с шагом в 100 и по температуре 5, 20, 35, 65, 95 градусов С. По давлению эталонный шаг в 100 гарантирован, по температуре разброс +/- 2 градуса. В памяти прибора по 4 байта на каждую точку. В приборе доступно физически не более 4 Мб памяти, так что было бы здорово уложиться в 512 Кб

Ну не такие и строгие рамки. Стандартная реализация сильно отстаёт от требуемой по скорости?
Последний раз редактировалось qwertylol 27 ноя 2019, 21:13, всего редактировалось 1 раз.
Причина: test


Вернуться в «Computer Science»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 1 гость