matlab自定义公式拟合

点点圈 提交于 2019-12-01 15:21:43

clc,clear
%定义一个符号变量t
syms t
%写入要拟合数据
x=[0;1;3;10;30;100;300;1000;3000;5000;7000;10000];
y=[0;0.003915;-0.01044;-0.01184;-0.03737;-0.14699;-0.41946;-1.00311;-1.94593;-2.56821;-3.07218;-3.65212];
%编辑要拟合的公式,设置变量,设置系数
ft=fittype('a(1-exp(-(t/tau)^beta))','independent','t','coefficients',{'a','tau','beta'});
options = fitoptions(ft);
options.StartPoint=[1 10 1];
%设定拟合所用系数的上下限
options.Lower = [-999999 -99999 0];
options.Upper=[100 99999 1];
%进行拟合
cfun=fit(x,y,ft,options)
%显示拟合函数,数据必须为列向量形式
xi=0:10:10000;
yi=cfun(xi);
figure
plot(x',y','r
',xi,yi,'b-');
title('拟合函数图形');

得到的拟合参数:
cfun =
General model:
cfun(t) = a*(1-exp(-(t/tau)^beta))
Coefficients (with 95% confidence bounds):
a = -5.807 (-6.909, -4.705)
tau = 1.021e+04 (5945, 1.448e+04)
beta = 0.7357 (0.6822, 0.7892)

拟合效果图:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!