在这段代码后面加上如何计算误差x=1:1:19; y=[0.898,2.38,3.07,1.84,2.02,1.94,2.22,2.77,4.02,4.76,5.46,6.53,10.9,16.5,22.5,35.7,50.6,61.6,81.8]; plot(x,y,'o'); hold on; z=log(y); p=polyfit(x,z,1); x1=0:0.01:19; z1=Polyval(p,x1); y1=exp(z1); plot(x1,y1,'r'); title('y=a*exp(b*x)'); legend('原始数据','拟合直线');
时间: 2024-04-27 12:21:08 浏览: 156
联想工程师专用小工具054-Win10升级工具V3.07.1.exe.zip
可以通过计算拟合曲线与原始数据之间的均方误差和最大误差来评估拟合的好坏。具体计算方法如下:
1. 计算拟合曲线与原始数据之间的均方误差(MSE):
MSE = sum((y - y1).^2) / n
其中,y为原始数据,y1为拟合曲线计算得到的值,n为数据点个数。
2. 计算拟合曲线与原始数据之间的最大误差:
max_error = max(abs(y - y1))
其中,y为原始数据,y1为拟合曲线计算得到的值。
将以上代码与计算代码合并,得到完整代码如下:
x=1:1:19;
y=[0.898,2.38,3.07,1.84,2.02,1.94,2.22,2.77,4.02,4.76,5.46,6.53,10.9,16.5,22.5,35.7,50.6,61.6,81.8];
plot(x,y,'o');
hold on;
z=log(y);
p=polyfit(x,z,1);
x1=0:0.01:19;
z1=polyval(p,x1);
y1=exp(z1);
plot(x1,y1,'r');
title('y=a*exp(b*x)');
legend('原始数据','拟合直线');
% 计算均方误差
n = length(y);
MSE = sum((y - y1).^2) / n;
fprintf('均方误差MSE为: %.4f\n', MSE);
% 计算最大误差
max_error = max(abs(y - y1));
fprintf('最大误差为: %.4f\n', max_error);
阅读全文