python 泰勒展开式_python函数的Taylor级数sympy表达式

下面的代码与您要查找的代码非常接近。这是为了解析函数的代码,你想把它展开成泰勒级数,用Sympy把它转换成符号表示,然后计算泰勒展开。在

一个限制是需要有一个显式函数定义,这样就不能使用lambda表达式。这可以通过进一步的工作来解决。否则代码就可以满足您的要求。请注意,当您定义一个函数时,它必须包含y = ...形式的一行代码才能工作from inspect import *

import sympy

def f(x):

# a very complicated function

y = sin(x) + cos(x) + log(abs(x)+2)**2/e**2 + sin(cos(x/2)**2) + 1

return y

def my_sin(x):

y = sin(x)

return y

def my_exp(x):

y = e**x

return y

x = sympy.Symbol('x')

def get_polynomial(function, x0, degree):

# parse function definition code

lines_list = getsource(function).split("\n")

for line in lines_list:

if '=' in line:

func_def = line

elements = func_def.split('=')

line = ' '.join(elements[1:])

sympy_function = sympy.sympify(line)

# compute taylor expansion symbolically

i = 0

taylor_exp = sympy.Integer(0)

while i <= degree:

taylor_exp = taylor_exp + (sympy.diff(sympy_function,x,i).subs(x,x0))/(sympy.factorial(i))*(x-x0)**i

i += 1

return taylor_exp

print (get_polynomial(my_sin,0,5))

print (get_polynomial(my_exp,0,5))

print (get_polynomial(f,0,5))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值