D=[0.0097 0.0010 0.0016 0.0011 0.0024 0.0029]; tspan=[1:1:7]; N0=[29012 22227 22227 22227 22227 8821]; opts=odeset('reltol',1e-2,'abstol',1e-4);%设置参数 [t,N]=ode45(@ode2,tspan,N0,opts,D); P=N; Z=[]; for i=1:7 Z(i,1)=P(i,1)+(P(i,2)+P(i,3)+P(i,4)+P(i,5))+P(i,6); end D=[]; S=[136726 137646 138326 139232 140011 140541 141008 ]; for j=1:7 D(j,1)= (Z(j)-S(j))/S(j); end F=[]; F=abs(D); G=2000:1:2006 plot(G,F,'LineWidth',1.2) xlabel('时间') ylabel('相对误差') title('(b)相对误差曲线') figure(2) G=2000:1:2006 plot(G,Z,'LineWidth',1.2) xlabel('年份') ylabel('总人口') title('(a)人口拟合曲线') xt=[2000 2006]; yt=[126000 160000]; str={'o','*'}; text(xt,yt,str) text(2000,126743,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold') text(2001,127627,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold') text(2002,128453,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold') text(2003,129227,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold') text(2004,129988,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold') text(2005,130756,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold') text(2006,131448,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold') 为什么这段代码生成的两个图数据不对等?该如何修改正确?
时间: 2023-07-14 17:14:10 浏览: 46
经过观察代码,发现问题出在第一部分和第二部分之间的空行,导致第一部分的计算结果没有被正确传递到第二部分。因此需要将第一部分和第二部分的代码合并在一起,如下所示:
```
D=[0.0097 0.0010 0.0016 0.0011 0.0024 0.0029];
tspan=[1:1:7];
N0=[29012 22227 22227 22227 22227 8821];
opts=odeset('reltol',1e-2,'abstol',1e-4);%设置参数
[t,N]=ode45(@ode2,tspan,N0,opts,D);
P=N;
Z=[];
for i=1:7
Z(i,1)=P(i,1)+(P(i,2)+P(i,3)+P(i,4)+P(i,5))+P(i,6);
end
S=[136726 137646 138326 139232 140011 140541 141008 ];
D=[];
for j=1:7
D(j,1)= (Z(j)-S(j))/S(j);
end
F=[];
F=abs(D);
G=2000:1:2006
plot(G,Z,'LineWidth',1.2)
xlabel('年份')
ylabel('总人口')
title('(a)人口拟合曲线')
xt=[2000 2006];
yt=[126000 160000];
str={'o','*'};
text(xt,yt,str)
text(2000,126743,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold')
text(2001,127627,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold')
text(2002,128453,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold')
text(2003,129227,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold')
text(2004,129988,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold')
text(2005,130756,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold')
text(2006,131448,'\diamondsuit','color','r','HorizontalAlignment','center','FontSize',12,'FontWeigh','bold')
figure(2)
plot(G,F,'LineWidth',1.2)
xlabel('时间')
ylabel('相对误差')
title('(b)相对误差曲线')
```
这样修改之后,两个图的数据就会对应起来了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)