Перейти к содержанию
    

Интерполяция данных.

Добрый вечер. Появилась тут такая задачка. Имеется зависимость данных от нагрузки тензодатчика.

Шаг по оси х 100 кг и соответствующие ей значение. Необходимо ввести эту таблицу в EXCEL(или может есть еще программы), сделать интерполяцию, и вывести обратно таблицу, но с шагом 1 кг. В общем уменьшить шаг дискретизации. Возможно ли такое сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 hours ago, Baser said:

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

Все смешалось - интеполяция, аппроксимация. 

Поскольку функция монотонная, то сначала должна идти аппроксимация подобранной кривой по минимуму квадратичного отклонения. 
Там и выплывет минимально достижимая ошибка. 
И только потом делают интерполяцию, а лучше еще и эктраполяцию. 
В этом деле хорошо помогает кубическая кусочная интерполяция, но точно не многочлен Лагранжа. 
Идете в Matlab и смотрите там методы PCHIP или Makima Piecewise Cubic Interpolation

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

01.03.2021 в 09:12, AlexandrY сказал:

Идете в Matlab и смотрите там методы PCHIP или Makima Piecewise Cubic Interpolation

Спасибо. А в маткаде есть такие функции не в курсе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Evgeni said:

Спасибо. А в маткаде есть такие функции не в курсе?

тензодатчик штука относительно линейная, и простого полинома не сильно большой степени прям на весь диапазон скорее всего будет достаточно, а это даже excel делать умеет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

04.03.2021 в 11:29, _pv сказал:

тензодатчик штука относительно линейная, и простого полинома не сильно большой степени прям на весь диапазон скорее всего будет достаточно, а это даже excel делать умеет.

О. Спасибо. А на счёт excell можно подробнее если не сложно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А на счёт excel наберите "excel аппроксимация" и польется вода. Excel прямо из таблицы построит графики и выдаст формулу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, Baser сказал:

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

Есть зависимость в виде таблицы с шагом 100. А нужно получить с шагом 1

Формула даёт гладкую функцию, что для мк тяжеловато

И.е нужно вернуть таблицу с меньшим шагом

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 минут назад, Evgeni сказал:

Есть зависимость в виде таблицы с шагом 100. А нужно получить с шагом 1

Ну так и какая нужна точность? :smile:
Варианты для excel с грубого к более точным:
1. Может быть вам простой линейной интерполяции между вашими точками будет достаточно.
2. Строите график и аппроксимирующую формулу и оцениваете точность в точках таблицы. Если норм., строите по формуле таблицу с любым шагом.
3. Строите кусочно-полиномиальную интерполяцию по кускам из трех соседних точек таблицы. Выбираете подходящие по точности формулы и строите таблицу с любым шагом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Evgeni сказал:

Есть зависимость в виде таблицы с шагом 100. А нужно получить с шагом 1

Советую подобрать наиболее подходящий метод интерполяции для вашей последовательности значений; с помощью выбранного метода интерполяции получить массив точек с нужным шагом; сохранить его в виде таблицы в программе МК; в run-time использовать данные из этой таблицы с линейной интерполяцией между значениями таблицы. Впрочем - если памяти программ не жалко, то можно сохранить большую таблицу с шагом между значениями таким же как входные (преобразуемые) значения (без линейной интерполяции между).

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

Здесь например описаны несколько методов со сравнением: https://habr.com/ru/post/130873/

Я у себя в проекте например использую сплайн Акимы - он даёт наилучшее приближение для моих данных (интерполяция характеристик термодатчиков).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Baser сказал:

Выбираете подходящие по точности формулы и строите таблицу с любым шагом.

А где и что нажимать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, Evgeni сказал:

А где и что нажимать?

В excel-е, кнопки. Но для этого его открыть надо, набить таблицу и построить график. А там и кнопки увидите :dirol:

Но в общем, у вас вся постановка задачи перевернута с ног на голову. Поэтому вы и нужную точность не знаете.
Методологически делают так:
1. Снимают с реального датчика таблицу с как можно большим значением точек. Для вас желательно через 1 кг. Ну, по меньшей мере несколько точек между вашими 100 кг. И желательно для нескольких разных датчиков.
2. По этим данным строят эталонную формулу датчика. Проверяют, есть ли гуляние формулы от датчика к датчику, какой разброс.
3. Теперь можно выбрать кол-во точек для калибровки датчика. Вполне возможно, что хватит всего двух точек в начале и конце шкалы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...