Уважаемые сопланетники!
Столкнулся с проблемой, прошу помочь.
Для аппроксимации передаточной характеристики измерительных приборов часто используют полином. С точки зрения электроники - это очень удобный способ, требующий от МК относительно мало ресурсов и предоставляющий очень хорошую точность.
Для получения коэффициентов однофакторного полинома я традиционно использовал встроенную в Excel функцию ЛИНЕЙН. Однако в имеющейся в данный момент задаче выяснилось, что погрешность аппроксимации этим способом очень высока, - значительно выше, чем при использовании математических пакетов или линии тренда графика в Excel.
Предположив, что проблема в некорректном использовании функции ЛИНЕЙН, перешерстил интернет, пробовал сторонние файлы. Оказалось, проблема известная, и связана она с алгоритмом работы этой функции (подробности я не понял, в математике не очень).
Я взял одну и ту же выборку и сравнил четыре способа получения коэффициентов:
1. с использованием ЛИНЕЙН
2. с помощью утилиты Agraph
3. построением линии тренда на графике Excel
4. с помощью функций polyfit/polyval в Octave
Выяснилось, что на большой выборке (13 точек по 600 измерений в каждой) первый способ (ЛИНЕЙН) даёт примерно в 1,5...2 раза бОльшую погрешность, чем другие.
При меньшей выборке (13 точек по 5 в каждой, итого 65 точек) ещё интереснее: и ЛИНЕЙН, и Agraph дают погрешность в 4 раза больше, чем два последних.
Agraph имеет ещё два недостатка - максимальное количество обрабатываемых точек - 5000, а количество значащих цифр в коэффициентах - не более 9.
Два последних способа дают отличный результат, но есть одна проблема - сложность извлечения коэффициентов.
Требуется постоянно менять данные, и, соответственно, производить множество вспомогательных действий для загрузки/конвертирования данных и "выдёргивания" коэффициентов.
Хотелось бы все действия максимально автоматизировать и привязать к Excel. Возможно, можно как-то исхитриться и заставить ЛИНЕЙН работать по другому?
Или есть способ (может, с помощью VBA) автоматически выдернуть коэффициенты из линии тренда?
Попадались в сети фрагменты VBA для вычисления коэффициентов, но тоже приемлемого ничего не подобрал...
p.s. Движок запрещает грузить файлы свыше 100к, поэтому нарезал скринов.
Столкнулся с проблемой, прошу помочь.
Для аппроксимации передаточной характеристики измерительных приборов часто используют полином. С точки зрения электроники - это очень удобный способ, требующий от МК относительно мало ресурсов и предоставляющий очень хорошую точность.
Для получения коэффициентов однофакторного полинома я традиционно использовал встроенную в Excel функцию ЛИНЕЙН. Однако в имеющейся в данный момент задаче выяснилось, что погрешность аппроксимации этим способом очень высока, - значительно выше, чем при использовании математических пакетов или линии тренда графика в Excel.
Предположив, что проблема в некорректном использовании функции ЛИНЕЙН, перешерстил интернет, пробовал сторонние файлы. Оказалось, проблема известная, и связана она с алгоритмом работы этой функции (подробности я не понял, в математике не очень).
Я взял одну и ту же выборку и сравнил четыре способа получения коэффициентов:
1. с использованием ЛИНЕЙН
2. с помощью утилиты Agraph
3. построением линии тренда на графике Excel
4. с помощью функций polyfit/polyval в Octave
Выяснилось, что на большой выборке (13 точек по 600 измерений в каждой) первый способ (ЛИНЕЙН) даёт примерно в 1,5...2 раза бОльшую погрешность, чем другие.
При меньшей выборке (13 точек по 5 в каждой, итого 65 точек) ещё интереснее: и ЛИНЕЙН, и Agraph дают погрешность в 4 раза больше, чем два последних.
Agraph имеет ещё два недостатка - максимальное количество обрабатываемых точек - 5000, а количество значащих цифр в коэффициентах - не более 9.
Два последних способа дают отличный результат, но есть одна проблема - сложность извлечения коэффициентов.
Требуется постоянно менять данные, и, соответственно, производить множество вспомогательных действий для загрузки/конвертирования данных и "выдёргивания" коэффициентов.
Хотелось бы все действия максимально автоматизировать и привязать к Excel. Возможно, можно как-то исхитриться и заставить ЛИНЕЙН работать по другому?
Или есть способ (может, с помощью VBA) автоматически выдернуть коэффициенты из линии тренда?
Попадались в сети фрагменты VBA для вычисления коэффициентов, но тоже приемлемого ничего не подобрал...
p.s. Движок запрещает грузить файлы свыше 100к, поэтому нарезал скринов.