Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет 1 лаба.Моделирование....docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
62.09 Кб
Скачать

2.3 Обработка полученных результатов

Пример расчета для квадратичной зависимости.

Рассчитаем экспериментальное значение уноса кремневой кислоты в зависимости от давления с помощью программы написанной на языке PASKAL(см. пункт 3) и сравним полученные значения с заданными. Построим график зависимости.

Таблица 1.Зависимость уноса кремневой кислоты от давления пар ТП-240

№ эксперимента

Давление Р МПа

Унос кремневой кислоты расчет.Ky%

Унос кремневой кислоты эксперемент.Ky %

1

10

1

1,19

2

11

1,1

1,00

3

12

1,2

1,08

4

13

1,5

1,41

5

14

2,1

2,0

6

15

2,8

2,86

7

16

3,8

3,97

8

17

5,2

5,35

9

18

7

6,98

10

19

9

8,87

1

2

график 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 в котловой воде от температуры.

N

1

2

3

4

5

6

7

8

T, 0C

0

45

100

115

200

210

250

300

К, г/(м2ч)

8

30

42

49

30

32

10

1

Кэкс, г/(м ч)

10,55

29,15

41,83

43,36

36,40

33,95

20,11

-5,4

1

2

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);

if d<>0 then

begin

u:=(z1*d22-z2*d12)/d;

w:=(z2*d11-z1*d12)/d;

end

else begin

writeln('Система не имеет решений');

exit

end;

{выдача на экран полученных значений}

writeln('A=',Exp (u):10:5,'B=',w:10:5);

{вывод данных в файл,'Res.dat'}

Assign(DataFile,'Res.dat');

Rewrite(DataFile);

For i:=1 to N do

writeln(DataFile,X[i]:10:5,Y[i]:10:5,Exp(u)*Step(X[i],w):10:5);

Close(DataFile);

writeln('ввидите значение х1');

Readln(x1);

writeln ('при х=х1 у1=',Exp(u)*Step(X1,w):10:5);

writeln('ввидите значение х2');

Readln(x2);

writeln ('при х=х2 у2=',Exp(u)*Step(X2,w):10:5);

end.