Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:x、y和格式字符串不能为None_Python_Numpy_Matplotlib_Math_Taylor Series - Fatal编程技术网

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)