logo search
Аппроксимация 2012_верстка

Программа 1

При записи результата решения задачи – уравнения аппроксимирующей функции – параметры записывают с погрешностями. В погрешностях указывают, как правило, 2 значащие цифры, в соответствии с которыми и округляют значения параметров. В программе 1 использованы 3 метода расчета параметров для того, чтобы показать, что все они дают одинаковые результаты. При использовании линейной регрессии для реальных расчетов при обработке экспериментальных данных достаточно одного метода. В некоторых случаях погрешности параметров не требуется рассчитывать, а достаточно лишь рассчитать коэффициент корреляции для проверки линейной зависимости. Часто получение уравнения прямой не является конечным результатом расчета, а полученные параметры используются для дальнейших расчетов.

1.1. Приложение линейной регрессии. Для примера приведем программу расчетов в лабораторной работе по физической химии «Зависимость давления насыщенного пара жидкости от температуры» [5]. В этой работе экспериментально получают зависимость давления насыщенного (P) от температуры (Т). После интегрирования уравнения Клапейрона–Клаузиуса в форме

(11)

в предположении, что величина ΔНП – теплота парообразования не зависит от температуры, можно получить линейное уравнение:

, (12)

где R – универсальная газовая постоянная; Ткип температура кипения жидкости при нормальном атмосферном давлении Р0 = 760 мм ртутного столба.

Очевидно, что в уравнении (12) отсекаемый отрезок прямой на оси ординат и тангенс угла наклона прямой с осью абсцисс соответственно равны:

(13)

С другой стороны величины a и b могут быть найдены из экспериментальных данных из линейной регрессии зависимости lnP=f(1/T). По известным значениям a и b находят величины

(14)

где ΔSП – изменение энтропии в процессе парообразования при температуре кипения исследуемой жидкости. Для многих жидкостей величина ΔSП  88  4 Дж/(мольK) (константа Трутона). По найденным значениям можно построить кривую зависимости P = f(T). Из уравнения (12) следует, что

. (15)

Пример обработки экспериментальных данных и расчетов по уравнениям (12-14) приведен в программе 2. Из результатов расчета видно, что график зависимости lnP от 1/T линейный, коэффициент корреляции (по абсолютной величине) близок к единице. Отрицательное значение коэффициента корреляции наблюдается тогда, когда значение тангенса угла наклона прямой к оси абсцисс имеет отрицательное значение. Значение ΔSП близко к значению константы Трутона.

Программа 2

2. Аппроксимация с помощью полинома. В этом случае функция Y(x) принимает следующий вид:

Y(x) = c1 + c2x + c3x2 + c4x3 + ...+ ckxk-1 (16)

Степень полинома (k-1) может быть любой, меньшей количеству узлов. Если k=2, то степень полинома равна единице, что соответствует линейной зависимости, рассмотренной выше, т. е. линейная аппроксимация является частным случаем полиноминальной. Обычно чем выше степень полинома, тем ближе аппроксимирующая проходит кривая к экспериментальным точкам (узлам). Однако при приближении степени полинома к количеству узлов может наблюдаться (особенно для реальных экспериментальных данных, имеющих погрешности) сильное искажение аппроксимирующей кривой – она начинает осциллировать между данными, а уравнение становиться непригодным для предсказания значений функции в промежуточных точках. Поэтому степень полинома больше 7 практически никогда не используется.

В соответствии с уравнением (2)

y1(x)=1; y2(x) =x ; y3(x)=x2; … yk(x)=xk-1

Подставив эти функции в уравнение (5) получим систему из k уравнений:

(17)

в котором

Используя матричные операции нетрудно получить решение методом обращения матрицы в MathCad (программа 3). В первых строках вводятся данные и степень полинома. Если Вы захотите аппроксимировать свои данные, то изменяйте только эти данные, остальное выводится автоматически. Интересно проследить за погрешностями аппроксимации, изменяя степень полинома. С увеличением степени полинома аппроксимирующая кривая все ближе к узлам (невязки и сумма квадратов отклонений уменьшается). А нет ли скачков в промежуточных точках? (проверьте построением графика).

Задачу аппроксимации можно решить немного другим способом на МathCad, используя функцию regress (программа 4). Этот метод не дает в явном виде уравнения полинома, однако построить аппроксимирующую кривую и рассчитать значения функции в узлах (YY) и произвольных промежуточных точках (A(t)) можно. Результаты расчета, как видно из текста программы, методом обращения матрицы и с помощью встроенной функции MathCad одинаковы.

В программе 3 дан пример расчета погрешностей вычисляемых параметров для полиноминальной регрессии. Для выбора степени полинома или вообще при выборе аппроксимирующей функции часто пользуются критерием минимума суммы квадратов отклонений, но лучше использовать величину дисперсии адекватности,  и ее минимум также может быть использован для подбора оптимальной степени полинома.

При сравнении результатов расчета программ 3 и 4 можно сделать вывод о том, что оба метода дают практически совпадающие результаты (сравните невязки, сумму квадратов отклонений и дисперсию адекватности). Однако программа 3 имеет дополнительные возможности для адекватного выбора степени полинома. Можно посоветовать следующий порядок анализа данных с помощью этой программы для получения оптимального значения степени полинома:

  1. После введения исходных данных выберите минимальную степень полинома m=1 (линейная зависимость);

  2. Посмотрите на график – он должен быть линейным и проходить между точками.

  3. Запишите найденные параметры Сj и их погрешности j. Запишите дисперсию адекватности. Сохраните программу с подходящим именем (с указанием степени полинома в имени).

  4. Увеличьте степень полинома на единицу. Это увеличение считайте удачной (успешной) попыткой, если

    • график проходит между точками,

    • дисперсия адекватности уменьшается,

    • погрешности в параметрах уменьшаются;

в противном случае попытка считается неудачной.

  1. Если увеличение степени полинома оказалось успешным, то переходите на пункт 3.

Если увеличение степени полинома оказалось безуспешным, то запишите найденные параметры Сj и их погрешности j. Запишите дисперсию адекватности. Программу не сохраняйте.

Программа 3

Программа 4