В математике функции часто определяются в терминах более элементарных функций, которые сами определяются либо меньшими функциями, либо базовыми переменными. Возьмем, к примеру, следующую математическую структуру:
T = c_v*t/(a*h)**2
U = (T**3/(T**3++0.5))**(1/6)
Это очень простая структура, но очень хороший пример. Конечно, самый быстрый способ получить желаемый результат - просто запустить их как две команды, например, в python. Другой способ - определить следующее:
def T(c_v, t, a, h):
return c_v*t/(a*h)**2
def U(T):
return (T**3/(T**3++0.5))**(1/6)
Несколько более сложный, но, на мой взгляд, более гибкий способ настройки вышеупомянутого:
class T():
def __init__(self, c_v, t, a, h):
self.c_v = c_v
self.t = t
self.a = a
self.h = h
def evaluate(self):
self.result = self.c_v*self.t/(self.a*self.h)**2
return self.result
class U(T):
def __init__(self, c_v, t, a, h):
super().__init__( c_v, t, a, h)
def evaluate(self, ):
self.T = super().evaluate()
self.result = (T**3/(T**3++0.5))**(1/6)
return self.result
Но что из более сложного? случаи, когда взаимозависимости становятся частью сложной древовидной структуры? Будет ли выше шкала? Предположим, что другая функция F
зависит от функции U
. Предположим также, что была функция S
, которая зависела от c_v
и t
, и что была функция R
, которая зависела от S
и T
.
Кроме того,эта тема была исследована раньше? Где найти практические инструменты для моделирования математики с помощью программного обеспечения?