第一范文网 - 专业文章范例文档资料分享平台

在Matlab中最小二乘法计算拟合曲线系数的程序

来源:用户分享 时间:2025/9/13 14:32:23 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

clear all

load('F:\\2——学习资料篇\\1——专业课资料\\测量数据处理程序设计\\Matlab中最小法计算程序\\datafile.mat') %%加载数据

[r,c]=size(data); %úta数据第一列为点序号,第二列为x坐标,第三列为y坐标 m=20; %%假设其运行次数, for n=1:m;

for i=1:r/2 %%用数据的前半部分计算系数 x1=data(i,2); y1=data(i,3); for j=1:n;

B1(i,j)=x1^(j-1); %%B矩阵计算 end

l(i,1)=y1; %%l矩阵 end

X=inv(B1'*B1)*B1'*l; %%系数矩阵 V=B1*X-l;

[r1,c1]=size(B1);

m0(n,1)=sqrt((V'*V)/(r1-c1)); %%单位权中误差 if n>2&&m0(n,1)>=m0(n-1,1); %%判断单位权中误差 disp(n)

xsgs=n-1; %%单位权中误差最小时其系数的个数 zgcs=n-2; %%单位权中误差最小时其x的最高次数 break %%如果找到了最优值时跳出循环 end end for i=1:r

x2=data(i,2); y2=data(i,3); for k=1:xsgs;

B2(i,k)=x2^(k-1); end

l2(i,1)=y2;

X1=inv(B2'*B2)*B2'*l2; %%计算出最优的系数矩阵 end

x2=data(:,2); y2=data(:,3);

plot(x2,y2,'bo'); %%作出测量点的图形 hold on y3(i,1)=0; for i=1:r; for k=1:5;

a=X1(k,1)*data(i,2)^(k-1); y3(i,1)=y3(i,1)+a;

end %%该循环是将求出的系数代入拟合曲线,验证所有数据

end

y4=y3(:,1);

plot(x2,y4,'r'); %%作出拟合曲线的图形 title('最小二乘法拟合图'); xlabel('数据'); ylabel('拟合');

legend('观测数据点','拟合曲线',1); msgbox '计算完毕!';

在Matlab中最小二乘法计算拟合曲线系数的程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8xupt2q82r0flug9baye_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top