Wolfram mathematica 系数表/矩阵方程(方程组)

Wolfram mathematica 系数表/矩阵方程(方程组),wolfram-mathematica,Wolfram Mathematica,我试图将系数从方程组(方程组)中提取到列表(矩阵)中。我试过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

我试图将系数从方程组(方程组)中提取到列表(矩阵)中。我试过
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我不明白为什么,但这个解决方案给了我正确的结果


首先,偏导数用
导数表示,因此模式需要与之匹配。另外,我认为您不想使用
CoefficientList
,因为这将接受出现两个表达式的术语。总而言之,以下各项应起作用:

In[7]:= (Coefficient[Eq1, #] &) /@ {Derivative[2, 0][U][x1, x2], Derivative[0, 2][V][x1, x2]}
Out[7]= {a, b}
这里的
(系数[Eq1,#]&)
是一个匿名函数,用于查找参数的系数,
/@
将其映射到右侧的列表


系数阵通常用于在某些变量集中提取线性系统的系数。在这种情况下,我们首先需要得到变量列表

dvars = Cases[Eq1, Derivative[__][_][__], -1];
CoefficientArrays返回{常数,系数}形式的结果。它使用稀疏数组,因此我将转换为具有法线的显式列表

Normal[CoefficientArrays[Eq1, dvars]]
Out[672]={0,{b,a}

丹尼尔·利奇布劳
Wolfram Research

如果你陈述
coeficientList[Eq1,{V^(0,2)[x1,x2],U^(2,0)[x1,x2]}]
?关于
coeficientList[ad[U[x1,x2],{x1,2}],{D[U[x1,x2],{x1,2}],D[V[x1,x2],{,x2],{}],D[V[x1,x2],{,x2],{]谢谢。这正是我需要的。太好了。谢谢你。我已经更新了这个问题。如果你能看一下,我将不胜感激。