文档详情

最小二乘法程序说明及流程图.pdf

发布:2017-05-23约3.35千字共5页下载文档
文本预览下载声明
陆韶琦 3110000441 程序说明:本程序用多项式拟合数据,程序会要求输入需要拟合的次数和数据点的个 数,数据文件应该保存在本程序运行时的 current folder 下,文件取名为“mytext.txt” 流程图: 输入需要拟合的次数 N ,和数据点的个数M false 0i=N +1 i+=1 false 0j=M j+=1 C (i,j )=S(1,j)^(i-1) (S(1,j)=0 时,C (i.j )=0) T A=C C,b=CY; (Y 为数据点中yi 组成的 列向量) 通过列主元高斯消元法求解Ax=b 输出表达式 N i expr= a i + 1 x i=0 对数据点S (1,1 )到S (1 ,M )区间按0.01 步长 作图 M 2 计算δ = δi ; rms 1 δ =max |δ|. max 1=i= i end 程序代码: %多项式最小二乘法拟合数据 N=input( please put in how many times the power will you overfit:); M=input( how many couples of statistics are there in the table:); %读入数据文件 f=fopen(mytxt.txt,r); S=fscanf(f,%g,[M 2]); fclose(f); S=S; %显示数据文件,确保正确输入 disp(S(x,y)=); disp(S); %建立多项式系数法方程组中间矩阵 C=zeros(N+1,M); for i=1:N+1 for j=1:M if S(1,j)==0 C(i,j)=0; else C(i,j)=S(1,j).^(i-1); end end end %建立法方程组 A=C*C; Y=zeros(M,1); for i=1:M Y(i,1)=S(2,i); end b=C*Y; %用列主元高斯消元法接法方程组 A=[A,b]; for i=1:N+1 max=abs(A(i,i)); for j=i+1:N+1 if abs(A(j,i))max flag=j; max=A(j,i); end end for k=i:N+2
显示全部
相似文档