Утилита для подсчёта площади пика
От: Khimik  
Дата: 21.02.22 14:34
Оценка: -1 :)))
В некоторых задачах имеется график какой-то функции и требуется подсчитать площадь пика на этом графике. Наверно это есть в последних Excel/Origin, но я предполагаю, что не все научные сотрудники имеют эти последние версии; кроме того, эти утилиты могут быть не очень удобными или недостаточно интуитивно-понятными. Поэтому я решил сделать такую утилиту в своей программе:



Кому интересно, предлагаю скачать мою программу и протестировать эту утилиту:

https://chemcraftprog.com/files/Chemcraft_b618b_win64.zip

“Tools/Utilities for working with custom graphs\Graph analyzer”

Моя задача была в том, чтобы утилита получилась максимально удобной и при этом понятной с первого взгляда. Пользователь через Clipboard вводит x и y значения своей функции в текстовом формате, переходит к вкладке графика, далее строит 2 или 4 опорные точки, по которым подсчитывается линия фона, и программа строит эту линию и считает площадь пика как разность между интегралами исходной функции и линии фона.
Если линия фона проводится по двум точкам, то программа линейно их интерполирует, если по четырём, то строится полином 3-й степени.
Отдельный вопрос – как корректно считать интеграл функции, заданной в виде таблицы. Можно считать площадь графика, подразумевающего линейную интерполяцию между соседними точками, а можно просто принять что каждая точка – это цилиндр с толщиной, равной размеру шага по X:



На первый взгляд кажется, что первый способ точнее, но при линейной интерполяции полученный интеграл будет всегда занижать площади пиков, т.к. линейная интерполяция всегда “проваливается” сквозь гладкие пики. Вроде со вторым методом подсчёта этой систематической ошибки не будет? В любом случае это не очень принципиально, т.к. моя программа сглаживает функцию: каждый интервал между соседними точками разбивается на 20 меньших интервалов, и в них проводится интерполяция сплайном. Но хотелось бы узнать, какой подход методически корректнее.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать." Р.П. Уоррен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.