Аппроксимация экспериментальных данных
Составление программы для расчетов коэффициентов линейной, квадратичной, степенной, показательной аппроксимирующих функций. Исследование числовых характеристик и качественных свойств объекта. Приближение непрерывной функции к таблично заданным значениям.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 14.08.2015 |
Размер файла | 277,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего профессионального образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
ОТЧЕТ по лабораторной работе
по дисциплине «Информатика»
Аппроксимация экспериментальных данных
Выполнил студент гр. 2Д42 Сбитнев И.Н.
Отчет принят: Белинская Н.С.
Томск 2015
1. Теоретическая часть
аппроксимирующая функция квадратичный
Цель работы: составить программу для расчетов коэффициентов линейной, квадратичной, степенной и показательной аппроксимирующих функций.
Аппроксимация - приближение непрерывной функции в таблично заданным значениям дискретной функции.
Аппроксимация, или приближение -- научный метод, состоящий в замене одних объектов другими, в том или ином смысле близкими к исходным, но более простыми
Аппроксимация позволяет исследовать числовые характеристики и качественные свойства объекта, сводя задачу к изучению более простых или более удобных объектов (например, таких, характеристики которых легко вычисляются или свойства которых уже известны). Некоторые разделы математики в сущности целиком посвящены аппроксимации, например, теория приближения функций, численные методы анализа.
Когда обрабатывается выборка экспериментальных данных, то они, чаще всего, представляются в виде массива, состоящего из пар чисел (x[i],y[i]). Поэтому возникает задача аппроксимации дискретной зависимости y(x[i]) непрерывной функцией f(x).
Функция f(x), в зависимости от специфики задачи, может отвечать различным требованиям:
· Функция f(x) должна проходить через точки (x[i],y[i]), т. е. f(x[i])=y[i],i=1...n. В этом случае говорят об интерполяции данных функцией f(x) во внутренних точках между x[i], или экстраполяции за пределами интервала, содержащего все x[i].
· Функция f(x) должна некоторым образом (например, в виде определенной аналитической зависимости) приближать y(xi), не обязательно проходя через точки (x[i],y[i]). Такова постановка задачи регрессии, которую во многих случаях также можно назвать сглаживанием данных.
· Функция f(x) должна приближать экспериментальную зависимость y(x[i]), учитывая, к тому же, что данные (x[i],y[i]) получены с некоторой погрешностью, выражающей шумовую компоненту измерений. При этом функция f(x), с помощью того или иного алгоритма уменьшает погрешность, присутствующую в данных (x[i],y[i]). Такого типа задачи называют задачами фильтрации. Сглаживание - частный случай фильтрации.
Критерии близости функций и могут быть различные. В том случае, когда приближение строится на дискретном наборе точек, аппроксимацию называют точечной или дискретной. В том случае, когда аппроксимация проводится на непрерывном множестве точек (отрезке), аппроксимация называется непрерывной или интегральной. Примером такой аппроксимации может служить разложение функции в ряд Тейлора, то есть замена некоторой функции степенным многочленом. Наиболее часто встречающим видом точечной аппроксимации является интерполяция (в широком смысле). Пусть задан дискретный набор точек, называемых узлами интерполяции, причем среди этих точек нет совпадающих, а также значения функции в этих точках. Требуется построить функцию, проходящую через все заданные узлы. Таким образом, критерием близости функции является. В качестве функции обычно выбирается полином, который называют интерполяционным полиномом. В том случае, когда полином един для всей области интерполяции, говорят, что интерполяция глобальная. В тех случаях, когда между различными узлами полиномы различны, говорят о кусочной или локальной интерполяции. Найдя интерполяционный полином, мы можем вычислить значения функции между узлами (провести интерполяцию в узком смысле слова), а также определить значение функции даже за пределами заданного интервала (провести экстраполяцию). Метод наименьших квадратов
В качестве критерия точности чаще всего используют критерий наименьших квадратов, т.е. определяют такую функциональную зависимость f(x), при которой
обращается в минимум. Погрешность приближения оценивается величиной
.
В качестве функциональной зависимости рассмотрим многочлен :
.
Формула минимизируемой функции примет вид :
.
Условия минимума S можно записать, приравнивая нулю частные производные S по всем переменным, a0,a1,a2,…,am.
Получим систему уравнений:
где k=0,1,…m.
Введем обозначения:
.
Последняя система может быть записана так:
a0ck+a1ck+1+…+ck+mam=bk,где k=0,1,…,m.
Её можно переписать в развернутом виде:
Матричная запись системы имеет следующий вид: Ca=b.
Для определения коэффициентов ak, k=0,1,…,m, и, следовательно, искомого многочлена, необходимо вычислить суммы ck,bk и решить последнюю систему уравнений. Матрица “c” этой системы является симметричной и положительно определенной.
Погрешность приближения в соответствии с исходной формулой составит:
.
Рассмотрим частные случаи m=1 и m=2.
Линейная аппроксимация (m=1).
.
;
, .
Отсюда система для нахождения коэффициентов a0 и ai имеет вид:
.
Её можно решить методом Крамера.
Квадратичная аппроксимация (m=2).
,.
Или в развёрнутом виде:
Решение системы уравнений Ca=b находится по правилу Крамера.
Аппроксимация показательной и степенной функции
Показательная функция :
y=A*ebx
Логарифмируется выражение
y = A*ebx и получается Ln y = Ln A + bx* Ln e.
Производится замена Y= Lny, A0= LnA, A1=b
Подстановка позволяет получить линейную зависимость
Y =A0+A1*x
Мы пришли к линейной зависимости. После определения A1 и A0 по методу наименьших квадратов мы получим, что исходный коэффициент A=eA0, а исходный коэффициент
b=A1.
Степенная функция :
y=A*xk
В случае степенной функции возьмем десятичный логарифм :
Lgy=lgA+b*lgx
Производится замена lgy=Y, lg A=A0, lgx=E
Y=A0+A1*E
В этом случае после определения A1 и A0 по методу наименьших квадратов запишем, что A=10A0, b=A1.
И можно переписать исходную форму с исходными значениями коэффициентов A и b, которые определили по методу наименьших квадратов.
2. Практическая часть
Давление насыщенного водяного пара в зависимости от температуры:
T, оС |
40 |
45 |
50 |
55 |
60 |
65 |
70 |
|
P,мм. рт. ст. |
55,32 |
71,88 |
92,51 |
118,00 |
149,40 |
187,50 |
233,70 |
Задание
1)Найти коэффициенты аппроксимирующей функции :
· Линейной
· Квадратичной
· Степенной
· Экспоненциальной
2)Определить давление насыщенного водяного пара при температуре T=52 оС.
3)Определить давление насыщенного водяного пара в интервале изменения температуры 60-65 оС с шагом 1.
4)Сделать аппроксимацию экспериментальных данных в Excel, используя линейную, квадратичную, степенную, экспоненциальную функции.
1) Линейная аппроксимация :
Program DIY1;
uses crt;
const n=7;
t:array[1..n] of real=(40,45,50,55,60,65,70);
p:array[1..n] of real=(55.32,71.88,92.51,118.00,149.40,187.50,233.70);
var
s1,s2,s3,s4,a0,a1,t0,p0,tt,pp:real;
i:integer;
begin clrscr;
s1:=0;
s2:=0;
s3:=0;
s4:=0;
for i:=1 to n do begin
s1:=s1+t[i];
s2:=s2+p[i];
s3:=s3+sqr(t[i]);
s4:=s4+t[i]*p[i];
end;
a0:=(s2*s3-s4*s1)/(n*s3-sqr(s1));
a1:=(n*s4-s1*s2)/(n*s2-sqr(s1));
writeln('a0=',' ',a0:5:3,'a1=',' ',a1:5:3);
tt:=52;
pp:=a1*tt+a0;
writeln('pp=',pp:5:2);
t0:=60; repeat
p0:=a1*t0+a0;
writeln('t0=',t0:2:2,' ','p0=',p0:2:2);
t0:=t0+1;
until t0>65;
end.
a0=-193.669 a1=-0.203.
pp=-204.23
t0=60 p0=-205.86
t0=61 p0=-206.06
t0=62 p0=-206.26
t0=63 p0=-206.46
t0=64 p0=-206.67
t0=65 p0=206.87
2)Квадратичная аппроксимация :
Program DIY;
uses crt;
const n=7;
t:array[1..n] of real=(40,45,50,55,60,65,70);
p:array[1..n] of real=(55.32,71.88,92.51,118.00,149.40,187.50,233.70);
var
i:integer;
s1,s2,s3,s4,s5,s6,s7,a0,a1,a2,tt,pp,d1,d2,d3,d4:real;
begin clrscr;
for i:=1 to n do begin
s1:=s1+t[i];
s2:=s2+p[i];
s3:=s3+sqr(t[i]);
s4:=s4+t[i]*p[i];
s5:=s5+sqr(t[i])*t[i];
s6:=s6+sqr(t[i])*p[i];
s7:=s7+t[i]*t[i]*t[i]*t[i];
end;
d1:=n*s3*s7+s1*s5*s3+s1*s5*s3-s3*s3*s3-s1*s1*s7-n*s5*s5;
d2:=s2*s3*s7+s4*s5*s3+s6*s1*s5-s6*s3*s3-s2*s5*s5-s4*s1*s7;
d3:=n*s4*s7+s1*s6*s3+s3*s2*s5-s3*s3*s4-s1*s2*s7-s6*s5*n;
d4:=n*s3*s6+s1*s5*s2+s1*s4*s3-s3*s3*s2-s5*s4*n-s1*s1*s6;
a0:=d2/d1;
a1:=d3/d1;
a2:=d4/d1;
writeln('p=',a0:5:5,a1:5,'*t+',a1:5,'*t*t');
tt:=70;
pp:=a0+a1*tt+a2*sqr(tt);
writeln('pp=',pp:5:2);
end.
p=150.88214-7.07697619047619*t-7.07697619047619*t*t
3) Степенная аппроксимация:
Program DIY3;
uses crt;
const n=7;
t:array[1..n] of real=(40,45,50,55,60,65,70);
p:array[1..n] of real=(55.32,71.88,92.51,118.00,149.40,187.50,233.70);
var
i:integer;
t0,p0,s1,s2,s3,s4,tt,pp,a0,a1,k:real;
begin clrscr;
s1:=0;
s2:=0;
s3:=0;
s4:=0;
for i:=1 to n do begin
s1:=s1+ln(t[i]);
s2:=s2+ln(p[i]);
s3:=s3+sqr(ln(t[i]));
s4:=s4+(ln(t[i])*ln(p[i]));
end;
a0:=((s2*s3)-(s1*s4))/(n*s3-sqr(s1));
a1:=(n*s4-s1*s2)/(n*s3-sqr(s1));
k:=a1;
writeln('a0= ',' ',a0:5:33,'a1= ',' ',a1:5:3);
tt:=52;
pp:=a1*exp(k*ln(tt));
writeln('pp= ',pp:5:2);
t0:=60;
repeat
p0:=a1*exp(k*ln(t0));
writeln('t0=',t0:2:2,' ','p0=',p0:2:2);
t0:=t0+1;
until t0>65 ;
end.
a0=-5.53 a1=2.577
t0=60 p0=986.09
t0=61 p0=1028.44
t0=62 p0=1073.20
t0=63 p0=112.43
t0=64 p0=116.18
t0=65 p0=1211.49
4)Экспоненциальная аппроксимация:
Program DIY2;
uses crt;
const n=7;
t:array[1..n] of real=(40,45,50,55,60,65,70);
p:array[1..n] of real=(55.32,71.88,92.51,118.00,149.40,187.50,233.70);
var
i:integer;
t0,p0,s1,s2,s3,s4,tt,pp,a0,a1,a,k:real;
begin clrscr;
s1:=0;
s2:=0;
s3:=0;
s4:=0;
for i:=1 to n do begin
s1:=s1+t[i];
s2:=s2+ln(p[i]);
s3:=s3+sqr(t[i]);
s4:=s4+t[i]*(ln(p[i]));
end;
a0:=((s2*s3)-(s1*s4))/(n*s3-sqr(s1));
a1:=(n*s4-s1*s2)/(n*s3-sqr(s1));
a:=exp(a0);
k:=a1;
writeln('a= ',' ',a:5:33,'k= ',' ',k:5:3);
tt:=52;
pp:=a*exp(k*ln(tt));
writeln('tt= ',tt:5:2);
t0:=60;
repeat
p0:=a*exp(k*ln(t0));
writeln('t0=',t0:2:2,' ','p0=',p0:2:2);
t0:=t0+1; until t0>65 ;
end.
t0=60 p0=10.08
t0=61 p0=10.09
t0=62 p0=10.10
t0=63 p0=10.11
t0=64 p0=10.12
t0=65 p0=10.12
a=8.286*k=0.048
Выводы
В ходе выполнения заданной программы разными способами: линейной, квадратичной, степенной, экспоненциальной аппроксимирующих функций, рассчитали коэффициенты. Из этих способов наиболее точным оказался квадратичный способ, несмотря на сложности формул при выведении коэффициента.
Размещено на Allbest.ru
...Подобные документы
Аппроксимация эмпирических данных линейной и квадратичной зависимостью. Теория корреляции: расчет коэффициентов детерминированности. Построение алгоритма и вычисление приближённых функций методом наименьших квадратов в среде программирования Turbo Pascal.
курсовая работа [766,6 K], добавлен 26.12.2011Аппроксимация линейной, степенной и квадратичной функции. Определение корней уравнения вида f(x)=0 методом половинного деления. Вычисление определенного интеграла методом прямоугольников, трапеций, парабол и Эйлера. Интерполяция формулой Лагранжа.
курсовая работа [1,3 M], добавлен 21.09.2011Подбор средствами MS Excel подходящего варианта аппроксимации (линейной, логарифмической, степенной, полиномиальной) по заданным данным. Доказательство оптимальности выбора путем сравнения коэффициентов достоверности и аппроксимации для каждого варианта.
контрольная работа [1,3 M], добавлен 19.08.2010Аппроксимация – процесс замены таблично заданной функции аналитическим выражением кривой. Алгоритм нахождения зависимости между заданными переменными. Условия сходимости итераций к решению системы уравнений. Методы Якоби и Гаусса. Тестирование программы.
курсовая работа [1,4 M], добавлен 28.08.2012Реализация приложения, которое выполняет считывание, обработку, визуализацию и аппроксимацию экспериментальных данных полиномиальной функции. Блок схема алгоритма аппроксимации методом наименьших квадратов. Разработка интерфейса и листинга программы.
курсовая работа [1,1 M], добавлен 07.07.2013Основные методы и алгоритмы исследования. Нахождение минимума среднеквадратичного отклонения. Особенности решения нормальных уравнений. Параметры линейной аппроксимирующей функции. Расчет значений аппроксимирующей функции и среднеквадратичного уклонения.
курсовая работа [749,3 K], добавлен 08.06.2019Метод наименьших квадратов. Возможные варианты расположения экспериментальных точек. Аппроксимация экспериментальных данных в программах Microsoft Excel, MathCAD и MatLAB. Вычисление средних значений и их сумм. Коэффициенты корреляции и детерминации.
курсовая работа [890,9 K], добавлен 30.10.2012Примеры работы с линейной интерполяцией и её результаты в графическом виде. Алгоритм кубической сплайн-интерполяции. Используемые функции линейной, обобщенной, полиномиальной регрессии. Графические возможности программы MathCAD и редактирование графиков.
презентация [2,7 M], добавлен 16.10.2013Аппроксимация функции зависимости крутящего момента косозубого шестеренного пневмодвигателя К3М от числа оборотов вала в безразмерных величинах с помощью Microsoft Excel и PTC MathCad. Суть метода наименьших квадратов. Оценка точности аппроксимации.
курсовая работа [1,2 M], добавлен 10.03.2012Интерполяция данных с использованием значений функции, заданной множеством точек, для предсказания значения функции между ними. Результаты линейной интерполяции в графическом виде. Кубическая сплайн-интерполяция. Функции для поиска вторых производных.
презентация [2,7 M], добавлен 29.09.2013Решение нелинейного уравнения вида f(x)=0 с помощью программы Excel. Построение графика данной функции и ее табулирование. Расчет матрицы по исходным данным. Проведение кусочно-линейной интерполяции таблично заданной функции с помощью программы Mathcad.
контрольная работа [1,8 M], добавлен 29.07.2013Разработка программы для визуализации результатов статистической обработки экспериментальных данных. График, визуализирующей зависимость температуры физического объекта от времени, регистрируемой датчиками на протяжении фиксированного промежутка времени.
курсовая работа [1,8 M], добавлен 18.09.2014Основы проверки и расчета входных данных и вывода выходных данных программы, их блок-схемы. Реализация функции считывания числовых данных из файла, управление (создание, уничтожение и редактирование) визуальными компонентами во время выполнения программы.
контрольная работа [1,3 M], добавлен 12.06.2009Технические характеристики пневматического перфоратора. Выявление зависимости скорости бурения от усилия подачи путем вычисления коэффициентов для квадратичной и кубической аппроксимации с помощью Microsoft Excel и программы, написанной на языке QBasic.
курсовая работа [1,1 M], добавлен 01.03.2012Построение эмпирических формул методом наименьших квадратов. Линеаризация экспоненциальной зависимости. Элементы теории корреляции. Расчет коэффициентов аппроксимации, детерминированности в Microsoft Excel. Построение графиков функций, линии тренда.
курсовая работа [590,9 K], добавлен 10.04.2014Оценка погрешности и точности в математике. Составление программы и алгоритма для численного дифференцирования с заданной допустимой погрешностью на алгоритмическом языке Turbo Pascal 7.0. Составление алгоритма и программы аппроксимации функции.
курсовая работа [810,6 K], добавлен 24.03.2012Описание мониторинга выбросов случайных процессов контролируемых параметров. Основные принципы обработки статистических данных в базисе аддитивной аппроксимации стандартными распределениями. Разработка методов аппроксимирующих вкладов значений выборки.
контрольная работа [308,2 K], добавлен 19.08.2015Разработка программы в Turbo C++ Explorer для вычислений геометрических данных фигуры. Атрибуты объекта и представление данных в программе. Подпрограмма создания набора данных. Реализация защиты и правильности ввода данных и дополнительных функции.
курсовая работа [5,9 M], добавлен 22.02.2014Разработка программы построения графика экспериментальных точек и полинома регрессии второй степени в среде Turbo Pascal. Блок-схемы алгоритмов используемых процедур. Листинг программы. Составление вектора свободных членов и матрицы коэффициентов.
курсовая работа [46,6 K], добавлен 24.11.2013Метод Гаусса и одно из его приложений в экономике (простейшая задача о рационе). Модель Леонтьева межотраслевого баланса. Алгебраический метод наименьших квадратов. Анализ данных эксперимента. Метод наименьших квадратов в Excel и аппроксимация данных.
курсовая работа [598,7 K], добавлен 11.07.2015