函数逼近与曲线(面)拟合的MATLAB程序(5)
时间:2025-02-21
时间:2025-02-21
函数逼近与曲线(面)拟合的MATLAB程序
f(x) 2.8110e 0.5816x. (7.14)
(4)根据(7.2),(7.3),(7.4)和(7.14)式编写下面的MATLAB程序估计其误差,并做出拟合曲线和数据的图形.输入程序
>> xi=[-8.5 -8.7 -7.1 -6.8 -5.10 -4.5 -3.6 -3.4 -2.6 -2.5
-2.1 -1.5 -2.7 -3.6];
y=[459.26 52.81 198.27 165.60 59.17 41.66 25.92 22.37
13.47 12.87 11.87 6.69 14.87 24.22];
n=length(xi); f=2.8110.*exp(-0.5816.*xi); x=-9:0.01: -1;
F=2.8110.*exp(-0.5816.*x); fy=abs(f-y); fy2=fy.^2;
Ew=max(fy),
E1=sum(fy)/n, E2=sqrt((sum(fy2))/n), plot(xi,y,'r*'), hold on plot(x,F,'b-'), hold off,
legend('数据点(xi,yi)','拟合曲线y=f(x)')
xlabel('x'), ylabel('y'),
title('例7.3.1的数据点(xi,yi)和拟合曲线y=f(x)的图形')
运行后屏幕显示数据(xi,yi)与拟合函数f的最大误差Ew = 390.141 5,平均误差E1=36.942 2和均方根误差E2=106.031 7及其数据点(xi,yi)和拟合曲线y=f(x)的图形(略).
7.4 多项式拟合及其MATLAB程序
例7.4.1 给出一组数据点(xi,yi)列入表7–3中,试用线性最小二乘法求拟合曲线,并用(7.2),(7.3)和(7.4)式估计其误差,作出拟合曲线.
表7–3 例7.4.1的一组数据(
x,y)
解 (1)首先根据表7–3给出的数据点ii,用下列MATLAB程序画出散点图. 在MATLAB工作窗口输入程序
>> x=[-2.9 -1.9 -1.1 -0.8 0 0.1 1.5 2.7 3.6];
y=[53.94 33.68 20.88 16.92 8.79 8.98 4.17 9.12
19.88];
plot(x,y,'r*'), legend('数据点(xi,yi)')
xlabel('x'), ylabel('y'),
title('例7.4.1的数据点(xi,yi)的散点图')
运行后屏幕显示数据的散点图(略).
(3)用作线性最小二乘拟合的多项式拟合的MATLAB程序求待定系数ak (k 1,2,3).输入程序
>> a=polyfit(x,y,2)
运行后输出(7.16)式的系数
a =
2.8302 -7.3721 9.1382
故拟合多项式为
f(x) 2.8302x2 7.3721x 9.1382.
(4)编写下面的MATLAB程序估计其误差,并做出拟合曲线和数据的图形.输入程序
>> xi=[-2.9 -1.9 -1.1 -0.8 0 0.1 1.5 2.7 3.6];
y=[53.94 33.68 20.88 16.92 8.79 8.98 4.17 9.12 19.88];
n=length(xi); f=2.8302.*xi.^2-7.3721.*xi+9.1382
x=-2.9:0.001:3.6;F=2.8302.*x.^2-7.3721.*x+8.79;
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)')
xlabel('x'), ylabel('y'),
title('例7.4.1 的数据点(xi,yi)和拟合曲线y=f(x)的图形')
下一篇:入党志愿书填写参考模板