matlab 线性拟合 用Matlab做线性拟合方法

简介

非线性最小二乘优化在曲线拟合、参数估计等问题中有着广泛的应用。例如,我们要拟合一系列观测数据(t,y),拟合函数为F(t,x),他是x的非线性函数。对于这种最小二乘曲线拟合问题,可以通过Matalb优化工具箱中的lsqcurvefit命令求解,可以根据实际问题进行曲线拟合。

例题

在工程实验中,测得下面一组数据。求系数a、b、c、d,使得函数为表中数据的最佳拟合函数。

f(t)=a+b・sin(t)+c・cos(t)+dt3

观测数据表

――――――――――――――――――――――――――――――――――

t? |? ?? 0??? 0.5?? ? 1? ?? 1.5?? ?? 2? ?? 2.5??? ? 3? ?? 3.5???? 4

――――――――――――――――――――――――――――――――――

y? |???? 0??? 3.4??? 4.1??? 4.6? ?? 5.9??? 6.9? ?? 8.1? ? 9.8? ?? 11

――――――――――――――――――――――――――――――――――

matlab 线性拟合 用Matlab做线性拟合方法
方法/步骤

function f=example8_15(x,ti)

n=length(ti);

for i=1:n

??? f(i)=x(1)+x(2)*sin(ti(i))+x(3)*cos(ti(i))+x(4)*ti(i)^3;

end

>> ti=[0??? 0.5???? 1???? 1.5????? 2???? 2.5????? 3???? 3.5???? 4];

>> yi=[0??? 3.4??? 4.1??? 4.6???? 5.9??? 6.9???? 8.1??? 9.8???? 11];

>> x0=[1 1 1 1]';???? %初始点选为全1向量

>> [x,resnorm,residual,exitflag,output,lambda,J]=lsqcurvefit(@example8_15,x0,ti,yi)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Optimization completed because the size of the gradient is less than

the default value of the function tolerance.

<stopping criteria details>

x =

??? 1.8706

??? 2.7714

?? -1.0477

??? 0.1708

resnorm =

??? 2.9080

residual =

? Columns 1 through 7

??? 0.8228?? -1.0989?? -0.2927??? 0.5373??? 0.2929??? 0.1372?? -0.1897

? Columns 8 through 9

?? -0.5977??? 0.3887

exitflag =

???? 1

output =

??? firstorderopt: 6.6428e-08

?????? iterations: 2

??????? funcCount: 15

用Matlab做线性拟合方法_拟合

???? cgiterations: 0

??????? algorithm: 'trust-region-reflective'

????????? message: [1x425 char]

lambda =

??? lower: [4x1 double]

??? upper: [4x1 double]

J =

?? (1,1)?????? 1.0000

?? (2,1)?????? 1.0000

?? (3,1)?????? 1.0000

?? (4,1)?????? 1.0000

?? (5,1)?????? 1.0000

?? (6,1)?????? 1.0000

?? (7,1)?????? 1.0000

?? (8,1)?????? 1.0000

?? (9,1)?????? 1.0000

?? (2,2)?????? 0.4794

?? (3,2)?????? 0.8415

?? (4,2)?????? 0.9975

?? (5,2)?????? 0.9093

?? (6,2)?????? 0.5985

?? (7,2)?????? 0.1411

?? (8,2)????? -0.3508

?? (9,2)????? -0.7568

?? (1,3)?????? 1.0000

?? (2,3)?????? 0.8776

?? (3,3)?????? 0.5403

?? (4,3)?????? 0.0707

?? (5,3)????? -0.4161

?? (6,3)????? -0.8011

?? (7,3)????? -0.9900

?? (8,3)????? -0.9365

?? (9,3)????? -0.6536

?? (2,4)?????? 0.1250

?? (3,4)?????? 1.0000

?? (4,4)?????? 3.3750

?? (5,4)?????? 8.0000

?? (6,4)????? 15.6250

?? (7,4)????? 27.0000

?? (8,4)????? 42.8750

?? (9,4)????? 64.0000

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

>> xi=0:0.1:4;

>> y=example8_15(x,xi);

>> plot(ti,yi,'r*')

>> grid on

>> hold on

>> plot(xi,y)

>> legend('观测数据点','拟合曲线')

>> title('最小二乘曲线拟合')

  

爱华网本文地址 » http://www.413yy.cn/a/8105130103/342031.html

更多阅读

matlab曲线拟合 函数 用法以及例子 如何用matlab拟合曲线

matlab曲线拟合 函数 用法以及例子——简介在运行MATLAB编程进行数据的处理过程当中,我们常常用到matlab曲线拟合,但是工具箱由于需要人工交互,得到的拟合结果,需要人工的去提取,再输入,所以,工具箱拟合结果十分不适合调用,以及继续下面的操

完美的折中:用上证50+上证180+深100ETF拟合沪深300

近来有朋友提出异议,说“LaoK早有定论,拟合沪深300的最好办法是两份上证180ETF+1份深证100ETF,何必多此一举”等等。我一向不认可任何所谓的定论,如果某人早有定论大家不得更改,我们还要大脑干什么?就算这个结论是对的,我们也要讨论一下为

MATLAB曲线拟合及绘图 用matlab拟合曲线

本人有一个实例对matlab进行简单的拟合及绘出相关的图像希望对初学者有帮助!!!!!!数据如下>> x=[1 2 3 5 912];%输入x的值>> y=[5 10 26 58 7599];%y值>>m=polyfit(x,y,3)%拟合m =0.0600-1.609820.4006 -18.6635%相当于y=0.06x^3-1.6

如何用EXCEL拟合回归多项式公式 excel多项式拟合函数

手头比方说有如下的数据,如果我们要对未来收入进行预测,该怎么做呢,当然是要找合适的回归模型!这个可以利用差分法或者散点图来判别,不过还是散点图比较方便,还可以自动出拟合回归方程。插入散点图如下,我们首先看一下散点的波动情况,如果

声明:《matlab 线性拟合 用Matlab做线性拟合方法》为网友朗月清风分享!如侵犯到您的合法权益请联系我们删除