some fixes

This commit is contained in:
pgirl111 2023-12-14 10:03:40 +04:00
parent 37e951cf33
commit 46db2e59cd
5 changed files with 20 additions and 19 deletions

View File

@ -1,8 +1,9 @@
# Лабораторная работа 1 # Лабораторная работа 1
Дисциплина "Вычислительная математика" Дисциплина "Вычислительная математика"
## Авторы: ## Авторы:
ПИбд-33 Борщевская ПИбд-33 Борщевская, Прыткина
### Вариант 7 ### Вариант 7
Имеется два вида корма P1 и P2, содержащие питательные вещества (витамины) S1, S2, S3. Необходимо составить дневной рацион, имеющий минимальную стоимость, в котором содержание каждого вида питательных веществ было бы не менее установленного предела.
Целевая функция: F = 4x+6y->min Целевая функция: F = 4x+6y->min
Ограничения: Ограничения:
1) 3x+y>=9 1) 3x+y>=9

View File

@ -0,0 +1,7 @@
package ru.uni.symplex_method;
public class SimplexException extends Exception {
public SimplexException(String error) {
super(error);
}
}

View File

@ -38,9 +38,9 @@ public class SimplexMatrix {
return currentRowCount; return currentRowCount;
} }
public void addRow(double[] coefficients) throws SymplexException { public void addRow(double[] coefficients) throws SimplexException {
if (isFill()) { if (isFill()) {
throw new SymplexException("Матрица уже заполнена!!!"); throw new SimplexException("Матрица уже заполнена!!!");
} }
matrix[currentRowCount] = coefficients; matrix[currentRowCount] = coefficients;
currentRowCount++; currentRowCount++;

View File

@ -70,7 +70,7 @@ public class SimplexService {
printMatrix(); printMatrix();
try { try {
doIter(); doIter();
} catch (SymplexException exception) { } catch (SimplexException exception) {
System.out.println("Произошла ошибка при выполнении: " + exception.getMessage()); System.out.println("Произошла ошибка при выполнении: " + exception.getMessage());
break; break;
} }
@ -91,17 +91,17 @@ public class SimplexService {
return Arrays.stream(matrix).allMatch(x -> x[0] >= 0); return Arrays.stream(matrix).allMatch(x -> x[0] >= 0);
} }
private void doIter() throws SymplexException { private void doIter() throws SimplexException {
var matrix = simplexMatrix.getMatrix(); var matrix = simplexMatrix.getMatrix();
// поиск разрешающей строки и столбца // поиск разрешающей строки и столбца
int indexRow = findRowIndex(matrix); int indexRow = findRowIndex(matrix);
if (indexRow == -1) { if (indexRow == -1) {
throw new SymplexException("Разрешающая строка не найдена"); throw new SimplexException("Разрешающая строка не найдена");
} }
var row = matrix[indexRow]; var row = matrix[indexRow];
int indexColumn = findColIndex(row); int indexColumn = findColIndex(row);
if (indexColumn == -1) { if (indexColumn == -1) {
throw new SymplexException("Разрешающий столбец не найден"); throw new SimplexException("Разрешающий столбец не найден");
} }
double element = row[indexColumn]; double element = row[indexColumn];

View File

@ -1,7 +0,0 @@
package ru.uni.symplex_method;
public class SymplexException extends Exception {
public SymplexException(String error) {
super(error);
}
}