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

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

24.03.2016, 22:26. Показов 1511. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru