有没有一种好方法可以降低 Julia 多项式的系数

问题描述 投票:0回答:1

我正在使用 Julia 有理数多项式进行计算。在一次操作之后,我可能有一个高次多项式,我想通过丢弃高阶项来截断为较小次数的多项式。我发现下面的代码解决方案将运行几个小时,我需要使事情尽可能高效。我基本上重新创建了一个新的 Poly。有更好的办法吗?

R 是 M > N 次多项式

L = coeffs(R)
R = Polynomial{Rational{BigInt}, :x}(L[1:N])
julia polynomials coefficients drop
1个回答
0
投票

假设您使用 Polynomials.jl 包,我们有:

julia> using Polynomials

julia> R = Polynomial(Rational{BigInt}[1,2,3,4,5], :x)
Polynomial(1//1 + 2//1*x + 3//1*x^2 + 4//1*x^3 + 5//1*x^4)

julia> degree(R)
4

julia> resize!(coeffs(R), 3);

julia> R
Polynomial(1//1 + 2//1*x + 3//1*x^2)

julia> degree(R)
2

这可能是一个稍微使用内部的东西,并且专门在包中减少程度的功能可能会更好。我没有进行足够的搜索来看看是否有一个,但如果有的话,这是合理的,它会做这个简单的

resize!
技巧。

© www.soinside.com 2019 - 2024. All rights reserved.