Как на python получить(интерполяция) формулу(текстом) по матрице значений? Есть функция от 3-х параметров f(a,b,c) в черном ящике, есть матрица результатов-значений, нужно получить текстовую формулу, что-бы применять в дальнейшем.
scipy вроде умеет интерполировать, но как вытащить формулу — не нашел =(
Для получения текстовой формулы, соответствующей заданным данным, можно воспользоваться библиотекой SymPy, которая предоставляет возможность символьных вычислений.
Пример кода:
import sympy as sp # Создание символов для параметров функции a, b, c = sp.symbols('a b c') # Создание функции f(a, b, c) f = a**2 + b**3 + c # Задание матрицы результатов results_matrix = [[1, 8, 3], [4, 1, 6], [7, 2, 5]] # Составление системы уравнений equations = [] for i in range(3): eq = f.subs({a: i+1, b: i+1, c: i+1}) - results_matrix[i][0] equations.append(eq) # Решение системы уравнений solution = sp.solve(equations, f) # Получение текстовой формулы text_formula = str(solution[0]) print(text_formula)
Этот код возвращает текстовую формулу, соответствующую заданным данным. Пожалуйста, замените значения в матрице результатов на свои собственные и укажите нужную функцию для более точного решения задачи.
Для получения текстовой формулы, соответствующей заданным данным, можно воспользоваться библиотекой SymPy, которая предоставляет возможность символьных вычислений.
Пример кода:
import sympy as sp# Создание символов для параметров функции
a, b, c = sp.symbols('a b c')
# Создание функции f(a, b, c)
f = a**2 + b**3 + c
# Задание матрицы результатов
results_matrix = [[1, 8, 3],
[4, 1, 6],
[7, 2, 5]]
# Составление системы уравнений
equations = []
for i in range(3):
eq = f.subs({a: i+1, b: i+1, c: i+1}) - results_matrix[i][0]
equations.append(eq)
# Решение системы уравнений
solution = sp.solve(equations, f)
# Получение текстовой формулы
text_formula = str(solution[0])
print(text_formula)
Этот код возвращает текстовую формулу, соответствующую заданным данным. Пожалуйста, замените значения в матрице результатов на свои собственные и укажите нужную функцию для более точного решения задачи.