您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > 正交化多项式最小二乘拟合程序
编制正交化多项式最小二乘拟合程序,并用于求解上题中的3次多项式最小二乘拟合问题,作拟合曲线的图形,计算平方误差,并与上题结果进行比较。程序代码:x=-1:0.5:2;y=[-4.447-0.4520.5510.048-0.4470.5494.552];n=3;result=inputdlg({'请输入权向量w:'},'charpt-3',1,{'[1111111]'});w=str2num(char(result));m=length(x)-1;s1=0;s2=ones(1,m+1);v2=sum(w);d(1)=y*w';c(1)=d(1)/v2;fork=1:nxs=x.*s2.^2*w';a(k)=xs/v2;if(k==1)b(k)=0;elseb(k)=v2/v1;ends3=(x-a(k)).*s2-b(k)*s1;v3=s3.^2*w';d(k+1)=y.*s3*w';c(k+1)=d(k+1)/v3;s1=s2;s2=s3;v1=v2;v2=v3;endr=y.*y*w'-c*d'alph=zeros(1,n+1)T=zeros(n+1,n+2);T(:,2)=ones(n+1,1);T(2,3)=-a(1);if(n=2)fork=3:n+1fori=3:k+1T(k,i)=T(k-1,i)-a(k-1)*T(k-1,i-1)-b(k-1)*T(k-2,i-2);endendendfori=1:n+1fork=i:n+1alph(n+2-i)=alph(n+2-i)+c(k)*T(k,k+2-i);endendxmin=min(x);xmax=max(x);dx=(xmax-xmin)/(25*m);t=(xmin-dx):dx:(xmax+dx);s=alph(1);fork=2:n+1s=s.*t+alph(k);endplot(x,y,'x',t,s,'-');xlabel('x');ylabel('y');gridon;disp(alph);disp(r);
本文标题:正交化多项式最小二乘拟合程序
链接地址:https://www.777doc.com/doc-5454948 .html