Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Углубленный курс информатики. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]