You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python实现二次函数拟合预测全球温度变化(附CSV数据源)

适配全球温度数据的二次函数拟合程序

以下是将你的测试代码适配到实际全球温度数据的完整方案,包含数据读取、二次拟合和可视化:

步骤说明

  • 数据读取:从共享表格加载年份与温度变化数据,用pandas简化数据处理
  • 二次拟合:保留你原有的矩阵求逆方法计算拟合参数,也可使用更简洁的numpy.polyfit
  • 可视化:调整坐标轴范围为实际年份区间,添加图表标签提升可读性

完整代码

import numpy as np
from numpy.linalg import inv
import matplotlib.pyplot as plt
import pandas as pd

# 读取实际全球温度数据(转换共享表格链接为CSV导出格式)
url = "https://docs.google.com/spreadsheets/d/1QbFIUE1AcFCOgDZH5K2vPColxXeBVDV-sJhS9On2BYY/export?format=csv"
df = pd.read_csv(url)

# 提取自变量x(年份)和因变量y(温度变化)
x = df["Year"].values
y = df["Temperature Anomaly (°C)"].values
m = len(x)

# 二次拟合计算参数
# 构造设计矩阵X(包含常数项、x、x²)
X = np.transpose([np.ones(m), x, x ** 2])
# 计算拟合参数theta
theta = inv(np.transpose(X) @ X) @ np.transpose(X) @ y

# 可选:用numpy内置polyfit简化计算(结果与矩阵方法一致)
# theta = np.polyfit(x, y, 2)[::-1]  # 反转顺序匹配[常数项, x系数, x²系数]

# 生成拟合曲线的预测点
xp = np.arange(min(x), max(x) + 1, 0.1)
yp = theta[0] + theta[1] * xp + theta[2] * xp ** 2

# 可视化训练样本与拟合曲线
plt.figure(figsize=(10, 6))
plt.scatter(x, y, color='blue', label='实际温度数据')
plt.plot(xp, yp, color='red', linewidth=2, label=f'二次拟合曲线: y = {theta[0]:.4f} + {theta[1]:.4f}x + {theta[2]:.4f}x²')
plt.xlabel('年份')
plt.ylabel('温度异常值(°C)')
plt.title('全球温度变化的二次函数拟合')
plt.legend()
plt.grid(True)
plt.show()

关键修改点

  • 替换随机数据生成逻辑,改为读取真实CSV数据
  • 调整拟合曲线的x轴范围为实际年份区间,避免无意义的负数年份
  • 添加图表标签、标题和图例,提升可视化效果
  • 提供了numpy.polyfit的简化实现选项,两种方法拟合结果一致

内容的提问来源于stack exchange,提问作者Jake Protagonist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:01:23