“极限”是数学中的分支——微积分的基础概念,广义的“极限”是指“无限靠近而永远不能到达”的意思。数学中的“极限”指:某一个函数中的某一个变量,此变量在变大(或者变小)的永远变化的过程中,逐渐向某一个确定的数值A不断地逼近而“永远不能够重合到A”(“永远不能够等于A,但是取等于A‘已经足够取得高精度计算结果)的过程中,此变量的变化,被人为规定为“永远靠近而不停止”、其有一个“不断地极为靠近A点的趋势”。极限是一种“变化状态”的描述。此变量永远趋近的值A叫做“极限值”(当然也可以用其他符号表示)。
设{ xn }为一数列. 若有常数 a,对任意给定的正数 ε (无论它有多小),总存在正整数 N, 使当 n > N 时,不等式 | xn- a | < ε 恒成立, 则称 a 是数列{ xn} 的极限或称 { xn } 收敛于 a , 记为
#!/usr/bin/env python# -*- coding: UTF-8 -*-# _ooOoo_# o8888888o# 88" . "88# ( | - _ - | )# O\ = /O# ____/`---'\____# .' \\| |// `.# / \\|||:|||// \# / _|||||-:- |||||- \# | | \\\ - /// | |# | \_| ''\---/'' | _/ |# \ .-\__ `-` ___/-. /# ___`. .' /--.--\ `. . __# ."" '< `.___\_<|>_/___.' >'"".# | | : `- \`.;`\ _ /`;.`/ - ` : | |# \ \ `-. \_ __\ /__ _/ .-` / /# ==`-.____`-.___\_____/___.-`____.-'==# `=---=''''@Project :pythonalgorithms @File :limit.py@Author :不胜人生一场醉@Date :2021/7/30 0:20 '''#一尺之棰,日取其半,万世不竭。import matplotlib.pyplot as plt
import numpy as np
import math
# 求(n+(-1)**(n-1))/n数列极限def limit2(n):
return (n+math.pow(-1,(n-1)))/n
def limit3(n):
return math.cos(n*math.pi/2)/n
# 设{ xn }为一数列. 若有常数a,对任意给定的正数ε(无论它有多小),总存在正整数 N,# 使当n > N时,不等式|xn-a|<ε恒成立, 则称a是数列{xn}的极限或称 {xn}收敛于a,记为limitxn=aif __name__=='__main__':
#halfn() for i in range(10):
print(getpi(i))
for i in range(1,10):
print('n={},result={}'.format(i,limit2(i)))
for i in range(1,10):
print('n={},result={}'.format(i,limit3(i)))
print(limit2(1000))
# 0.999 print(limit3(1000))
# 0.001
运行结果如下:
3.0
3.105828541230249
3.1326286132812378
3.1393502030468667
3.14103195089051
3.1414524722854624
3.141557607911858
3.1415838921483186
3.1415904632280505
3.1415921059992717
n=1,result=2.0
n=2,result=0.5
n=3,result=1.3333333333333333
n=4,result=0.75
n=5,result=1.2
n=6,result=0.8333333333333334
n=7,result=1.1428571428571428
n=8,result=0.875
n=9,result=1.1111111111111112
n=1,result=6.123233995736766e-17
n=2,result=-0.5
n=3,result=-6.123233995736766e-17
n=4,result=0.25
n=5,result=6.123233995736766e-17
n=6,result=-0.16666666666666666
n=7,result=-6.123233995736766e-17
n=8,result=0.125
n=9,result=6.123233995736766e-17
0.999
0.001
Process finished with exit code 0
def halfn():
# 构造 x数组[1 2 3 4 5 6 7 8 9] x=np.arange(1,10,1)
# 构造 所余杖棰长度组成数列[0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125 0.00390625 0.00195312] y=1/np.power(2,x)
# 构造累加数组[0.5 0.75 0.875 0.9375 0.96875 0.984375 0.9921875 0.99609375 0.99804688] z=np.cumsum(y)
# 获取所余杖棰长度组成数列累计值,最后值=z 0.998046875 o=sum(y)
plt.figure(figsize=(10, 4))
ax = plt.gca() # 通过gca:get current axis得到当前轴 plt.rcParams['font.sans-serif'] = ['SimHei'] # 绘图中文 plt.rcParams['axes.unicode_minus'] = False # 绘图负号 label = 'y=1/np.power(2,x)' plt.plot(x, y, label=label)
label = '∑(1/np.power(2,x))' plt.plot(x, z, label=label)
# 设置图片的右边框和上边框为不显示 ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 添加横轴作为极限值 plt.hlines(1, 0, 10, colors="c", linestyles="dashed")
# 挪动x,y轴的位置,也就是图片下边框和左边框的位置 # data表示通过值来设置x轴的位置,将x轴绑定在y=0的位置 ax.spines['bottom'].set_position(('data', 0))
# axes表示以百分比的形式设置轴的位置,即将y轴绑定在x轴50%的位置 # ax.spines['left'].set_position(('axes', 0.5)) ax.spines['left'].set_position(('data', 0))
plt.title("一尺之棰,日取其半,万世不竭")
plt.legend(loc='upper right')
plt.show()
# 从内接正6边形,依次切分为12、24、48、96边形# 内接正6边形,△ABC为正三角形,∠O=60%# 圆形的半径为r,则AO=OB=BA=r# AP=AB/2=r/2# OP=g=SQR(r**2-AP**2)# PC=j=r-OP# AC=m=SQR(AP**2+PC**2)# AC=SQR((r/2)**2+(r-OP)**2)# AC=SQR((r/2)**2+(r-SQR(r**2-AP**2))**2)# AC=SQR((r/2)**2+(r-SQR(r**2-(r/2)**2))**2)## AD=AC/2def getpi(n):
## 假设边长为1 def getnewsidelength(x): ## 由当前边长,求割后边长 h = 1 - math.sqrt(1 - (x / 2) ** 2)
#print('x={} ,h={}, a={}'.format(x,h,a)) return math.sqrt(h ** 2 + (x / 2) ** 2)
a = 1 ## 初始边长 k = 6 ## 初始边数 for i in range(n):
a = getnewsidelength(a)
k *= 2 return a * k / 2