Загрузка данных


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