С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
user848
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 6
1

Программная реализация номограммы

03.11.2016, 12:57. Просмотров 410. Ответов 5
Метки нет (Все метки)

Сейчас пишу одну модель программно, в нее входят разные формулы для ее расчета, вбивать их конечно на С, не составляет никакого труда, но вот как быть с номограммой? (см. скриншот ниже)

Программная реализация номограммы



Как бы реализовать так, чтобы при указанной температуре газов (C) и PS (кн/м), программа сама определила "Степень черноты CO2", а не сам пользователь с линейкой/на глаз.

Может у кого-то есть идеи?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2016, 12:57
Ответы с готовыми решениями:

Программная реализация алгоритмов лексического и синтаксического анализа
В общем, есть вот такое задание: разработать язык и порождающую грамматику для...

Построение и программная реализация автоматных моделей языков
Доброе время суток всем. Будьте так любезны кто знает или умеет напишите...

Программная установка расширений для браузеров
Доброго времени суток! Заранее скажу, что перед тем как спрашивать на форуме,...

Программная реализация простого бесприоритетного планировщика потоков
Доброе утро всем! Нужна Ваша помощь в доработке. Была задача: Программная...

Программная пауза
Доброго времени суток! Будьте добры, подскажите. Мне необходимо поставить...

5
Nick Alte
Эксперт С++
1648 / 1020 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
04.11.2016, 20:17 2
Интерполяция функции двух переменных. Набиваем таблицу точек (температура и этот самый PS) и значения черноты. Интерполируем по этой таблице хотя бы кубическими полиномами. Коэффициенты полиномов вычисляем заблаговременно и пользуемся готовыми.
0
user848
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 6
04.11.2016, 20:21  [ТС] 3
я знаю, что это, но это ничего здесь не решит...
походу здесь лишь вбивать всё в ручную, тысячи данных
всё равно требуется проверять линейкой все возможные комбинации
0
Nick Alte
Эксперт С++
1648 / 1020 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
05.11.2016, 09:54 4
Зачем тысячи, сетку можно пореже сделать. Кривые достаточно хорошо друг друга повторяют, сгладятся нормально. Надо только глянуть, не следует ли использовать для какой-то из шкал экспоненциальную зависимость перед сглаживанием.
1
user848
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 6
09.11.2016, 01:16  [ТС] 5
Цитата Сообщение от Nick Alte Посмотреть сообщение
Надо только глянуть, не следует ли использовать для какой-то из шкал экспоненциальную зависимость
А могли бы, пожалуйста, привести простой пример хотя бы и без этого (просто о том, что писали в первом сообщении), так сказать дать начало. А то пока что не доходит ваша идея. И пока лишь думаю забивать эти все полиномы в Matlab (мне необязательно на C++) и как-то пробовать определить точку пересечения P.S. с Y (температурой) для определения X

Добавлено через 59 минут
Хотя сами точки всех функций с рисунка можно такой программой как GetDate
0
Nick Alte
Эксперт С++
1648 / 1020 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
10.11.2016, 19:37 6
Цитата Сообщение от user848 Посмотреть сообщение
А могли бы, пожалуйста, привести простой пример хотя бы и без этого
Без этого не получится, шкалы PS и черноты экспоненциальные.

А идея у меня такая. Берём эту номограмму. Проводим вертикальные линии по шкале температуры (можно как раз по 200-градусным засечкам). Отмечаем там точки пересечения линии с кривой и соответствующий этой точке показатель черноты. Для более точного определения лучше составить формулу перевода высоты в пикселях в значение. Поскольку шкала черноты экспоненциальная, не забываем пользоваться в этой формуле экспонентой.

Точки пересечения мы отмечаем не для каждой кривой, часть близкорасположенных кривых можно пропустить, чтобы
таблица значений не разбухала до неприличных размеров. В результате получаем таблицу, в которой столбцы соответствуют темературам, строки - выбранным кривым (значениям PS), а значения в ячейках - черноте.

Затем мы преобразуем таблицу, заменяя черноту и PS на их логарифмы. Из таблицы генерируем интерполяционные полиномы.

Далее совсем просто. На вход получаем температуру и PS (его сразу пропускаем через логарифм) и подставляем в соответствующий полином. Результат возгоняем в экспоненту, получаем искомую черноту.
0
10.11.2016, 19:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2016, 19:37

Программная эмуляция джойстика
Здравствуйте! Делаю одну ЮСБ-примочку для ПК, одна с функций которого - прием...

Программная сортировка в ListView
Здравствуйте! Есть сортировка по убыванию при нажатии столбца в ListView: ...

Программная очистка Edit
Нужно это добавить как то в настройки Edit1->Clear(); Но чтобы Edit1 чистился...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru