作业帮 > 数学 > 作业

Mathematica 里如何提取方程或表达式中的常数

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/22 16:56:20
Mathematica 里如何提取方程或表达式中的常数
Mathematica 里如何提取某特定模式的方程或表达式中的常数,
要怎么自定义这样的函数?
例如关于方程 2x+3y-4z+7=0,提取常数后的效果为{2,3,-4,7,0}
或者关于表达式 2x+3y-4z+7,提取常数后的效果为{2,3,-4,7}
输入
CoefficientList[2 x + 3 y - 4 z + 7,{x,y,z}]
输出
{{{7,-4},{3,0}},{{2,0},{0,0}}}
我觉得你对题目的理解有误,如果提取的结果是{2,3,-4,7},那我怎么知道哪个系数是对应哪个变量的呢?
如果你非要说,我就要{2,3,-4,7}这个的话,请用下面这个
CoefficientList[2 x + 3 y - 4 z + 7,{x,y,z}] // Flatten // Union
再问: 你好,我的意思其实是对于普通的 n元一次 表达式,假设有通用的表达式: f=a1*x1+a2*x2+a3*x3+.......+an*xn+常数 其中x1,x2......xn均为未知数,a1,a2......an均为系数 如果我想要提取规则的系数如下: {a1,a2,a3......an,常数}, 这样怎么做?
再答: 我定义2个函数来解决这个问题 ConstantCoefficient[fomula_, colist_] := Module[{noncs}, Coefficient[fomula /. Evaluate[Rule[#, noncs] & /@ colist], noncs, 0]] CoefficientSeries[fomula_, colist_] := Join[Table[ Coefficient[fomula, colist[[i]]], {i, 1, Length[colist]}], {ConstantCoefficient[fomula, colist]}] 设 f = a1*x + a2*y + a3*z + a4*p + a5*q + 1如果你认为x,y,z是自变量的话 输入 CoefficientSeries[f, {x, y, z}] 输出 {a1, a2, a3, 1 + a4 p + a5 q} 如果你认为x,y,z,p,q是自变量的话 输入 CoefficientSeries[f, {x, y, z, p, q}] 输出 {a1, a2, a3, a4, a5, 1}