python泰勒公式_Python用泰勒公式模拟函数
泰勒公式
数学中,泰勒公式是一个用函数在某点的信息描述其附近取值的公式。如果函数足够平滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值。泰勒公式还给出了这个多项式和实际的函数值之间的偏差。
泰勒公式是将一个在x=x0处具有n阶导数的函数f(x)利用关于(x-x0)的n次多项式来逼近函数的方法。
若函数f(x)在包含x0的某个闭区间[a,b]上具有n阶导数,且在开区间(a,b)上具有(n+1)阶导数,则对闭区间[a,b]上任意一点x,成立下式:
其中,f(n)(x)表示f(x)的n阶导数,等号后的多项式称为函数f(x)在x0处的泰勒展开式,剩余的Rn(x)是泰勒公式的余项,是(x-x0)n的高阶无穷小。
下面我们通过Python模拟e^x函数和sin(x)函数
模拟e^x函数
import numpy as np
import math
import matplotlib as mpl
import matplotlib.pyplot as plt
def calc_e_small(x):
n = 10
f = np.arange(1, n+1).cumprod()
b = np.array([x]*n).cumprod()
return np.sum(b / f) + 1
def calc_e(x):
reverse = False
if x < 0: # 处理负数
x = -x
reverse = True
ln2 = 0.69314718055994530941723212145818
c = x / ln2
a = int(c+0.5)
b = x - a*ln2
y = (2 ** a) * calc_e_small(b)
if reverse:
return 1/y
return y
if __name__ == "__main__":
t1 = np.linspace(-2, 0, 10, endpoint=False)
t2 = np.linspace(0, 4, 20)
t = np.concatenate((t1, t2))
print(t) # 横轴数据
y = np.empty_like(t)
for i, x in enumerate(t):
y[i] = calc_e(x)
print('e^', x, ' = ', y[i], '(近似值)\t', math.exp(x), '(真实值)')
plt.figure(facecolor='w')
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
plt.plot(t, y, 'r-', t, y, 'go', linewidth=2, markeredgecolor='k')
plt.title('Taylor展式的应用 - 指数函数', fontsize=18)
plt.xlabel('X', fontsize=15)
plt.ylabel('exp(X)', fontsize=15)
plt.grid(True, ls=':')
plt.show()
模拟sin(x)函数
def calc_sin_small(x):
x2 = -x ** 2
t = x
f = 1
sum = 0
for i in range(10):
sum += t / f
t *= x2
f *= ((2*i+2)*(2*i+3))
return sum
def calc_sin(x):
a = x / (2*np.pi)
k = np.floor(a)
a = x - k*2*np.pi
return calc_sin_small(a)
t = np.linspace(-2*np.pi, 2*np.pi, 100, endpoint=False)
y[i] = calc_sin(x)
print('sin(', x, ') = ', y[i], '(近似值)\t', math.sin(x), '(真实值)')
print('误差:', y[i] - math.sin(x))
plt.plot(t, y, 'r-', t, y, 'go', linewidth=2)
plt.title('Taylor展式的应用 - 正弦函数', fontsize=18)
plt.ylabel('sin(X)', fontsize=15)
plt.xlim((-7, 7))
plt.ylim((-1.1, 1.1))
plt.grid(True)
python泰勒公式_Python用泰勒公式模拟函数相关推荐
- python键_Python键盘按键模拟
有时候我们需要使用python执行一些脚本,可能需要让程序自动按键或自动点击鼠标,下面的代码实现了对键盘的模拟按键, 需要安装pypiwin32,当然也可以直接用ctypes来实现. 输入:pip i ...
- python开发_python中的range()函数
python中的range()函数的功能hen强大,所以我觉得很有必要和大家分享一下 就好像其API中所描述的: If you do need to iterate over a sequence o ...
- python反余弦函数_Python代码中acos()函数有什么功能呢?
摘要: 下文讲述Python代码中acos()函数的简介说明,如下所示: acos()函数功能 用于计算出x的反余弦弧度值 acos()函数语法 math.acos(x) ---------参数说明- ...
- python 数学公式_python的数学算法函数及公式用法
之前老是跟大家说看久了Python,总感觉就像是很多的数学公式运算,大家一致觉得只是一点点像,那今天跟大家直接就说下叫"数学"算法的内容,这样大家再来品鉴下,是不是可以贯通使用的内 ...
- 投掷骰子的python代码_Python基础篇——模拟掷骰子小游戏
写在前面 ↓ 骰子是我们经常能看到的小玩意儿,今天我们来做一个模拟掷骰子过程的文字版小游戏,送给幻想编程岛新接触Python的初学者们~ 注:本教程基于64位windows系统(鼠标右键点击桌面&qu ...
- python布尔函数_Python内置bool函数详细介绍
英文文档: classbool([x]) Return a Boolean value, i.e. one of True or False. x is converted using the sta ...
- python __call__一般用在哪些地方_Python __call__内置函数的作用和用法
开学了进入了实验室,需要协助大师兄做事,主要是OpenStack中的代码解析,但是涉及很多python高级用法,一时间有点麻烦,在做项目的同时慢慢更新博客.这次先写一下__call__的用法,因为经常 ...
- python 按键精灵_python中用ctypes模拟点击的实例讲解
在小编学习python中的模拟点击之前,我们想要对某一项操作进行自动指令的重复,可以选择大家熟知的按键精灵.那么对比python的模拟点击,小编还是觉得python中使用更加方便.这样说不能让有些小伙 ...
- python调用js库中的函数_Python 调用JS文件中的函数
Python 调用JS文件中的函数 1.安装PyExecJS第三方库 2.导入库:import execjs 3.调用JS文件中的方法 Passwd = execjs.compile(open(r&q ...
最新文章
- 如何安装新linux内核,详解Debian系统中安装Linux新内核的流程
- 程序员的时间管理哲学 —— 如何更好的利用我们的时间
- OpenCV通过填充修复损坏的图像的实例(附完整代码)
- linux开机磁盘检查启动慢,Ubuntu 7.10开机启动慢的完美解决
- 《构建之法》--阅读(第13章-第17章)
- html5 手机拍视频滤镜,用canvas实现图片滤镜效果附演示_html5教程技巧
- Objective-C超高精度的计时器
- SQL获取当前日期函数
- 无法访问工作组计算机修复工具,局域网共享一键修复工具
- 测试固态硬盘写入数据软件,SSD测试软件简要说明
- 八爪鱼采集ajax表格,如何快速统计简书数据——八爪鱼采集器(二)
- python k线斜率计算_python求线性回归斜率
- 20165107 网络对抗技术 Exp4 恶意代码分析
- 史上最最最没用程序——自写平衡化学方程式
- 使用backdrop-filter部分场景的替代效果
- 什么东西可以替代触屏笔?Ipad触屏笔推荐品牌
- JS的组成-JS数组方法-JS函数-系统化学习
- Ant入门教程(上)
- 7月7日云栖精选夜读:专访 | 杨强教授谈CCAI、深度学习泡沫与人工智能入门
- 不知不觉自己的C盘越来越大了?你可能需要看一看这个