curve_fit 是 SciPy 库中用于非线性最小二乘拟合的一个函数
import numpy as np
from scipy.optimize import curve_fit
# 定义模型函数,例如二次函数
def model_func(x, a, b, c):
return a * x**2 + b * x + c
# 生成一些模拟数据
x_data = np.linspace(0, 10, 50)
y_data = model_func(x_data, 1, -2, 3) + np.random.normal(0, 5, x_data.size)
# 使用 curve_fit 拟合模型
popt, pcov = curve_fit(model_func, x_data, y_data)
# popt 包含了最佳拟合参数
print("拟合参数:", popt)
# 使用拟合参数生成拟合曲线
x_fit = np.linspace(0, 10, 100)
y_fit = model_func(x_fit, *popt)
# 绘制数据点和拟合曲线
import matplotlib.pyplot as plt
plt.scatter(x_data, y_data, label='Data')
plt.plot(x_fit, y_fit, label='Fit', color='red')
plt.legend()
plt.show()
quad 是 SciPy 库中的一个函数,用于数值积分,特别是定积分的计算
from scipy.integrate import quad
# 定义要积分的函数
def integrand(x):
return x**2
# 指定积分的上下限
result, error = quad(integrand, 0, 1)
print("积分结果:", result)
print("估计误差:", error)
# 定义要积分的函数
def integrand(x):
return 1 / x**2
# 指定积分的下限,上限设置为无穷大
result, error = quad(integrand, 0, float('inf'))
print("积分结果:", result)
print("估计误差:", error)