MATLAB画散点图和二次函数拟合

2025-01-03 15:36:38
推荐回答(3个)
回答1:

x=[37 37.5 38 38.5 39 39.5 40 40.5 41 41.5 42 42.5 43];
y=[3.4 3 3 2.27 2.1 1.83 1.53 1.7 1.8 1.9 2.35 2.54 2.9];
p=polyfit(x,y,2); % 拟合出的二次函数的系数
ye=y-polyval(p,x); % 计算误差
ye2s=sum(ye.^2); % 误差的平方和
disp(sprintf('误差的平方和=%d',ye2s));

xx=linspace(min(x),max(x)); % 绘图用到的点的横坐标
yy=polyval(p,xx); % 拟合曲线的纵坐标
plot(x,y,'o',xx,yy); % 绘图,原始数据+拟合曲线
legend('原始数据','拟合曲线'); % 图示

s=char(vpa(poly2sym(p,'x'),5)); % 二次函数式转换为字符串,vpa转换小数,保留5位有效数字
title(['y=' s]);

回答2:

X=[37 37.5 38 38.5 39 39.5 40 40.5 41 41.5 42 42.5 43 ];
Y=[3.4 3 3 2.27 2.1 1.83 1.53 1.7 1.8 1.9 2.35 2.54 2.9 ];
y1=scatter(X,Y)%散点图
grid on;
figure(1)
p=polyfit(X,Y,2)%二次函数拟合
x2=37:.5:43;
y2=polyval(p,x2)
figure(2)
plot(X,Y,'o',x2,y2)%同时绘出
xlabel('x');
ylabel('y');
dety=Y-polyval(p,X); % 计算误差
dety2=sum(dety.^2); % 误差的平方和
disp(sprintf('误差的平方和=%d',dety2));
legend('散点图','二次拟合')

回答3:

我个人认为你可以照着下面做:%
by
dynamic
of
matlab技术论坛%
see
also
href="http://wenda.so.com/index/verifyurl?url=http%3a%2f%2fwww.matlabsky.coms=
';
beta=[ones(19,1),log(s)]\log(n);s=180:275;n=exp(beta(1)+beta(2)*log(s));semilogx(n,s,'o',n,s)xlabel('n')ylabel('s')title(['lgn=',num2str(beta(1)),'+(',num2str(beta(2)),')*lgs'])
祝你好运1生1世!点击好评,谢谢你!