Fala galera. Tô fazendo um programa que no final tem que “e1” e “e2” igual 0. Para isso fiz um looping com diversas expressões. Bem, ele faz a primeira volta no looping tranquila, mas quando ele volta ele usa os mesmo valores que eu determinei no começo. Eu queria ,que após fazer o prmiero looping, os valores que o “ndwh” recebeu fossem passados para “wt” , no começo do outro looping. Também gostaria que “ndw0h” fizesse a mesma coisa, só que o “w0” recebesse o valor. Como Faço isso??
Vlw galera
[code]
imports…
public class Neural2{
public static void main(String[] args){
double[] t = {1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0};
double[] h = {1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1};
double[] wt = {0.1, 0.2, 0.2, 0.2, 0.1, 0.1, 0.2, 0.2, 0.2, 0.1, 0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1, 0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.1};
double[] dwt = new double[25];
double[] ndwt = new double[25];
double[] wh = new double[25];
double[] dwh = new double[25];
double[] ndwh = new double[25];
double n = 0.2, w0 = 0.1, netj = 0, e1, e2, dw0t, dw0h, ndw0t, ndw0h;
int cnt = 0, y = 0, d;
do{
for(int i = 0; i<=24; i++)
{
wt[i] = ndwh[i];
}
//PRIMEIRA ENTRADA.....................................................
d = 1;
// cálculo do netj
for(int i = 0; i <= 24; i++)
{
netj += t[i]*wt[i];
}
netj += 1*w0;
//cálculo da saída y
if (netj >=0)
y = 1;
else
y = 0;
//cáculo do erro
e1 = d - y;
//cálculo das variações
for(int i = 0; i <= 24; i++)
{
dwt[i] = n * e1 * t[i];
}
dw0t = n * e1 * 1;
//cálculo dos novos pesos
for(int i = 0; i<= 24; i++)
{
ndwt[i] = dwt[i] + wt[i];
}
ndw0t = dw0t + w0;
// SEGUNDA ENTRADA......................................................................................
d = 0;
netj = 0 ;
for (int i =0; i<= 24; i++)
{
wh[i] = ndwt[i];
}
w0 = ndw0t;
// cálculo do netj
for(int i = 0; i<=24; i++)
{
netj += wh[i]*h[i];
}
netj += 1*w0;
//cálculo da saída y
if (netj >=0)
y = 1;
else
y = 0;
//cáculo do erro
e2 = d - y;
//cálculo das variações
for(int i = 0; i <= 24; i++)
{
dwh[i] = n * e2 * h[i];
}
dw0h = n * e2 * 1;
//cálculo dos novos pesos
for(int i = 0; i<= 24; i++)
{
ndwh[i] = dwh[i] + wh[i];
}
ndw0h = dw0h + w0;
cnt +=1;
}while((e1 != 0)||(e2 != 0));
System.out.println("Numero de ciclos " +cnt );
}
}[/code]