求助:函数模型:y=a*e^-x⼀m+b*e^-x⼀n+c,还有x和y的两组数据,求用Matlab拟合出参数a、b、c、m、n的程序

奉出全部财富值,谢谢各位大神了
2024-11-18 14:36:16
推荐回答(1个)
回答1:

我这里用x向量代表a,b,c,m,n,楼主可对号入座
%%
close all;clear;clc;
F=@(x,xdata)(x(1)*exp(-xdata/x(2))+x(3)*exp(-xdata/x(4))+x(5));
xdata=[1 2 3 4 5];
ydata=[5 4 3 2 1];
x0=[1 1 1 1 1];
x=lsqcurvefit(F,x0,xdata,ydata)
%%
close all;clear;clc;
xdata=[1 2 3 4 5];
ydata=[5 4 3 2 1];
F=@(x)(x(1)*exp(-xdata/x(2))+x(3)*exp(-xdata/x(4))+x(5)-ydata);
x0=[1 1 1 1 1];
x=lsqnonlin(F,x0)
两个代码结果都是 5.5394 10.1713 8.3698 10.8647 -7.5688
需要提醒的是,如果拟合的函数选取不当,或者数据不够,或者数据杂乱无章的话,起点不同结果差别比较大