MATLAB数据拟合例子

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB数据拟合例子(一次函数、指数函数、双曲线)

(2010-06-03 01:44:30)转载▼

分类:数学工具

标签:杂

一次函数:(a+bx = y)

%先求出拟合函数

format long;

x = [2001 2002 2003 2004 2005 2006 2007 2008 2009];

y = [32.2 31.3 29.7 28.6 27.5 26.1 25.3 23.7 22.7];

d = [1 1 1 1 1 1 1 1 1];

a=[d;x];

b = a*y';

a=a*a';

c=a\b

c =

1.0e+003 *

2.436797222221444

-0.001201666666666

%所以,拟合函数为 y = 1.0e+003 *(2.436797222221444 - 0.001201666666666*x %根据拟合函数求估测值

format short;

x = [2010, 2011, 2012, 2013, 2014]

1.0e+003 *(

2.436797222221444 - 0.001201666666666*x)

ans =

21.4472 20.2456 19.0439 17.8422 16.6406

指数函数:( y = exp(a + b*x))

>> x = [2001 2002 2003 2004 2005 2006 2007 2008 2009];

y = [21.5 15.9 11.8 8.7 6.5 4.8 3.5 2.6 2.0]; y=log(y');

d = [1 1 1 1 1 1 1 1 1];

a=[d;x];

b = a*y;

a=a*a';

c=a\b

c =

601.9448

-0.2993

%所以,拟合函数为 y = exp(601.9448 - 0.2993*x)

%根据拟合函数求估测值

>> x = [2010, 2011, 2012, 2013, 2014]

exp(601.9448 - 0.2993*x)

ans =

1.4216 1.0539 0.7813 0.5792 0.4294

双曲线:(1/y = a + b/x)

format long;

x = [2002 2003 2004 2005 2006 2007 2008 2009]; y = [46.2 32.6 26.7 23.0 20.0 18.9 17.5 16.3]; t=1./x;

u = 1./y';

d = [1 1 1 1 1 1 1 1];

a = [d; t];

b = a*u;

a=a*a';

c=a\b

c =

1.0e+004 *

0.001110403638151

-2.218020870743078

format short;

x = [2010, 2011, 2012, 2013, 2014]

x./(1.0e+004 * (0.001110403638151*x -2.218020870743078)) ans =

14.4704 13.4059 12.4882 11.6888 10.9862

相关文档
最新文档