【发布时间】:2020-03-27 04:36:23
【问题描述】:
我使用 MATLAB 构建了以下代码:
numero=60;
a=zeros(numero,1)
b=zeros(numero+1,1)
for i=1:numero+1
a(i)=-cos(pi*(i-1)/numero)
end
figure
plot(a,b, '*')
它用于计算 numero 阶 Chebyshev 多项式的节点,并将其存储在名为 a 的向量中。
我需要在 Python 中重现它。我对解决方案的尝试是
from mpmath import chebyt, chop, taylor
import numpy as np
import sympy as sp
numero=60
nodes = []
for i in range(numero+2):
auxiliary=-np.cos(np.pi*(i-1)/numero)
nodes.append(auxiliary)
[float(i) for i in nodes]
nodes.sort()
print(nodes)
但是,python 的输出存在问题。第一个是列表的第二个数字-0.9986295347545738 出现了两次,它也是节点的第三个元素。我不知道为什么会发生这种情况,我想知道是否有人可以告诉我如何避免这个错误。
【问题讨论】:
-
请发布您的预期输出
标签: python matlab numpy for-loop sympy