- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最小二乘拟合实报告
实验名称: 最小二乘拟合
引言
在科学实验和生产实践中,经常要从一组实验数据出发,寻求函数y=f(x)的一个近似表达式y=φ(x),称为经验公式,从几何上来看,这就是一个曲线拟合的问题。
多项式的插值虽然在一定程度上解决了由函数表求函数近似表达式的问题,但用它来解决这里的问题,是有明显的缺陷的。首先,由实验提供的数据往往有测试误差。如果要求近似曲线y=φ(x)严格地通过所给的每个数据点,就会使曲线保留原来的测试误差,因此当个别数据的误差较大的时候,插值的效果是不理想的。其次,当实验数据较多时,用插值法得到的近似表达式,明显缺乏实用价值。在实验中,我们常常用最小二乘法来解决这类问题。
定义为拟合函数在处的残差。为了是近似曲线能尽量反映所给数据点的变化趋势,我们要求尽可能小。在最小二乘法中,我们选取,使得偏差平方和最小,即 ,这就是最小二乘法的原理。
实验目的和要求
运用matlab编写.m文件,要求用最小二乘法确定参数。
以下一组数据中x与y之间存在着的关系,利用最小二乘法确定式中的参数a和b,并计算相应的军方误差与最大偏差。数据如下:
x 1 2 3 4 5 6 7 8 9 10 y 0.898 2.38 3.07 1.84 2.02 1.94 2.22 2.77 4.02 4.76 x 11 12 13 14 15 16 17 18 19 y 5.46 6.53 10.9 16.5 22.5 35.7 50.6 61.6 81.8
算法原理与流程图
原理
最小二乘是要求对于给定数据列,要求存在某个函数类
中寻求一个函数:
,使得满足
。
根据以上条件可知,点是多元函数
的极小点,从而满足方程组
即,
记,则上述方程组可表示成,(k=0,1,…,n)
写成矩阵形式为
,这个方程组成为法方程组,可以证明,当线性无关时,它有唯一解。
特别地,曲线拟合的一种常用情况为代数多项式,即取
,则
(k=0,1,…,n)
故相应的法方程组变为
,这就是最小二乘法的原理。
在解决本题时,为了简便起见,我们将指数转变成代数多项式去计算。
在两边取对数,得到,取,可见是呈线性关系的。这样我们可以方便地利用最小二乘法求取参数。
(2)流程图
整体流程图 生成矩阵C流程图
程序代码及注释
%最小二乘拟合
%a为线性拟合中的常数,b为一次项系数
%t为均方误差,maxi为最大偏差
function [a,b,t,maxi]=polyfit(x0,y0,n)
m=length(x0) ;p=length(y0);
%x0和y0长度不等时,报错
if m~=p
fprintf(Error! Please input again!\n);
end
%生成中间矩阵C
for i=1:m
C(i,1)=1;
for j=2:n+1
C(i,j)=x0(i)*C(i,j-1);
end
end
%生成系数矩阵A
A=C*C;
%将题目中的y的每项求自然对数后得到y1
for i=1:m
y1(i)=log(y0(i));
end
%生成法方程组的右端向量B
B=C*y1;
%求解拟合系数
X=A\B;
%题中,a=exp(X(1)),b=X(2)
a=exp(X(1));
b=X(2);
%先求偏差平方和,再求均方误差
sum=0;
for k=1:m
y2(k)=a*exp(b*x0(k));
l(k)=y0(k)-y2(k);
sum=sum+l(k).^2;
end
t=sqrt(sum);
%最大偏差为偏差矩阵中绝对值最大的一项
maxi=max(max(abs(l)));
end 算例分析
1、测试示例
x=1:18;
y=[0.898 2.38 3.07 1.84 2.02 1.94 2.22 2.77 4.02 4.76 5.46 6.53 10.9 16.5 22.5 35.7 50.6 61.6 81.8];
[a b t max]=polyfit(x,y,1)
Error! Please input again!
a =
0.7185
b =
0.2227
t =
31.6255
max =
22.0631 2、计算过程
(1)首先输入已知点
x=1:19;
y=[0.898 2.38 3.07 1.84 2.02 1.94 2.22 2.77 4.02 4.76 5.46 6.53 10.9 16.5 22.5 35.7 50.6 61.6 81.8]; (2)输出结果
[a b t max]=polyfit(x,y,1)
a =
您可能关注的文档
最近下载
- 空分车间安全用电管理制度.docx VIP
- 2025政府采购评审专家入库题库与答案.docx VIP
- 2025-2026学年小学信息技术(信息科技)三年级上册(2024)黔科版(2024)教学设计合集.docx
- 结构动力学(哈尔滨工业大学)中国大学MOOC慕课章节测验答案.pdf VIP
- 危险化学品企业安全生产检查重点事项指导目录.pdf VIP
- 月度绩效考核评分表(通用类).docx VIP
- CNAS-CL02-2023 医学实验室质量和能力认可准则.docx VIP
- 法医临床司法鉴定考试题.docx VIP
- 地面、墙面、吊顶施工方案汇总.doc VIP
- 新解读《GB_T 23169-2019发制品 教习头》最新解读.pptx VIP
文档评论(0)