【发布时间】:2018-10-26 10:45:15
【问题描述】:
我正在编写一个代码,我需要用多个函数替换一个函数的变量。
例如,我有B=x1**2+x2**2+x3**2,我需要替换x1=cos(x1+x2),x2=sin(x2+x3)和x3=x1,以便得到这个值:cos(x1+x2)**2+sin(x2+x3)**2+x1**2
但是,当我像这样迭代地执行此操作时:
for j in range(nvar):
B=expand(B.subs(x[j],f[j]))
其中nvar=3 和x 被定义为符号列表,f 被定义为符号函数列表,在每次迭代中,来自先前替换的x[j] 被替换并给出错误答案:x1**2 + sin(x1 + cos(x1 + sin(x1 + x2)))**2 + cos(x1 + sin(x1 + cos(x1 + sin(x1 + x2))))**2
如何同时执行此替换?
【问题讨论】:
-
您可以为替代变量使用其他名称,例如
x1=cos(y1+y2),因为从数学上讲,scipy为您提供了正确的扩展。