请高手帮我求解一个曲线回归问题:
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:数学作业 时间:2024/07/27 22:09:50
请高手帮我求解一个曲线回归问题:
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
![请高手帮我求解一个曲线回归问题:](/uploads/image/z/1663088-32-8.jpg?t=%E8%AF%B7%E9%AB%98%E6%89%8B%E5%B8%AE%E6%88%91%E6%B1%82%E8%A7%A3%E4%B8%80%E4%B8%AA%E6%9B%B2%E7%BA%BF%E5%9B%9E%E5%BD%92%E9%97%AE%E9%A2%98%3A)
用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)