Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для CollSpack
7 / 7 / 1
Регистрация: 21.01.2013
Сообщений: 55

Как получить промежуточное значение используя линейную интерполяцию?

24.03.2016, 22:26. Показов 1545. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программирую ардуино, нужно точно мерять температуру термистором.
Есть таблица показаний термистора:
C++
1
short sArrayResistance [54] = {32554.0,  10000.0,  3582.96,  3428.57,  3298.32, 3175.51,  3059.52,  2949.81,  2831.46,  2733.58, 2640.57,  2539.79,  2456.08,  2365.13,  2278.85, 2206.90,  2128.44,  2053.73,  1982.51,  1914.53, 1849.58,  1787.47,  1728.00,  1671.02,  1616.37, 1563.91,  1511.06,  1459.13,  1412.74,  1368.06, 1325.00,  1283.48,  1243.42,  1204.74,  1167.37, 1131.25,  1096.31,  1058.35,  1025.74,  998.05, 967.31,   937.50,   908.58,   883.98,   856.62, 830.05,   807.42,   782.23,   760.76,   735.14, 716.44,   696.52,   677.05,   182.6};
Так же есть таблица соответствий температуры для показаний термистора
C++
1
short sArrayTemperature [54] = {0,       25,      52.81,   54.25,   55.44, 56.56,   57.69,   58.81,   59.94,   61.13, 62.25,   63.38,   64.50,   65.69,   66.81, 68.00,   69.12,   70.25,   71.37,   72.56, 73.69,   74.81,   76.00,   77.12,   78.31, 79.44,   80.56,   81.75,   82.87,   84.06, 85.25,   86.37,   87.56,   88.69,   89.87, 91.06,   92.25,   93.44,   94.56,   95.69, 96.87,   98.00,   99.19,   100.37,  101.50, 102.69,  103.87,  105.06,  106.19,  107.37, 108.50,  109.69,  110.87,  150};
Допустим я считываю показание термистора которое равно 2312,18, как рассчитать температуру?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.03.2016, 22:26
Ответы с готовыми решениями:

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

Выполнить линейную интерполяцию
Функция yi=f(xi) i=1,n, задана таблично в узлах xi . Выполнить линейную интерполяцию данной функции средствами MATLAB с построением...

Не могу сделать линейную интерполяцию
Здравствуйте! Не получается сделать простую линейную интерполяцию Готовая формула ПРЕДСКАЗ не помогает, она почему-то выдает вобще...

2
73 / 69 / 38
Регистрация: 09.10.2012
Сообщений: 238
24.03.2016, 22:56
Собственно всё по формуле где x0 и x1 - ближайшие (слева и справа) к 2312,18 значения сопротивления, а f(x0) и f(x1) - соответствующие этим точкам значения температуры.
0
Объявлятель переменных
 Аватар для SpBerkut
1225 / 411 / 321
Регистрация: 24.09.2011
Сообщений: 1,279
25.03.2016, 08:09
C++
1
2
3
4
5
6
// Если R строго внутри массива sArrayResistance, то как-то так
double getTemperature (double R) { 
    for (int i = 1; i < 54; i++)
        if (R>sArrayResistance[i])
            return sArrayTemperature[i-1] + (sArrayTemperature[i-1]-sArrayTemperature[i])/(sArrayResistance[i]-sArrayResistance[i-1])*(sArrayResistance[i-1]-R);
}
И массивы у Вас вещественные, так что short там никак не подходит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2016, 08:09
Помогаю со студенческими работами здесь

Используя квадратичную интерполяцию, вычислить интерполяционное значение при заданном X
задана таблица (1,1611;1,4462), (2,611;10,70319), (2,0203;5,68038), (1,0537;1,13792), (2,074;6,06063), (1,1074;1,28657). Используя...

Выполнить линейную сплайн-интерполяцию функции, заданной в табличном виде
Выполнить линейную сплайн-интерполяцию функции, заданной в табличном виде. Экстраполировать ее за пределы интервала, на котором она...

Проведите линейную интерполяцию между двумя соседними узлами для десяти дополнительных промежуточных точек
Задача по АВМ, с первыми 2 пунктами справился, с 3-м пока нет. На С или С++ // Мой вариант: a = 5, b = 8, m = 4 #include...

Вычислить значение функции в произвольной точке интервала, используя линейную аппроксимацию
Сразу по делу задача: Дана функция {y}_{i}= f ({x}_{i}), определенная в . (a,b числа можно дать самому) Значение y = f (x) (a &lt;= x...

Промежуточное значение функции
Мне нужно просуммировать все промежуточные(в найденном векторе) значения функции. Например у меня значение f0=-1.5, f1=-1.45, а мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Настройка записи справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru