Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Углубленный курс информатики. Учебное пособие
.pdf
nnn n
pi
i
i
pi
pi
pi
SxSyS xSxy
=== =⋅
12 4
a
1
;;3; ;
iii ii
=== =
111 1
iii i
SS SS
−
a
n
ny
nn
ii
11
==
==
nx
ii
i
i
1
=
xxy
iii
⋅
n
1
i
=
nn
xx
ii
11
==
2
a
23 14
=
0
nS S
−
31
nnn
nxy xy
⋅⋅−⋅
iii
111
===
i
=
1
nx x
nS S S
−
412
nS S
−
31
2
;
2
()
ii i i
nn
⋅−
11
ii
==
2
22
()
ii
.
;
Пример 1. Дана табличная зависимость теплоемкости оксида углерода от температуры:
Т, К 300 400 500 600 700 800 900 1000
Сp, кДж/(моль*К) 6,97 7,01 7,12 7,28 7,45 7,62 7,79 7,93
Необходимо построить аппроксимирующий полином в виде
y = a
+ a1x.
0
Введем обозначения:
300
T
x
−
=
,
h
где h = 100, С
= y.
р
Для вычисления коэффициентов составим таблицу:
I Ti xi y
i
C
э
x
1 300 0 6,97 0 0 6,90 0,07
2 400 1 7,01 1 7,01 7,03 0,02
3 500 2 7,12 4 14,24 7,17 0,05
4 600 3 7,28 9 21,84 7,32 0,04
5 700 4 7,45 16 29,8 7,46 0,01
6 800 5 7,62 25 38,1 7,62 0,00
7 900 6 7,79 36 46,74 7,76 0,03
8 1000 7 7,93 49 55,51 7,91 0,02
28 59,17 140 213,24
2
x
⋅
yi
C
p
│C
p
– C
э
│
11

82859,17,
aa
⋅+ ⋅=
01
28 140 213,24.
aa
⋅+ ⋅=
01
59,17 28
213,24 140
a ==
0
828
6,884,
a ==
28 140
859,17
28 213,24
1
828
28 140
0,146;
Y = 6,884 + 0,146x;
300
T
6,884 0,146 6,445 0,146 10 ;
−
С T
=+ ⋅=+⋅
P
100
2
CT
6,445 0,146 10 .
=+⋅⋅
P
−
2
−
Разность между исходными данными и результатами расчета по
полученному выражению определяет погрешность аппроксимации. Выполненная проверка показала, что полученное уравнение (линейное) соответствует эксперименту. Если погрешность велика, то выбирают другой вид аппроксимирующего полинома.
Пример 2. Составить программу для расчета функции по методу
наименьших квадратов и определить значение в т. x = 1,5.
Исходные данные:
x 1 2 3 4
y 0 3 5 7
12

1.3.2. Квадратичная аппроксимация
y
x
x
x
x
x
x
Рассмотрим квадратичную аппроксимацию таблично заданной функции:
()
xy=
ii
2
()Pxaaxax=+ +
01 22
где i = 1…n – узлы аппроксимации, a
;
,
, a1, a2 – неизвестные коэффици-
0
енты аппроксимации.
Неизвестные коэффициенты аппроксимации определяются из условия минимума суммы квадратов разностей между этими значениями:
n
22
SPxy
(() ) min
=−→
=
i
1
ii
.
Для определения коэффициентов составляется система уравнений
из частных производных по коэффициентам аппроксимации:
∂
S
=−⋅ − +⋅+⋅+⋅ ⋅=
∂
a
0
∂
S
=−⋅ − +⋅+⋅+⋅ ⋅=
a
∂
1
S
∂
=−⋅ − +⋅+⋅+⋅ ⋅=
a
∂
2
Sx
=
1
i
n
S;
=
5
1
=
i
n
2(( ))10;
2(( )) 0;
2(( )) 0;
n
1
=
3
i
y a ax ax ax
1
=
i
n
y a ax ax ax x
1
=
i
n
y a ax ax ax x
=
1
i
;
S;
i
S;
6
01 2 2
iiii
01 2 2
iiiii
01 2 2
iiiii
n
y
=
2
1
=
i
n
=
i
2
ii
1
=
S;
=
i
y
3
S;
7
22
22
222
n
2
S;
=
i
1
=
i
n
=
1
=
i
4
4
S;
=
i
8
n
=
i
n
=
i
1
1
y
ii
3
y
ii
(1) ;
naSaSaS
+++ =
01132 2
Sa Sa Sa S
++ =
10 31 5 2 4
Sa Sa Sa S
++ =
30 51 7 2 6
13
;
.

