函数逼近与曲线(面)拟合的MATLAB程序(6)
发布时间:2021-06-06
发布时间:2021-06-06
函数逼近与曲线(面)拟合的MATLAB程序
运行后屏幕显示数据(xi,yi)与拟合函数f的最大误差Ew,平均误差E1和均方根误差E2及其数据点(xi,yi)和拟合曲线y=f(x)的图形(略).
Ew = E1 = E2 =
0.745 7, 0.389 2, 0.436 3
7.5 拟合曲线的线性变换及其MATLAB程序
例7.5.1 给出一组实验数据点(xi,yi)的横坐标向量为x=(7.5 6.8 5.10 4.5
3.6 3.4 2.6 2.5 2.1 1.5 2.7 3.6),纵横坐标向量为y=(359.26 165.60 59.17 41.66 25.92 22.37 13.47 12.87 11.87 6.69 14.87 24.22),试用线性变换和线性最小二乘法求拟合曲线,并用(7.2),(7.3)和(7.4)式估计其误差,作出拟合曲线.
解 (1)首先根据给出的数据点(xi,yi),用下列MATLAB程序画出散点图.
在MATLAB工作窗口输入程序
>> x=[7.5 6.8 5.10 4.5 3.6 3.4 2.6 2.5 2.1 1.5 2.7
3.6];
y=[359.26 165.60 59.17 41.66 25.92 22.37 13.47 12.87 11.87 6.69 14.87 24.22];
plot(x,y,'r*'), legend('数据点(xi,yi)')
xlabel('x'), ylabel('y'),
title('例7.5.1的数据点(xi,yi)的散点图')
运行后屏幕显示数据的散点图(略).
(2)根据数据散点图,取拟合曲线为
bx y ae (a 0,b 0), (7.19)
其中a,b是待定系数.令Y lny,A lna,B b,则(7.19)化为Y A Bx.在MATLAB工作窗口输入程序
>> x=[7.5 6.8 5.10 4.5 3.6 3.4 2.6 2.5 2.1 1.5 2.7
3.6];
y=[359.26 165.60 59.17 41.66 25.92 22.37 13.47 12.87 11.87 6.69 14.87 24.22];
Y=log(y); a=polyfit(x,Y,1); B=a(1);A=a(2); b=B,a=exp(A)
n=length(x); X=8:-0.01:1; Y=a*exp(b.*X); f=a*exp(b.*x);
plot(x,y,'r*',X,Y,'b-'), xlabel('x'),ylabel('y')
legend('数据点(xi,yi)','拟合曲线y=f(x)')
title('例7.5.1 的数据点(xi,yi)和拟合曲线y=f(x)的图形')
fy=abs(f-y); fy2=fy.^2; Ew=max(fy), E1=sum(fy)/n,
E2=sqrt((sum(fy2))/n)
bx运行后屏幕显示y ae的系数b =0.624 1,a =2.703 9,数据(xi,yi)与拟合函数f
的最大误差Ew =67.641 9,平均误差E1=8.677 6和均方根误差E2=20.711 3及其数据点(xi,yi)和拟合曲线f(x) 2.7039e0.6241x的图形(略).
7.6 函数逼近及其MATLAB程序
最佳均方逼近的MATLAB主程序
function [yy1,a,WE]=zjjfbj(f,X,Y,xx)
m=size(f);n=length(X);m=m(1);b=zeros(m,m); c=zeros(m,1);
if n~=length(Y)
error('X和Y的维数应该相同')
end
for j=1:m
for k=1:m
b(j,k)=0;
for i=1:n
下一篇:入党志愿书填写参考模板