数学拟合 matlab,[数学建模(七)]使用MATLAB实现数据拟合

目录

1.线性最小二乘法

2.多项式拟合方法(polyfit)

3.最小二乘优化:lsqlin,lsqcurvefit,lsqnonlin,lsqnonneg

4.曲线拟合的用户图形界面求法(cftool)

1.线性最小二乘法

86e955758ee6eb6972b9721743958fee.png

37cfe44d399fb4ca6228ce130d01a9cf.png

x=[19 25 31 38 44]';

y=[19.0 32.3 49.0 73.3 97.8]';

r=[ones(5,1),x.^2];

ab=ry % if AB=C then B=AC

x0=19:0.1:44;

y0=ab(1)+ab(2)*x0.^2;

plot(x,y,'o',x0,y0,'r')

运行结果:

e8fe72a70b84eff04174d305ad43a65c.png

2. 多项式拟合方法

8805818eb6a464fa48d213bd79cdcf38.png

x0=[1990 1991 1992 1993 1994 1995 1996];

y0=[70 122 144 152 174 196 202];

a=polyfit(x0,y0,1)

y97=polyval(a,1997)

x1=1990:0.1:1997;

y1=a(1)*x1+a(2);

plot(x1,y1)

hold on

plot(x0,y0,'*')

plot(1997,y97,'o')

e7e14cc356443a754881f9bb7ae95d6a.png

3.最小二乘优化

3.1 lsqlin 函数

1599c6bb4d8305d0d71a002eda3e60c5.png

例四:

x=[19 25 31 38 44]';

y=[19.0 32.3 49.0 73.3 97.8]';

r=[ones(5,1),x.^2];

ab=lsqlin(r,y)

x0=19:0.1:44;

y0=ab(1)+ab(2)*x0.^2;

plot(x,y,'o',x0,y0,'r')

3.2 lsqcurvefit 函数

0bf23f6eb792cb4706b1cdfce97c4ec0.png

2e3b0a6f2c95e4871014c90f985d1e98.png

(1)定义函数

function f=fun1(x,tdata);

f=x(1)+x(2)*exp(-0.02*x(3)*tdata); %其中x(1)=a,x(2)=b,x(3)=k

(2)主函数

td=100:100:1000;

cd=[4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59];

x0=[0.2 0.05 0.05];

x=lsqcurvefit(@fun1,x0,td,cd) % x(1)=a,x(2)=b,x(3)=k

t=100:10:1000;

c=x(1)+x(2)*exp(-0.02*x(3)*t);

plot(t,c)

hold on

plot(td,cd,'*'

3.3 lsqnonlin 函数

452c888d86f0047ef8b08a25513b4610.png

a2e5569c4c55f8a0f5573f863ff586f8.png

(1)定义函数

function f=fun2(x);

td=100:100:1000;

cd=[4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59];

f=x(1)+x(2)*exp(-0.02*x(3)*td)-cd;

(2)主函数

x0=[0.2 0.05 0.05]; %初始值是任意的

x=lsqnonlin(@fun2,x0)

3.4 lsqnonneg 函数

0009e31d9012700d75b7235624a68966.png

1d30b0a59da7f532a5a4623ebf8730e4.png

c=[0.0372 0.2869;0.6861 0.7071;0.6233 0.6245;0.6344 0.6170];

d=[0.8587;0.1781;0.0747;0.8405];

x=lsqnonneg(c,d)

4. 曲线拟合的用户图形界面求法

Matlab 工具箱提供了命令cftool,该命令给出了一维数据拟合的交互式环境。具体

执行步骤如下:

(1)把数据导入到工作空间;

(2)运行cftool,打开用户图形界面窗口;

(3)对数据进行预处理;

(4)选择适当的模型进行拟合;

(5)生成一些相关的统计量,并进行预测。

内容来源于网络如有侵权请私信删除

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值