void Max::init() { int i, j; func = 0; sv = new double *[num_l]; for (int i(0); i < num_l; i++) { if (sign[i]==2) { fm[i] *= -1; for (int j(0); j < num_v; j++) { system[i][j] = system[i][j] * -1; } } } for (i = 0; i < num_l; i++) sv[i] = new double [num_v + num_l]; for (i = 0; i < num_l; i++) { for (j = 0; j < num_v; j++) sv[i][j] = system[i][j]; for (; j < num_v + num_l; j++) if (i + num_v == j) sv[i][j] = 1; else sv[i][j] = 0; } istr = new double [num_v + num_l]; bv = new double *[num_l]; for (i = 0; i < num_l; i++) { bv[i] = new double [2]; bv[i][0] = i + num_v; bv[i][1] = fm[i]; } for (i = 0; i < num_v + num_l; i++) if (i < num_v) istr[i] = function[i] * -1; else istr[i] = 0; th = new double [num_l]; alm = findalm(); // cout << "Ведущий елемент:" << alm << " .Ведущая строка: " << i_lrow << "Ведущий столбец: " << i_lcol << endl; print_result_to_file(0); }
SBMLSIM_EXPORT void write_csv(myResult* result, const char* file) { char delimiter = ','; print_result_to_file(result, file, delimiter); }
void Max::gen_plane() { cout << "get plane вызов" << endl; int i, j, it_num = 0; double A, B; while (!plane_is_valid() && function_is_undefined()) { A = bv[i_lrow][1]; B = istr[i_lcol]; func -= A * B / alm; double *tmp_bv = new double [num_l]; bv [i_lrow][0] = i_lcol; A = bv[i_lrow][1]; for (i = 0; i < num_l; i++) { B = sv[i][i_lcol]; tmp_bv[i] = bv[i_lrow][1]; if (i != i_lrow) tmp_bv[i] = bv[i][1] - A * B / alm; else tmp_bv[i] /= alm; } for (i = 0; i < num_l; i++) bv[i][1] = tmp_bv[i]; double *tmp_istr = istr; B = istr[i_lcol]; for (i = 0; i < num_v + num_l; i++) { A = sv[i_lrow][i]; tmp_istr[i] = istr[i] - A * B / alm; } istr = tmp_istr; double **tmp_sv = new double *[num_l]; for (i = 0; i < num_l; i++) tmp_sv[i] = new double [num_v + num_l]; for (i = 0; i < num_l; i++) for (j = 0; j < num_v + num_l; j++) { tmp_sv[i][j] = sv[i][j]; A = sv[i_lrow][j]; B = sv[i][i_lcol]; if (i == i_lrow) tmp_sv[i][j] /= alm; else tmp_sv[i][j] = sv[i][j] - A * B / alm; } tmp_sv[i_lrow][i_lcol] = 1/alm; sv = tmp_sv; alm = findalm(); cout << "Ведущий елемент:" << alm << " .Ведущая строка: " << i_lrow << ". Ведущий столбец: " << i_lcol << endl; it_num++; print_result_to_file(it_num); } if (!function_is_undefined()) cout << "\nЦелевая фукнция не ограничена, данная задача решений не имеет\n" << endl; else { cout << "\nf(x) = " << func << "\n" << endl; cout << "\nВсе вычисления были записаны в файл max.txt\n" << endl; } }