matlab人口预测与数据曲线拟合剖析.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据插值 例如 4 用matlab软件进行数据拟合 (1)lsqcurvefit命令最小二乘拟合 a= lsqcurvefit(fun,x0,xdata,ydata) [a,resnorm]=lsqcurvefit(fun,x0,xdata,ydata) 是根据给定的数据xdata,ydata,按照函数文件fun给定的函数,以x0为初值做最小二乘拟合,返回函数中的系数向量a和残差平方和resnorm。 例 首先编写函数文件 function y=f(a,x) f=a(1)*exp(x)+a(2)*x.^2+a(3)*x.^3 保存为f.m,其次调用该函数 x=0:0.1:1; y=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17]; a0=[0 0 0]; [x,resnorm]=lsqcurvefit(@f,a0,x,y) 也可以用inline命令定义函数 x=0:0.1:1; y=[3.1,3.27,3.81,4.5,5.18,6,7.05,8.56,9.69,11.25,13.17]; f=inline(a(1)*exp(x)+a(2)*x.^2+a(3)*x.^3,a,x); a0=[0 0 0]; [a,resnorm]=lsqcurvefit(f,a0,x,y) plot(x,y,*) hold on g=a(1)*exp(x)+a(2)*x.^2+a(3)*x.^3; plot(x,g,r-) 例如 clear;clc; x=0:0.1:1; y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66,9.56,9.48,9.3,11.2]; plot(x,y,k.,markersize,25); axis([0 1.3 -2 16]); p3=polyfit(x,y,3) p6=polyfit(x,y,6) t=0:0.01:1.2; s=polyval(p3,t); s1=polyval(p6,t); hold on plot(t,s,r-,linewidth,2); plot(t,s1,b--,linewidth,2); grid 编写程序调用matlab命令 x=1949:5:1994; y=[541.67,602.66,672.09,704.99,806.71,908.59,975.42,1034.75,1106.76,1176.74]; plot(x,y,r*,linewidth,2) grid f=inline(a(1)+a(2)*x,a,x); a0=[0 5]; [a,resnorm]=lsqcurvefit(f,a0,x,y) hold on g=a(1)+a(2)*x; plot(x,g,b-,linewidth,2) 或者调用M函数 function f=nihe(a,x) f=a(1)+a(2)*x; 保存成nihe.m,在新窗口编写程序 x=1949:5:1994; y=[541.67,602.66,672.09,704.99,806.71,908.59,975.42,1034.75,1106.76,1176.74]; a0=[10 10]; [a,resnorm]=lsqcurvefit(@nihe,a0,x,y) 也可以直接编写程序如下: clc;clf; x=1949:5:1994; y=[541.67,602.66,672.09,704.99,806.71,908.59,975.42,1034.75,1106.76,1176.74]; plot(x,y,r*,linewidth,2) grid a11=10;a12=sum(x); a21=a12;a22=sum(x.^2); d1=sum(y);d2=sum(x.*y); A=[a11,a12;a21,a22]; D=[d1;d2]; ab=inv(A)*D plot(x,g,b-,linewidth,2) t=1949:5:2010; g=ab(1)+ab(2)*t; hold on plot(t,g,b-,linewidth,2) y2000=ab(1)+ab(2)*2000 y2005=ab(1)+ab(2)*2005 y2010=ab(1)+ab(2)*2010 axis([1945 2012 500 1450]) plot(2000,1295.3,g*,linewidth,2) plot(2005,1306.28,g*,linewidth,2) plot(2010,1370.5,g*,linewidth,2) 计算得 三、人口预测的Malthus模型 计算得 四、人口预测的Logistic模型 五、人口预测的多项式模型

您可能关注的文档

文档评论(0)

w5544434 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档