gpt4 book ai didi

maxima - 多项式最大值的系数

转载 作者:行者123 更新时间:2023-12-04 17:33:15 28 4
gpt4 key购买 nike

最大值中是否有内置函数可以从多项式函数中获取具有其系数的列表?并获得多项式的阶数?

我发现的最相似的函数是args,但它也返回变量和系数。我本来可以接受的,但在将lengthargs一起使用时,还可以返回学位。问题在于args不适用于零级多项式。

还有其他功能可以更好地适应这些目的吗?提前致谢。

最佳答案

要计算一个变量的多项式次数,可以使用hipow函数。

(%i) p1 : 3*x^5 + x^2 + 1$
(%i) hipow(p1,x);
(%o) 5

对于具有多个变量的多项式,可以将 hipow映射到 listofvars函数返回的变量上,然后使用结果列表的最大值。
(%i) p2 : 4*y^8 - 3*x^5 + x^2 + 1$
(%i) degree(p) := if integerp(p) then 0 else
lmax(map (lambda([u], hipow(p,u)),listofvars(p)))$
(%i) degree(p1);
(%o) 5
(%i) degree(p2);
(%o) 8
(%i) degree(1);
(%o) 0
coeff函数返回给定 x^ncoeff(p,x,n)的系数,因此要生成一个变量中多项式的系数的列表,我们可以迭代x的幂,将系数保存到列表中。
(%i) coeffs1(p,x) := block([l], l : [], 
for i from 0 thru hipow(p,x)
do (l : cons(coeff(p,x,i),l)), l)$
(%i) coeffs1(p1,x);
(%o) [3, 0, 0, 1, 0, 1]

要生成一个以上变量中多项式系数的列表,请将 coeffs1映射到 listofvars上。
(%i) coeffs(p) := map(lambda([u], coeffs1(p, u)), listofvars(p))$
(%i) coeffs(p2);
(%o) [[- 3, 0, 0, 1, 0, 4 y^8 + 1],
[4, 0, 0, 0, 0, 0, 0, 0, - 3 x^5 + x^2 + 1]]

关于maxima - 多项式最大值的系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35855762/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com