微积分中的无穷级数与微分方程
立即解锁
发布时间: 2025-08-29 10:09:30 阅读量: 3 订阅数: 9 


Python数学与AI应用入门
# 微积分中的无穷级数与微分方程
## 一、无穷级数基础
### 1.1 多项式函数与泰勒级数
在数学中,我们常常会遇到难以求解或处理的复杂函数,此时近似方法就显得尤为重要。多项式函数是一类易于求解、求导和积分的函数,例如 \(y = x^2\)。我们可以使用泰勒级数用简单的多项式来近似复杂函数。泰勒级数的公式可以让我们在特定点以一定精度近似任何可导函数。
### 1.2 级数表示
数学家使用特殊的符号来表示按照一定模式相加的一系列数字。例如,\(\sum\) 这个看起来像大写 E 的符号是希腊字母 sigma,表示求和。下面是一个简单的例子,计算从 1 到 10 的整数之和:
```python
s = sum([i for i in range(1, 11)])
```
如果要计算从 1 到 \(n\) 的整数平方和,可以这样写:
```python
s = sum([i**2 for i in range(1, n + 1)])
```
### 1.3 反正切级数
反正切级数是一个古老且有用的级数,用于计算给定正切值对应的角度(以弧度为单位)。其公式如下:
```python
def arctan(x, n):
"""Returns the arctangent of x using a series of n terms."""
return sum([((-1)**(i - 1) * (x**(2 * i - 1))) / (2 * i - 1) for i in range(1, n + 1)])
print(arctan(1 / 1.732, 10))
```
运行上述代码,经过 10 项计算后,得到的结果非常接近实际角度值。
### 1.4 级数收敛
数学家曾尝试简化反正切级数来计算 \(\pi\) 的值。他们发现将反正切级数中的 \(x\) 替换为 1 可以用于近似 \(\pi\),代码如下:
```python
for n in range(1, 10):
print(4 * sum([((-1)**(i - 1)) / (2 * i - 1) for i in range(1, n + 1)]))
```
然而,这个级数收敛到 \(\pi/4\) 的速度非常慢,经过 100 万项计算后,也只能得到 5 位正确的小数。为了更准确地近似 \(\pi\),数学家们一直在寻找更好的级数。
### 1.5 不同级数近似 \(\pi\) 的比较
- **约翰·马青级数**:使用改进的反正切级数可以更准确地计算 \(\pi\) 的值。以下是计算 10 位正确小数的代码:
```python
def arctan(x, n):
return sum([((-1)**(i - 1) * (x**(2 * i - 1))) / (2 * i - 1) for i in range(1, n + 1)])
print(4 * (4 * arctan(1 / 5, 10) - arctan(1 / 239, 10)))
```
- **欧拉表达式**:欧拉提出的表达式也可用于近似 \(\pi\),代码如下:
```python
from math import sqrt
for n in [100, 1000, 1000000]:
print(sqrt(6 * sum([1 / (i**2) for i in range(1, n + 1)])))
```
经过测试,该表达式收敛速度也不快,100 万项后仍只有 5 位正确小数。
- **拉马努金公式**:印度数学家拉马努金提出的公式可以非常准确地近似 \(\pi\),代码如下:
```python
from math import sqrt, factorial
one_over_pi = 2 * sqrt(2) / 9801 * sum([(factorial(4 * k) * (1103 + 26390 * k)) / (((factorial(k))**4) * (396**(4 * k))) for k in range(10)])
print(1 / one_over_pi)
```
经过 10 项计算,结果就非常准确。
### 1.6 收敛区间
级数收敛的取值范围称为收敛区间。我们可以使用 Python 来确定收敛区间,具体步骤如下:
1. 定义级数求和函数,例如:
```python
def mystery_sum(x):
return sum([(((-1)**n) * n) / (4 * n) * (x + 3)**n for n in range(1, 1000000)])
```
2. 遍历一些整数,检查级数是否收敛:
```python
for x in range(-10, 11):
print(x,
```
0
0
复制全文
相关推荐










