请高手帮我求解一个曲线回归问题:
来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/08/29 03:31:09
请高手帮我求解一个曲线回归问题:
y=A/r+(c-A/r)*e^(-rt)
其中A=11
c=15
具体数据:
t y
0 15
1 18
2 21
3 23
4 25
5 24
6 26
7 27
8 28
9 27
10 29
11 30
12 28
13 29
14 31
15 29
y=A/r+(c-A/r)*e^(-rt)
其中A=11
c=15
具体数据:
t y
0 15
1 18
2 21
3 23
4 25
5 24
6 26
7 27
8 28
9 27
10 29
11 30
12 28
13 29
14 31
15 29
用matlab做的:
clear
t=0:15;
y=[15 18 21 23 25 24 26 27 28 27 29 30 28 29 31 29];
N=length(y);
sy=sum(y)*11;
A=11;
c=15;
r1=1;
r2=1;
deltar=1;
n=0;%记录迭代次数
while abs(deltar)>0.0001
r1=r2;
s=0;
for i=1:N
s=s+A^2+exp(-r1*t(i))*(A*(c*r1-A)+...
((c*r1-A)*r1*t(i)-A)*(A+(c*r1-A)*exp(-r1*t(i))-r1*y(i)));
end
r2=s/sy;
n=n+1;
deltar=r2-r1;
end
n%总的迭代次数
r=r2%r的符合要求的近似值
abs(deltar)%r的误差
z=zeros(1,N);
for i=1:N
z(1,i)=A/r+(c-A/r)*exp(-r*t(i));
end
plot(t,y,'-*',t,z(1,:),'-o')
说明:出来的带星号的是原始数据,带圈的是回归曲线上的数据.
![](http://img.wesiedu.com/upload/e/8d/e8d9c291fe3a342f842e4d39415d6949.jpg)
clear
t=0:15;
y=[15 18 21 23 25 24 26 27 28 27 29 30 28 29 31 29];
N=length(y);
sy=sum(y)*11;
A=11;
c=15;
r1=1;
r2=1;
deltar=1;
n=0;%记录迭代次数
while abs(deltar)>0.0001
r1=r2;
s=0;
for i=1:N
s=s+A^2+exp(-r1*t(i))*(A*(c*r1-A)+...
((c*r1-A)*r1*t(i)-A)*(A+(c*r1-A)*exp(-r1*t(i))-r1*y(i)));
end
r2=s/sy;
n=n+1;
deltar=r2-r1;
end
n%总的迭代次数
r=r2%r的符合要求的近似值
abs(deltar)%r的误差
z=zeros(1,N);
for i=1:N
z(1,i)=A/r+(c-A/r)*exp(-r*t(i));
end
plot(t,y,'-*',t,z(1,:),'-o')
说明:出来的带星号的是原始数据,带圈的是回归曲线上的数据.
![](http://img.wesiedu.com/upload/e/8d/e8d9c291fe3a342f842e4d39415d6949.jpg)