当前位置: 首页 > 知识库问答 >
问题:

python中泰勒级数的罪恶

萧煜
2023-03-14

这是我的代码:

import math    
x=float(( input ('x ? ' )))  
n  = 1000   #a big number 
b=0      
for i in range (n):    
   a=(((((-1)**i))*(x**((2*i)+1)))/(math.factorial((2*i)+1)))   
   b+=a     
print (b)

但它不起作用并显示此错误:

"OverflowError: long int too large to convert to float"

共有2个答案

周鸿运
2023-03-14

正弦泰勒级数的正确答案

# calculate sin taylor series by using for loop in python
from math import*

print "sine taylor series is="

x=float(raw_input("enter value of x="))

for k in range(0,10,1):
    y=((-1)**k)*(x**(1+2*k))/factorial(1+2*k)

    print y
艾文斌
2023-03-14

这只是为了密谋:

import numpy as np
vmysin = np.vectorize(mysin, excluded=['order'])

x = np.linspace(-80, 80, 500)
y2 = vmysin(x, 2)
y10 = vmysin(x, 10)
y100 = vmysin(x, 100)
y1000 = vmysin(x, 1000)
y = np.sin(x)

import matplotlib.pyplot as plt
plt.plot(x, y, label='sin(x)')
plt.plot(x, y2, label='order 2')
plt.plot(x, y10, label='order 10')
plt.plot(x, y100, label='order 100')
plt.plot(x, y1000, label='order 1000')
plt.ylim([-3, 3])
plt.legend()
plt.show()

它有数值不稳定和下溢的问题,因为过一会儿(大约100次循环,取决于< code>x) a变成0。

 类似资料:
  • 我有一个作业,教授要我们用泰勒级数计算sin(x)。他希望我们在两个连续分数之间的差小于10^-6时停止迭代。 最后,我说,例如x^5/5!与(x^3/3!)*相同(x^2/4*5),所有分数都是如此。所以我可以保留之前计算的分数,并在下一次迭代中使用。问题是,我最终得到的数字与它的实际罪过有点偏差,我不知道为什么。提前谢谢。这是我的代码:

  • 我需要对我的递归方法的一些洞察力来计算辛泰勒级数,它不能正常工作。该方法调用了另外两个递归方法,即递归pow方法和递归阶乘方法。我将我的发现与迭代罪方法进行了比较,给了我正确的解决方案。我的递归罪方法中缺少什么? sin(x)= x - x^3/3的近似值!x^5/5!-x^7/7!...

  • 在数学中,泰勒级数对于用低次多项式逼近函数是很重要的。 我想看看这样的近似如何有帮助,例如为了加快计算速度。让我们使用著名的泰勒级数: 从道德上讲,计算2次多项式的值应该比计算快得多。 因此,一个测试代码: 为什么多项式法比实际测井慢10倍?我期待的正好相反。 PS:这个问题可能在SO和math.SE.

  • 我试着做x正弦的泰勒展开,但是如果x大于150度,函数就会发散。 这是我的代码: 在这里,我将自治领绑定为[0,2pi]。 这里,我定义了一个阶乘函数 这是sin(x)的Taylor(Maclaurin)级数展开式 } 问题是它必须在[0,2pi]中为x定义,所以我不知道该怎么做。 谢谢

  • 我使用泰勒级数来计算< code>sin()。对原罪的泰勒级数是: 我使用的实现如下所示: 据我所知,该代码是多项式的项的近似(换句话说,该近似是从零到 系列编写相同类型的实现。 你能帮我理解一下吗?

  • 我有一个XDB时间序列数据库,我正在存储一个名为的度量。此度量有两个相关度量,和。每个度量也有一个标记,带有与其关联的供应商id。 每分钟,我都有一个服务,它会整理我调用