当前位置:编程学习 > Matlab >>

matlab 拟合

x=[0 5 10 20 30 40 50 60 70 80 90 100]; y=[10 15 22 50 110 245 546 1215 2704 6018 13394 29810]; 希望给出表达式及相关程序,程序中含有作图的,谢谢
答案:程序如下
>> x=[0 5 10 20 30 40 50 60 70 80 90 100]';
y=[10 15 22 50 110 245 546 1215 2704 6018 13394 29810]';
ft_ = fittype('a*exp(b*x)',...
    'dependent',{'y'},'independent',{'x'},...
    'coefficients',{'a', 'b'});
st=[10 0.1]
[curve, goodness]= fit(x,y,ft_,'Startpoint',st)
figure
 plot(curve,'predobs',0.95);
 hold on,plot(x,y,'b*')

st =

   10.0000    0.1000


curve = 

     General model:
     curve(x) = a*exp(b*x)
     Coefficients (with 95% confidence bounds):
       a =       9.996  (9.994, 9.999)
       b =        0.08  (0.08, 0.08001)

goodness = 

           sse: 0.4422
       rsquare: 1.0000
           dfe: 10
    adjrsquare: 1.0000
          rmse: 0.2103
其他:我试过的了,可以画出来,希望对你有帮助,谢谢。
x=[0 5 10 20 30 40 50 60 70 80 90 100];
y=[10 15 22 50 110 245 546 1215 2704 6018 13394 29810];
% 拟合直线y=p(1)*x+p(2)
p=polyfit(x,y,1);
% 显示拟合前后直线,其中方框为拟合前数据,直线为拟合后的直线
yy=polyval(p,x);
plot(x,y,'s',x,yy)
%拟合的直线方程
poly2sym(p,'x') x=[0 5 10 20 30 40 50 60 70 80 90 100];
y=[10 15 22 50 110 245 546 1215 2704 6018 13394 29810];
p=fit(x',y','exp1')
plot(p,x,y,'ro');
title([num2str(p.a),'*exp(',num2str(p.b),'x)'])

上一个:我把matlab外部的工具箱文件夹复制在了matlab中的toolbox文件夹下,运行程序时还是说找不到我这个外部工具
下一个:如何用MATLAB算居民到指定地点(多个)的总人数(居民总是选择最短的路劲),谢谢

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,