数值分析(计算方法)实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数值分析》课程实验指导书
实验二函数逼近与曲线拟合
一、问题提出
二、实验程序及结果分析:
先写出线性最小二乘法的M文件
function c=lspoly(x,y,m)
% x是数据点的横坐标组成的向量,y是纵坐标组成的向量
% m是要构成的多项式的次数,c是多项式由高次到低次的系数所组成的向量
n=length(x);
b=zeros(1:m+1);
f=zeros(n,m+1);
for k=1:m+1
f(:,k)=x.^(k-1);
end
a=f'*f;
b=f'*y';
c=a\b;
c=flipud(c);
方法一:近似解析表达式为:y(t)=a1t+a2t2+a3t3
第二步在命令窗口输入:
lspoly([0,5,10,15,20,25,30,35,40,45,50,55],[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4. 64],2)
回车得到:
ans =
0.0000
-0.0052
0.2634
0.0178
即所求的拟合曲线为y=-0.0052t2+0.2634t+0.0178
在编辑窗口输入如下命令:
>>x=[0,5,10,15,20,25,30,35,40,45,50,55];y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4 .64];
>> t=0:0.1:55;
>> z=-0.0052*t.^2+0.2634*t+0.0178;
>> plot(x,y,'ro',t,z);grid
命令执行得到如下图(图2-1)
0102030405060
图2-1 拟合多项式与数据点的关系
方法二:假设近似表达式为:y(t)=c0+c1t+c2t2
第一步在命令窗口输入:
>>lspoly([0,5,10,15,20,25,30,35,40,45,50,55],[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51, 4.58,4.02,4.64],2)
回车得到:
ans =
-0.0024
0.2037
0.2305
即所求的拟合曲线为y=-0.0024t2+0.2037t+0.2305
在编辑窗口输入如下命令:
>>x=[0,5,10,15,20,25,30,35,40,45,50,55];y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4. 58,4.02,4.64];
>> t=0:0.1:55;
>> z=-0.0024*t.^2+0.2037*t+0.2305;
>> plot(x,y,'ro',t,z);grid
命令执行得到如下图(图2-2)
图2-2 拟合多项式与数据点的关系
三、实验结论
在利用数据的最小二乘法求拟合曲线时,选取合适的近似表达式很重要,应通过不断的试验找出较为合适的近似表达式,这样才能尽可能的提高拟合精度。