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

基于给定数据点构建C语言拟合函数的技术求助

温度-系数拟合函数开发记录

我正在用C语言开发函数,需要基于给定数据点构建拟合函数,但始终无法得到贴合曲线的结果,对应图表如下:
原始数据曲线
程序核心使用区间为0-500°F,此区间的拟合精度至关重要。

提取的近似数据点

温度(°F), 系数

(-300, 1.57)
(-200, 1.33)
(-100, 1.16)
(0, 1.05)
(100, 0.98)
(200, 0.94)
(300, 0.915)
(400, 0.865)

二次函数拟合尝试

  • y = 0.00000244x² -0.001x + 1.05:在-300-100°F区间拟合效果较好,但x>100°F时误差显著增大。
  • y = 1.6904761904745×10^-6 x² - 0.00109048x + 1.0628:整体拟合度优于前者,但仍无法满足精度需求。

我考虑采用三次函数建模,但无法确定具体形式;也计划将T<200°F和T>200°F分为两个独立函数进行拟合,寻求可行建议。


编辑1:分段线性函数尝试

找到一组分段线性函数拟合数据集,但400-500°F区间可能仍存在误差:

1.) y=-0.0024x + 0.85 {-300< x <-200}
2.) y=-0.0017x + 0.99 {-200< x <-100}
3.) y=-0.0011x + 1.05 {-100< x < 0}
4.) y=-0.0007x + 1.05 {0 < x <100}
5.) y=-0.0004x + 1.02 {100 < x < 200}
6.) y=-0.00025x + 0.99 {200 < x < 300}
7.) y=-0.0005x + 1.065 {300< x < 400}
8.) y=-0.00065x + 1.125 {400< x < 500} *预估500°F时系数为0.8*

分段线性函数拟合曲线


编辑2:两段分段函数建模

在JJacquelin的帮助下完成了效果较好的建模,最终采用两段分段函数:

1.) y = 0.83583 + 0.218653e^(-0.00404x) {-400 < x < 185} 
2.) y = -0.0000014x² + 0.000465x + 0.9027 {185 < x < 500}

两段分段函数拟合曲线


编辑3:三次样条插值(最终方案)

JAlex提出的三次样条插值方法可行,成为最终采用的方案。适配了Arduino库:sakov/csa-c(三次样条近似)

三次样条插值与原始数据集拟合度极佳,T=500°F和T=600°F的数据点由编辑2中的公式2预估得出。
三次样条插值拟合对比曲线


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:25:17