华氏温度与蟋蟀鸣叫次数:线性与二次多项式拟合及误差分析
```python import numpy as np import matplotlib.pyplot as plt X = np.array([46, 49, 51, 52, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 71, 72, 71]) Y = np.array([40, 50, 55, 63, 72, 70, 77, 73, 90, 93, 96, 88, 99, 110, 113, 120, 127, 137, 132, 137]) # 划分拟合数据和预测数据 split_index = len(X) // 2 X_fit = X[:split_index] Y_fit = Y[:split_index] X_pred = X[split_index:] Y_pred = Y[split_index:] # 线性拟合 coefficients_linear = np.polyfit(X_fit, Y_fit, 1) poly_linear = np.poly1d(coefficients_linear) # 二次多项式拟合 coefficients_quadratic = np.polyfit(X_fit, Y_fit, 2) poly_quadratic = np.poly1d(coefficients_quadratic) # 预测 Y_pred_linear = poly_linear(X_pred) Y_pred_quadratic = poly_quadratic(X_pred) # 计算相对误差 relative_error_linear = np.abs((Y_pred - Y_pred_linear) / Y_pred) relative_error_quadratic = np.abs((Y_pred - Y_pred_quadratic) / Y_pred) # 计算平均值和最值 average_error_linear = np.mean(relative_error_linear) max_error_linear = np.max(relative_error_linear) min_error_linear = np.min(relative_error_linear) average_error_quadratic = np.mean(relative_error_quadratic) max_error_quadratic = np.max(relative_error_quadratic) min_error_quadratic = np.min(relative_error_quadratic) # 绘制原始数据和拟合曲线 plt.scatter(X, Y, label='Original Data') plt.plot(X_pred, Y_pred_linear, label='Linear Fit') plt.plot(X_pred, Y_pred_quadratic, label='Quadratic Fit') plt.xlabel('X') plt.ylabel('Y') plt.title('Data Fitting') plt.legend() plt.show() print("线性拟合相对误差平均值:", average_error_linear) print("线性拟合相对误差最大值:", max_error_linear) print("线性拟合相对误差最小值:", min_error_linear) print("二次多项式拟合相对误差平均值:", average_error_quadratic) print("二次多项式拟合相对误差最大值:", max_error_quadratic) print("二次多项式拟合相对误差最小值:", min_error_quadratic) ``` ######[AI问答 | 697点数解答 | 2025-04-06 09:06:10]
- 用 C++ 和 OpenCV 生成带随机偏移的圆周上的点:代码剖析(字节豆包 | 29点数解答 | 2024-11-06 23:40:42)271
- 探秘小学说明文里的有趣小昆虫——蟋蟀(字节豆包 | 184点数解答 | 2024-12-23 20:59:44)194
- Java 实现:轻松生成 5 位数字、大小写字母混合验证码( | 266点数解答 | 2024-03-06 17:39:10)345
- 深度剖析:游戏中两个 Buff 效果的触发条件、逻辑及注意要点 (阿里通义 | 566点数解答 | 2024-11-26 14:24:12)270
- 深度剖析 Vue 2 插槽:从基础使用到高级玩法(字节豆包 | 165点数解答 | 2024-11-29 11:25:06)227
- C++实现支持四则运算的简单计算器,处理除数为0和无效操作(字节豆包 | 241点数解答 | 2025-10-29 20:21:29)77
- C语言破解甲乙丙真假话谜题:开发中需留意的三大要点(字节豆包 | 444点数解答 | 2025-11-24 00:10:58)66