资源描述:
《数值分析第五章数值实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数值分析第五章数值实验之数值拟合1.实验目的:学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题。2.实验内容:给定数据点如下:00.50.60.70.80.91.011.751.962.192.442.713.003.实验要求:(1)编写程序用最小二乘法求拟合数据的多项式,并求平方误差,作出离散函数和拟合函数的图形。(2)用MATLAB的内部函数polyfit求解上面最小二乘法曲线拟合多项式的系数及平方误差,并用MATLAB的内部函数plot作出其图形,并与(1)的结果进行比较。4.实验步骤
2、:(1)首先根据上述表格中给定的数据点,用MATLAB程序画出散点图。在MATLAB工作窗口输入程序>>x=[00.50.60.70.80.91.0];y=[11.751.962.192.442.713.00];plot(x,y,'r*'),legend('数据点(xi,yi)'),x1abel('x'),y1abel('y'),title('本实验的数据点(xi,yi)的散点图')运行后屏幕显示数据的散点图,如下图1-1图1-1表中给出的数据的散点图因为数据的散点图1-1的变化趋势与二次多项式很接
3、近,所以取组函数,令用作线性最小二乘拟合的多项式拟合的MATLAB程序求待定系数.输入程序x=[00.50.60.70.80.91.0];a=polyfit(x,y,2)运行后输出(1-1)式的系数a=1.00001.00001.0000故拟合多项式为用MATLAB程序估计其误差,并作出拟合曲线和数据的图形。输入程序:>>xi=[00.50.60.70.80.91.0];y=[11.751.962.192.442.713.00];n=length(xi);f=xi.^2+xi+1;x=0:0.001
4、:1.0;F=x.^2+x+1;fy=abs(f-y);fy2=fy.^2;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)的图形')运行后屏幕显示数据与拟合函数的最大误差,平均误差和均方根误差及其数据点和拟合曲线的图形,见图1-
5、2.Ew=4.4409e-016E1=6.3441e-017E2=1.6785e-016图1-2数据散点图和拟合曲线(2)用MATLAB的内部函数polyfit求解上面最小二乘法曲线拟合多项式的系数,输入程序为:>>x=[00.50.60.70.80.91.0];y=[11.751.962.192.442.713.00];a=polyfit(x,y,2)a=1.00001.00001.0000>>x=[00.50.60.70.80.91.0];y=[11.751.962.192.442.713.00
6、];a=polyfit(x,y,3)a=-0.00001.00001.00001.0000由此可知拟合的多项式为二次多项式,其系数为a=1.00001.00001.0000拟合的多项式为求拟合多项式的平方误差,输入程序为xi=[00.50.60.70.80.91.0];y=[11.751.962.192.442.713.00];n=length(xi);f=xi.^2+xi+1;fy=abs(f-y);E1=sum(fy)/n运行后屏幕显示数据与拟合函数的平均误差:E1=6.3441e-017用MA
7、TLAB的内部函数plot作出其图形。输入程序为:>>x=[00.50.60.70.80.91.0];y=[11.751.962.192.442.713.00];plot(x,y)运行后拟合多项式的图形如图1-3.5.实验分析:编写程序用最小二乘法求拟合曲线的多项式的过程中,求出的数据与拟合函数的最大误差Ew=4.4409e-016,平均误差E1=6.3441e-017和均方根误差E2=1.6785e-016非常小都达到了很高的精度要求,及其通过散点求得的拟合曲线的图形比较光滑。而用MATLAB的内
8、部函数polyfit求解的曲线拟合多项式和平方误差与程序求得的相同,还有就是虽然求解过程简单了,但用MATLAB的内部函数plot作出的图形有明显的尖点,不够光滑。图1-3多项式拟合曲线