D
+
D
D
D
D
1
nSS
SSS
det ;
=
135
13
SSS
213
det ;
SSS
=
1 435
SSS
357
=
1
nSS
SSS
det ;
=
2145
SSS
367
23
det ;
=
3134
a0 = D1/D; a1 = D2/D; a2 = D3/D; 0
Пример аппроксимации квадратичной функцией:
SSS
657
=
1
nSS
SSS
SSS
356
12
≠
14

Ответ: a0=6.93; a1=–0.0004; a2=0.000002; yy= 7.62
1.3.3. Аппроксимация показательной функцией
Показательная функция имеет следующий вид:
kx
y = ae
.
Приведем ее к линейному виду логарифмированием:
ln(y) = ln(a)+kx
= ln(y)
y
1
= ln(a)
a
0
= k
a
1
= a0 + a1x
y
1
После определения коэффициентов a
и a1 по методу наименьших
0
квадратовопределяется исходный коэффициент:
a
ae=
k = a
0
1
Пример аппроксимации показательной функцией:
15

Ответ: A = 6.534423; k = 0.000186; x1 = 750; y1 = 7.512068
1.3.4. Аппроксимация степенной функцией
Степенная функция имеет следующий вид:
y = ax
k
Приведем ее к линейному виду логарифмированием:
ln(y) = ln(a) + kln(x)
y
= ln(y)
1
= ln(a)
a
0
= ln(x)
x
1
= k
a
1
= a0 + a1x
y
1
1
После определения коэффициентов a0 и a1 по методу наименьших
квадратовопределяется исходный коэффициент:
a
ae=
k = a
0
1
Пример аппроксимации степенной функцией:
16

Ответ: A = 4.071222; k = 0.091957; x1 = 750; y1 = 7.483573
17

Вопросы для самоконтроля
1. Что такое интерполяция?
Что такое аппроксимация, для чего она нужна?
2.
Какие виды аппроксимирующих функций Вы знаете?
3.
По какому методу определяются коэффициенты аппроксимирую-
4.
щей функции?
В чем заключается сущность метода наименьших квадратов в об-
5.
щем виде?
18

2. ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ
x
2.1. Подпрограммы и модули при решении задач
химической технологии
2.1.1. Процедуры и функции
Подпрограмма и модуль являются самостоятельными программными единицами, имеющими имя и параметры. Модуль состоит из подпрограмм и используется для выполнения определенного действия,
стандартного или нестандартного. В главной программе делается сообщение об использовании модуля. Для этого используется специальное
зарезервированное слово USES. Процедуры и функции являются подпрограммами. Результат функции е присваивается
может содержать два результата и более.
Подпрограмма включает в себя описание действия, выполнение
которого происходит в основной программе после указания имени подпрограммы и фактических параметров. С использованием процедур и
функций любой алгоритм может быть разбит на части, то есть осуществляется декомпозиция задачи, что обеспечивает структурированность алгоритма. Модульная технологии программирования соответствует специфике химико-технологического производства. Химикотехнологический процесс состоит из аппаратов (реактор, аппарат разделения реакционной смесии, нагрева и охлаждения). Расчет химикотехнологических производств заключается в расчете параметров потоков в аппаратах с разными значениями входных переменных.
Описание подпрограмм заключается в указании заголовка и дей-
ствий. В заголовках процедур определяются имя и параметры, а в заголовках функций дополнительно указываются типы результатов, например integer. За заголовками следуют действия, которые подобно действиям в главной программе состоят из блоков описаний и блоков выполняемых операторов.
Заголовок подпрограммы имеет вид:
FUNCTION {имя} {
список формальных параметров }: {тип};
PROCEDURE {имя}{список формальных параметров};
Список формальных параметров представляется через запятую по
порядку следования.
Пример 3.1.1. Составить программу для расчета k:
2
k
ax x
=
lg
3
+⋅ +
210 1 2
+
3
()
ее имени. Процедура
a
−
1
x
,
19

оформить вычисления нестандартных функций подпрограммами.
При обращении к функции Power указывается имя и список
фактических параметров. Параметры функций при обращении к ней по
имени являются фактическими. Они заменяют формальные параметры
A и X по порядку следования. Количество и типы формальных и фактических параметров строго соответствуют друг другу.
Процедуры используются для описания действий, которые имеют
два и более результатов, а также в том случае, если результаты является
массивами.
Описание процедуры имеет вид:
Procedure <имя> (формальные параметры);
<раздел описаний>
label <список меток>;
const <список констант>;
type <список типов>;
var <список переменных>
Begin <тело процедуры> End;
Процедура помещается в основной программе в разделе описаний VAR.
Общая структура Программы, содержащей процедуры и функции:
Program PRO; // Заголовок Главной Программы
Var
{список глобальных переменных}
Procedure p1(формальные параметры);
var
{список переменных}
// Процедуры
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
