Использование нечеткой искусственной нейронной сети TSK (Takagi, Sugeno, Kang’a) в задаче прогнозирования валютных курсов
Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.
| Рубрика | Программирование, компьютеры и кибернетика | 
| Вид | курсовая работа | 
| Язык | русский | 
| Дата добавления | 12.11.2010 | 
| Размер файла | 2,2 M | 
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Begin
SetSize(B,A.M,A.N);
for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j]+Value;
Result:=B;
End;
Function MulValue(const A:Matrix; Value:extended):Matrix; { домножение матрицы на число }
var
i,j : integer;
B : Matrix;
Begin
SetSize(B,A.M,A.N);
for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j]*Value;
Result:=B;
End;
Procedure DeleteRow(var A:Matrix; Row:integer); { удаление строки }
var
i : integer;
Begin
if (Row>=A.M) then Raise Exception.Create('Попытка удалить из матрицы несуществующую строку!');
SetLength(A.Data[Row],0);
for i:=Row+1 to A.M-1 do A.Data[i-1]:=A.Data[i];
SetLength(A.Data,A.M-1);
dec(A.M);
End;
Procedure DeleteCol(var A:Matrix; Col:integer); { удаление столбца }
var
i,j : integer;
Begin
if (Col>=A.N) then Raise Exception.Create('Попытка удалить из матрицы несуществующий столбец!');
for i:=0 to A.M-1 do begin
for j:=Col+1 to A.N-1 do A.Data[i,j-1]:=A.Data[i,j];
SetLength(A.Data[i],A.N-1);
end;
dec(A.N);
End;
Procedure DeleteCross(var A:Matrix; Row:integer); { удаление строки и столбца с заданным номером }
Begin
DeleteRow(A,Row);
DeleteCol(A,Row);
End;
Procedure InsertRow(var A:Matrix; Row:integer);
var
i : integer;
Begin
SetSize(A,A.M+1,A.N);
for i:=A.M-1 downto Row do A.Data[i+1]:=A.Data[i];
SetLength(A.Data[Row],A.N);
for i:=0 to A.N-1 do A.Data[Row,i]:=0;
End;
Procedure InsertCol(var A:Matrix; Col:integer);
var
i,j : integer;
Begin
SetSize(A,A.M,A.N+1);
for i:=0 to A.M-1 do begin
for j:=A.N-1 downto Col do A.Data[i,j+1]:=A.Data[i,j];
A.Data[i,Col]:=0;
end;
End;
Function MapMatrix(const A:Matrix; const Map:TMap):Matrix; { удаление заданных строк и столбцов }
var
i,j : integer;
B : Matrix;
CurValue : integer;
Begin
SetSize(B,A.M,A.N);
for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j];
for i:=0 to length(Map)-2 do begin
for j:=i to length(Map)-1 do if (Map[j]<Map[i]) then begin
CurValue:=Map[j];
Map[j]:=Map[i];
Map[i]:=CurValue;
end;
end;
for i:=length(Map)-1 downto 0 do DeleteRow(B,Map[i]);
for i:=length(Map)-1 downto 0 do DeleteCol(B,Map[i]);
Result:=B;
End;
Function MapVector(const A:Matrix; const Map:TMap):Matrix; { удаление заданных строк}
var
i,j : integer;
B : Matrix;
CurValue : integer;
Begin
SetSize(B,A.M,A.N);
for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j];
for i:=0 to length(Map)-2 do begin
for j:=i to length(Map)-1 do if (Map[j]<Map[i]) then begin
CurValue:=Map[j];
Map[j]:=Map[i];
Map[i]:=CurValue;
end;
end;
for i:=length(Map)-1 downto 0 do DeleteRow(B,Map[i]);
Result:=B;
End;
Function UnmapMatrix(const A:Matrix; const Map:TMap):Matrix; { восстановление матрицы до исходного размера}
var
i,j : integer;
B : Matrix;
CurValue : integer;
Begin
SetSize(B,A.M,A.N);
for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j];
for i:=0 to length(Map)-2 do begin
for j:=i to length(Map)-1 do if (Map[j]<Map[i]) then begin
CurValue:=Map[j];
Map[j]:=Map[i];
Map[i]:=CurValue;
end;
end;
for i:=0 to length(Map)-1 do InsertRow(B,Map[i]);
for i:=0 to length(Map)-1 do InsertCol(B,Map[i]);
Result:=B;
End;
Function UnmapVector(const A:Matrix; const Map:TMap):Matrix; { восстановление количества строк матрицы до исходного размера}
var
i,j : integer;
B : Matrix;
CurValue : integer;
Begin
SetSize(B,A.M,A.N);
for i:=0 to A.M-1 do for j:=0 to A.N-1 do B.Data[i,j]:=A.Data[i,j];
for i:=0 to length(Map)-2 do begin
for j:=i to length(Map)-1 do if (Map[j]<Map[i]) then begin
CurValue:=Map[j];
Map[j]:=Map[i];
Map[i]:=CurValue;
end;
end;
for i:=0 to length(Map)-1 do InsertRow(B,Map[i]);
Result:=B;
End;
Function SubMatrix(const A:Matrix; const MapX,MapY:TMap):Matrix; { выделение подматрицы, содержащей заданные столбцы и строки }
var
i,j : integer;
B : Matrix;
Begin
SetSize(B,Length(MapY),Length(MapX));
for i:=0 to length(MapY)-1 do begin
for j:=0 to length(MapX)-1 do B.Data[i,j]:=A.Data[MapY[i],MapX[j]];
end;
Result:=B;
End;
Function RangeMatrix(const A:Matrix; StartX,EndX,StartY,EndY:integer):Matrix; { выделение подматрицы, содержащей заданный диапазон столбцов и строк }
var
i,j : integer;
B : Matrix;
Begin
SetSize(B,EndY-StartY+1,EndX-StartX+1);
for i:=StartY to EndY do begin
for j:=StartX to EndX do B.Data[i-StartY,j-StartX]:=A.Data[i,j];
end;
Result:=B;
End;
Function Vectorize(const A:Matrix):Vector; { преобразование матрицы в вектор, расположенный в памяти последовательно }
var
i,j,k : integer;
V : Vector;
Begin
SetLength(V,A.M*A.N+2);
V[0]:=A.M;
V[1]:=A.N;
k:=2;
for i:=0 to A.M-1 do for j:=0 to A.N-1 do begin
V[k]:=A.Data[i,j];
inc(k);
end;
Result:=V;
End;
Function Unvectorize(const V:Vector):Matrix; { обратное преобразование: вектор в матрицу }
var
i,j,k : integer;
A : Matrix;
Begin
SetSize(A,trunc(V[0]),trunc(V[1]));
k:=2;
for i:=0 to A.M-1 do for j:=0 to A.N-1 do begin
A.Data[i,j]:=V[k];
inc(k);
end;
Result:=A;
End;
end.
Подобные документы
- Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов. 
 дипломная работа [1,5 M], добавлен 17.09.2013
- Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети. 
 курсовая работа [1,0 M], добавлен 05.01.2013
- Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала. 
 дипломная работа [2,7 M], добавлен 18.02.2017
- Математические модели, построенные по принципу организации и функционирования биологических нейронных сетей, их программные или аппаратные реализации. Разработка нейронной сети типа "многослойный персептрон" для прогнозирования выбора токарного станка. 
 курсовая работа [549,7 K], добавлен 03.03.2015
- Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом. 
 дипломная работа [2,6 M], добавлен 23.09.2013
- Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки. 
 курсовая работа [1019,5 K], добавлен 05.05.2015
- Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат. 
 дипломная работа [4,1 M], добавлен 25.02.2015
- Проект автоматизированной системы прогнозирования относительного курса валютных пар для международной валютной биржи Forex с использованием нейронных сетей. Требования к техническому обеспечению. Обоснование выбора средств автоматизации программы. 
 курсовая работа [1,3 M], добавлен 05.01.2013
- Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab. 
 лабораторная работа [1,1 M], добавлен 05.10.2010
- Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных. 
 презентация [387,5 K], добавлен 11.12.2015
