《matlab最小二乘拟合问题.pdf》由会员分享,可在线阅读,更多相关《matlab最小二乘拟合问题.pdf(5页珍藏版)》请在三一文库上搜索。
1、Matlab 实现最小二乘拟合 一、实验内容 1 对下列数据,求解最小二乘抛物线CBxAxxf 2 )( k x -3 -1 1 3 k y 15 5 1 5 2 logistic 人口增长模型的参数确定。当人口 P(t)受限于极限值L 时,它符合 logistic 曲线,具有形式 P(t)=L/(1+CeAt)。对下列数据集求解参数A 和 C,L 是已 知的。 (a) (0,200), (1,400) , (2,650) (3,850) , (4,950); L=1000 (b) (0,500), (1,1000) , (2,1800) (3,2800) , (4,3700); L=5000
2、 二、实验原理 :求使得偏差平方和最小的多项式 三、实验说明:要求输入拟合点,输出拟合函数的系数并在同一坐标系下画 出离散点和拟合曲线。 四、实验过程及结果分析 第 1 题: 相关输入与输出: X=-3 -1 1 3; Y=15 51 5; M=2; C=lspoly(X,Y,M) C = 0.8750 -1.7000 2.1250(降幂排列) x=-3:0.1:3; y=polyval(C,x); plot(X,Y,ro,x,y,b-) 图像: -3-2-10123 0 2 4 6 8 10 12 14 16 第 2 题: (1): P=200 400 650 850 950; L=1000
3、; y=dd(L,P) y = 0.6094 -0.0837 -0.5692 -0.8375 -0.9487 y=0.6094 -0.0837 -0.5692 -0.8375 -0.9487; t=0 1 2 3 4; M=1; a=lspoly(t,y,M) a = -0.3870 0.4081 A=a(1) A = -0.3870 C=exp(a(2) C = 1.5039 T=0:0.1:4; Y=polyval(a,T); plot(t,y,ro,T,Y,b-) 变换后图像: 00.511.522.533.54 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4
4、 0.6 第 2 题: (2) P= 500 1000 1800 2800 3700; L=5000; y=dd(L,P) y = 1.3026 0.6094 0.0217 -0.4202 -0.6989 y=1.3026 0.6094 0.0217 -0.4202 -0.6989; t=0 1 2 3 4; M=1; a=lspoly(t,y,M) a = -0.5033 1.1694 A=a(1) A = -0.5033 C=exp(a(2) C = 3.2202 T=0:0.1:4; Y=polyval(a,T); plot(t,y,ro,T,Y,b-) 变换后图像: 00.511.52
5、2.533.54 -1 -0.5 0 0.5 1 1.5 五、实验总结: 1.本实验 lspoly意思是最小二乘多项式的英文简写,其程序运行到 C=AB 时,C 为升幂排列, 最后加上 C=flipud(C)表示上下颠倒, 使得所求 C 即为根据 x 的幂 次由高到低排列的 2.引用 matlab系统函数 polyval是求多项式的值 3.在第 2问中,所求函数模型不是线性的,这就要考虑对其进行相应的变化 六、参考程序: 1、lspoly.m function C=lspoly(X,Y,M) n=length(X); B=zeros(1:M+1); F=zeros(n,M+1); for k=1:M+1 F(:,k)=X.(k-1); end A=F*F; B=F*Y; C=AB; C=flipud(C); 2、计算 y 与 P、L 关系的 m文件 dd.m: function y=dd(L,P); y=zeros(1,5); for i=1:5 y(i)=log(L./P(i)-1); y(i)=log(L./P(i)-1; end
链接地址:https://www.31doc.com/p-5054772.html