Компьютерное моделирование. Лабораторный практикум. Алтаев А.А - 28 стр.

UptoLike

Составители: 

55
отметим, что и полиномиальная кривая при ее
экстраполяции вправо (за пределы экспериментального
окна) приводит к увеличению значения средней длины, что
тоже неверно.
Проведем расчеты с помощью программы nm.pas.
Учитывая, что полученные с помощью Excel функции
плохо описывают поведение исследуемой величины в
последней четверти экспериментального окна, выберем в
качестве целевой функцию (5.2). Добавим проверку
функции отклика на неотрицательность - если указанное
условие будет нарушено, то значение функции отклика
будет увеличиваться в 10 раз, что приведет к возрастанию
целевой функции. Проверим на пригодность в качестве
аппроксимирующего уравнения несколько измененную
версию гиперболической зависимости:
xb
b
by
+
+=
2
1
0
const
ur=5;
fact:array[1..ur] of
real=(7,8,9,10,11);
funct:array[1..ur] of
real=(11,5,2,1,0);
{Вычисление целевой функции}
procedure functmin(var z:real; b:vect1);
var i:integer;
y_theor,y_theor1:real;
begin
tev:=tev+1;
z:=0;
for i:=1 to ur do
begin
y_theor:=b[1]+b[2]/(b[3]+fact[i]);
if y_theor<0 then y_theor1:=y_theor*10
else y_theor1:=y_theor;
56
z:=z+sqr((funct[i]-y_theor1)/y_theor);
end;
z:=sqrt(z/ur)
end;
Результаты пяти прогонов сведены в таблицу 5.2.
Таблица 5.2
Исходные данные Результат
Номер
прогона
b
0
b
1
b
2
Размер
многогран
ника
b
0
b
1
b
2
Значение
целевой
функции
1 1 1 1 1 -1,04 7,70 -6,45 0,471
2 3 3 3 3 -7,78 58,32 -3,50 0,484
3 -5 35 -5 1 -2,95 16,35 -5,84 0,451
4 -3 10 -5 2 -2,66 14,72 -5,96 0,451
5 -6 40 1 1 -5,51 34,35 -4,77 0,463
Анализ показывает, что наблюдается довольно
большой разброс значений коэффициентов. Выберем третий
вариант:
84,5
35,16
95,2
+=
x
y . Отметим, что экстраполяция
по этой формуле также ведет к ошибочным результатам: за
правую границу экспериментального окна дает
отрицательные значения, а за левой границей функция
стремится к бесконечности при x 5,84. Данный пример
показывает, что регрессионные уравнения применимы
только в пределах экспериментального окна, в рамках
которого они получены, а экстраполяция допустима лишь
на небольшое расстояние.
Второй проверенной формулой стала
логарифмическая зависимость
()
xbbby +
+
=
210
ln
,
приведшая к результатам
b
0
= 25,33, b
1
= -12,03 и b
2
= -2,78
при значении целевой функции 0,536
. На рисунке 5.5
отметим, что и полиномиальная кривая при ее                           z:=z+sqr((funct[i]-y_theor1)/y_theor);
экстраполяции вправо (за пределы экспериментального                   end;
окна) приводит к увеличению значения средней длины, что              z:=sqrt(z/ur)
тоже неверно.                                                        end;
       Проведем расчеты с помощью программы nm.pas.
Учитывая, что полученные с помощью Excel функции                          Результаты пяти прогонов сведены в таблицу 5.2.
плохо описывают поведение исследуемой величины в                                                             Таблица 5.2
последней четверти экспериментального окна, выберем в                 Исходные данные                           Результат
качестве целевой функцию (5.2). Добавим проверку




                                                           прогона




                                                                                      многогран
                                                            Номер
                                                                                                                            Значение




                                                                                       Размер
функции отклика на неотрицательность - если указанное




                                                                                        ника
                                                                     b0     b1   b2                b0      b1       b2       целевой
условие будет нарушено, то значение функции отклика                                                                         функции
будет увеличиваться в 10 раз, что приведет к возрастанию
целевой функции. Проверим на пригодность в качестве          1       1       1    1      1        -1,04   7,70     -6,45     0,471
                                                             2       3       3    3      3        -7,78   58,32    -3,50     0,484
аппроксимирующего уравнения несколько измененную
                                                             3       -5     35   -5      1        -2,95   16,35    -5,84     0,451
                                               b             4       -3     10   -5      2        -2,66   14,72    -5,96     0,451
версию гиперболической зависимости: y = b0 + 1
                                             b2 + x          5       -6     40   1       1        -5,51   34,35    -4,77     0,463
const
        ur=5;                                                      Анализ показывает, что наблюдается довольно
        fact:array[1..ur]                             of    большой разброс значений коэффициентов. Выберем третий
real=(7,8,9,10,11);                                                               16,35
                                                            вариант: y = −2,95 +          . Отметим, что экстраполяция
        funct:array[1..ur]                            of                         x − 5,84
real=(11,5,2,1,0);                                          по этой формуле также ведет к ошибочным результатам: за
 {Вычисление целевой функции}                               правую    границу       экспериментального     окна   дает
 procedure functmin(var z:real; b:vect1);                   отрицательные значения, а за левой границей функция
    var i:integer;                                          стремится к бесконечности при x → 5,84. Данный пример
         y_theor,y_theor1:real;                             показывает, что регрессионные уравнения применимы
    begin                                                   только в пределах экспериментального окна, в рамках
    tev:=tev+1;                                             которого они получены, а экстраполяция допустима лишь
    z:=0;                                                   на небольшое расстояние.
    for i:=1 to ur do
     begin                                                        Второй      проверенной         формулой           стала
     y_theor:=b[1]+b[2]/(b[3]+fact[i]);                     логарифмическая      зависимость        y = b0 + b1 ln(b2 + x ) ,
     if y_theor<0 then y_theor1:=y_theor*10
                                                            приведшая к результатам b0 = 25,33, b1 = -12,03 и b2 = -2,78
       else y_theor1:=y_theor;
                                                            при значении целевой функции 0,536. На рисунке 5.5

                          55                                                                         56