数值分析第五章数值实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析第五章数值实验之数值拟合
1. 实验目的:学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题
2. 实验内容:给定数据点x yj如下:
3. 实验要求:
(1)编写程序用最小二乘法求拟合数据的多项式,并求平方误差,作出离散函数(X, y i)和拟合函数的图形。
(2)用MATLAB勺内部函数polyfit 求解上面最小二乘法曲线拟合多项式的系数及平方误差,并用MATLAB勺内部函数plot作出其图形,并与(1)的结果进行比较。
4. 实验步骤:
(1)首先根据上述表格中给定的数据点(为$),用MATLAB?序画出散点图。在MATLA工作窗口输入程序
>>x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
plot(x,y,'r*'),legend(' 数据点(xi,yi )'),
x1abel('x'),y1abel('y'),
title(' 本实验的数据点(xi,yi )的散点图')
运行后屏幕显示数据的散点图,如下图1-1
图1-1表中给出的数据的散点图
因为数据的散点图1-1的变化趋势与二次多项式很接近,所以取
组函数1,x,x2,令 f (x^ a1x2 a2x a3(1-1)
用作线性最小二乘拟合的多项式拟合的MATLAB程序求待定系数a k(k =1,2,3).输入程序
x=[0 0.5 0.6 0.7 0.8 0.9 1.0]; a=polyfit(x,y,2)
运行后输出(1-1 )式的系数
a=
1.0000 1.0000 1.0000
故拟合多项式为
f (x) = x2 x 1
用MATLA程序估计其误差,并作出拟合曲线和数据的图形。
输入程序:
>>xi=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
n=le ngth(xi);f=xi.A2+xi+1;
x=0:0.001:1.0;F=x.A2+x+1;
fy=abs(f-y);fy2=fy.A2;Ew=max(fy),
E1=sum(fy)/n,E2=sqrt((sum(fy2))/n),
plot(xi,y,'r*',x,F,'b-'),
legend('数据点(xi,yi)',' 拟合曲线y=f(x)'),
x1abel('x'),y1abel('y'),
title(' 本实验的数据点(xi,yi)和拟合曲线y=f(x)的图形')
运行后屏幕显示数据(冷%)与拟合函数f的最大误差E w,平均误差E1和均方根误差E2及其数据点(xi,yi)和拟合曲线y二f (x)的图形,见图1-2.
Ew=
4.4409e-016
E1 =
6.3441e-017
E2=
1.6785e-016
图1-2数据散点图和拟合曲线
⑵用MATLA的内部函数polyfit求解上面最小二乘法曲线拟合多项式的系数输入程序为:
>> x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
a=polyfit(x,y,2)
a=
1.0000 1.0000 1.0000
>> x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
a=polyfit(x,y,3)
a =
-0.0000 1.0000 1.0000 1.0000
由此可知拟合的多项式为二次多项式,
其系数为a=1.0000 1.0000 1.0000
拟合的多项式为f(X)= X2■ x 1
求拟合多项式的平方误差,输入程序为
xi=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
n=le ngth(xi);f=xi.A2+xi+1;
fy=abs(f-y);E1=sum(fy )/n
运行后屏幕显示数据(x,yj与拟合函数f的平均误差E1:
E1=6.3441e-017
用MATLAB勺内部函数plot作出其图形
输入程序为:
>>x=[0 0.5 0.6 0.7 0.8 0.9 1.0];
y=[1 1.75 1.96 2.19 2.44 2.71 3.00];
Plot(x,y)
运行后拟合多项式的图形如图1-3.
5. 实验分析:
编写程序用最小二乘法求拟合曲线的多项式的过程中,求出的数据(x,y)与拟合函数f的最大误差Ew=4.4409e-016,平均误差E仁6.3441e-017和均方根
误差E2=1.6785e-016非常小都达到了很高的精度要求,及其通过散点求得的拟合曲线y二f (X)的图形比较光滑
而用MATLAB勺内部函数polyfit 求解的曲线拟合多项式和平方误差与程序求得的相同,还有就是虽然求解过程简单了,但用MATLAB勺内部函数plot作出的图形有明显的尖点,不够光滑。
拟合曲线曲对的图形
图1-3多项式拟合曲线