Использование нечеткой искусственной нейронной сети TSK (Takagi, Sugeno, Kang’a) в задаче прогнозирования валютных курсов

27.2098 27.9647 -0.7549 27.8895 -0.6797

27.3991 27.2589 0.1402 27.9709 -0.5718

27.7549 27.3694 0.3855 27.1890 0.5659

27.2280 27.7866 -0.5586 27.4531 -0.2251

27.9749 27.2407 0.7342 27.7730 0.2019

28.0640 27.9336 0.1304 27.2229 0.8411

28.7574 28.1083 0.6491 28.0096 0.7478

28.2074 28.7240 -0.5166 28.0310 0.1764

28.2438 28.2328 0.0110 28.7503 -0.5065

28.3721 28.1

973 0.1748 28.1895 0.1826

28.3514 28.3919 -0.0405 28.2402 0.1112

28.9328 28.3557 0.5771 28.3612 0.5716

28.9594 28.9200 0.0394 28.3353 0.6241

29.0392 28.9795 0.0597 28.9474 0.0918

28.3951 29.0165 -0.6214 28.9378 -0.5427

28.8022 28.4034 0.3988 29.0344 -0.2322

28.8345 28.7721 0.0624 28.3861 0.4484

28.9675 28.8730 0.0945 28.8077 0.1598

29.5156 28.9524 0.5632 28.8204 0.6952

30.2278 29.5114 0.7164 28.9714 1.2564

30.0163 30.2327 -0.2164 29.5233 0.4930

30.0846 30.0216 0.0630 30.1985 -0.1139

30.4830 30.0477 0.4353 29.9897 0.4933

29.8649 30.4873 -0.6224 30.0806 -0.2157

30.3308 29.8838 0.4470 30.4582 -0.1274

30.0762 30.2883 -0.2121 29.8354 0.2408

30.2365 30.1185 0.1180 30.3554 -0.1189

30.8580 30.2089 0.6491 30.0552 0.8028

30.6614 30.8650 -0.2036 30.2410 0.4204

30.5844 30.6793 -0.0949 30.8639 -0.2795

31.1065 30.5541 0.5524 30.6314 0.4751

31.4369 31.1040 0.3329 30.5948 0.8421

31.3143 31.4542 -0.1399 31.0978 0.2165

31.4791 31.3069 0.1722 31.4058 0.0733

31.4058 31.4590 -0.0532 31.3088 0.0970

31.6801 31.4165 0.2636 31.4785 0.2016

31.7325 31.6681 0.0644 31.3829 0.3496

32.0790 31.7438 0.3352 31.6750 0.4040

32.3305 32.0660 0.2645 31.7249 0.6056

32.5779 32.3367 0.2412 32.0734 0.5045

32.5723 32.5699 0.0024 32.3177 0.2546

33.7905 32.5703 1.2202 32.5613 1.2292

34.3755 33.7654 0.6101 32.5583 1.8172

35.1092 34.4098 0.6994 33.7782 1.3310

35.1681 35.0729 0.0952 34.3259 0.8422

36.2071 35.1673 1.0398 35.0818 1.1253

36.1219 36.1668 -0.0449 35.1289 0.9930

36.2668 36.1547 0.1121 36.1652 0.1016

36.8864 36.2215 0.6649 36.0635 0.8229

36.3872 36.8851 -0.4979 36.2481 0.1391

36.8653 36.4090 0.4563 36.8680 -0.0027

37.2193 36.8180 0.4013 36.3402 0.8791

37.0266 37.2496 -0.2230 36.8814 0.1452

36.7194 37.0234 -0.3040 37.1931 -0.4737

37.2455 36.7018 0.5437 37.0038 0.2417

38.4723 37.2354 1.2369 36.7328 1.7395

39.6802 38.4878 1.1924 37.2391 2.4411

39.6877 38.4484

38.4399

39.6406

Приложение 2

Текст программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

OpenData: TOpenDialog;

OpenNNS: TOpenDialog;

SaveData: TSaveDialog;

