Реферат по предмету "Математика"


Аппроксимация экспериментальных зависимостей

Задание 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) и матрица системы невырожденная (det A≠ 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.
 
Таблица 2T 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
#include
#include
#include
#include
#definePATHTODRIVER «c:\egavga.bgi»
voidGrafikPolinom(float, float, float, float, float, float );//Функция//построенияграфикаполиномиальнойаппроксимацииэкспериментальныхданных
voidGrafikLinear(float,float,float,float,float);//Функцияпостроения
//графика линейнойаппроксимации экспериментальных данных
voidGRAPH_POINTS(float,float,float,float); //Функция выводит на экран точки //экспериментальных данных
int GRAPH_MODE(); //Функцияинициализации графического режима
voidGRID(float,float);// Функцияформирования координатной сетки
/*-------------------------------------------------------------------------*/
intmain()
{clrscr();
intn;
floattmpr,pwr;//текущие значения аргумента и функции
floatdiscret; //дискретностьизменения аргумента
floattn0, tn;//диапазон изменения аргумента tn0- min, tn- max
float pn; //pn-maxэкспериментальное значение функции
float *dp = new float[n]; //Массив значений ошибок аппроксимации
float *P = new float[n]; //Массив значений //полученный аналитическим способом
float INTG = 0; //переменная,используемая в выражении                    //интегральной оценки аппроксимации
floatA = 0, B = 0, C = 0, D = 0, E = 0, F = 0, G = 0;
floatdetA,i, detA1, detA2, detA3, A0,A2,A3;
intanswer;
Вводзначенийэкспериментальныхданных*/ cout
cin>>n;
cout
float *t = new float[n]; //Массив значений аргумента (в данном случае — температура)
float *p = new float[n]; //Массив значений функции исследуемого процесса for(i=0;i>t[i];}
cout>p[i];}
L:
cout\n" ;
cout\n";
cout\n" ;
cout\n" ;
cout\n" ;
cout\n" ;
cin>>answer;
/* Графическоеотображение экспериментальных данных в виде точек зависимости P = f(t) накоординатной плоскости */
if(answer ==1)
{
intregimen = GRAPH_MODE();
if(regimen == 5)
{ tn0 = t[0]; tn =t[n-1];//tn-max экспериментальное значение температуры (аргумента) pn =p[n-1];//pn-max экспериментальное значение функции
GRID(tn,pn);
for(i= 0;i
{
tmpr=t[i];
pwr= p[i];
setbkcolor(1);
GRAPH_POINTS(tn,pn,tmpr,pwr );
} getch (); closegraph();// выход из графического режима
}
else
{cout
} gotoL;
}
/* Расчет функцииаппроксимации экспериментальных данных в виде полинома 2 — й степени */
if(answer==2) { for( i=0;i
cout
cout
cout
cout
cout
cout
cout
 for( i=0; i
goto L; }
/* Графическоеотображение, полученной зависимости P = f(t) в виде полинома 2 степени, накоординатной плоскости */
if(answer== 3) {
intregimen = GRAPH_MODE();
if(regimen == 5)
{ tn0 = t[0]; tn =t[n-1];//tn-max экспериментальное значение температуры (аргумента) pn =p[n-1];//pn-max экспериментальное значение функции
GRID(tn,pn);
setbkcolor(1);
GrafikPolinom(A0,A2, A3,tn0,tn,pn );
for(i= 0;i
{
tmpr=t[i];
pwr= p[i];
GRAPH_POINTS(tn,pn,tmpr,pwr );
} getch (); closegraph();// выход из графического режима
}
else
{cout
}
goto L;
}
/*-------------------------------------------------------------------------*//* Расчет линейной функции аппроксимации экспериментальных данных */ cout
Графическоеотображение, полученной зависимости P = f(t) в виде линейной функцииаппроксимации на, координатной плоскости */
if(answer==5)
{
intregimen = GRAPH_MODE();
if(regimen== 5)
{tn0 = t[0]; tn = t[n-1]; tn = t[n-1]; pn = p[n-1]; GRID(tn,pn);
setbkcolor(1);
GrafikLinear(B0,B1,tn0,tn,pn );
for(i=0;i
{tmpr= t[i]; pwr = p[i]; GRAPH_POINTS(tn,pn,tmpr,pwr);
} getch (); closegraph();// выход из графического режима
}
else
{cout
} goto L;
}
return 0;
}
* Функция вывода накоординатную плоскость графика функции 2-й степени */
voidGrafikPolinom(float A0, float A2, float A3,floattn0,float tn, float pn )
{
float x,dx; // аргументи его приращение
float xl,x2; //диапазон изменения аргумента
float y; // значениефункции
float mx,my; // масштабпо X и Y — кол-во точек экрана, соответствующих // единице по осям координат
int x0,y0; // началоосей координат
float px,py; //координаты точки графика на экране
x0= 50;
y0= 400;
mx= 630/(2*tn);
my= 470/(2*pn);
//осикоординат
line(10,y0,630,y0);
line(x0,10,x0,470);
//график
xl= tn0;
x2= tn;
dx= 0.01;
x= xl;
while( x
{
y=A3*x*x + A2*x+A0; // функция
px= x0 + x*mx;
py= y0 — y*my;
putpixel(px,py,WHITE);
x+= dx;
}}
intGRAPH_MODE()
{
intgrdriver = DETECT; // драйвер
intgrmode; // режим
interrorcode; // код ошибки
initgraph(&grdriver,&grmode, PATHTODRIVER);
errorcode= graphresult();
if (errorcode != grOk)// ошибка инициализации графического режима
{
printf(«ERROR:dont find driver or driver damaged \n», errorcode);
puts(«PRESS»);
getch();
return(-10);
}
else
{return(5);
}}
/*Функциявыводанакоординатнуюплоскостьграфикалинейнойфункции*/ void GrafikLinear(float B0, float B1,float tn0,float tn, float pn ) {
float x,dx; // аргументи его приращение
float xl,x2; //диапазон изменения аргумента
float y; // значениефункции
float mx,my; // масштабпо X и Y — кол-во точек экрана, соответствующих // единице по осям координат
int x0,y0; // началоосей координат
float px,py; //координаты точки графика на экране
x0= 50;
y0= 400;
mx= 630/(2*tn);
my= 470/(2*pn);
//осикоординат
line(10,y0,630,y0);
line(x0,10,x0,470);
//график
xl= tn0;
x2= tn;
dx= 0.01;
x= xl;
while( x
{
y = B1*x+B0; //линейная функция
px= x0 + x*mx;
py= y0 — y*my;
putpixel(px,py,WHITE);
x+= dx;
}}
/*Функциявыводаточекэкспериментальнойзависимостинаэкран*/ void GRAPH_POINTS(float tn,float pn,float tmpr,floatpwr )
{
float x; // аргумент
float y; // значениефункции
float mx,my; // масштабпо X и Y — кол-во точек экрана, соответствующее // единице по осям координат
int x0 = 50;
int y0 = 400;
mx = 630/(2*tn);//tn-max экспериментальное значение температуры (аргумента)
my = 470/(2*pn);//pn-max экспериментальное значение функции
y= y0 — pwr*my ;
x= x0 + tmpr*mx ;
setcolor(13);
circle(x,y,2);
}
/*ФункцияформированиякоординатнойсеткиирасчетамасштабапоX и Y*/ void GRID(float tn, float pn)
{
int x0,y0; //координаты начала координатных осей
int dx,dy; // шагкоординатной сетки (в пикселях)
int h,w; // высота иширина области вывода координатной сетки int x,y;
floatlx,ly; float dlx,dly; char st [8];
// метки линий сетки поX и Y
// шаг меток линийсетки по X и Y
// изображение меткилинии сетки
x0 = 50; y0 = 400; //оси начинаются в точке (50,400)
dx = 40; dy = 40; //шаг координатной сетки 40 пикселей
dlx =1; // шаг метокоси X метками будут: 1, 2, 3 ...
dly =1; // шаг метокоси Y метками будут: 1, 2, 3 ...
h = 360; w = 560;
lx = 0; ly =0; //вначало координат ставятся метки 0
cout
cout
// засечки, сетка иоцифровка
int x = x0;
do
{
//засечка
sprintf(st,"%2.1f",lx);
outtextxy(x-8,y0+5,st);
lx+= dlx;
//линиясетки
setlinestyle(DOTTED_LINE, 0, 1);
line(x,y0-3,x,y0-h);
x+= dx; } while (x
// засечки, сетка иоцифровка по оси Y
inty = y0;
do
{
//оцифровка
sprintf(st,"%2.1f",ly);
outtextxy(x0-40,y,st) ;
ly+= dly;
//линиясетки
setlinestyle(DOTTED_LINE,0, 1);
line(x0+3,y,x0+w,y);
setlinestyle(SOLID_LINE,0, 1);
y-= dy; } while (y > y0-h);
} ;
 
Результаты тестирования
 
Для проверки правильности вычисленияаналитической формулы 2 – й степени, которая аппроксимирует экспериментальную(табличную), зависимость, выведем на экран:
— значения определителей [detA, detA1, detA2, detA3] полученных при решении системы линейных уравнений изначения коэффициентов [A0, A2, A3] в аналитической формуле, рассчитанные программой привыборе аппроксимирующего многочлена 2 – й степени;
— вспомогательные данные [A, B, C, D, E, F, G] необходимые для вычисления уравнения функцииаппроксимации экспериментальных данных 2 – й степени;
При тестировании получены следующие величинывышеперечисленных значений:
A = 284;
B = 97744,099609;
C = 358409,6875;
D = 10124;
E =13222899;
F = 362384;
G = 13023812;
detA = 56448;
detA 1= 1,436059 *109 ;
detA 2= ─ 9,42861 * 107 ;
detA3 = 1564482,25;
A0 = 25440,380859;
A1 = ─1670,317871;
A2 = 27,71546;
Аппроксимирующий полином:
P= 25440,380859 ─ 1670,317871*T+ 27,71546*T2;
Данная аналитическая зависимость, обобщает экспериментальныеданные табл. 01.
Для проверки правильности вычисленияаналитической формулы 1 – й степени, которая аппроксимирует экспериментальную(табличную), зависимость, выведем на экран:
— значения определителей [detВ, detВ1, detВ2] полученные при решении системы линейных уравнений изначения коэффициентов [В0, В1] в аналитической формуле, рассчитанныепрограммой при выборе аппроксимирующего многочлена 1 – й степени;
— вспомогательные данные [R, SCp, R2, Cpi ] необходимые для вычисления уравнения функцииаппроксимации экспериментальных данных 1 – й степени;
 
R = 284;
SCp = 9744,099609;
R2 = 10124;
Cpi = 358409,6875;
detВ = 336;
detВ1 = ─ 3139086,75;
detВ2 = 99953,210937;
B0 = ─ 9342,52058;
B1 = 297,479797;
Аппроксимирующая функция
P= ─ 9342,52058 + 297,479797*T/
Данная аналитическая зависимость, неудовлетворительно обобщаетэкспериментальные данные табл.01.
Аномалии и допустимые значения исходных данных.
В результате тестирования программы выявлены следующие еёособенности:
1. Допустимые значения исходных данных лежат в пределах [-10000000;+10000000];
2. При больших значениях аргумента вычерчивание графиказамедляется;
3. При значениях исходных данных впределах 10-9 — график функции может быть не виден вследствиеслишком мелкого масштаба.
 
Результаты выполнения задания
 
1. После ввода выходных данных, перед проведениемвычислений для выбора вида аппроксимирующей функции представимэкспериментальные данные в графическом виде (СНИМОК I).
2. При вычислении аппроксимирующей функции 2 –й степенипрограмма вывела на экран (СНИМОК II ) :
— вид аппроксимирующего полинома: P= 25440,380859 ─ 1670,317871*T+ 27,71546*T2;
— dP иdP(%) – ошибкиаппроксимации.Сравнительный анализ погрешностей показывает, что полученнаяаналитическая зависимость удовлетворительно обобщает исходные экспериментальныеданные. Максимальная ошибка аппроксимации σPmax= 10,539856(2,9253%), минимальная — σPmin= 4,473511 (0,365573%);
— ITG— интегральную оценку аппроксимации. Для интегральнойоценки аппроксимации использована формула:
 
ITG =/>=8,179605;
После завершения вычислений построимграфик аппроксимирующей функции и сравним его с графиком, построенным повыходным данным таблицы 01. Сравнивая графики можно определить хорошуюсходимость теоретических и экспериментальных
3. При вычислении аппроксимирующей функции 1 – й степенипрограмма вывела на экран
— вид аппроксимирующего полинома:
 
P= ─ 9342,520508 + 297,479797*T;
 
— dCP иdCP(%) –абсолютнуюи относительную ошибки аппроксимации. Сравнительный анализ погрешностейпоказывает, что полученная аналитическая зависимость неудовлетворительнообобщает исходные экспериментальные данные.
Максимальная абсолютная ошибкааппроксимации
 
dCP — σPmax= 204,608398(8,3045868%),
минимальная абсолютная ошибкааппроксимации
 
dCP- σPmin = 20,088257(1,013637%).

Максимальная относительная ошибкааппроксимации
 
dCp(%) — σPmax= 50,920618% (183,46698),
минимальная относительная ошибкааппроксимации
 
dCp(%) — σPmin = 1,013637%(20,088257).
 
-ITGL— интегральную оценку аппроксимации.
 
ITGL= 120,015892;
После завершения вычислений построимграфик аппроксимирующей функции и сравним его с графиком, построенным повыходным данным таблицы 01. Сравнивая графики, а также значения
dCP ,dCP(%) и ITGL можно определить неудовлетворительную сходимость теоретических иэкспериментальных данных.
4. После запуска программы на экране появляется приглашениеEnterinputdates>, предлагающее пользователю ввестиколичество пар входных данных, после чего выводится строка ввода значений аргументаENTEREXPERIMENTAL ARGUMENTVALUE> и затем значений экспериментальнойзависимости DEPENDENCYVALUE> .
После ввода данных на экран выводитсяменю:
FOR DRAWING POINTS INPUT;
FOR FIND APROCSIMATIONPOLINOM FUNCTION INPUT ;
FOR DRAWING THE GRAPHIC OFPOLINOM FUNCTION INPUT ;
FOR FIND APROCSIMATION LINEARFUNCTION INPUT ;
FOR DRAWING THE GRAPHIC OFLINEAR FUNCTION INPUT;
FOREXISTINPUT,
состоящее из 6 пунктов, выбрав одиниз которых можно произвести соответствующие операции, указанные в аннотации:
-FORDRAWINGPOINTSINPUT — позволяет произвести графическоеотображение экспериментальных данных в виде точек зависимости P = f(t)на координатной плоскости ;
FORFINDAPROCSIMATIONPOLINOMFUNCTIONINPUT — позволяет произвести расчетфункции аппроксимации экспериментальных данных в виде полинома 2 — й степени;
FORDRAWINGTHEGRAPHICOFPOLINOMFUNCTIONINPUT — позволяет построить графическоеотображение, полученной зависимости P= f(t) в виде аппроксимирующего многочлена 2 степени, накоординатной плоскости;
FORFINDAPROCSIMATIONLINEARFUNCTIONINPUT — позволяет произвести расчетлинейной функции аппроксимации экспериментальных данных;
FORDRAWINGTHEGRAPHICOFLINEARFUNCTIONINPUT — позволяет построить графическоеотображение, полученной зависимости P= f(t) в виде линейной функции аппроксимации на, координатнойплоскости;
FOREXISTINPUT — предлагает выйти из программы:

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

Список литературы
 
Яремчук Ф.П., Рудченко П.А. АЛГЕБРА ИЭЛЕМЕНТАРНЫЕ ФУНКЦИИ — Киев, НАУКОВА ДУМКА, 1987, 647.
Глушаков С.В., Сурядный А.С. MICROSOFTEXCEL XP — Харьков, ФИЛИО, 2006, 508.
Дорош Н.Л., Бартенев Г.Л. и др. Методическиеуказания к выполнению индивидуальных заданий и курсовой работы по дисциплинам«Информатика» и «Вычислительная математика». Днепропетровск,УДХТУ, 2004, 47.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат "Сосуществование" президента и парламента разной партийной принадлежности
Реферат Проблема безработицы
Реферат Переходная экономика
Реферат Создание журнала посещаемости занятий
Реферат Шпаргалка по Социологии 4
Реферат Генная мутация
Реферат Пугачев - предводитель народного восстания По повести А. С. Пушкина Капитанская дочка
Реферат Проблема времени и пространства в романе М.Булгакова "Мастер и Маргарита"
Реферат Проблема человеческого достоинства в драме АН Островского Гроза
Реферат Коллаборационисты: казачьи части вермахта на Украине
Реферат Reading Of The Damage Done Essay Research
Реферат Анализ финансово-хозяйственной деятельности предприятия (на примере ООО ТД "Металлопрокат")
Реферат About All Sharks Essay Research Paper About
Реферат Mexican Porfiriato Essay Research Paper Nueva divisin
Реферат Инертность молодежной политики как угроза безопасности и будущему России