Python 数值计算与数值分析基础
示例演示
当涉及到Python数值计算和数值分析时,下面是20个示例,涵盖了一些常见的用法:
1.数值积分:
在 Python 中,你可以使用 scipy.integrate 模块中的 quad 函数来进行数值积分
import numpy as np
from scipy.integrate import quad
# 定义被积函数
f = lambda x: np.sin(x)
# 计算积分
result, error = quad(f, 0, np.pi)
# 输出结果
print("积分结果:", result)
print("误差估计:", error)
积分结果: 2.0
误差估计: 2.220446049250313e-14
2.数值微分:
import numpy as np
# 定义函数
f = lambda x: np.cos(x)
# 定义微分点和一个很小的h值
x0 = 0.5
h = 1e-5
# 计算数值微分(使用中心差分法)
numerical_derivative = (f(x0 + h) - f(x0 - h)) / (2 * h)
# 输出结果
print("数值导数结果:", numerical_derivative)
数值导数结果: -0.47942553859647846
3.非线性方程求根:
在 Python 中,你可以使用 scipy.optimize 模块的 fsolve 函数来求解方程。
import numpy as np
from scipy.optimize import fsolve
# 定义方程
def equation(x):
return x**2 - 2
# 使用 fsolve 进行求解
solution = fsolve(equation, 1.5)
# 输出结果
print("方程的解:", solution[0])
方程的解: 1.4142135623730951
4.线性方程组求解:
在 Python 中,使用 NumPy 库可以方便地处理矩阵和线性代数运算。使用 np.linalg.solve(A, b) 函数求解线性方程组Ax=b。
import numpy as np
# 定义矩阵 A 和向量 b
A = np.array([[1, 2], [3, 4]])
b = np.array([5, 6])
# 求解线性方程 Ax = b
x = np.linalg.solve(A, b)
# 输出结果
print("解 x:", x)
解 x: [-4. 4.5]
5.曲线拟合:
在 Python 中,你可以使用 NumPy 和 SciPy 库来生成数据,并使用 Matplotlib 进行绘图。对于拟合功能,可以使用 scipy.optimize.curve_fit 来实现。
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# 定义 sine 函数
def sin_func(x, a, b, c, d):
return a * np.sin(b * x + c) + d
# 生成数据
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x) + np.random.rand(len(x)) * 0.2 # 添加随机噪声
# 拟合数据
initial_guess = [1, 1, 0, 0] # 初始猜测参数
params, covariance = curve_fit(sin_func, x, y, p0=initial_guess)
# 生成拟合曲线
y_fit = sin_func(x, *params)
# 绘制结果
plt.scatter(x, y<