我有一个程序,希望将变量转换成方程式。这个想法是从用户那里获得输入,它是一个方程式,并将符号变量转换为另一个变量。这里的例子:
from sympy import symbols, limit, diff
x_1, x_2, X_1, X_2 = symbols('x_1 x_2 X_1 X_2')
def afosm_nl_ls(x_1_mean, x_2_mean, x_1_std, x_2_std, g):
x_1 = X_1*x_1_std + x_1_mean
x_2 = X_2*x_2_std + x_2_mean
g = g.subs((x_1, X_1), (x_2, X_2))
print(g)
afosm_nl_ls(50, 30, 3, 2, x_1**2 + 1 - x_2)
给我这个输出:
x_1**2 - x_2 + 1
然后,我想将x_i
转到X_i*x_i_std + x_i_mean
。使用此功能,我很容易做到:
from sympy import limit, diff, symbols
x_1, x_2, X_1, X_2 = symbols('x_1 x_2 X_1 X_2')
x_1 = X_1*3 + 50
x_2 = X_2*2 + 30
g = x_1**2 + 1 - x_2
print(g)
结果为:
-2*X_2 + (3*X_1 + 50)**2 - 29
所以,我应该如何在函数中编写代码以仍然从用户那里获取方程式并获得正确的变换?
我有一个程序,希望将变量转换成方程式。这个想法是从用户那里得到一个输入,它是一个方程,然后将符号变量转换成另一个...
一般的想法是使用subs
: