Пример #1
0
void
train_network(int num)
{
    int i, h, o;
    unsigned int n;


    for(n = 0; n < num; n++) {

        init_pattern();
        calculate_network();
        calculate_errors();
    
        for(h=0; h < NUM_HIDDEN; h++)
            for(o=0; o < NUM_OUTPUT; o++)
                W_HIDDEN_OUT(h, o) += (((learn * N_HIDDEN(h)) / 1024) * E_OUT(o)) / 1024;

        for(i=0; i < NUM_INPUT; i++)
            for(h=0; h < NUM_HIDDEN; h++)
                W_IN_HIDDEN(i, h) += (((learn * N_IN(i)) / 1024) * E_HIDDEN(h)) / 1024;

    }

    return;
}
Пример #2
0
int main(int argc, char const *argv[])
{

	printf("Sigma: %f\n", SIGMA);
	if (SIGMA > 0.5	) 
	{
		printf("Sigma must be not greater than 0.5 \n");
		exit(1);
	}

	double** numerical_result = calculate_numerical_result();

	double** exact_result = calculate_exact_result();
	double** errors = calculate_errors(numerical_result, exact_result);
	double avg = calculate_average_error(errors);

	printf("\nNUMERICAL\n\n\n");
	// print_matrix(numerical_result, T_GRID_SIZE, X_GRID_SIZE);

	printf("\nEXACT\n\n\n");
	// print_matrix(exact_result, T_GRID_SIZE, X_GRID_SIZE);

	printf("\nERRORS\n\n\n");
	// print_matrix(errors, T_GRID_SIZE, X_GRID_SIZE);

	printf("\nAVERAGE ERROR: %lf\n\n", avg);

	free_matrix(&numerical_result, T_GRID_SIZE);
	free_matrix(&exact_result, T_GRID_SIZE);
	free_matrix(&errors, T_GRID_SIZE);

	return 0;

}