SaveNNS: TSaveDialog;

StringGrid1: TStringGrid;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Edit1: TEdit;

Label7: TLabel;

Edit2: TEdit;

Label8: TLabel;

Label9: TLabel;

Edit3: TEdit;

Edit4: TEdit;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormResize(Sender: TObject);

procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);

procedure StringGrid1GetEditText(Sender: TObject; ACol, ARow: Integer;

var Value: String);

procedure Button4Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const nns=54321;

mM=20;

mN=20;

u=0.8;

v=1.25;

var

Form1: TForm1;

s1: string;

i,j,k,n,m,OnSettings:integer;//m - количество правил

a,ap,ap3: array[1 2000]of real;

f,f1,f2,f3,f4:TextFile;

t,Nst,Nac,Neps,Nrp:integer;

w3,w: array[1 20]of real;

sign:array[1 20] of integer;

c:array[1 20]of real;

h:array[1 250,1 mM]of real;

myu0,myu03:array[1 mM]of real;//пересечение правил

myu,myu3,cen,cen3,b,b3:array[1 mM,1 mN]of real; // нелинейные параметры

sigma,sigma3:array[1 mM,1 mN]of real; // нелинейные параметры

// b:array[1 mM,1 mN]of real; // нелинейные параметры

gc,gs,gb:real;//шаг градиентного спуска

p,p3:array[1 mM,0 mN]of real; // Линейные параметры

input,output:array[1 20]of real;

eps,skoS,sko3S,skoP,sko3P,ms,mp,ms3,mp3,sappS,sapp3S,sappP,sapp3p:real;

fname:string;

nnit:longint;

implementation

uses Unit2, Unit3, Unit4, matrices;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

//загрузить данные

var i:integer;

s:string;

begin

for i:=1 to n+10 do

begin

StringGrid1.cells[0,i]:='';

StringGrid1.cells[1,i]:='';

StringGrid1.cells[2,i]:='';

StringGrid1.cells[3,i]:='';

StringGrid1.cells[4,i]:='';

end;

OpenData.InitialDir:='D:\CW';

OpenData.DefaultExt:='txt';

if OpenData.Execute then

begin

s:=OpenData.FileName;

StringGrid1.RowCount:=1;

for i:=1 to n do

begin

StringGrid1.cells[0,i]:='';

end;

fname:=s;

AssignFile(f1,s);

reset(f1);

readln(f1,n);

nst:=trunc(n/10);

StringGrid1.RowCount:=0;

for i:=1 to n do

begin

readln(f1,s);

{ str(a[i]:8:4,s);}

for j:=1 to length(s) do

if(s[j]='.') or(s[j]=',')then s[j]:=decimalseparator;

StringGrid1.Cells[0,i]:=s;

StringGrid1.RowCount:=StringGrid1.RowCount+1;

a[i]:=strToFloat(s);

end;

StringGrid1.RowCount:=StringGrid1.RowCount+10;

StringGrid1.LeftCol:=0;

StringGrid1.TopRow:=1;

if n-10>0 then

StringGrid1.TopRow:=n-10;

CloseFile(f1);

end;

end;//Загрузить данные (Конец)

procedure TForm1.Button2Click(Sender: TObject);//Загрузить нейросеть

var nn:integer;

begin

OpenNNS.InitialDir:='D:\CW';

OpenNNS.DefaultExt:='nns';

if OpenNNS.Execute then

begin

s:=OpenNNS.FileName;

AssignFile(f1,s);

reset(f1);

readln(f1,nn);

if nn<>nns then

begin

messagedlg('Ошибка ввода начальных данных!',mtError,[mbOk],0);

end

else

begin

readln(f1,nac);

readln(f1,m);

for i:=1 to m do

for j:=1 to nac do

readln(f1,cen[i,j]);

for i:=1 to m do

for j:=1 to nac do

readln(f1,sigma[i,j]);

for i:=1 to m do

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 
 16  17  18  19  20  21  22  23  24  25  26  27 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы