首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带自定义方程的MATLAB曲线拟合

带自定义方程的MATLAB曲线拟合
EN

Stack Overflow用户
提问于 2013-05-23 12:34:36
回答 1查看 5.9K关注 0票数 3

我正在处理由两个数组组成的曲线拟合数据:

代码语言:javascript
运行
复制
t: 1, 3, 4, 7, 8, 10

P: 2.1, 4.6, 5.4, 6.1, 6.4, 6.6

这两个变量之间的关系由P = mt/(b+t)给出。我被告知通过将方程与数据点进行曲线拟合来确定常数m和b。这应该通过写出方程的倒数并使用一阶多项式来完成。下面是我的代码:

代码语言:javascript
运行
复制
t = [1 3 4 7 8 10];
P = [2.1 4.6 5.4 6.1 6.4 6.6];

p = polyfit(t, t./P, 1);


m = 1/p(1)
b = p(2)*m

tm = 1:0.01:10;
Pm = (m*tm)./(b+tm);

plot(t,P, 'o', tm, Pm)

书中的答案是m = 9.4157b = 3.4418。上面的代码生成m = 8.4807b = 2.6723。我的错误是什么?任何建议都将不胜感激。谢谢您抽时间见我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-24 18:40:56

要跟进@David_G的评论,看起来你有了更好的答案。实际上,如果你通过MATLAB中的曲线拟合工具箱运行数据,你会得到:

代码语言:javascript
运行
复制
General model:
  f(t) = m*t/(b+t)
Coefficients (with 95% confidence bounds):
   b =       2.587  (1.645, 3.528)
   m =       8.448  (7.453, 9.443)

Goodness of fit:
  SSE: 0.1594
  R-square: 0.9888
  Adjusted R-square: 0.986
  RMSE: 0.1996

您的解决方案几乎一样好:

代码语言:javascript
运行
复制
Goodness of fit:
  SSE: 0.1685
  R-square: 0.9881
  Adjusted R-square: 0.9852
  RMSE: 0.2053

这两个都比书中的要好:

代码语言:javascript
运行
复制
Goodness of fit:
  SSE: 0.404
  R-square: 0.9716
  Adjusted R-square: 0.9645
  RMSE: 0.3178
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16705730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档