3.3. Построение нелинейных сглаживающих кривых

3.3.1 Экспоненциальная зависимость

Покажем, как построить модель в случае, когда уравнение регрессии не является линейным.

Пример 3.1.В таблице приведены данные по конверсии пропана в зависимости от времени работы катализатора.


t, час

5

10

15

20

25

30

66,1

60

53,5

48,4

44,3

42,3

Аппроксимировать экспериментальные данные экспоненциальной зависимостью:, где α - показатель активности катализатора.

Решение. Представим уравнение в виде: . Прологарифмируем обе части уравнения lny=lnc1-c2x. Обозначим a=lnc1; b=-c2.

Запишем систему нормальных уравнений для поиска a и  b.

Здесь х – это t,  y – это Х. Для поиска соответствующих сумм составим таблицу


x

y

ln y

xln y

x2

5

66,1

4,191168747

20,9558

25

10

60

4,094344562

40,9434

100

15

53,5

3,979681654

59,6952

225

20

48,4

3,879499814

77,59

400

25

44,3

3,790984677

94,7746

625

30

42,3

3,744787086

112,344

900

105

23,68046654

406,303

2275



Получим:

Решив ее в Excel, и учитывая то, что с1=еa, ac2=-b, получим:

a

b

4,2709614

-0,01852668

Левая часть

Правая часть

23,680467

23,680467

406,30274

406,30274

с1

71,59042982

с2

0,018526685

Окончательно имеем:

Программа в среде Scilab:

clc

clf()

function y=f(x)

y=a*exp(b*x);

  endfunction

x=[5:5:30];

y=[66.1 60 53.5 48.4 44.3 42.3];

n=length(x);

НЕ нашли? Не то? Что вы ищете?

b=(sum(x)*sum(log(y))-n* sum(x.*log(y)))/(sum(x)^2-n*sum(x.^2))

a=exp((sum(log(y))-b*sum(x))/n)

printf("a=%3.5f ", a)

printf("b=%3.5f", b)

disp("")

plot2d(x, y,-4)

t=min(x)-.1:.01:max(x)+.1;plot2d(t, f(t))

for i=1:n

  printf("y=%2.3f %2.3f", y(i),f(x(i)))

  disp("")

end

err=sum((y-f(x)).^2)

printf("err=%3.5f", err)

a=71.59043 b=-0.01853

y=66.100 65.257

y=60.000 59.483

y=53.500 54.221

y=48.400 49.424

y=44.300 45.051

y=42.300 41.065

err= 4.6339751 

Здесь  a и b  - искомые коэффициенты, далее напечатаны табличные  значения (y) и - через пробел - значение модельной функции в тех же узлах таблицы, последнее число - err – сумма площадей квадратов отклонений. Ниже приведен график полученной кривой.

Программа с использованием функции Scilabdatafitвыглядит так:

clc

clf()

x=[5:5:30];y=[66.1 60 53.5 48.4 44.3 42.3];

function [zr]=F(c, z)

zr=z(2)-(c(1)*exp(z(1)*c(2)))

endfunction

z=[x;y];

c=[0;0];

[d, S]=datafit(F, z,c)

printf("d1=%3.5f d2=%3.5f ",d(1), d(2))

printf("S=%3.5f", S)

t=min(x)-.1:.01:max(x)+.1;

Yt=d(1)*exp(t*d(2));

plot2d(x, y,-3);

plot2d(t, Yt);

Результаты:

d1=72.14244 d2=-0.01899 S=4.37579

В этой программе  z(1) – это х, z(2) – это y (то есть zr -  это невязки, то есть разности между экспериментальными и модельными данными), S - сумма площадей квадратов отклонений, - вектор d – искомые коэффициенты. Результаты несколько отличаются от приведенных выше. График аналогичен предыдущему, поэтому его мы не приводим. 

Надо отметить, что функция datafit крайне чувствительна к начальному приближению (вектор-столбец с).

Проверим адекватность полученной модели.

x

y

(y-Y)2

(y-y cp)2

5

66,1

65,25655

0,71141

186,77778

10

60

59,48305

0,26724

57,254444

15

53,5

54,22036

0,51891

1,1377778

20

48,4

49,42327

1,04709

16,267778

25

44,3

45,05060

0,56341

66,151111

30

42,3

41,06480

1,52571

102,68444

сумма

4,63376

430,2733

y cp

52,43333

R2

0,98923


Построив график функции с добавленной к нему линией экспоненциального тренда, получим:

Проверим гипотезу об адекватности полученной сглаживающей прямой исходным данным по критерию Фишера при уровне значимости б=0,05.

Для этого вычислим статистику

Здесь R2 – коэффициент детерминации. По числу степеней свободы k1=1 и k2=n-2 найдем критическое значение Fкрс помощью статистической функции F. ОБР. ПХ (Microsoft Excel 2010, 2016)

Fкр= 7,708647422

Так как Fвыб>Fкр, делаем вывод о том, что полученное уравнение экспоненциальной регрессии  статистически значимо описывает результаты эксперимента.

3.3.2. Метод средних точек для определения формы

регрессионной кривой

Одним из способов, который может помочь в выборе вида уравнений регрессии из нескольких имеющихся альтернатив, является метод средних точек. Суть его состоит в следующем.

Пусть в результате проведения эксперимента получена таблица:


x

x1

xn

y

y1

yn

В этой таблице х упорядочены по возрастанию, то естьx1≤ x2≤ …≤xn.

По экспериментальным данным строим график, соединяя соседние точки отрезками прямых.

На втором этапе необходимо выбрать формулу, которая могла бы описать экспериментальные данные. Во втором столбце таблицы 3.1 приведены некоторые типовые формулы, наиболее часто встречающиеся в задачах химии и химической технологии.

Таблица 3.1


Формула

Средние точки

1

2

3

4

5

6


Здесь х1,y1 – первая, а хn, yn – последняя точки исходной таблицы.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4