1
0

initial commit

This commit is contained in:
2024-04-26 01:05:18 +03:00
commit 05e38681ca
12 changed files with 625 additions and 0 deletions

152
Лаб3/index.html Normal file
View File

@@ -0,0 +1,152 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Табулирование функции</title>
</head>
<body>
<h2>Табулирование функции f(x, y)</h2>
<form id="parameters">
<label for="a">Введите значение параметра a:</label>
<input type="number" id="a" name="a" min="0">
<br>
<label for="nm1">Введите значение параметра nm1 (от 2 до 6):</label>
<input type="number" id="nm1" name="nm1" min="2" max="6">
<br>
<label for="nm2">Введите значение параметра nm2 (от 2 до 6):</label>
<input type="number" id="nm2" name="nm2" min="2" max="6">
<br>
<label for="xmin">Минимальное значение x:</label>
<input type="number" id="xmin" name="xmin">
<label for="xmax">Максимальное значение x:</label>
<input type="number" id="xmax" name="xmax">
<label for="stepX">Шаг для x:</label>
<input type="number" id="stepX" name="stepX" min="0.1">
<br>
<label for="ymin">Минимальное значение y:</label>
<input type="number" id="ymin" name="ymin">
<label for="ymax">Максимальное значение y:</label>
<input type="number" id="ymax" name="ymax">
<label for="stepY">Шаг для y:</label>
<input type="number" id="stepY" name="stepY" min="0.1">
<br>
<button type="button" onclick="calculate()">Вычислить</button>
</form>
<br>
<div id="tableContainer"></div>
<script>
function calculate() {
const a = parseFloat(document.getElementById('a').value);
let nm1 = parseInt(document.getElementById('nm1').value);
let nm2 = parseInt(document.getElementById('nm2').value);
let xmin = parseFloat(document.getElementById('xmin').value);
let xmax = parseFloat(document.getElementById('xmax').value);
let ymin = parseFloat(document.getElementById('ymin').value);
let ymax = parseFloat(document.getElementById('ymax').value);
let stepX = parseFloat(document.getElementById('stepX').value);
let stepY = parseFloat(document.getElementById('stepY').value);
if (xmin >= xmax) {
temp = xmin;
xmin = xmax;
xmax = temp;
}
if (ymin >= ymax) {
temp = ymin;
ymin = ymax;
ymax = temp;
}
if (stepX <= 0)
stepX = 0.1;
if (stepY <= 0)
stepY = 0.1;
if (nm1 < 2)
nm1 = 2;
if (nm2 < 2)
nm2 = 2;
if (nm1 > 6)
nm1 = 6;
if (nm2 > 6)
nm2 = 6;
document.getElementById('xmin').value = xmin;
document.getElementById('xmax').value = xmax;
document.getElementById('ymin').value = ymin;
document.getElementById('ymax').value = ymax;
document.getElementById('stepX').value = stepX;
document.getElementById('stepY').value = stepY;
document.getElementById('nm1').value = nm1;
document.getElementById('nm2').value = nm2;
function calculateFunction(x, y) {
let result;
if (x < a) {
result = 0;
for (let n = 0; n <= nm1; n++) {
result += Math.pow(x, n) / (2 * Math.pow(y, n + 1) + x * n);
}
} else {
result = 0;
for (let n = 0; n <= nm2; n++) {
result += (3 * x + y) / (3 * factorial(n));
}
}
return result;
}
function factorial(n) {
if (n === 0 || n === 1)
return 1;
else
return n * factorial(n - 1);
}
let maxX, maxY, maxResult = -Infinity;
let minX, minY, minResult = Infinity;
let tableHtml = '<table border="1"><tr><th>x \\ y</th>';
for (let y = ymin; y <= ymax; y += stepY)
tableHtml += `<th>${y.toFixed(2)}</th>`;
tableHtml += '</tr>';
for (let x = xmin; x <= xmax; x += stepX) {
tableHtml += `<tr><th>${x.toFixed(2)}</th>`;
for (let y = ymin; y <= ymax; y += stepY) {
const result = calculateFunction(x, y);
tableHtml += `<td>${result.toFixed(2)}</td>`;
if (result > maxResult) {
maxResult = result;
maxX = x;
maxY = y;
}
if (result < minResult) {
minResult = result;
minX = x;
minY = y;
}
}
tableHtml += '</tr>';
}
tableHtml += '</table>';
tableHtml += `<p>Максимальное значение: ${maxResult.toFixed(2)} при x=${maxX.toFixed(2)} и y=${maxY.toFixed(2)}</p>`;
tableHtml += `<p>Минимальное значение: ${minResult.toFixed(2)} при x=${minX.toFixed(2)} и y=${minY.toFixed(2)}</p>`;
document.getElementById('tableContainer').innerHTML = tableHtml;
}
</script>
</body>
</html>