Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Томский политехнический университетСтр 1 из 2Следующая ⇒ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Институт/ Факультет – ЭНИН Направление – Энергетическое машиностроение Кафедра – ПГС и ПГУ
Построение функциональной зависимости по эмпирическим данным с использованием метода наименьших квадратов
Отчет по лабораторной работе №1 по дисциплине «Моделирование физических процессов»
Выполнил студент гр.5В02 ______ _________ И.Е.Корзилова Подпись Дата И.О.Фамилия
Проверил доцент кафедры ПГС ________ _______ А. Н. Субботин Подпись Дата И.О.Фамилия
Томск – 2013
1.Общие сведения
1.1 Аппроксимация функций Как правило, возникает необходимость после проведения лабораторных исследований представить экспериментальные результаты в виде аналитической зависимости, которая называется аппроксимирующей функцией. Допустим, мы имеем набор значений yi, xi. Такую зависимость можно построить, используя полиномы Ньютона или Эрмита, которые основаны на принципе прохождении кривой через все экспериментальные точки, но при такой зависимости в точках, не совпадающих с экспериментальными погрешности могут быть большими. Поэтому используется метод наименьших квадратов (МНК). Суть метода наименьших квадратов. 1) Аппроксимируемую функцию обозначают f(x), а экспериментальные значения yi, xi. 2) Вычисляем отклонения функции f(x) от yi, полученных в точках xi 3) В силу того что может быть как положительной так и отрицательной, то мы берём квадратичное отклонение . 4) Находим суммарное квадратичное отклонение (1). 5) Потребуем, чтобы Q было минимальным , k– число констант в описываемой функции.
2. Пример применения МНК
Рассмотрим теперь вопрос о том, как при использовании критерия наименьших квадратов получается система уравнений для определения функциональной зависимости f(X).
2.1. Квадратичная зависимость f(X) Напишем . Наша задача состоит в том, чтобы определить значения с1,с2,с3,при которых сумма Q(см. формулу 1) станет минимальной. Применяя метод наименьших квадратов (см. общие положение) получим:
Следует отметить, что этот метод можно использовать при выводе уравнений для многочленов любой степени, к которым желательно приблизить экспериментальную зависимость.
2.2 Программа на языке PASKAL применения МНК для квадратичной функции program Irina; Var X: array [1..100] of Real; Y: array [1..100] of Real; i,N: integer; a11,a12,a13,a23,a33,b1,b2,b3,d,c1,c2,c3,x1,x2: Real; DataFile: Text; Begin writeln ('Введите число эксперементальных точек N'); readln(N); writeln('ввидите координаты эксперементальных точек'); for i:= 1 to N do Begin readln (X[i], Y[i]); end; a11:=N;a12:=0;a13:=0;a23:=0;a33:=0; b1:=0;b2:=0;b3:=0; for i:= 1 to N do Begin a12:=a12+X[i];a13:=a13+Sqr(X[i]); a23:=a23+Sqr(X[i])*X[i];a33:=a33+Sqr(Sqr(X[i])); b1:=b1+Y[i];b2:=b2+X[i]*Y[i]; b3:=b3+Sqr(X[i])*Y[i]; end; d:=(a23*a11-a12*a13)/(a13*a11-a12*a12); c3:=((b1*a12-b2*a11)*d-b1*a13+b3*a11)/((a13*a12-a23*a11)*d-a13*a13+a33*a11); c2:=(b2*a11-b1*a12+c3*(a12*a13-a23*a11))/(a13*a11-a12*a12); c1:=(b1-a12*c2-a13*c3)/a11; writeln('c1=', c1:10:5,',c2=',c2:10:5,',c3=',c3:10:5); Assign(DataFile,'MnkRes.dat'); Rewrite(DataFile); for i:= 1 to N do writeln(DataFile,X[i]:10:5,Y[i]:10:5,c1+c2*X[1]+c3*Sqr(X[i]):10:5); Close(DataFile); writeln('ввидите значение х1'); Readln(x1); writeln ('при х=х1 у1=',c1+c2*X[1] +c3*Sqr(X1):10:5); writeln('ввидите значение х2'); Readln(x2); writeln ('при х=х2 у2=',c1+c2*X[2] +c3*Sqr(X2):10:5); end. 2.3 Обработка полученных результатов Пример расчета для квадратичной зависимости. Рассчитаем экспериментальное значение уноса кремневой кислоты в зависимости от давления с помощью программы написанной на языке PASKAL(см. пункт 3) и сравним полученные значения с заданными. Построим график зависимости. Таблица 1.Зависимость уноса кремневой кислоты от давления пар ТП-240
график 1–экспериментальная кривая график 2 –расчетная кривая Рисунок 1.Зависимость уноса кремниевой кислоты от давления котла ТП-240
2.4 Самостоятельная работа 20 вариант. Полученные данные растворимости Na2PO4 в котловой воде от температуры. Обобщите эти данные с помощью МНК для получения функциональной зависимости вида и определить значение растворимости К при Т=15 ОС и Т= 325 ОС. Решение: Введите число экспериментальных точек N: 8 введите координаты экспериментальных точек: 0 8 45 30 100 42 115 49 200 38 210 32 250 10 300 1 c1= 10.54476,c2= 0.49586, c3= -0.00183 введите значение х1 =15 при х=х1 у1= 17.57087 введите значение х2=325 при х=х2 у2= -21.64442 Таблица 2. Зависимость растворимости Na2PO4 в котловой воде от температуры.
1– экспериментальная кривая;2 – аппроксимированная кривая Рисунок 2 Зависимость растворимости Na2PO4 в котловой воде от температуры.
3. Пример применения МНК
Рассмотрим теперь вопрос о том, как при использовании критерия наименьших квадратов получается система уравнений для определения функциональной зависимости f(X).
3.1Степенная зависимость f(X) На практике при обработке экспериментальных данных с целью получения функциональной зависимости часто используют степенную функцию вида (например, зависимость теплофизических свойств газов от температуры или числа Нуссельта от критериев Рейнольдса и Прандтля). Непосредственное использование МНК приведет к нелинейным уравнениям, но это затруднение можно обойти, используя вместо экспериментальных уравнений их логарифмы Теперь мы стараемся сделать минимальной сумму квадратов разностей между логарифмами экспериментальных значений Y и логарифмами ординат функции . При этом получаем Дифференцируя по a и по b, придем к системе двух линейных уравнений с двумя неизвестными и b.
Перепишем данную систему в общепринятом виде: где d11 =N, d12 =d21 = , d22 = , z1 = , z2 = , , w = b Будем решать систему по правилу Крамера, согласно которому если определитель системы D не равен 0. После определения u и w находим Текст программы для проведения степенной функции как можно ближе к экспериментальным значениям (Xj,Yj, j=1,2,…,N) с помощью МНК представлен следующим образом. 3.1.2 Программа на языке PASKAL применения МНК для степенной функции program Mnk; Var {Координаты эксперементальных точек} X: array [1..100] of Real; Y: array [1..100] of Real; i,N:Integer; d11,d12,z1,d22,z2,d,u,w,x1,x2:Real; DataFile: Text; function Step(arg,s:real):real; begin if arg=0 then step:=0 else step:=Exp(s*Ln(arg)); end; Begin {ввод числа точек и их координата} Assign(DataFile,'Dan.dat'); Reset(DataFile); Readln(DataFile,N); For i:=1 to N do Readln(DataFile,X[i],Y[i]); Close(DataFile); {Расчет коэффициентов} d11:=N;d12:=0;z1:=0;d22:=0;z2:=0; For i:=1 to N do Begin d12:=d12+Ln(X[i]); d22:=d22+Sqr(Ln(X[i])); z1:=z1+Ln(Y[i]); z2:=z2+Ln(X[i])*Ln(Y[i]); end; d:=d11*d22-Sqr(d12);
|