Wolfram mathematica Mathematica将多项式函数转换为列表并从中提取术语
我有一个mathematica多项式函数,我想把它转换成一个术语列表。即 函数Wolfram mathematica Mathematica将多项式函数转换为列表并从中提取术语,wolfram-mathematica,Wolfram Mathematica,我有一个mathematica多项式函数,我想把它转换成一个术语列表。即 函数 v[a_,b_,c_]:=a^2+b^2+c^2 通过使用单项式列表,我可以得到列表形式的术语 vl[a_,b_,c_]:=MonomialList[v[a,b,c]] 这给了我: vl[a,b,c]={a^2,b^2,c^2}; 现在,我想对这些术语中的每一个进行单独的功能,以便得到: vl[1,1,1]={1,1,1} 而不是 vl[1,1,1]=3 有什么简单的方法可以做
v[a_,b_,c_]:=a^2+b^2+c^2
通过使用单项式列表,我可以得到列表形式的术语
vl[a_,b_,c_]:=MonomialList[v[a,b,c]]
这给了我:
vl[a,b,c]={a^2,b^2,c^2};
现在,我想对这些术语中的每一个进行单独的功能,以便得到:
vl[1,1,1]={1,1,1}
而不是
vl[1,1,1]=3
有什么简单的方法可以做到这一点吗?例如
v[a_, b_, c_] := a^2 + b^2 + c^2
vl[a_, b_, c_] := Module[{x, y, z},
MonomialList[v[x, y, z]] /. {x -> a, y -> b, z -> c}]
vl[1, 1, 1]
(*
-> {1,1,1}
*)
我没有理由不预先计算列表,比如:
v[a_, b_, c_] := a^2 + b^2 + c^2
Block[{a, b, c},
vf[a_, b_, c_] = MonomialList[v[a, b, c]];
]
测试:
vf[q, r, s]
vf[1, 1, 1]
vf
的定义:
Definition[vf]
谢谢此外,只需将设置的延迟符号“:=”替换为设置的符号“=”就可以了,即vl[a,b,c]=MonomialList[v[a,b,c]]
Definition[vf]
vf[a_, b_, c_] = {a^2, b^2, c^2}