Python ValueError:x、y和格式字符串不能为None
我将用泰勒级数近似正弦,并绘制不同的迭代,与真实正弦进行比较。有人知道我哪里出错了吗Python ValueError:x、y和格式字符串不能为None,python,numpy,matplotlib,math,taylor-series,Python,Numpy,Matplotlib,Math,Taylor Series,我将用泰勒级数近似正弦,并绘制不同的迭代,与真实正弦进行比较。有人知道我哪里出错了吗 %pylab inline from math import factorial as fak def taylor_sinus(n,x): if n==1: sinx=x elif n < 1: print('ERROR 302: approximation not found') else: sinx=0 for
%pylab inline
from math import factorial as fak
def taylor_sinus(n,x):
if n==1:
sinx=x
elif n < 1:
print('ERROR 302: approximation not found')
else:
sinx=0
for i in range(1,n):
sinx=sinx-((-1)**i*((x**(2*i-1))/fak(2*i-1)))
return(sinx)
x=np.linspace((-2*pi), (2*pi), 100)
iterations=(1,3,8,11,)
for iteration in (iterations):
plt.plot(x, taylor_sinus(iteration,x), label='Iterationen: {0}'.format(iteration))
plt.plot(x, sin(x), ':', lw=4, label='The one and only Sinus')
plt.legend(bbox_to_anchor=(1, 1))
plt.xlabel('x')
plt.ylabel('f(x)')
plt.ylim(-2,2)
plt.grid()
plt.figure(figsize=(20,10))
%pylab内联
从数学导入阶乘为fak
def taylor_窦(n,x):
如果n==1:
sinx=x
elif n<1:
打印('错误302:找不到近似值')
其他:
sinx=0
对于范围(1,n)内的i:
sinx=sinx-(-1)**i*((x**(2*i-1))/fak(2*i-1)))
返回(sinx)
x=np.linspace((-2*pi),(2*pi),100)
迭代次数=(1,3,8,11)
对于中的迭代(迭代):
plt.plot(x,泰勒窦(迭代,x),label='Iterationen:{0}'。格式(迭代))
plt.plot(x,sin(x),“:”,lw=4,label='The one and only Sinus')
plt.图例(bbox_至_锚=(1,1))
plt.xlabel('x')
plt.ylabel('f(x)')
plt.ylim(-2,2)
plt.grid()
plt.图(figsize=(20,10))
您有错误的缩进,并且返回(sinx)
在else
-对于n==1
它返回None
所以改变缩进
def taylor_sinus(n,x):
if n==1:
sinx=x
elif n < 1:
print('ERROR 302: approximation not found')
else:
sinx=0
for i in range(1,n):
sinx=sinx-((-1)**i*((x**(2*i-1))/fak(2*i-1)))
return(sinx)
始终将完整的错误消息(从单词“Traceback”开始)作为文本(而不是屏幕截图)进行讨论(不是评论)。还有其他有用的信息。您可能有错误的缩进,并且
return(sinx)
在else
-因此对于n==1
它返回None
-这会导致显示问题,并且您会收到错误消息。
def taylor_sinus(n,x):
if n==1:
sinx=x
return(sinx)
elif n < 1:
print('ERROR 302: approximation not found')
else:
sinx=0
for i in range(1,n):
sinx=sinx-((-1)**i*((x**(2*i-1))/fak(2*i-1)))
return(sinx)