小编Joh*_*ell的帖子

为什么Sympy用小系数切断多项式项呢?

我试图将包含具有不同程度的符号变量的项的表达式转换为z_spython中的多项式,sympy.Poly()以便我可以使用提取系数.coeffs().

我所拥有的表达式是具有独立符号变量z_s的高阶多项式.出于某种原因,当我使用sympy.Poly()将表达式转换为多项式时,似乎用小系数来切断项.下面是我的函数,我在其中包含了将其重新定义为符号多项式的行:

f = -1.29096669270427e-61*z_s**33 + 6.24438995041203e-59*z_s**32 - 6.41125090009095e-57*z_s**31 - 8.30852813320818e-55*z_s**30 + 5.84175807723288e-53*z_s**29 + 1.88577332997761e-50*z_s**28 + 9.46504910106607e-49*z_s**27 - 2.28903644846359e-46*z_s**26 - 4.63321594171589e-44*z_s**25 - 1.78254194888339e-42*z_s**24 + 6.43406800910469e-40*z_s**23 + 1.20425521347205e-37*z_s**22 + 3.4116753522246e-36*z_s**21 - 1.92084369416715e-33*z_s**20 - 3.04107684362554e-31*z_s**19 + 2.89289551256439e-30*z_s**18 + 6.38382842182985e-27*z_s**17 + 5.46438700248253e-25*z_s**16 - 8.50501280745176e-23*z_s**15 - 1.6344595302306e-20*z_s**14 + 1.07764488797684e-18*z_s**13 + 3.47026242660686e-16*z_s**12 - 2.93966702403133e-14*z_s**11 - 5.25394006214533e-12*z_s**10 + 1.21642330162702e-9*z_s**9 - 1.16577645027166e-7*z_s**8 + 6.82117624588787e-6*z_s**7 - 0.000267513120031891*z_s**6 + 0.00723589681411793*z_s**5 - 0.134846078975788*z_s**4 + 1.69035817278476*z_s**3 - 13.5277365002646*z_s**2 + 62.3459673862853*z_s - 76.5029927727737
sympy.Poly(f,z_s)
Run Code Online (Sandbox Code Playgroud)

返回:

Poly(-2.93966702403133e-14*z_s**11 …
Run Code Online (Sandbox Code Playgroud)

python sympy polynomials coefficients

5
推荐指数
1
解决办法
540
查看次数

如何将变量步骤插入Numpy mgrid?

我试图使用numpy.mgrid创建两个网格数组,但我想要一种方法来插入一个变量作为步骤数.

如果没有可变数量的步骤,numpy.mgrid将按预期使用此代码:

x, y = np.mgrid[0:1:3j, 0:2:5j]
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是这样的,因为我无法在代码行中明确说明我的步骤编号以生成网格数组(由于我的脚本中的其他进程,值可能会更改):

num_x_steps = 3
num_y_steps = 5
x, y = np.mgrid[0:1:(num_x_steps)j, 0:2:(num_y_steps)j] #Try convert to complex
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,返回一个等效于第一个方法的结果?

我尝试使用括号和不带括号运行我的3行代码并尝试了其他一些修改,但似乎没有任何工作.

注意:我尝试阅读主题,但我不确定该主题涉及的内容是否适用于此问题; 我不太明白被问到什么或如何回答.(另外,我尝试从答案中运行代码行,它返回了一个MemoryError.)如果说的主题确实回答了我的问题,有人可以更好地解释它,以及它如何适用于我的问题?

python numpy

5
推荐指数
1
解决办法
2019
查看次数

为什么 sympy.diff 不能按预期区分 sympy 多项式?

我想弄清楚为什么sympy.diff没有sympy按预期区分多项式。通常,sympy.diff如果定义了符号变量并且多项式未使用sympy.Poly. 但是,如果函数是使用 定义的sympy.Polysympy.diff似乎实际上并没有计算导数。下面是一个代码示例,显示了我的意思:

import sympy as sy

# define symbolic variables
x = sy.Symbol('x')
y = sy.Symbol('y')

# define function WITHOUT using sy.Poly
f1 = x + 1
# define function WITH using sy.Poly
f2 = sy.Poly(x + 1, x, domain='QQ')

# compute derivatives and return results
df1 = sy.diff(f1,x)
df2 = sy.diff(f2,x)
print('f1:  ',f1)
print('f2:  ',f2)
print('df1:  ',df1)
print('df2:  ',df2)
Run Code Online (Sandbox Code Playgroud)

这将打印以下结果:

f1:   x + 1
f2:   Poly(x …
Run Code Online (Sandbox Code Playgroud)

python sympy polynomials

4
推荐指数
1
解决办法
1332
查看次数

使用 CLion 和 CMake 的 CImg X11 链接错误

我在 CLion (Ubuntu) 中有一个使用 CImg 库的 C++ 项目。目前,我无法正确构建项目。我在 main.cpp 文件中包含了 CImg.h 文件。我得到一个像这里看到的输出。我通过在终端中运行以下命令确保安装了 X11 工具:

sudo apt-get install libx11-dev
Run Code Online (Sandbox Code Playgroud)

在上面链接的问题中,有一个答案指出要添加以下编译器选项:

-L/usr/X11R6/lib -lm -lpthread -lX11
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了两个问题。首先,我在 CLion 中使用 CMake,而不是命令窗口,所以我不确定如何使用此命令(假设它有效)。其次,上面指定的路径在我的电脑上似乎不存在——/usr 中没有 X11R6 文件夹。因此,如何正确链接所需的 X11 库,以便我可以开始使用 CImg?

(另外,我不知道这是否相关,但我没有安装 Magick++。)

c++ cimg clion

3
推荐指数
1
解决办法
2840
查看次数

标签 统计

python ×3

polynomials ×2

sympy ×2

c++ ×1

cimg ×1

clion ×1

coefficients ×1

numpy ×1