Использование нечеткой искусственной нейронной сети 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
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности