Sub GenerateGenericRegressionTable()
' --- Блок настроек (аналог инициализации вектора) ---
Dim b_lin As Variant, b_quad As Variant, b0 As Double
Dim x_fixed As Double, step As Double
Dim i As Integer, j As Integer
' Свободный член из файла
b0 = 91.0495
' Линейные коэффициенты (если решите вернуть b1, b2, b3)
' Сейчас стоят 0, так как они признаны незначимыми
b_lin = Array(0, 0, 0)
' Квадратичные коэффициенты из файла
' Индексы: 0 -> X1^2, 1 -> X2^2, 2 -> X3^2
b_quad = Array(-24.4401, -15.5062, -12.5194)
' Настройки осей и фиксации
x_fixed = 0 ' Фиксируем X3 на нулевом уровне
step = 0.2 ' Шаг сетки
' --- Логика генерации (автоматизированная) ---
Dim row As Integer, col As Integer
Dim x1 As Double, x2 As Double, y As Double
Cells.Clear
Cells(1, 1).Value = "Универсальная таблица (X3 = " & x_fixed & ")"
' Отрисовка шапки (ось X2)
col = 2
For x2 = -1.682 To 1.682 Step step
Cells(2, col).Value = Round(x2, 2)
col = col + 1
Next x2
' Расчет сетки (цикл по X1 и X2)
row = 3
For x1 = -1.682 To 1.682 Step step
Cells(row, 1).Value = Round(x1, 2)
col = 2
For x2 = -1.682 To 1.682 Step step
' Обобщенная формула регрессии:
' Y = b0 + (линейная часть) + (квадратичная часть)
y = b0 + _
(b_lin(0) * x1 + b_lin(1) * x2 + b_lin(2) * x_fixed) + _
(b_quad(0) * x1 ^ 2 + b_quad(1) * x2 ^ 2 + b_quad(2) * x_fixed ^ 2)
Cells(row, col).Value = y
col = col + 1
Next x2
row = row + 1
Next x1
' Автоформатирование для красоты
Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
MsgBox "Таблица построена по " & UBound(b_quad) + 1 & " факторам."
End Sub