数学建模——插值与拟合2

代码:

clc, clear 
load data.txt %data.txt 按照原始数据格式把水流量和排沙量排成 4 行,12 列
liu=data([1,3],:); liu=liu'; liu=liu(:); 
sha=data([2,4],:); sha=sha'; sha=sha(:); 
y=sha.*liu; 
%以下是第一阶段的拟合
format long e 
nihe1_1=polyfit(liu(1:11),y(1:11),1) %拟合一次多项式,系数排列从高次幂到低次幂
nihe1_2=polyfit(liu(1:11),y(1:11),2) 
-199- 
yhat1_1=polyval(nihe1_1,liu(1:11)); %求预测值
yhat1_2=polyval(nihe1_2,liu(1:11)); 
%以下求误差平凡和与剩余标准差
cha1_1=sum((y(1:11)-yhat1_1).^2); rmse1_1=sqrt(cha1_1/9) 
cha1_2=sum((y(1:11)-yhat1_2).^2); rmse1_2=sqrt(cha1_2/8) 
%以下是第二阶段的拟合
for j=1:3 
 str1=char(['nihe2_' int2str(j) '=polyfit(liu(12:24),y(12:24),' int2str(j+1) ')']); 
 eval(str1) 
 str2=char(['yhat2_' int2str(j) '=polyval(nihe2_' int2str(j) ',liu(12:24));']); 
 eval(str2) 
 str3=char(['cha2_' int2str(j) '=sum((y(12:24)-yhat2_' int2str(j) ').^2);'... 
 'rmse2_' int2str(j) '=sqrt(cha2_' int2str(j) '/(11-j))']); 
 eval(str3) 
end 
format 

少年不被楼层误,余生不羁尽自由。
加油,加油!

你可能感兴趣的:(自我学习,自我学习)