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
總結
以上是生活随笔為你收集整理的matlab 指数函数拟合,[转载]MATLAB数据拟合例子(一次函数、指数函数、双曲线)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三大类sql语句——该记录是本人以前微博
- 下一篇: matlab实验数据拟合,利用Matla