Задание 1
Данные давления водорода Н2 на линии насыщения приведены в таблице. Сделать аппроксимацию экспериментальных данных в виде степенной функции и многочлена первой степени. Произвести сравнительный анализ ошибки аппроксимации полученной двумя функциями.
Таблица 1
Ts,0К | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
Pмм рт. ст. | 360,3 | 509,5 | 699,2 | 935,3 | 1223.7 | 1570,5 | 1981,8 | 2463,8 |
Аппроксимация экспериментальных зависимостей методом наименьших квадратов. Теоретические сведения
Пусть, в результате эксперимента получена зависимость.
Необходимо найти аналитическую формулу f =
, которая аппроксимирует экспериментальную (табличную) зависимость.Выберем зависимость
в виде полинома 2 – й степени, т.е. (1)В выражении (1) коэффициенты
, , подлежат определению, причем эти коэффициенты должны быть подобраны таким образом, чтобы зависимость наилучшим образом приближалась к экспериментальной зависимости. Пусть отклонение - различие между табличным значением в точке и значением аналитической функции в этой же самой точке, т.е.:(2)
В соответствии с методом наименьших квадратов (МНК) наилучшими коэффициентами зависимости (1) будут такие, для которых сумма квадратов отклонений будет минимальной.
(3)Используя необходимые условия существования экстремума для функций нескольких переменных
, находим уравнение для определения коэффициентов зависимости (1). (4)Из условия (4) получим систему линейных алгебраических уравнений:
(5)Решив систему (5) найдем коэффициенты
аппроксимирующей зависимости (1).Эффективным методом решения систем линейных алгебраических уравнений является матричный метод. Сущность его состоит в следующем.
Пусть А — матрица коэффициентов системы уравнений, X— вектор неизвестных, В — вектор правых частей системы уравнений. Тогда решение системы уравнений в матричной форме будет иметь вид:
Х = А -1 В.
Правило Крамера
Если ранг матрицы совместной системы равен числу ее неизвестных, то система является определенной. Если число неизвестных системы совпадает с числом уравнений (m = n) и матрица системы невырожденная (detA≠ 0), то система имеет единственное решение, которое находится по правилу Крамера:
В этих формулах ∆ = detА — определитель системы, а ∆k— определитель, полученный из определителя системы заменой k-гoстолбца столбцом свободных членов (k = 1, 2,..., n).
Решение системы трех линейных уравнений с тремя неизвестными можно выразить через определители:
, ,Информационное обеспечение
Зависимость давления P водорода Н2 при различных температурах на линии насыщения приведены в таблице (1).
Для проведения анализа исходных данных с целью выбора вида аппроксимирующего многочлена построим график функции, заданной в табл.1. График приведен на рис.1.
Графическое отображение точек экспериментальных данных
Рис. 1.Экспериментальная зависимость P=f(T)
В результате анализа данных выберем в качестве аппроксимирующего многочлена параболу, заданную уравнением P2(x)=a0+a1x+a2x2.
Для определения коэффициентов a0, a1, a2 запишем систему уравнений вида
При составлении системы создадим вспомогательную таблицу данных (таблица 2).
Используя данные таблицы 2, систему уравнений (5) записываем в виде
В результате решения системы методом Крамера получаем следующие значения определителей:
detA = 56448;
detA1 = 1435933397;
detA2 = -94279012,8;
detA3 = 1564382,4;
Вычислив определители, рассчитываем значения коэффициентов:
a0 = detA1/ detA;
a1= detA2/detA;
a2 = detA3/ detA;
a0= 25438,1625;
a1= -1670,19226;
a2= 27,71369048.
Таким образом, искомый аппроксимирующий многочлен имеет вид:
(6)Полученная аналитическая зависимость (6) обобщает экспериментальные данные табл.01.
Для оценки погрешности полученной зависимости составим таблицу значений P. Для этого определим давление P по формуле (6). Результаты внесем в таблицу 2.
Таблица 2
T | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
P | 370,8291668 | 502,0267858 | 688,6518 | 930,7042 | 1228,1839 | 1581,091 | 1989,4256 | 2453,188 |
Для оценки точности параболической аппроксимации сравниваем значения Р из табл.01 и табл.2. Модуль разности соответствующих значений представляет DP-погрешность аппроксимации, значения которой представлены в табл.3. В таблице приведена также относительная погрешность dР, равная отношению DР к Р.
Таблица 3
Т | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
DР | 10,529 | 7,4732 | 0,5482 | 4,59583 | 4,4839 | 10,591 | 7,625 | 10,6125 |
dP,% | 2,8393578 | 1,4886087 | 1,5317 | 0,4938 | 0,36509 | 0,6699 | 0,38331 | 0,4326 |
Сравнительный анализ погрешностей показывает, что полученная аналитическая зависимость удовлетворительно обобщает исходные экспериментальные данные.
Для интегральной оценки аппроксимации можно использовать формулу:
На рис. 2 приведены два графика, один из которых построен по данным аппроксимации (табл. 2), а второй - по исходным данным (табл.01).
Сравнивая эти графики, можно также отметить удовлетворительную сходимость теоретических и экспериментальных данных.
Выберем в качестве аппроксимирующего многочлена линейную функцию.
Аппроксимируем данную табличную зависимость многочленом первой степени P1(x)=a0+a1x
Для определения коэффициентов а0 , а1 необходимо составить систему уравнений
Подставив данные таблицы в систему уравнений получим:
Находим а0 и а1 методом Крамера:
а0 = -9343,52, а1 = 297,4798
Следовательно, искомый аппроксимирующий многочлен имеет вид
P= ─ 9342,52 + 297,4798T(7)
Формула (7) является аналитической зависимостью, обобщающей экспериментальные данные табл. 01.
Для оценки линейной аппроксимации необходимо сравнить значения yi из табл. 4 со значениями, полученными по формуле (7) для всех точек (i=1, 2, ..., 8). Результаты сравнения представлены в таблице 5.
Таблица 5
Проанализировав табл.5 можно сделать вывод, формула (7) не является корректной аналитической зависимостью, обобщающей экспериментальные данные табл. 01.
На рис.3 приведены график функции (7) и исходные экспериментальные данные. Сравнительный анализ показывает неудовлетворительную сходимость теоретических и экспериментальных данных.
Рис.5.3. График линейного аппроксимирующего многочлена и исходные данные.
Текстпрограммы
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<graphics.h>
#include<stdio.h>
#define PATHTODRIVER "c:\egavga.bgi"
void GrafikPolinom(float, float, float, float, float, float );//Функция //построенияграфикаполиномиальнойаппроксимацииэкспериментальныхданных
void GrafikLinear(float,float,float,float,float);//Функцияпостроения