永发信息网

matlab 指数曲线拟合:y=a*exp((t-b)^2/c)

答案:3  悬赏:40  手机版
解决时间 2021-03-20 10:18
  • 提问者网友:伴风望海
  • 2021-03-20 01:41
matlab 指数曲线拟合:y=a*exp((t-b)^2/c)
最佳答案
  • 五星知识达人网友:独钓一江月
  • 2021-03-20 02:54
clear
t=[219 222 223 226 229];%你给的数据有问题,请自行调整
y0=[352 2353 3513 6303 3521];
y1=ones(size(y0),1);
y1=log(y0);%对原方程两边取对数
p=polyfit(t,y1,2);%p为拟合多项式的系数,降幂排列
c=1/p(1);%把取对数后的式子整理一下,就可以得到abc跟p的对应关系
b=-p(2)*c/2;
a=exp(p(3)-b^2/c);
a
b
c
全部回答
  • 1楼网友:十年萤火照君眠
  • 2021-03-20 04:41
同意二楼做法,应该使用最佳平方逼近,但你的数据好像有问题啊
  • 2楼网友:何以畏孤独
  • 2021-03-20 04:08
定义拟合函数:
function s=hansh(x,r)
a=x(1);
b=x(2);
c=x(3);
s=a*exp((r-b)^2/c);
主函数:
t=[219 222 223 226 229 233];
y=[352 2353 3513 6303 3521 3300]; %你的数据少个y
x0=[1 1 1]; %对a,b,c赋初值
[x,resnorm]=lsqcurvefit(@hansh,x0,t,y) %最小二乘曲线拟合
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