Полный факторный эксперимент
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
>
процедура вывода данных: значимость коэйициентов регресии.FillYExp;
процедура вывода данных: Y полученый по уравнению регрессии.FillFCritery;
процедура вывода данных: критерий Фишера.FillresultTables;
процедура объеденяющая вывод данных.
3. Инструкция пользователя
Для управления данным программным продуктом используется всего одна кнопка Произвести раiет, так как программа работает с заданными начальными условиями и данными.
Соответственно все результаты работы программы можно просмотреть через закладки.
Последующие рисунки дают полную наглядность программы, обеспечивающуюся благодаря графическому интерфейсу.
Рисунок 1
Рисунок 2
Рисунок 3
Рисунок 4
4. Результаты работы программы
Рисунок 5
Список литературы
1.А.Г. Бондарь, Г.А. Статюха. Планирование эксперимента в химической технологии. Вища школа. Киев 1976.
2.А.Г. Бондарь, Г.А. Статюха, И.А. Потяженко. Планирование эксперимента при оптимизации процессов химической технологии. Вища школа. Киев 1980.
.В.В. Кафаров. Методы кибернетики в химии и химической технологии.
Приложение
Листинг программы
;, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,, ComCtrls, Buttons, StdCtrls, Grids, Tabnotbk;= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;: TSpeedButton;: TTabbedNotebook;: TLabel;: TStringGrid;: TStringGrid;: TStringGrid;: TLabel;: TStringGrid;: TLabel;: TLabel;: TStringGrid;: TLabel;: TLabel;: TStringGrid;: TLabel;: TStringGrid;: TLabel;: TStatusBar;Exit1Click(Sender: TObject);SpeedButton1Click(Sender: TObject);FormCreate(Sender: TObject);
{ Private declarations }
{ Public declarations };: TFMain;ffe_typeconst;
{$R *.DFM}RandomNorm( mF, dF: real ): real;:= mF + dF * random;;CalculateX( level: byte ): real;: real;: real;: byte;:= 0;:= 0;planingMatrix[ i, level ] = 1 then:= u[ i, 2 ]:= u[ i, 1 ];:= xResult + p[ i ] * xU;i:= 1 to 3 doplaningMatrix[ i, level ] = 1 then:= u[ i, 2 ]:= u[ i, 1 ];:= xResult + p[ i ] * xU;:= xResult + p[ i ] * xU * xU;;:= xResult;;MakeExperiment;: real;, j: byte;i:= 1 to 8 do:= CalculateX( i );j:= 1 to 10 do[ i, j ]:= c1 * xValue + c2 * RandomNorm( mF, dF );;;CalculateYAverage;, j: byte;i:= 1 to 8 do[ i ]:= 0;j:= 1 to 10 do[ i ]:= yAverage[ i ] + expResult[ i, j ];[ i ]:= yAverage[ i ] / expNum;;;CalculateRegCoeficients;, j: byte;;i:= 0 to factorNum do[ i ]:= 0;j:= 1 to planeNum do[ i ]:= regCoeficient[ i ] + planingMatrix[ i, j ] * yAverage[ j ];[ i ]:= regCoeficient[ i ] / planeNum;;;CalculatedSu;, j: byte;i:= 1 to planeNum do[ i ]:= 0;j:= 1 to expNum do[ i ]:= dSu[ i ] + sqr( expResult[ i, j ] - yAverage[ i ] ) / ( expNum - 1 );;;FindMax: real;: byte;: real;:= 0;i:= 1 to planeNum dodSu[ i ] > fResult then:= dSu[ i ];:= fResult;;Check1D;: real;: byte;:= 0;i:= 1 to planeNum do:= dSum + dSu[ i ];:= FindMax / dSum;D:= false;G 2.26 then[ i ]:= true;;;CalculateL: byte;: byte;: byte;:= 0;i:= 0 to 6 dodecisionRegMean[ i ] then( xResult );:= xResult;;CalculateYExp;: real;, i: byte;level:= 1 to planeNum do:= 0;i:= 0 to 3 do:= xResult + regCoeficient[ i ] * planingMatrix[ i, level ];//xU;[ level ]:= xResult;;;CheckRegAd;: byte;;:= 0;i:= 1 to planeNum do:= dSad + sqr( yAverage[ i ] - yExpResult[ i ] );:= dSad * expNum / ( planeNum - CalculateL );:= dSad / dSo;:= false;fP < fisherCritery[ planeNum - CalculateL ] then:= true;regAd = false then( 'Ренресионная модельне адекватна' );;;FillPlaneMatrix;, j: byte;.SGridPlaneMatrix.Cells[ 0, 0 ]:= 'x0';.SGridPlaneMatrix.Cells[ 1, 0 ]:= 'x1';.SGridPlaneMatrix.Cells[ 2, 0 ]:= 'x2';.SGridPlaneMatrix.Cells[ 3, 0 ]:= 'x3';i:= 0 to factorNum doj:= 1 to planeNum do.SGridPlaneMatrix.Cells[ i, j ]:= FloatToStr( planingMatrix[ i, j ] );;FillExpMatrix;, j: byte;i:= 1 to expNum do.SGridY.Cells[ i, 0 ]:= IntToStr( i );i:= 1 to planeNum do.SGridY.Cells[ 0, i ]:= IntToStr( i );i:= 1 to expNum doj:= 1 to planeNum do.SGridY.Cells[ i, j ]:= FloatToStrF( expResult[ j, i ], ffFixed, 6, 3 );;FillYAverage;: byte;i:= 0 to 7 do.SGridYAverage.Cells[ i, 0 ]:= FloatToStrF( yAverage[ i + 1 ], ffFixed, 6, 3 );;FillRegCoeficient;: byte;i:= 0 to 3 do.SGridRegCoef.Cells[ i, 0 ]:= FloatToStrF( regCoeficient[ i + 1 ], ffFixed, 6, 3 );;FillDSu;: byte;i:= 0 to 9 do.SGridDSu.Cells[ i, 0 ]:= FloatToStrF( dSu[ i + 1 ], ffFixed, 6, 3 );;FillExpMistake;.LblExpMistake.Caption:= 'Ошибка опыта: ' + FloatToStr( dSo );;FillRegCoeficientCritery;: byte;i:= 0 to 3 dodecisionRegMean[ i ] then.SGridCritery.Cells[ i, 0 ]:= 'значим'.SGridCritery.Cells[ i, 0 ]:= 'не значим';FillYExp;: byte;i:= 0 to 7 do.SGridYExp.Cells[ i, 0 ]:= FloatToStrF( yExpResult[ i + 1 ], ffFixed, 6, 3 );;FillFCritery;.LblFCritery.Caption:= 'Критерий Фишера: ' + FloatToStr( fP );;FillresultTables;;;;;;;;;;;TFMain.Exit1Click(Sender: TObject);;;TFMain.SpeedButton1Click(Sender: TObject);;;;D;;;;;;;TFMain.FormCreate(Sender: TObject);;;.ffe_typeconst;: array[ 0..3, 1..8 ] of shortint =
( ( +1, +1, +1, +1, +1, +1, +1, +1 ),
( +1, +1, +1, +1, -1, -1, -1, -1 ),
( +1, +1, -1, -1, +1, +1, -1, -1 ),
( +1, -1, +1, -1, +1, -1, +1, -1 )
);: array[ 1..6 ] of real =
( 5.12, 4.26, 3.86, 3.63, 3.48, 3.37 );: array[ 0..3 ] of real = ( 1, 2, 0.5, -1 );: array[ 0..3, 1..2 ] of shortint =
( ( 1, 1 ),
( -5, 10 ),
( -7, 2 ),
( 2, 13 ) );: real = 0;: real = 0.8;: byte = 10;: byte = 8;: byte = 3;: real = 1.2;: real = -0.8;: array[ 1..8, 1..10 ] of real;: array[ 1..8 ] of real;: array[ 1..8 ] of real;: array[ 0..3 ] of real;: array[ 0..3 ] of real;: array[ 1..8 ] of real;: real;: real;: real;: real;: real;D: boolean;: boolean;: array[ 0..3 ] of boolean;.ffe;,in 'main.pas' {FMain},_typeconst in 'ffe_typeconst.pas';
{$R *.RES}.Initialize;.CreateForm(TFMain, FMain);.Run;.