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
Дисциплина "Вычислительная математика"
## Авторы:
ПИбд-33 Борщевская
ПИбд-33 Борщевская, Прыткина
### Вариант 7
Имеется два вида корма P1 и P2, содержащие питательные вещества (витамины) S1, S2, S3. Необходимо составить дневной рацион, имеющий минимальную стоимость, в котором содержание каждого вида питательных веществ было бы не менее установленного предела.
Целевая функция: F = 4x+6y->min
Ограничения:
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;
}
public void addRow(double[] coefficients) throws SymplexException {
public void addRow(double[] coefficients) throws SimplexException {
if (isFill()) {
throw new SymplexException("Матрица уже заполнена!!!");
throw new SimplexException("Матрица уже заполнена!!!");
}
matrix[currentRowCount] = coefficients;
currentRowCount++;
@ -63,13 +63,13 @@ public class SimplexMatrix {
System.out.print("Базис\t");
System.out.print("b\t\t");
for (int i = 1; i <= numCols-1; i++) {
System.out.print("x" + i +"\t\t\t");
for (int i = 1; i <= numCols - 1; i++) {
System.out.print("x" + i + "\t\t\t");
}
System.out.println();
for (int i = 0; i < matrix.length; i++) {
if(i != matrix.length-1) {
if (i != matrix.length - 1) {
System.out.printf("%4s\t", basis.get(i));
} else {
System.out.printf("%4s\t", "D");

View File

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

View File

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