laguerre 다항식은 다음 코드를 실행하여 증명할 수있는 것처럼 일부 순서에서 수렴하지 않는 것처럼 보입니다. 누군가가 나 scipy
함수의 정확도 한계 무슨 일이 일어나고 있는지 알고 있는지파이퍼에서 라기 어 다항식은 scipy를 사용하여 수렴성이 부족합니까?
import numpy as np
from sympy import mpmath as mp
from scipy.special import genlaguerre as genlag
from sympy.mpmath import laguerre as genlag2
from matplotlib import pyplot as plt
def laguerre(x, r_ord, phi_ord, useArbitraryPrecision=False):
if (r_ord < 30 and phi_ord < 30) and not useArbitraryPrecision:
polyCoef = genlag(r_ord, phi_ord)
out = np.polyval(polyCoef, x)
else:
fun = lambda arg: genlag2(r_ord, phi_ord, arg)
fun2 = np.frompyfunc(genlag2, 3, 1)
# fun2 = np.vectorize(fun)
out = fun2(r_ord, phi_ord, x)
return out
r_ord = 29
phi_ord = 29
f = lambda x, useArb : mp.log10(laguerre(x, 29, 29, useArb))
mp.plot(lambda y : f(y, True) - f(y, False), [0, 200], points = 1e3)
plt.show()
궁금 해서요? 단순히 mpmath
기능을 사용하는 것이 좋습니다? 처음에는 특정 순서가 지나면 작동하지 않는다고 생각했지만 (100, 100)은 정상적으로 작동하는 것 같습니다.
mp.plot([lambda y : f(y, True), lambda y: f(y, False)], [0, 200], points = 1e3)
는 차이가 꽤 명확하게 다음과 같은 이미지를 얻을를 실행하여
.
감사 어떤 도움.
설명이 필요하면 알려주세요.
나는 당신이 "이상한 행동"에 대한 자세한 내용을 설명해야 할 것 같아요. 당신이 보는 것을 기대하는 것과 일치하지 않는 것을 당신은 무엇을보고 있습니까? – mgilson
제목을 편집하고 음모를 추가 했는데도 여전히 이것이 항목을 명확히하지 않는다고 생각되면 알려주세요. – evan54