matlab表达一次函数,[转载]MATLAB数据拟合例子(一次函数、指数函数、双曲线)...

一次函数:(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=ab

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=ab

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=ab

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值