Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
user848
0 / 0 / 0
Регистрация: 22.04.2015
Сообщений: 6
03.11.2016, 12:57     Программная реализация номограммы #1
Сейчас пишу одну модель программно, в нее входят разные формулы для ее расчета, вбивать их конечно на С, не составляет никакого труда, но вот как быть с номограммой? (см. скриншот ниже)

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


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

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

Программная реализация локального входа в Windows C++ WinAPI
Построение и программная реализация автоматных моделей языков C++
Программная реализация древесной сортировки C++
C++ Программная реализация очереди
C++ Программная реализация задач на множествах
Нужна программная реализация объекта ядра ос JobObject C++ WinAPI
Программная реализация алгоритма Khufu C++
C++ Программная реализация асимметричного алгоритма RSA

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

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

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

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

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

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

Далее совсем просто. На вход получаем температуру и PS (его сразу пропускаем через логарифм) и подставляем в соответствующий полином. Результат возгоняем в экспоненту, получаем искомую черноту.
Yandex
Объявления
10.11.2016, 19:37     Программная реализация номограммы
Ответ Создать тему
Опции темы

Текущее время: 05:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru