我尝试将方程(方程组)中的系数提取到列表(矩阵)中。我已经尝试过CoefficientList[poly, {var1, var2, ...}]
但没有成功。
这个简单的例子应该可以解释我的问题:
Eq1 = a D[U[x1, x2], {x1, 2}] + b D[V[x1, x2], {x2, 2}]
有什么建议吗?
编辑:
Daniel 的 Lichtblau 解非常清晰(谢谢),但是如果方程看起来像这样呢?
Eq1 = a D[U[x1, x2], {x1, 2}] + b D[V[x1, x2], {x2, 2}] + c W[x1, x2]
一个简单的例子可以解决如下:
有没有更优雅的解决方案? (特别是对于更复杂的表达式)
Ps我不明白为什么,但这个解决方案给了我正确的结果。
最佳答案
首先,偏导数用Derivative
表示,因此模式需要与之匹配。另外,我认为您不想使用 CoefficientList
因为它会接受两个表达式都出现的术语。总而言之,以下内容应该有效:
In[7]:= (Coefficient[Eq1, #] &) /@ {Derivative[2, 0][U][x1, x2], Derivative[0, 2][V][x1, x2]}
Out[7]= {a, b}
这里(Coefficient[Eq1, #] &)
是一个匿名函数,它查找参数的系数,/@
将其映射到右侧的列表.
HTH
关于wolfram-mathematica - 系数方程列表/矩阵(方程组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5162213/