人口问题数据拟合的MATLAB程序
拟合
%拟合数据 人口问题
x=[1949 1954 1959 1964 1969 1974 1979 1984 1989 1994];
y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8];
% 1 线性模型
%用一阶多项式
b=polyfit(x,y,1)
z=b(2)+b(1).*x;
plot(x,y,'r*',x,z),xlabel('x')
%用矩阵运算
A=[ones(size(x))', x'];
b=A\y'
z=b(1)+b(2).*x;
plot(x,y,'r*',x,z),xlabel('x')
%用线性回归
A=[ones(size(x))', x'];
[b,c,r,j,R] =regress(y',A)
% b 回归系数 c 回归系数的置信区间 r 残差 j 拟合数据的置信区间 R 相关系数 F值、p值
z=b(1)+b(2).*x;
z1=z+j(:,1)';
z2=z+j(:,2)';
plot(x,y,'r*',x,z,x,z1,x,z2),xlabel('x')
e=sqrt(sum((y-z).^2)/8)
zz1=z-1.96*e; zz2=z+1.96*e;
plot(x,y,'r*',x,z,x,zz1,x,zz2)
% 2 非线性模型 y=b(2)exp(b(1)x)
%转化为线性函数
A=[ones(size(x))', x'];
y1=log(y);
[b1,r,j,R]=regress(y1',A)
b=[exp(b1(1)) b1(2)]
z=b(1).*exp(b(2).*x);
e=sqrt(sum((y-z).^2)/8)
z1=z-1.96*e; z2=z+1.96*e
plot(x,y,'r*',x,z,x,z1,x,z2)
%用非线性函数拟合(缺点 初值不合适,就得不到解)
x=[49 54 59 64 69 74 79 84 89 94];
y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8];
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科人口问题数据拟合的MATLAB程序全文阅读和word下载服务。
相关推荐: