пишу калькулятор Гаусса
index.php
<!DOCTYPE html>
<html>
<head>
<title>Онлайн калькулятор систем линейных уравнений</title>
<style>
/* Ваш стиль оформления */
</style>
</head>
<body>
<h1>Онлайн калькулятор систем линейных уравнений</h1>
<form action="result.php" method="post">
<p>Введите количество уравнений и неизвестных:</p>
<label for="equations">Уравнений:</label>
<input type="number" name="equations" id="equations" required>
<br>
<label for="unknowns">Неизвестных:</label>
<input type="number" name="unknowns" id="unknowns" required>
<br>
<p>Введите коэффициенты и константы:</p>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$equations = (int)$_POST["equations"];
$unknowns = (int)$_POST["unknowns"];
for ($i = 1; $i <= $equations; $i++) {
echo "<p>Уравнение $i:</p>";
for ($j = 1; $j <= $unknowns; $j++) {
echo "<label for='coefficient-$i-$j'>Коэффициент A<sub>$i$j</sub>:</label>";
echo "<input type='number' name='coefficients[$i][$j]' id='coefficient-$i-$j' step='any' required>";
echo "<br>";
}
echo "<label for='constant-$i'>Константа B<sub>$i</sub>:</label>";
echo "<input type='number' name='constants[$i]' id='constant-$i' step='any' required>";
echo "<br>";
}
}
?>
<input type="submit" value="Продолжить">
</form>
</body>
</html>
result.php
<!DOCTYPE html>
<html>
<head>
<title>Результаты расчетов</title>
<style>
/* Ваш стиль оформления */
</style>
</head>
<body>
<h1>Результаты расчетов</h1>
<?php
function solveEquations($coefficients, $constants) {
$unknowns = count($coefficients[0]);
$equations = count($coefficients);
if (!is_array($coefficients) || !is_array($constants)) {
return false; // Некорректные данные
}
for ($i = 0; $i < $equations - 1; $i++) {
if ($coefficients[$i][$i] == 0) {
// Если коэффициент равен нулю, проводим перестановку строк
for ($k = $i + 1; $k < $equations; $k++) {
if ($coefficients[$k][$i] != 0) {
// Перестановка строк
$temp = $coefficients[$i];
$coefficients[$i] = $coefficients[$k];
$coefficients[$k] = $temp;
$temp = $constants[$i];
$constants[$i] = $constants[$k];
$constants[$k] = $temp;
break;
}
}
}
if ($coefficients[$i][$i] == 0) {
// Если после перестановки строк коэффициент по-прежнему равен нулю, нет уникального решения
return false;
}
for ($j = $i + 1; $j < $equations; $j++) {
$ratio = $coefficients[$j][$i] / $coefficients[$i][$i];
for ($k = $i; $k < $unknowns; $k++) {
$coefficients[$j][$k] -= $ratio * $coefficients[$i][$k];
}
$constants[$j] -= $ratio * $constants[$i];
}
}
$solution = array();
for ($i = $equations - 1; $i >= 0; $i--) {
if ($coefficients[$i][$i] == 0) {
// Если коэффициент равен нулю, нет уникального решения
return false;
}
$sum = 0;
for ($j = $i + 1; $j < $unknowns; $j++) {
$sum += $coefficients[$i][$j] * $solution[$j];
}
$solution[$i] = ($constants[$i] - $sum) / $coefficients[$i][$i];
}
return $solution;
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$equations = (int)$_POST["equations"];
$unknowns = (int)$_POST["unknowns"];
echo "<p>Число уравнений: $equations</p>";
echo "<p>Число неизвестных: $unknowns</p>";
$coefficients = array();
$constants = array();
for ($i = 1; $i <= $equations; $i++) {
$equation = array();
for ($j = 1; $j <= $unknowns; $j++) {
$coefficient = (float)$_POST["coefficient-$i-$j"];
$equation[] = $coefficient;
}
$coefficients[] = $equation;
$constant = (float)$_POST["constant-$i"];
$constants[] = $constant;
}
echo "<p>Коэффициенты:</p>";
echo "<table>";
for ($i = 0; $i < $equations; $i++) {
echo "<tr>";
for ($j = 0; $j < $unknowns; $j++) {
echo "<td>A<sub>$i$j</sub> = {$coefficients[$i][$j]}</td>";
}
echo "<td>B<sub>$i</sub> = {$constants[$i]}</td>";
echo "</tr>";
}
echo "</table>";
$solution = solveEquations($coefficients, $constants);
if ($solution) {
echo "<p>Решение:</p>";
echo "<table>";
foreach ($solution as $index => $value) {
echo "<tr>";
echo "<td>X<sub>$index</sub> = $value</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "<p>Решение не найдено.</p>";
}
echo "<form action='index.php' method='get'>";
echo "<input type='submit' value='Завершить'>";
echo "</form>";
}
?>
</body>
</html>
вывод все любое число которое я ввожу показывают 0;